Welcome to omopHeor
If you are reading this, you are likely familiar with the Observational Medical Outcomes Partnership (OMOP) Common Data Model (CDM) and the OHDSI ecosystem. You know how to define cohorts, run incidence rate analyses, and perhaps perform population-level effect estimation.
omopHeor bridges the gap between the OMOP world and Health Economics and Outcomes Research (HEOR). This guide will help translate the concepts you already know into the framework of Cost-Effectiveness Analysis (CEA).
What is HEOR and CEA?
When a new drug or intervention enters the market, regulatory bodies (like the FDA or EMA) care about safety and efficacy. However, healthcare payers (governments, insurance companies, Health Technology Assessment (HTA) bodies like NICE in the UK) ask a different question: “Is this new treatment worth the extra money?”
Cost-Effectiveness Analysis (CEA) is the formal mathematical process used to answer that question. It compares the relative costs and outcomes (effects) of different courses of action.
The Key Metrics: ICER and QALY
To compare apples to apples across different diseases, health economists use standardized metrics:
- QALY (Quality-Adjusted Life-Year): A measure of disease burden, including both the quality and the quantity of life lived. One QALY equates to one year in perfect health.
- ICER (Incremental Cost-Effectiveness Ratio): The core output of a CEA. It represents the additional cost per additional unit of health gained (usually per QALY).
If a new drug costs $50,000 more than the standard of care but provides 1 additional QALY, the ICER is $50,000/QALY. Payers have a “Willingness-to-Pay” (WTP) threshold (e.g., $100,000/QALY). If the ICER is below the threshold, the drug is considered cost-effective.
The Rosetta Stone: OMOP to HEOR
How do we build these economic models using observational data in the OMOP CDM? We map OHDSI concepts to HEOR concepts.
| OMOP / OHDSI Concept | HEOR / CEA Concept | omopHeor Stage | Package Responsible |
|---|---|---|---|
| Target Cohort (e.g., new users of Drug A) | Treatment Arm (The new intervention being evaluated) | Stage 1 |
CohortEconomics (init()) |
| Comparator Cohort (e.g., new users of Drug B) | Standard of Care Arm (The baseline intervention) | Stage 1 |
CohortEconomics (init()) |
| Demographics & Covariates (Age, sex, comorbidities) | Patient Characteristics & Confounders | Stage 2 & 3 |
CohortEconomics
(summarise_baseline(), fit_ps()) |
| Care Encounters & Prescriptions (Visits, drugs, procedures) | Healthcare Resource Utilization (HCRU) | Stage 2 |
CohortUtilisation
(addVisits(), addPrescriptions(),
addProcedures()) |
| COST Table (Total paid, charge, allowed) | Direct Medical Costs & Tariffs | Stage 2 & 4 |
CohortCosts (addCosts()) /
CohortEconomics (extract_hcru()) |
| Outcome Cohorts (e.g., stroke, disease progression) | Health States / Clinical Events | Stage 4 |
CohortEconomics
(compile_trajectories()) |
| Longitudinal Transitions (Markov model matrices) | State-Transition Simulation | Stage 5 |
CohortEconomics
(simulate_economics()) |
| Incremental Costs & Effects (PSA iterations) | Decision Analysis (ICER, CEAC, NMB) | Stage 6 |
CohortEconomics (run_cea(),
plot_ceac()) |
The omopHeor 6-Stage Pipeline
To get from raw OMOP data to a finalized ICER and decision-analytic plots, omopHeor enforces a strict 6-stage pipeline:
1. Cohort Generation (init())
You define your target_cohort,
comparator_cohort, and outcome_cohort using
standard OHDSI tools (like Atlas, Capr, or CohortConstructor) and
instantiate them in the database.
2. Descriptive Baseline & HCRU Characterization
(summarise_baseline(), extract_hcru())
omopHeor profiles the cohorts, extracting demographics and
calculating unadjusted care utilization (hospitalizations, outpatient
visits) and direct medical costs by directly querying the OMOP
COST table.
3. Causal Propensity Score (PS) Adjustment (fit_ps(),
adjust_ps(), assess_balance())
Observational data is biased. Patients prescribed the new expensive
drug might be sicker (or healthier) than those on the standard of care.
omopHeor uses high-dimensional regularized logistic regression (via
Cyclops) to calculate Propensity Scores and match/weight
the cohorts, creating a pseudo-randomized population.
4. Trajectory Compilation & State-Cost Extraction
(compile_trajectories())
Patient timelines are sliced into discrete time cycles (e.g., months). omopHeor tracks how patients transition between different health states (e.g., from “Healthy” to “Outcome Event” to “Dead”) and extracts the specific costs accrued while in those states.
Next Steps
- The omopHeor Ecosystem & Modular Suite: Overview of the 3 standalone packages and architecture.
- Cohort Utilization & Cost Enrichment: Deep dive into the 3-layer in-database cohort enrichers.
-
HCRU Extraction
Logic: Technical rules for OMOP
COSTtable linkage and zero-fill fallbacks.