Case study · Healthcare data

Turning a hospital network's EHR data into a governed real-world evidence platform

Several hospitals, several EHR configurations, and a research team waiting months for every dataset. The goal was one standardised, quality-checked research platform on OMOP, fed from FHIR, that could answer questions locally and join federated studies without moving patient data.

Case studyHealthcare · Hospital networkSumanta Mukhopadhyay9 min read
#healthcare#omop#fhir#data
CASE STUDY · CASE STUDY · HEALTHCARE DATA28 Oct 2026 · 00:45 GST
At a glance
SectorHealthcare · Hospital network
My rolePrincipal data architect
EngagementArchitecture, build and hand-off
ScopeIngestion, OMOP CDM, vocabularies, data quality, analytics
What changed
  • One standardised research dataset across sites instead of per-request extracts
  • Data quality measured and published every load, with blocking checks
  • Cohort definitions shared and re-run across sites without moving patient data
  • A repeatable path to join federated network studies
FHIR R4Bulk Data exportOMOP CDM v5.4OHDSI vocabulariesData Quality DashboardATLASSparkLakehouseKubernetes

Anonymised composite. Client names, identifying details and confidential figures are withheld; public facts are cited in the references.

The situation

A hospital network wanted to use its clinical data for research, quality improvement and, eventually, AI. In practice every question became a bespoke extract: a request, a queue, a data engineer writing site-specific SQL against each EHR's reporting database, and weeks of reconciliation when the sites disagreed. The same diagnosis was coded differently between sites, lab units varied, and nobody could say how complete the data was.

The network had already invested in FHIR APIs for interoperability. The question was whether those APIs could become the feed for a research platform, rather than building yet another set of point-to-point extracts.

What had to be true

  • One model for analysis, so a cohort defined once runs everywhere.
  • Standard vocabularies, so "type 2 diabetes" means the same concept set at every site.
  • Measured quality, visible to researchers before they trust a result.
  • Privacy by architecture: identifiable data stays inside each site's boundary, and collaboration happens by sharing code and aggregates.
  • Something the internal team could run after hand-off, without a consultancy on retainer.

Architecture

The design used FHIR for extraction and OMOP CDM v5.4 for analysis, following the direction of the HL7 FHIR-to-OMOP implementation guide, developed by the Vulcan accelerator with the OHDSI community1.

Sources
EHR site AFHIR R4EHR site BFHIR R4Lab and imagingHL7 v2 / FHIRRegistry filesCSV
Ingest
Bulk Data export$export, NDJSONRaw zoneimmutable, per loadDe-identificationkeys stay on site
Transform
FHIR → OMOP mappingversioned, testedVocabulary mappingsource → standard conceptsEra and visit logicderived tables
Assure
Data Quality Dashboardblocking checksCharacterisationAchilles-style profilesLoad sign-offdata steward
Use
ATLAScohorts, characterisationR / PythonHADES studiesFederated studiesaggregates onlyML featuresgoverned access
Layered architecture: FHIR in, OMOP out, with quality gates before anything reaches researchers.

The data flow, end to end

  1. ExportScheduled Bulk Data $export per site, written as NDJSON to a raw zone
  2. StageParse and validate resources; quarantine malformed records with reasons
  3. MapFHIR resources to OMOP tables; local codes to standard concepts
  4. CheckRun data quality checks; fail the load on blocking thresholds
  5. PublishSwap to a new versioned CDM schema; record lineage and vocabulary version
  6. AnalyseCohorts and studies run against the published version only
Each load is versioned, so any study result can be traced to the exact data and vocabulary release it used.

Bulk export was chosen over per-patient API calls because it's designed for population-level extraction, returning newline-delimited JSON files asynchronously2. The detailed pipeline patterns are in FHIR bulk data export pipelines and FHIR to OMOP architecture.

The hard part: meaning, not pipes

