Radiology Service — Domain Model
Status: populated Owner: TBD Last updated: 2026-04-18 Companion: Service Template · 03 platform-services · 02 DDD
1. Aggregates
1.1 ImagingStudyRef
The root aggregate representing an imaging study as known to the EHR. Stores metadata and references to pixel data in the external PACS. It does not own pixel data.
| Invariant | Rule |
|---|---|
| Unique PACS study UID per tenant | (tenant_id, pacs_study_uid) is unique |
| PACS endpoint required | Study must reference a registered PacsEndpoint |
| Order linkage | orderId references the FHIR ServiceRequest from orders-service |
State machine:
1.2 RadiologyReport
A radiology report attached to an ImagingStudyRef. Supports prelim → final → amended versioning.
| Invariant | Rule |
|---|---|
| Final reports are immutable | Amendments create a new version; prior version status = superseded |
| Critical finding flag | criticalFindingFlag=true triggers diag.radiology.finding.critical event |
| Version chain | Each amendment references priorReportId |
State machine:
2. Entities
| Entity | Key attributes | Aggregate |
|---|---|---|
PacsEndpoint | id, tenantId, nodeId?, name, qidoUrl, wadoUrl, stowUrl?, authMode, facilityId? | Independent (config) |
ViewerLaunchToken | id, studyId, userId, expiresAt, signedPayload | ImagingStudyRef (transient) |
3. Value Objects
| Value Object | Fields | Rules |
|---|---|---|
PacsStudyUid | value: string | DICOM Study Instance UID format |
Modality | enum CR | CT | MR | US | DX | NM | PT | XA | RF | ... | DICOM modality codes |
ReportStatus | enum preliminary | final | amended | superseded | canceled | Drives clinical display |
AuthMode | enum none | bearer | basic | oauth2-client-credentials | Controls PACS endpoint auth |
ViewerType | enum ohif | weasis | smart-on-fhir | embedded | external | Viewer launch strategy |
4. Domain Events
| Event name | Trigger | Key payload fields |
|---|---|---|
RadiologyStudyRegistered | Study metadata synced | studyId, patientId, orderId?, modality, tenantId |
RadiologyStudyAvailable | Study confirmed available in PACS | studyId, pacsStudyUid, patientId, tenantId |
RadiologyReportReceived | Prelim report ingested | studyId, reportId, status, tenantId |
RadiologyReportSigned | Report finalized | studyId, reportId, authorId, patientId, tenantId |
RadiologyReportAmended | Amendment submitted | reportId, priorReportId, studyId, patientId, tenantId |
RadiologyCriticalFindingFlagged | Critical finding on report | studyId, reportId, patientId, responsibleProviderId, tenantId |
5. Ubiquitous Language
| Term | Definition |
|---|---|
| PACS | Picture Archiving and Communication System — external system storing DICOM image data |
| DICOMweb | Web-based DICOM standards: QIDO-RS (query), WADO-RS (retrieve), STOW-RS (store) |
| Study UID | DICOM Study Instance UID — globally unique identifier for a imaging study |
| Modality | Type of imaging equipment (CT, MR, US, CR, DX, etc.) |
| Worklist | Radiologist queue of studies awaiting reporting |
| Prelim report | Preliminary interpretation by on-call radiologist; not yet finalized |
| Final report | Signed, clinically authoritative radiology report |
| Amendment | Correction to a final report; creates a new version |
| Viewer launch | Secure handoff to an imaging viewer application with patient/study context |
| QIDO-RS | Query based on ID for DICOM Objects (RESTful search) |
| WADO-RS | Web Access to DICOM Objects (RESTful retrieval) |
| Critical finding | Urgent finding on imaging requiring immediate clinical notification |