Radiology Service — Deployment Topology
Status: populated
Owner: TBD
Last updated: 2026-04-18
Companion: Service Template · 03 platform-services · 02 DDD
1. Runtime
| Attribute | Value |
|---|
| Runtime | Node 22 / NestJS 11 |
| Language | TypeScript 5.x |
| Port | 3000 |
| Package name | @ghasi/radiology-service |
2. Replicas and Scaling
| Environment | Min | Max | Trigger |
|---|
| Production (hub) | 2 | 4 | CPU > 70% |
| Staging | 1 | 2 | Manual |
| Development | 1 | 1 | N/A |
3. Node Deployment
Radiology service is primarily hub-deployed. Facility-node deployment is optional and only provides study metadata cache; PACS queries still route to the external PACS system at the facility.
4. Dependencies
| Dependency | Type | Notes |
|---|
| PostgreSQL 16 | Hard | Isolated schema |
| NATS JetStream | Hard | Events |
| interop-service FHIR gateway | Hard (report sign) | FHIR DiagnosticReport publish |
| PACS / DICOMweb | Soft | Degraded mode if unreachable |
| access-policy-service | Hard (viewer launch) | ABAC check |
| Keycloak | Hard | JWT validation |
| Kong | Hard | API routing |
5. Kong Routes
| Route | Upstream |
|---|
/v1/radiology/* | radiology-service:3000 |
/fhir/R4/ImagingStudy | Routed by interop-service → radiology-service |
/fhir/R4/DiagnosticReport (category=RAD) | Routed by interop-service → radiology-service |
6. Environment Variables
| Variable | Required | Description |
|---|
DATABASE_URL | Yes | PostgreSQL connection string |
NATS_URL | Yes | NATS JetStream URL |
KEYCLOAK_JWKS_URI | Yes | JWT validation |
FHIR_GATEWAY_URL | Yes | interop-service FHIR base |
ABAC_SERVICE_URL | Yes | access-policy-service URL |
VIEWER_TOKEN_SECRET | Yes | HS256 signing secret for viewer tokens |
VIEWER_TOKEN_TTL_MINUTES | No | Default 60 |
MODULE_LICENSE_KEY | Yes | diag.radiology entitlement |