Skip to main content

Radiology Service — Migration Plan

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


1. Migration Scenarios

ScenarioDescription
New deployment (no prior PACS integration)Greenfield; register PACS endpoint and begin study sync
Existing PACS with report archiveHistorical studies imported via FHIR bulk import
Existing radiology-pacs module (pre-service)Schema migration from legacy module

2. Phase 1 — PACS Endpoint Registration

  1. Gather DICOMweb endpoint URLs and auth credentials from PACS admin.
  2. Register via POST /v1/radiology/pacs-endpoints (one per facility/node).
  3. Run connectivity test via GET /v1/radiology/pacs-endpoints/{id}/test.
  4. Confirm QIDO-RS returns studies for test patient.

3. Phase 2 — Historical Study Import

For tenants with existing PACS archives:

  1. Export ImagingStudy FHIR resources from PACS (if FHIR-capable) or construct from DICOM study metadata.
  2. Ingest via FHIR $import through interop-service.
  3. Tag imported records with meta.tag = "historical".
  4. Import historical radiology reports as DiagnosticReport FHIR resources.

4. Phase 3 — Go-Live Cutover

  1. Configure HL7 v2 connectors in interop-service for RIS notifications (if applicable).
  2. Validate ORM/ORU round-trip for new orders.
  3. Run parallel mode for 1 week: new studies visible in both legacy UI and platform.
  4. Cutover: redirect clinicians to platform viewer launch workflow.
  5. 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;