Skip to main content

Registration Service — Migration Plan

Status: populated Owner: TBD Last updated: 2026-04-17 Companion: Service Template

1. Migration Scenarios

Scenario A: Greenfield deployment (no prior system)

  1. Run DB migrations (drizzle-kit migrate) — creates all tables and indexes.
  2. Seed kin relationship type catalog via admin API or seed script.
  3. Optionally load standard extension schemas (employment, marital, appearance) via POST /v1/extension-schemas.
  4. Configure tenant required-fields via REGISTRATION_REQUIRED_FIELDS_JSON env.
  5. Begin patient registration via REST or FHIR API.

Scenario B: Migration from legacy "Ghasi EHR" flat patient tables

StepAction
1Export legacy patients to CSV / JSON with all identifiers
2Map legacy fields to PatientName, PatientIdentifier, PatientTelecom schema
3Assign MRNs (if not already present) or carry forward existing MRNs as system: legacy-mrn identifiers
4Run MPI pre-check on legacy dataset to identify existing duplicates before import
5Import via bulk-insert migration script (not public API) with idempotency keys
6Verify row counts, identifier uniqueness constraints
7Run MPI calibration pass to flag candidate duplicates for review

Scenario C: Interoperating with existing HMIS (HL7 ADT feed)

  1. Configure interop-service with ADT feed endpoint and credential.
  2. Deploy HL7 ADT adapter mapping (A01/A04/A08/A40/A03).
  3. Enable idempotency on ADT ingest (deduplication by message control ID).
  4. Run shadow mode for 1 week: compare ADT-imported patients vs existing patients.
  5. Flip live when reconciliation is satisfactory.

2. Rollback Plan

PhaseRollback action
Schema migrationDrizzle rollback script (down migrations for each step)
Data importTruncate migrated rows (import uses separate import_batch_id column for tracking)
ADT feedDisable adapter in interop-service; stop ADT ingest

3. Phased Delivery Alignment

PhaseFeatures
ACore REST/FHIR Patient + Encounter; MPI; search; merge; events; licensing
BVital status/deceased; provisional patient; newborn linkage
CInterop hardening (HL7 ADT, PIX/PDQ); FHIR conformance; offline-first alignment
DMerge governance; extensions; analytics boundary with population-health-service
ENational enterprise identity: alternate IDs, unidentified intake, portrait, extensible metadata, family graph