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