Radiology Service — Testing Strategy
Status: populated Owner: TBD Last updated: 2026-04-18 Companion: Service Template · 03 platform-services · 02 DDD
1. Coverage Targets
| Layer | Target |
|---|---|
| Unit | ≥ 80% statement coverage |
| Integration | All use cases covered |
| Contract | All REST endpoints (Pact); all events (schema) |
| E2E | Study view, report sign, viewer launch |
2. Mandatory Tests
| Test file | Coverage |
|---|---|
test/integration/tenant-isolation.spec.ts | Cross-tenant study/report access blocked |
test/integration/outbox.spec.ts | Domain events written and published |
test/integration/inbox.spec.ts | clinical.orders.placed processed idempotently |
3. Unit Test Scenarios
| Module | Scenarios |
|---|---|
ImagingStudyStateMachine | All valid/invalid transitions |
RadiologyReportStateMachine | Prelim → final → amended; no direct prelim → amended |
ViewerLaunchTokenSigner | Token generation, expiry, signature validation |
PacsQidoClient | Timeout handling, retry logic, error mapping |
CriticalFindingDetector | Flag set on report with criticalFindingFlag=true |
4. Integration Test Scenarios
| Scenario | Description |
|---|---|
| Order → study registration | Consume clinical.orders.placed; assert ImagingStudyRef created |
| QIDO-RS study sync | Mock PACS endpoint; assert study metadata updated |
| Report sign → FHIR publish | Sign report; assert FHIR DiagnosticReport created via outbox |
| Critical finding flow | Report with critical flag; assert diag.radiology.finding.critical published |
| Viewer launch ABAC | Mock ABAC denial; assert 403 returned and audit event logged |
| PACS unavailable | QIDO-RS 503; assert graceful degradation, study stays in registered |
| Amendment chain | Final → amend → new final; assert prior = superseded |
5. Contract Tests
| Contract | Type |
|---|---|
GET /v1/radiology/studies | Pact provider |
POST /v1/radiology/studies/:id/viewer-launch | Pact provider |
diag.radiology.report.signed schema | JSON schema — patient-chart-service consumer |
diag.radiology.finding.critical schema | JSON schema — communication-service consumer |
GET /fhir/R4/ImagingStudy | FHIR conformance |
6. E2E Scenarios
| Scenario | Priority |
|---|---|
| Clinician views imaging study and report in chart | P0 |
| Radiologist signs report and chart updates | P0 |
| Clinician launches imaging viewer | P0 |
| Critical finding triggers visible notification | P1 |
| Report amendment shows updated version | P2 |