Radiology Service — Migration Plan
Status: populated Owner: TBD Last updated: 2026-04-18 Companion: Service Template · 03 platform-services · 02 DDD
1. Migration Scenarios
| Scenario | Description |
|---|---|
| New deployment (no prior PACS integration) | Greenfield; register PACS endpoint and begin study sync |
| Existing PACS with report archive | Historical studies imported via FHIR bulk import |
Existing radiology-pacs module (pre-service) | Schema migration from legacy module |
2. Phase 1 — PACS Endpoint Registration
- Gather DICOMweb endpoint URLs and auth credentials from PACS admin.
- Register via
POST /v1/radiology/pacs-endpoints(one per facility/node). - Run connectivity test via
GET /v1/radiology/pacs-endpoints/{id}/test. - Confirm QIDO-RS returns studies for test patient.
3. Phase 2 — Historical Study Import
For tenants with existing PACS archives:
- Export
ImagingStudyFHIR resources from PACS (if FHIR-capable) or construct from DICOM study metadata. - Ingest via FHIR
$importthrough interop-service. - Tag imported records with
meta.tag = "historical". - Import historical radiology reports as
DiagnosticReportFHIR resources.
4. Phase 3 — Go-Live Cutover
- Configure HL7 v2 connectors in interop-service for RIS notifications (if applicable).
- Validate ORM/ORU round-trip for new orders.
- Run parallel mode for 1 week: new studies visible in both legacy UI and platform.
- Cutover: redirect clinicians to platform viewer launch workflow.
- Monitor critical finding delivery for first 48 hours post-cutover.
5. Pre-Service Module Migration (radiology-pacs legacy)
-- Migrate pacs_endpoints
INSERT INTO radiology.pacs_endpoints
SELECT id, tenant_id, node_id, name, qido_url, wado_url, stow_url,
auth_mode, config_json AS auth_config, NULL AS facility_id,
TRUE AS active, created_at, created_at AS updated_at
FROM radiology_pacs.pacs_endpoints;
-- Migrate imaging_studies
INSERT INTO radiology.imaging_studies
SELECT id, tenant_id, patient_id, encounter_id, order_id, NULL,
modality, started_at, 'registered' AS status, pacs_study_uid,
pacs_endpoint_id, NULL, NULL, NULL, payload_json, 1, created_at, updated_at
FROM radiology_pacs.imaging_studies;