Skip to main content

Radiology Service — Testing Strategy

Status: populated Owner: TBD Last updated: 2026-04-18 Companion: Service Template · 03 platform-services · 02 DDD


1. Coverage Targets​

LayerTarget
Unit≥ 80% statement coverage
IntegrationAll use cases covered
ContractAll REST endpoints (Pact); all events (schema)
E2EStudy view, report sign, viewer launch

2. Mandatory Tests​

Test fileCoverage
test/integration/tenant-isolation.spec.tsCross-tenant study/report access blocked
test/integration/outbox.spec.tsDomain events written and published
test/integration/inbox.spec.tsclinical.orders.placed processed idempotently

3. Unit Test Scenarios​

ModuleScenarios
ImagingStudyStateMachineAll valid/invalid transitions
RadiologyReportStateMachinePrelim → final → amended; no direct prelim → amended
ViewerLaunchTokenSignerToken generation, expiry, signature validation
PacsQidoClientTimeout handling, retry logic, error mapping
CriticalFindingDetectorFlag set on report with criticalFindingFlag=true

4. Integration Test Scenarios​

ScenarioDescription
Order → study registrationConsume clinical.orders.placed; assert ImagingStudyRef created
QIDO-RS study syncMock PACS endpoint; assert study metadata updated
Report sign → FHIR publishSign report; assert FHIR DiagnosticReport created via outbox
Critical finding flowReport with critical flag; assert diag.radiology.finding.critical published
Viewer launch ABACMock ABAC denial; assert 403 returned and audit event logged
PACS unavailableQIDO-RS 503; assert graceful degradation, study stays in registered
Amendment chainFinal → amend → new final; assert prior = superseded

5. Contract Tests​

ContractType
GET /v1/radiology/studiesPact provider
POST /v1/radiology/studies/:id/viewer-launchPact provider
diag.radiology.report.signed schemaJSON schema — patient-chart-service consumer
diag.radiology.finding.critical schemaJSON schema — communication-service consumer
GET /fhir/R4/ImagingStudyFHIR conformance

6. E2E Scenarios​

ScenarioPriority
Clinician views imaging study and report in chartP0
Radiologist signs report and chart updatesP0
Clinician launches imaging viewerP0
Critical finding triggers visible notificationP1
Report amendment shows updated versionP2