
Smart on FHIR: What It Is and How It Works in Practice
Smart on FHIR guide for healthtech engineers. Learn the OAuth 2.0 launch model, scope syntax, backend services, and US regulatory requirements.
Practical data migration planning guide for healthcare teams. Scope, mapping, compliance, validation, cutover and rollback decisions explained end to end.

Healthcare data migration planning sits under two hard constraints that generic migrations don't carry, HIPAA transmission security under 45 CFR 164.312(e)(1) and the hospital medical-record retention floor in 42 CFR 482.24, which means the team has to protect ePHI in motion and keep records available for care and compliance [HIPAA technical safeguards] [hospital medical record services]. Clinicians still need uninterrupted access to history during and after the move, so the practical engineering problem is deciding what gets migrated as usable data, what goes to a read-only archive, and how you'll prove the result is correct. We work from the same premise for every healthtech migration, the planning decisions matter more than the extract jobs.
A strong plan starts with scope, retention, identity, mapping, compliance, validation, and cutover, in that order. The split between migrate and archive is the decision that determines cost, trust, and risk, because moving everything drags old quality problems into the new system, while moving too little leaves clinicians blind.
The first failure is scope drift. Teams try to move everything, then discover they have mixed active clinical records, historical records, and dead weight into one workstream. That is how a migration turns into a compliance problem before any file transfer begins.
The decision that matters is the split between migrate and archive. If you get that wrong, the target system carries stale data and unresolved quality defects. If you get it right, clinicians keep usable history, auditors keep traceability, and the new platform stays workable.
Healthcare adds a second constraint that ordinary enterprise moves do not face. The transmission-security requirement cited above shapes exports, transfers, staging hosts, and analyst access, while hospitals participating in Medicare must keep medical records available under 42 CFR 482.24. That is why retention, validation, and cutover belong in one design discussion, not three separate checklists.
A senior architect should force the team to answer one question for every data domain: does this belong in the operational system, the archive, or neither? If the answer is unclear, scope is still fictional.
The other mistake is treating planning as documentation instead of decision-making. A serious data migration assessment and validation effort produces explicit calls on retention, identity matching, and clinical usability. For healthcare programs, that work has to be grounded in the kind of integration and continuity thinking reflected in Ekipa's healthcare engineering work, because the migration only succeeds when compliance, clinical access, and system design are aligned from the start.
Scope has to be signed off, not improvised. Name the systems, sites, and data domains up front, then assign a clinical owner, a compliance owner, and an engineering owner to every material decision. If a domain has no owner, it will get renegotiated during cutover, when the cost of disagreement is highest.
The kickoff artifact should list the source systems, the target system, the archive system, and every site included in the first release. It should also state whether the migration covers ambulatory, inpatient, or both, and whether the team is moving active patients only or full historical populations. That document becomes the basis for sign-off, rollback, and audit evidence.
The definition of done should be written before any extract runs. For a healthcare migration, that means an acceptance gate with no unexplained critical-record discrepancies, documented handling for every exception, and proof that backup restoration works before production cutover. The exact gate can vary, but the rule does not. If a discrepancy matters clinically and nobody has signed off on the exception, the migration is not ready.
The hardest planning mistake is treating “complete” as a date instead of a condition.
Keep scope honest by forcing one question on every domain. Does it need to be operational in the new system, retained for reference, or kept only because law requires it? That question pushes the clinical team, compliance team, and IT team to agree early, where the decision belongs. It also sets up retention and identity work, because the answer changes how each record must be handled.
| Decision area | Clinical owner | Compliance owner | Engineering owner | Sign-off evidence |
|---|---|---|---|---|
| In-scope sites | Operations lead | Privacy or compliance lead | Program architect | Approved scope statement |
| In-scope data domains | Clinical product owner | Compliance lead | Data migration lead | Data domain inventory |
| Success criteria | Medical director | Compliance lead | QA lead | Acceptance criteria document |
| Cutover readiness | Clinical operations lead | Security or compliance lead | Technical lead | Go-live readiness review |
The migrate-versus-archive split belongs in this section because it defines ownership, retention, and done. HIPAA retention, FHIR validation, and cutover choice are one planning problem, and scope only holds when the team makes that call before discovery starts.
The project succeeds or fails here. Before anyone argues about FHIR resources, interface engines, or storage tiers, profile the source systems and inspect volumes, free text versus coded data, duplicates, broken references, and fields that only carry clinical meaning inside the legacy system. If you do not know what the source contains, the migration plan is guesswork.
Start with the inventory. Separate structured fields from notes, documents, images, and operational workflow data. A legacy EHR, billing platform, or practice management system often hides the issue, which is that some records are needed for active care, some are retained for legal reasons, and some remain only because the source system never offered a clean deletion path. Source discovery has to expose all of that, not just table names.
The migrate, archive, or retire decision should follow clinical use and legal retention, not database convenience. The table below gives a practical default pattern for healthcare teams.
| Data domain | Default disposition | Reason | Planning owner |
|---|---|---|---|
| Demographics | Migrate as structured data | Needed for identity, continuity, and reporting | Clinical operations and data migration lead |
| Problems | Migrate as structured data | Active care depends on longitudinal problem history | Clinical owner |
| Medications | Migrate as structured data | Supports prescribing, reconciliation, and medication safety | Pharmacy or clinical owner |
| Allergies | Migrate as structured data | Direct patient-safety impact | Clinical owner |
| Immunizations | Migrate as structured data if clinically relevant, otherwise archive | Often needed for care, school, or registry workflows | Clinical owner |
| Results | Migrate recent and clinically relevant results, archive older history | New care teams need recent lab and diagnostic context | Clinical owner and compliance lead |
| Notes and documents | Archive with links, migrate only selected active content | High volume, mixed clinical value, retention still matters | Clinical owner and records management |
| Images | Archive with traceable links unless actively used in care | Large objects are often better preserved outside the target EHR | Imaging or clinical owner |
| Billing history | Archive or retire based on legal and operational need | Needed for audit, finance, and disputes, not always for daily care | Finance and compliance |
| Audit logs | Keep accessible, usually outside the target operational system | Required for traceability and investigations | Security and compliance |
The default pattern is not the final pattern. A chronic-care clinic may need more historical lab results in the active chart, while a specialty practice may keep a broader archive but migrate only current medications and allergies. The point is to make each row a conscious decision, not a side effect of whatever the source export can produce.
Practical rule: if clinicians will not use a record in the new system, and retention law does not require active operational access, archive it instead of inflating the target EHR.
For operational source discovery, treat operational workflow data sources as part of the same inventory problem, because workflows often show where records are used, not just where they are stored. Once the split is decided, the extraction jobs should encode it directly through Ekipa's healthcare software extraction work: active domains extract as structured resources, archived domains extract once into the archive store with preserved links.
Identity and terminology mapping are one engineering chain. Treat them that way or the migration will fail in a way that looks clean on paper and unsafe in practice. Match the wrong patient, map a local value to the wrong code set, and the record can validate while still creating clinical risk. The job is to preserve traceability, quarantine ambiguity, and force human review wherever automation cannot make a safe call.
Start with deterministic patient matching. Keep source identifiers in a crosswalk table or another traceable field, quarantine ambiguous matches, and merge duplicates only after clinical review. The same person often appears across multiple systems with slightly different demographics, so a technically valid load can still create duplicate charts or cross-linked histories.
For target modeling, use the FHIR R4 resources that fit the data, such as Patient, Encounter, Observation, MedicationRequest, and AllergyIntolerance. The HL7 FHIR Validator and the $validate operation check structure and conformance against machine-readable rules, and the validator is the right place to catch bad resources early [HL7 FHIR validation]. Validation does not prove the record is clinically right. A resource can pass schema checks and still carry the wrong unit, the wrong patient, the wrong effective date, or the wrong reference.
Field-level mapping needs one owner per source domain and one approver for target meaning. Crosswalk local codes to SNOMED CT, LOINC, and RxNorm where possible. If a value cannot be mapped cleanly, assign a clear disposition, usually archive, local-only display, or clinical review queue. Never bury unmapped values in a generic text field and call the mapping complete.
A resource that validates cleanly can still be unsafe if the person, encounter, or date context is wrong.
For teams building FHIR-based targets, the right approach is evidence plus review. Validation output becomes engineering evidence, and clinicians confirm meaning, because the machine checks structure and the human checks care relevance. That split keeps technical correctness from being mistaken for clinical correctness.
Compliance belongs in the migration design, not in a separate binder. The HIPAA Security Rule points to the controls that matter here, administrative safeguards under 45 CFR 164.308 and de-identification under 45 CFR 164.514 for safe testing [45 CFR 164.308] [45 CFR 164.514].
Risk analysis under 45 CFR 164.308 belongs in the migration design review because the move creates new risks around staging, transfer endpoints, temporary storage, and vendor or analyst access. Contingency planning belongs there too. Backup, restoration, and rollback are part of the control set, not optional extras. No migration plan should move forward without a named owner for the risk analysis and a clear place where the contingency evidence lives.
The technical controls should be explicit. Use encrypted object storage for exports, TLS for transfer endpoints and APIs, restricted IAM scopes for migration jobs, and immutable audit logging for every record touched. The HHS de-identification guidance says transmission security and encryption decisions should follow the customer's risk analysis, not a default claim that the setup is “secure” [HHS de-identification guidance].
Any vendor that touches ePHI needs a business associate agreement. Any lower environment should use de-identified or synthetic data whenever possible. Teams that need a practical reference for what belongs in test and QA can use the guide to redacting sensitive content to separate safe fields from material that should stay out of lower environments. Ekipa's cloud-target planning for regulated workloads is documented in HIPAA compliance on AWS, which matters when the target system sits in the cloud.
The decision is not whether to “add security later.” It is whether the migration pipeline treats protected health information as governed data from the first export through final cutover. That includes audit trails, access controls, testing data, and vendor boundaries. If the migrate-versus-archive split is wrong, no control stack saves the project. Archived content can stay in a controlled legacy path, while migrated content gets the full security and audit treatment in the target environment.
| Control area | Design choice | Evidence owner | Proof artifact |
|---|---|---|---|
| Risk analysis | Migration-specific risk review | Security or compliance lead | Risk register |
| Transmission security | TLS and encrypted storage | Engineering lead | Configuration snapshots |
| Access control | Least-privilege IAM and role separation | Platform engineer | Access logs and policy export |
| Audit logging | Immutable logs of migration activity | Security and operations | Log retention and review records |
| Testing data | De-identified or synthetic datasets | QA lead and compliance | De-identification decision record |
| Vendor access | BAA in place | Legal or procurement owner | Executed agreement |
Cutover is a clinical-risk decision, not a calendar milestone. The choice between big bang, phased by site or module, and parallel running has to be made against downtime tolerance, staffing capacity, synchronization complexity, and rollback feasibility. If the clinical team can't absorb interruption, the plan should reflect that before anyone books a weekend.
| Approach | Downtime exposure | Staffing | Synchronization | Rollback feasibility |
|---|---|---|---|---|
| Big bang | Highest | Highest during cutover window | Lowest complexity during the move, highest risk at once | Hardest if problems appear after freeze |
| Phased by site or module | Moderate, controlled per wave | Sustained over a longer period | Moderate, because some data lives in old and new systems at once | Better, because scope is smaller per wave |
| Parallel running | Lowest user-facing downtime, but longest dual-operation period | Highest overall, because both environments need support | Highest complexity, because changes must stay aligned | Best in theory, but expensive to operate |
For most healthcare organizations, phased cutover is the more defensible choice because it limits blast radius and creates room for clinician review after each wave. That pattern works especially well when paired with the migrate-versus-archive split, since archived history can remain readable in the legacy or archive system while active data moves in stages. If the team chooses parallel running, it needs explicit ownership for transaction reconciliation and change capture, or the authoritative record will become unclear very quickly.
The cutover plan should specify a read-only window on the legacy system, downtime procedures for clinicians, queued orders and results, communication ownership, and rollback criteria that someone in authority can trigger. That authority has to be named in advance, not negotiated at 2 a.m. after a failed validation run. For healthcare teams integrating migration into a broader support model, Ekipa's implementation support work is the relevant internal reference point.
Practical rule: if rollback can't be executed without a debate, the plan isn't ready.
The operational question is simple, which workflows can keep operating, which must pause, and what becomes read-only during transition. Hospitals and clinics should map downtime tolerance by workflow, not just by application name, because scheduling, documentation, and results handling rarely fail on the same timeline.

