The OMOP Common Data Model is the OHDSI community’s standard for observational research — one schema, one vocabulary, so a study written once runs against any conformant dataset. Because commvita’s record is already coded in OMOP’s own standard vocabularies (SNOMED CT, dm+d, ICD-10, OPCS-4, LOINC) and modelled on FHIR R4, an OMOP output is a tractable, mostly-mechanical build — not a research programme.
The expensive part of most OMOP ETLs is mapping messy source codes to standard concepts. commvita starts most of the way there — and the research governance is already built.
The record is coded in the NHS Terminology Service vocabularies — and SNOMED CT, RxNorm/dm+d and LOINC are OMOP standard vocabularies, so much maps 1:1. The single costliest step of an OMOP ETL is largely done.
commvita’s internal model is FHIR R4 with a live integration layer (EPR Hub). There are well-trodden FHIR→OMOP ETL patterns to lean on, rather than reverse-engineering a bespoke schema.
Clinical Studies (secure-data-environment, 3-tier anonymisation, immutable extract ledger), Federated Query, an OHDSI network node and open phenotypes (OMOP + AQL) already exist — the governance an OMOP output needs is in place.
| Source vocabulary | OMOP target domain | Standard concept mapping | Completeness |
|---|---|---|---|
| SNOMED CT (UK) | Condition / Observation | source_concept_id → concept_id | ● 94.7% |
| dm+d | Drug exposure (RxNorm) | dm+d → RxNorm | ● 92.0% |
| ICD-10 | Condition | ICD-10 → SNOMED | ● 94.9% |
| LOINC | Measurement | LOINC (standard) | ● 89.6% |
| OPCS-4 | Procedure | OPCS-4 → SNOMED | ● 85.5% |
Six steps turn the coded record into a conformant CDM. The genuine effort is in the vocabulary and the OMOP-only structures — not the commvita side.
person, observation_period, visit_occurrence, condition_occurrence, drug_exposure, procedure_occurrence, measurement, observation, death (+ the results schema for cohorts).
SNOMED, RxNorm/dm+d, LOINC, ICD-10→SNOMED maps — a few GB, with UMLS/licence terms accepted. This is what makes concept_id mapping real rather than illustrative.
Every source code to its standard concept and the correct CDM table by its OMOP domain — a SNOMED code can be a condition, an observation or a measurement. Non-standard→standard maps included.
Person from demographics, visits derived from encounters, drug_exposure from prescriptions (dm+d→RxNorm), measurement from observations (LOINC). FHIR→OMOP patterns apply.
observation_period, visit_occurrence/visit_detail and drug_era/condition_era have no 1:1 source — they are computed. This is where most of the real work sits.
Date-shift / k-anonymise for disclosure (existing 3-tier anonymisation), then Achilles + DQD so the dataset is defensible for a researcher or an ethics committee.
One file per CDM table for a defined cohort, issued through the existing extract ledger with a DQD summary. Simplest, fastest, and fits the secure-data-environment model already in place.
A live CDM database behind WebAPI / ATLAS for self-service cohort building and participation in OHDSI network studies — data stays at source, only aggregate results move.
| Deliverable | Scope | Effort | Why |
|---|---|---|---|
| MVP OMOP export | Real ETL for person / observation_period / visit_occurrence / condition_occurrence / drug_exposure / measurement for a defined cohort → Parquet via the extract ledger + a DQD summary | ● ~2 weeks | Data already coded in standard vocabularies; SDE / extract-ledger governance already built |
| Production CDM v5.4 | Full table coverage, complete Athena vocabulary + correct domain routing, era derivation, DQD-passing, incremental refresh | ● ~2–3 months | Vocabulary completeness, domain routing and era logic are the genuine effort |
| ATLAS self-service | Live CDM database + WebAPI / ATLAS, OHDSI network-study participation | ● incremental | Mostly infrastructure + governance on top of a conformant CDM |
| Capability | Module | Route | Status |
|---|---|---|---|
| Source coding (SNOMED/dm+d/ICD-10/OPCS/LOINC) | NHS Terminology Service · SNOMED Crosswalk | /terminology-service /snomed-crosswalk | ● Live |
| FHIR R4 model + integration | EPR Hub · Data Fabric | /epr-hub /data-fabric | ● Live |
| OMOP transformation console (vocab map, DQD, network studies) | OMOP Transformation | /omop-cdm | ● Demonstrated |
| Federated analytics (data stays at source) | Federated Query · OHDSI node | /federated-query | ● Live |
| Cohort building | Cohort Discovery · Open Phenotypes | /cohort-discovery /population-health | ● Live · ● node |
| Research governance (SDE, anonymisation, extract ledger) | Clinical Studies | /clinical-studies | ● Live |
| Populated CDM output (ETL → Parquet / live CDM) | — build item | MVP scoped above | ● Not yet built |