The pipeline engineering took less time than agreeing what the data meant. OMOP's standardised vocabularies map source codes to standard concepts in defined domains, which is what makes cross-site analysis possible5. Getting there required:

  • A mapping backlog ranked by how often each unmapped local code appeared, so effort went where the data was.
  • Clinician review for ambiguous mappings, recorded with reasons, rather than an engineer's best guess.
  • Unit normalisation rules for laboratory measurements, agreed with lab leads.
  • A policy for what to do with codes that can't be mapped: keep the source value, flag the concept as unmapped, and report the rate.

More on this in clinical terminologies and OMOP vocabularies.

Quality as a release gate

OHDSI's Data Quality Dashboard runs a large library of checks across conformance, completeness and plausibility4. The key decision was to treat a subset as blocking: if they fail, the new version doesn't publish and researchers keep using the previous one. The rest are published alongside the data, so researchers can judge fitness for their question. See OMOP data quality checks.

Researchers trust a platform that tells them what is wrong with it. Published quality results build more confidence than any feature list.

How a federated study runs

Study lead
  1. Define cohorts in ATLAS
  2. Package study code
  3. Meta-analyse results
Each site
  1. Review package
  2. Run locally on OMOP
  3. Approve aggregate output
Shared
  1. Code repository
  2. Aggregate results only
  3. Published evidence
Code travels to the data; only reviewed aggregates travel back.

This is the OHDSI network model described in The Book of OHDSI3, and it is what let the network collaborate without centralising identifiable records. More in federated health analytics.

Diagram of the journey from patient-level data in source systems to reliable evidence, listing the types of observational data and the types of evidence desired
The journey from patient-level data to reliable evidence that the platform was built to support. Source: The Book of OHDSI · CC0 1.0

How the engagement ran

Phase 1Discover
  • Source system inventory
  • Top research questions
  • Governance and privacy model
Phase 2Pilot site
  • Bulk export and staging
  • Core OMOP tables
  • First quality baseline
Phase 3Harden
  • Vocabulary backlog
  • Blocking checks
  • Versioned releases
Phase 4Scale and hand off
  • Further sites
  • Runbooks and training
  • First federated study
Phased delivery: one site end to end before adding the next.

Key decisions and trade-offs

DecisionAlternativeWhy
FHIR Bulk Data as the feedDirect database extractsReuses interoperability investment; vendor-neutral; less coupling to EHR schemas
OMOP for analysisQuery FHIR directlyStandard vocabularies and the OHDSI tool and study ecosystem
Versioned CDM releasesUpdate in placeReproducible studies and safe rollback
Blocking quality checksReport-only qualityStops bad loads reaching researchers
One pilot site firstAll sites in parallelMapping lessons learned once, reused everywhere

What I'd do again, and differently

Again: start from the research questions, not the tables, and make quality visible from day one. Differently: bring the vocabulary and clinical review effort forward. It's always the critical path, and it's the part that can't be bought.

If you're planning something similar, the healthcare data architecture page describes how I run these engagements, or analyse your challenge and bring the result to a call.

References
  1. 1
    FHIR to OMOP FHIR IGHL7 International (Vulcan / OHDSI)
  2. 2
    Bulk Data Access IGHL7 International
  3. 3
  4. 4
  5. 5
FAQ

Common questions

Why convert FHIR data to OMOP?

FHIR is designed for exchanging data between systems; OMOP is designed for analysing it consistently across institutions. Converting FHIR to OMOP lets the same analysis code, cohort definitions and quality checks run at every site.

How long does an OMOP implementation take?

It depends on the number of source systems, how well coded the data is, and governance. The vocabulary mapping and data quality work usually take longer than the pipeline engineering, so plan them as first-class workstreams.

Do sites need to share patient data to collaborate?

No. In the OHDSI federated model, each site keeps its data and runs shared analysis code locally, sharing only aggregate results.

Keep reading

Related

Open to advisory, fractional CTO & select builds

Let's talk about what you're building.

The fastest route is a free 30-minute call. Prefer to write? Send a message and I'll reply personally within two business days.

Start a conversation

How would you like to reach me?

Book a 30-min callFastest. Pick any open slot on my calendar.→ Write in GmailOpens a pre-filled draft in your browser.→ Use my email appOutlook, Apple Mail or your default client.→

I reply personally within two business days. Time zones from the Americas and Europe to the Middle East and Asia-Pacific.