Insights

EHR Data Migration: A Complete Guide for Healthcare Teams

Author
Bartosz Michalak
Published
April 30, 2026
Last update
April 30, 2026

Table of Contents

EXCLUSIVE LAUNCH
AI Implementation in Healthcare Masterclass
Start the course

Key Takeaways

  1. EHR data migration is rarely a one-time data move; legacy systems hide custom fields, undocumented workflows, and clinical dependencies that surface only during cutover.
  2. The migration architecture decision (big-bang, phased, parallel run) determines compliance risk, downtime exposure, and clinical disruption far more than the toolchain.
  3. PHI protections during migration are not just encryption at rest; they include access logs, BAA chain of custody, and audit trails for every record that crosses the wire.
  4. A bidirectional Epic-to-modern-stack migration runs 16-28 weeks in production, with reconciliation and validation consuming 30-40% of total timeline, not feature work.
  5. Momentum has migrated clinical data across Epic, Cerner, and Athena into FHIR-native platforms with zero unplanned downtime, using HealthStack and SMART-on-FHIR patterns built for healthcare from day one.

Is Your HealthTech Product Built for Success in Digital Health?

Download the Playbook

EHR data migration sits in a category most data migration playbooks don't cover. The data is regulated under HIPAA, every record references a patient who could be in clinical care during the cutover, and the source system is rarely well-documented. The teams that ship migrations on time treat the move as a clinical operations project that happens to involve a database, not a database project that happens to touch clinical workflows.

This guide covers four things missing from most EHR migration resources: how to scope the migration before writing any code, how to choose an architecture that matches clinical risk tolerance, where migrations break in production, and what realistic timelines look like for the major EHR vendors. The audience is engineering leads, healthcare CTOs, and compliance officers planning a migration off Epic, Oracle Health (Cerner), athenahealth, or a legacy on-prem system into a modern FHIR-native stack.

For broader context on EHR systems and how integration architecture differs from migration, see our guide to EHR integration and custom vs. off-the-shelf EHR analysis.

Why EHR Data Migration Fails Before It Starts

Most migration projects miss their dates because the assessment phase produced an incomplete picture of the source system. Legacy EHRs accumulate decades of custom fields, locally-defined value sets, and clinician workarounds that never made it into formal documentation. The schema you can read in the database is rarely the schema clinicians actually use.

Three categories of hidden complexity appear in nearly every migration. The first is custom fields layered on top of standard EHR objects, often added by a specific specialty department and now load-bearing for a clinical workflow nobody mapped. The second is reference data drift, where local code systems for diagnoses, allergies, or order sets diverged from standards like SNOMED or LOINC. The third is bidirectional integrations the source EHR holds with other clinical systems (lab, imaging, pharmacy), each of which has to be re-pointed at cutover.

Migration Assessment: What to Inventory Before Touching Data

Workload inventory. List every clinical and operational workflow that touches the EHR. For each workflow, identify the data objects involved, the systems involved upstream and downstream, and the user roles touching it. Workflows you missed are the ones that break first.

PHI data mapping. Catalog every field containing PHI, including free-text notes which often contain MRNs and identifiers in body copy that won't show up in a column-level scan. Our breakdown of what counts as PHI under HIPAA covers the cases teams routinely miss.

Standards gap analysis. For every clinical data type, map the source representation against the target. FHIR R4 is the most common target, but legacy fields often need transformation logic to fit FHIR resources cleanly. The FHIR and HL7 foundation guide covers what production-grade FHIR implementations look like.

Integration map. Every system connected to the source EHR needs a cutover plan. Lab interfaces, imaging gateways, pharmacy systems, billing, and patient portals each have distinct re-pointing requirements. See our HL7 standards guide for context.

Compliance scope. Document the BAAs in place, who has access during migration, where data resides at each stage, and what audit logging the regulator expects. The HIPAA compliance guide for HealthTech CTOs walks through the controls migration projects routinely under-scope.

Three Migration Architectures and When Each Fits

Big-Bang Cutover

Source system goes read-only on Friday evening, data moves over the weekend, target system goes live Monday morning. This is the cheapest pattern by raw engineering hours and the highest-risk pattern by clinical exposure. Big-bang only works for small datasets (typically under 5M records) with low transaction volume. Specialty practices and ambulatory clinics sometimes fit; acute care almost never does.

Phased Migration by Domain

Migrate one clinical domain at a time: scheduling first, then encounters, then orders, then notes. Each domain runs through assessment, build, validate, and cutover independently. Phased migration extends project timeline (6-18 months for enterprise systems) but compresses risk per cutover.

Parallel Run with Dual-Write

