Skip to main content

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.

InvariantRule
Unique PACS study UID per tenant(tenant_id, pacs_study_uid) is unique
PACS endpoint requiredStudy must reference a registered PacsEndpoint
Order linkageorderId references the FHIR ServiceRequest from orders-service

State machine:


1.2 RadiologyReport

A radiology report attached to an ImagingStudyRef. Supports prelim → final → amended versioning.

InvariantRule
Final reports are immutableAmendments create a new version; prior version status = superseded
Critical finding flagcriticalFindingFlag=true triggers diag.radiology.finding.critical event
Version chainEach amendment references priorReportId

State machine:


2. Entities

EntityKey attributesAggregate
PacsEndpointid, tenantId, nodeId?, name, qidoUrl, wadoUrl, stowUrl?, authMode, facilityId?Independent (config)
ViewerLaunchTokenid, studyId, userId, expiresAt, signedPayloadImagingStudyRef (transient)

3. Value Objects

Value ObjectFieldsRules
PacsStudyUidvalue: stringDICOM Study Instance UID format
Modalityenum CR | CT | MR | US | DX | NM | PT | XA | RF | ...DICOM modality codes
ReportStatusenum preliminary | final | amended | superseded | canceledDrives clinical display
AuthModeenum none | bearer | basic | oauth2-client-credentialsControls PACS endpoint auth
ViewerTypeenum ohif | weasis | smart-on-fhir | embedded | externalViewer launch strategy

4. Domain Events

Event nameTriggerKey payload fields
RadiologyStudyRegisteredStudy metadata syncedstudyId, patientId, orderId?, modality, tenantId
RadiologyStudyAvailableStudy confirmed available in PACSstudyId, pacsStudyUid, patientId, tenantId
RadiologyReportReceivedPrelim report ingestedstudyId, reportId, status, tenantId
RadiologyReportSignedReport finalizedstudyId, reportId, authorId, patientId, tenantId
RadiologyReportAmendedAmendment submittedreportId, priorReportId, studyId, patientId, tenantId
RadiologyCriticalFindingFlaggedCritical finding on reportstudyId, reportId, patientId, responsibleProviderId, tenantId

5. Ubiquitous Language

TermDefinition
PACSPicture Archiving and Communication System — external system storing DICOM image data
DICOMwebWeb-based DICOM standards: QIDO-RS (query), WADO-RS (retrieve), STOW-RS (store)
Study UIDDICOM Study Instance UID — globally unique identifier for a imaging study
ModalityType of imaging equipment (CT, MR, US, CR, DX, etc.)
WorklistRadiologist queue of studies awaiting reporting
Prelim reportPreliminary interpretation by on-call radiologist; not yet finalized
Final reportSigned, clinically authoritative radiology report
AmendmentCorrection to a final report; creates a new version
Viewer launchSecure handoff to an imaging viewer application with patient/study context
QIDO-RSQuery based on ID for DICOM Objects (RESTful search)
WADO-RSWeb Access to DICOM Objects (RESTful retrieval)
Critical findingUrgent finding on imaging requiring immediate clinical notification