FHIR to OMOP FHIR IG, published by HL7 International / Biomedical Research and Regulation. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-omop-ig/ and changes regularly. See the Directory of published versions
| Official URL: http://hl7.org/fhir/uv/omop/StructureMap/SimpleVitalSignsMap | Version: 1.0.0 | ||||
| Standards status: Informative | Maturity Level: 2 | Computable Name: SimpleVitalSignsMap | |||
This mapping maps simple FHIR Vital Signs instances that are considered measurements to OMOP Measurement Table objects.
This mapping handles all of the standard Vital Signs resource profiles defined in the FHIR Core specification, except for Blood Pressure. They all result in an OMOP Measurement table entry with a value_as_quantity for the vital sign value.
Language: en
/// url = 'http://hl7.org/fhir/uv/omop/StructureMap/SimpleVitalSignsMap' /// name = 'SimpleVitalSignsMap' /// title = 'Mapping Vital Ssigns resource to Measurement OMOP Domain' /// status = 'draft' uses "http://hl7.org/fhir/StructureDefinition/vitalsigns" alias VitalSigns as source uses "http://hl7.org/fhir/uv/omop/StructureDefinition/Measurement" alias MeasureTable as target group Measures(source src : VitalSigns, target tgt : MeasureTable) { src where ('vital-signs').supersetOf(VitalSigns.category.coding.code) then { src.code as s -> tgt then { s.coding as sc -> tgt then { sc.system where ('http://loinc.org') then { sc.code as a where ((a in ('85354-9' | '8480-6' | '8462-4' | '8478-0')).not()) -> tgt.measurement_type_concept_id = translate(a, 'http://hl7.org/fhir/uv/omop/ConceptMap/VitalSignsCodes', 'code') then { sc.display as display -> tgt.measurement_concept_id = display; src.effective : dateTime as edt -> tgt.measurement_datetime = edt, tgt.measurement_date = cast(edt, 'date'); src.effective : Period as s -> tgt then { s.start as eps -> tgt.measurement_datetime = cast(eps, 'dateTime'), tgt.measurement_date = cast(eps, 'date'); }; src.issued as s where (src.issued.toDate != src.effectiveDateTime) -> tgt.measurement_source_value = cast(s, 'string'); src.value : Quantity as s -> tgt then { s.value as a -> tgt.value_as_number = a; s.unit as b -> tgt.unit_concept_id = b; }; src.value : CodeableConcept as s -> tgt then { s.coding as sc -> tgt then { sc.code as code -> tgt.value_as_concept_id = code; }; }; src.value : string as b -> tgt.value_source_value = b; src.interpretation as c -> tgt.value_as_concept_id = c; src.note as d -> tgt.measurement_source_value = d; }; }; }; }; } "OnlyMeasures"; }