The target system runs alongside the source for weeks or months, with both receiving every clinical write through a synchronization layer. This is the most expensive pattern up front and the lowest-risk pattern in production. For acute care or any operation that cannot tolerate even an hour of degraded service, parallel run is often the only defensible option.

PHI Protections Throughout the Migration

Five protections matter most. Encryption in transit and at rest across every hop, including temporary storage during transformation. Access controls and least-privilege for migration engineers, auditable per record. Audit logging for every read and write the migration touches. BAAs with every vendor in the data path before the first byte moves. De-identification or tokenization for non-production validation environments.

For HIPAA-compliant cloud infrastructure, our HealthStack Terraform modules provide encryption, logging, and IAM patterns pre-built for healthcare. The SMART-on-FHIR implementation guide with AWS HealthLake shows the target-state architecture most modern migrations land in.

Zero-Downtime Patterns for Clinical Systems

Change data capture (CDC) streams writes from the source EHR to the target in near real-time. Works well for transactional data; adds complexity for free-text clinical notes.

Dual-write through an integration layer routes every write to both systems simultaneously. More invasive but gives immediate consistency between source and target.

Read cutover before write cutover lets the target system serve all reads while the source still owns writes. Produces the smoothest cutover and the longest project duration.

Validation, Reconciliation, and Rollback

Real validation is a four-layer process: row-level reconciliation (every source record has a target record with matching identifiers), field-level reconciliation (critical fields match exactly), workflow validation (clinical users execute representative workflows), and statistical validation (aggregate metrics match within tolerance).

Document rollback conditions, technical steps, and the data consistency state both systems will be in afterward. Most healthcare migrations preserve rollback capability for 30-90 days post-cutover.

Timeline and Cost by Migration Type

Small ambulatory practice (under 50K patients): 12-20 weeks, $150K-$400K for engineering and integration work.

Mid-size multi-specialty group (50K-500K patients): 6-12 months. Engineering costs typically $400K-$1.2M.

Enterprise health system (over 500K patients, acute care): 12-24 months. Costs scale to $1.5M-$5M for engineering.

For teams running a migration on AWS, our HealthStack guide covers the cost optimization and compliance setup that drive the largest variance in cloud spend.

Working With Momentum

Momentum builds and migrates EHR data infrastructure for healthcare products across Epic, Cerner, athenahealth, and legacy on-prem systems. Our team has run zero-downtime parallel-run migrations into FHIR-native platforms, written integration layers that make dual-write reliable, and validated reconciliation at the field level for clinical operations that cannot tolerate data drift. Our EHR integration services include migration planning, execution, and post-migration optimization.

Frequently Asked Questions

Is FHIR R4 a viable target for migrating off legacy EHRs?
For most clinical data types, yes. Gaps remain in scheduling, billing, and a few specialty data types, where HL7 v2 or custom extensions still bridge the gap. Plan for a hybrid target architecture.
How do we handle legacy custom fields that don't map to FHIR resources?
FHIR Extensions are the official mechanism, but the better pattern is to consolidate custom fields into structured representations during migration, which reduces extension count and forces a clean conversation with clinicians about which fields are still load-bearing.
Can we migrate EHR data without taking the source system down?
Yes, with a parallel-run architecture and either CDC or dual-write. Expect 30-50% longer timeline and 40-60% more cost than a phased approach, in exchange for near-zero clinical disruption.
What about HIPAA during the migration itself?
The migration pipeline is in HIPAA scope from the moment data leaves the source EHR until it lands and is validated in the target. BAAs with every vendor, encryption at every hop, audit logs for every record.
How long does an Epic-to-modern-stack migration actually take?
A read-only migration into a target FHIR data warehouse runs 12-20 weeks. A bidirectional production migration runs 16-28 weeks for ambulatory and 12-24 months for acute care.
Should we use a middleware vendor or build the migration ourselves?
Middleware accelerates initial coverage and is the right call for time-bound projects with broad EHR coverage requirements. The middle path, building on an open-source FHIR foundation like HealthLake or HAPI FHIR, captures most of the speed without the per-transaction pricing.

Written by Bartosz Michalak

Director of Engineering
He drives healthcare open-source development at the company, translating strategic vision into practical solutions. With hands-on experience in EHR integrations, FHIR standards, and wearable data ecosystems, he builds bridges between healthcare systems and emerging technologies.

See related articles

Plan your EHR data migration with engineers who've shipped them

Let's Create the Future of Health Together

Momentum's engineering team has migrated production clinical data across Epic, Cerner, and athenahealth without unplanned clinical downtime. We'll scope the assessment, design the architecture, and run the cutover with you.

Looking for a partner who not only understands your challenges but anticipates your future needs? Get in touch, and let’s build something extraordinary in the world of digital health.

Newsletter

Bartosz Michalak