Profiles & ValueSets
FHIR StructureDefinitions and ValueSets that gate conversion into OMOP tables. Domain routing: a FHIR resource maps to an OMOP table iff it validates against the corresponding profile — and the profile's code binding is the discriminator.
28
Profiles (StructureDefinition)
28
ViewDefinitions (Stage 1 flatteners)
8
ValueSets (routing keys)
4
Routing pairs (1 → N tables)
Profiles by FHIR resource → OMOP table
AllergyIntolerance
FHIR AllergyIntolerance that can be converted to OMOP `observation`. OMOP has no dedicated allergy table — allergies live in the observation table with allergy-specific SNOMED concepts. clinicalStatus…
Condition
FHIR Condition that can be converted to OMOP `condition_occurrence`. Excludes entered-in-error; requires a subject, onset, and a code in the OMOP Condition domain.
Coverage
FHIR Coverage that can be converted to OMOP `payer_plan_period`. status must be active; requires a beneficiary, a period.start, and at least one payor. No code/domain routing — payer_plan_period is pu…
Device
FHIR Device (joined with DeviceUseStatement) that can be converted to OMOP `device_exposure`. The Device.type provides the device kind; DeviceUseStatement records the clinical event (patient, timing).…
DiagnosticReport routes to 4
A DiagnosticReport whose LOINC code routes to the OMOP `measurement` table (lab panels, e.g. 24323-8 Comprehensive metabolic panel). status must be finalized; code is required and is the routing key. …
A DiagnosticReport that carries free-text content (conclusion or presentedForm attachments) and produces a row in the OMOP `note` table to preserve the unstructured clinical narrative. Unlike the meas…
A DiagnosticReport whose LOINC code routes to the OMOP `observation` table — primarily clinical document types (history and physical, discharge summary, consultation notes) where the LOINC code repres…
A DiagnosticReport whose LOINC code routes to the OMOP `procedure_occurrence` table — primarily imaging studies (radiology, nuclear medicine), pathology procedures, and clinical assessments whose LOIN…
Encounter
FHIR Encounter that can be converted to OMOP `visit_occurrence`. Requires a finalized or active encounter (finished | in-progress | onleave), a subject, a period.start, and a class coding that routes …
Immunization
A FHIR Immunization that can be converted to an OMOP `drug_exposure` row of type 32827 (EHR administration record) / equivalent. Routing key: `vaccineCode` must be in the OMOP Drug domain (CVX / RxNor…
Location routes to 2
Subset of FHIR Location that participates in the secondary Location → care_site pattern (used by fhir-to-omop-demo). Requires `physicalType` (the routing discriminator — distinguishes building/wing/wa…
FHIR Location that can be converted to OMOP `location`. Requires a name and a structured address. The location table is shared with Patient.address — both populate the same table, and rows should be d…
Medication
Vocabulary-linkage profile. The FHIR Medication resource is not directly converted to a drug_exposure row; instead, when an event resource (MedicationRequest / Dispense / Administration / Statement) c…
MedicationAdministration
A FHIR MedicationAdministration that can be converted to an OMOP `drug_exposure` row of type 38000179 (Physician administered drug). Routing key: `medicationCodeableConcept` must be in the OMOP Drug d…
MedicationDispense
A FHIR MedicationDispense that can be converted to an OMOP `drug_exposure` row of type 38000175 (Prescription dispensed in pharmacy). Routing key: `medicationCodeableConcept` must be in the OMOP Drug …
MedicationRequest
A FHIR MedicationRequest that can be converted to an OMOP `drug_exposure` row of type 38000177 (Prescription written). Routing key: `medicationCodeableConcept` must be in the OMOP Drug domain (RxNorm …
MedicationStatement
A FHIR MedicationStatement that can be converted to an OMOP `drug_exposure` row of type 44787730 (Patient Self-Reported Medication). Routing key: `medicationCodeableConcept` must be in the OMOP Drug d…
Observation routes to 2
An Observation whose code routes to the OMOP `measurement` table. Validate against this profile first; if it passes, write to measurement. Routing is enforced by the `code` binding to OmopMeasurementC…
An Observation whose code routes to the OMOP `observation` table (qualitative findings, social history, etc.). Same FHIR resource as OmopObservationMeasurement — the difference is only the `code` bind…
Organization
FHIR Organization that can be converted to OMOP `care_site`. Requires a name (becomes care_site_name) and at least one identifier (becomes care_site_source_value). Organization.type, when present, map…
Patient routes to 4
Subset of FHIR Patient where deceased[x] is present as a dateTime. The profile is on Patient (not a separate resource) — a Patient instance produces a death row only when deceasedDateTime is set. dece…
Subset of FHIR Patient where at least one Patient.address is present with usable structured fields. The address is normalized into one OMOP `location` row whose location_id is linked back from person.…
Patient that contributes an `observation_period` row. The window itself is **derived from event data** — earliest/latest event_date across all OMOP clinical tables for the person — not from any single…
FHIR Patient that can be converted to OMOP `person`. Requires birthDate (used for year/month/day_of_birth), gender (mapped to gender_concept_id), and at least one identifier (used as person_source_val…
Practitioner
FHIR Practitioner that can be converted to OMOP `provider`. Requires at least one identifier (used as NPI / provider_source_value) and at least one name (used as provider_name). Practitioner has no `c…
PractitionerRole
PractitionerRole that enriches an existing OMOP `provider` row (created from the referenced Practitioner). Does not create a new provider row — instead it contributes specialty_concept_id, specialty_s…
Procedure
FHIR Procedure that can be converted to OMOP `procedure_occurrence`. Status must be completed or in-progress; requires a subject, a performed[x] date, and a code that resolves to the OMOP Procedure do…
Specimen
FHIR Specimen that can be converted to OMOP `specimen`. Requires a subject, a type in the OMOP Specimen domain, and a collection time (collected[x] or receivedTime).
ViewDefinitions — Stage 1 of ELT pipeline (SQL on FHIR)
| ID | Resource | Flat target | Columns |
|---|---|---|---|
| omop-allergyintolerance-observation | AllergyIntolerance | observation | 15 |
| omop-condition-condition-occurrence | Condition | condition_occurrence | 16 |
| omop-coverage-payer-plan-period | Coverage | payer_plan_period | 11 |
| omop-device-device-exposure | Device | device_exposure | 11 |
| omop-diagnosticreport-measurement | DiagnosticReport | measurement | 11 |
| omop-diagnosticreport-note | DiagnosticReport | note | 13 |
| omop-diagnosticreport-observation | DiagnosticReport | observation | 12 |
| omop-diagnosticreport-procedure-occurrence | DiagnosticReport | procedure_occurrence | 13 |
| omop-encounter-visit-occurrence | Encounter | visit_occurrence | 18 |
| omop-immunization-drug-exposure | Immunization | drug_exposure | 19 |
| omop-location-care-site | Location | care_site | 2 |
| omop-location-location | Location | location | 12 |
| omop-medication-drug-exposure | Medication | drug_exposure | 6 |
| omop-medicationadministration-drug-exposure | MedicationAdministration | drug_exposure | 18 |
| omop-medicationdispense-drug-exposure | MedicationDispense | drug_exposure | 18 |
| omop-medicationrequest-drug-exposure | MedicationRequest | drug_exposure | 21 |
| omop-medicationstatement-drug-exposure | MedicationStatement | drug_exposure | 20 |
| omop-observation-measurement | Observation | measurement | 19 |
| omop-observation-observation | Observation | observation | 19 |
| omop-organization-care-site | Organization | care_site | 6 |
| omop-patient-death | Patient | death | 3 |
| omop-patient-location | Patient | location | 10 |
| omop-patient-observation-period | Patient | observation_period | 2 |
| omop-patient-person | Patient | person | 15 |
| omop-practitioner-provider | Practitioner | provider | 10 |
| omop-practitionerrole-provider | PractitionerRole | provider | 4 |
| omop-procedure-procedure-occurrence | Procedure | procedure_occurrence | 16 |
| omop-specimen-specimen | Specimen | specimen | 16 |
ValueSets (one per OMOP domain)
| ID | OMOP Domain | Source systems | Sample codes |
|---|---|---|---|
| omop-condition-codes | Condition | http://snomed.info/sct, http://hl7.org/fhir/sid/icd-10-cm, http://hl7.org/fhir/sid/icd-9-cm | 13 |
| omop-device-codes | Device | http://snomed.info/sct | 6 |
| omop-drug-codes | Drug | http://www.nlm.nih.gov/research/umls/rxnorm, http://hl7.org/fhir/sid/ndc, http://hl7.org/fhir/sid/cvx | 6 |
| omop-measurement-codes | Measurement | http://loinc.org, http://snomed.info/sct | 7 |
| omop-observation-codes | Observation | http://snomed.info/sct, http://loinc.org | 6 |
| omop-procedure-codes | Procedure | http://snomed.info/sct, http://www.ama-assn.org/go/cpt, http://hl7.org/fhir/sid/icd-10-pcs | 12 |
| omop-specimen-codes | Specimen | http://snomed.info/sct | 7 |
| omop-visit-codes | Visit | http://terminology.hl7.org/CodeSystem/v3-ActCode, https://www.cms.gov/Medicare/Coding/place-of-service-codes | 9 |