Here's the version we'd put in front of a sponsor meeting. The value is in making ownership visible, because every migration decision needs one person who can say yes, one who can stop the work, and one who can prove the control worked.
| Decision | Owner | Input needed | Output |
|---|---|---|---|
| Define migration scope | Project sponsor | Current data inventory and business priorities | Approved scope statement |
| Select migration strategy | Technical lead | Legacy system analysis and risk assessment | Chosen strategy |
| Set budget and timeline | Finance manager | Vendor quotes and resource availability | Approved budget and project schedule |
| Assign data owners | Data governance lead | Data domain map and stakeholder list | Named owners per data domain |
| Establish data quality rules | Data analyst | Source data profiling results and compliance requirements | Validation rules and quality thresholds |
| Plan cutover and rollback | Operations manager | Downtime tolerance and contingency plan | Cutover checklist and rollback procedure |
| Communicate with end users | Change manager | User impact analysis and training needs | Communication plan and training schedule |
| Run test migration | QA engineer | Sample dataset and test environment | Test results and sign-off |
The validation gate list should stay visible on the same page: record-count reconciliation, field-level reconciliation, clinician sample review, FHIR validation, and audit-log review. For example, we'd plan eight outpatient clinics moving from an on-premise legacy EHR to a cloud EHR by migrating two years of encounters plus all active problems, medications, and allergies as structured data, placing older notes and scanned documents in a read-only archive linked from the new system, confirming state retention rules, and phasing cutover by clinic with clinician-led sample review and a defined read-only legacy period.
Healthcare data migration planning succeeds when the team treats migrate, archive, and retire as the core architecture decision, then proves identity, mapping, compliance, and cutover against that choice. The legal retention floor, HIPAA controls, FHIR validation, and downtime planning all hang off the same question, what must stay operational for clinicians, what must remain accessible for law and audit, and what can safely leave the active chart.
If you're planning a healthcare migration and want a team that can help shape the scope, validation, and cutover model, visit Ekipa AI and talk to us about the migration plan before the first extract runs.
How do you decide what data to migrate and what to archive?
Decide by clinical use first, then retention law, then system fit. Active problems, medications, allergies, and recent encounters usually belong in the new system, while older notes, scanned documents, and some audit history are often better kept in a linked archive.
What HIPAA rules matter most during a data migration?
The most relevant controls are the Security Rule's administrative safeguards in 45 CFR 164.308 and technical safeguards in 45 CFR 164.312, especially risk analysis, contingency planning, access control, audit logging, integrity, and transmission security [45 CFR 164.308] [45 CFR 164.312]. If the migration environment is cloud based, those controls still apply, just with different implementation choices.
Can we use production data in test environments?
Only if the data is appropriately de-identified or otherwise permitted under your risk policy and legal review. HHS de-identification guidance and 45 CFR 164.514 are the right references for deciding whether to strip identifiers, use a limited dataset, or switch to synthetic data [HHS de-identification guidance] [45 CFR 164.514].
What should validation include before cutover?
At minimum, include record-count reconciliation, field-level reconciliation, clinician sample review, and audit-log review. For FHIR targets, add structural validation with the FHIR Validator and $validate, but don't confuse technical validity with clinical correctness [HL7 FHIR validation].
Which cutover approach is safest for a healthcare migration?
Phased cutover is usually the safest operational choice because it reduces blast radius and gives the team room to validate each wave. Big bang is simpler on paper but harder to recover from, while parallel running lowers user downtime but raises synchronization and staffing demands.
How long should the legacy system stay read-only?
Keep it read-only for as long as clinicians, compliance, finance, and records management need access to historical information and audit evidence. The exact period depends on retention law, operational need, and the archive model, so legal and compliance have to confirm it for each jurisdiction.

Smart on FHIR guide for healthtech engineers. Learn the OAuth 2.0 launch model, scope syntax, backend services, and US regulatory requirements.

Explore the types of EHR systems by deployment model, care setting and scope. Compare integration options, trade-offs and selection tips for healthtech teams.

Compare Fhir vs. hl7 standards for healthtech integration. See how HL7 v2 and FHIR differ in use, mechanics, regulation, and real-world architecture.
Connect with our team to explore how AI expertise can transform your business.