FHIR IG analytics| Package | hl7.fhir.uv.omop |
| Resource Type | StructureMap |
| Id | StructureMap-BloodPressureVitalSignsMap.json |
| FHIR Version | R5 |
| Source | https://build.fhir.org/ig/HL7/fhir-omop-ig/StructureMap-BloodPressureVitalSignsMap.html |
| URL | http://hl7.org/fhir/uv/omop/StructureMap/BloodPressureVitalSignsMap |
| Version | 2.0.0-ballot |
| Status | active |
| Date | 2026-08-06T19:12:13+00:00 |
| Name | BloodPressureVitalSignsMap |
| Title | Mapping Blood Pressure Vital Signs resource to Measurement OMOP Domain |
| Realm | uv |
| Authority | hl7 |
| Description | This mapping maps blood pressure FHIR Vital Signs instances that are considered measurements to OMOP Measurement Table objects. |
No resources found
No resources found
Note: links and images are rebased to the (stated) source
Generated Narrative: StructureMap BloodPressureVitalSignsMap
/// url = 'http://hl7.org/fhir/uv/omop/StructureMap/BloodPressureVitalSignsMap' /// name = 'BloodPressureVitalSignsMap' /// title = 'Mapping Blood Pressure Vital Signs resource to Measurement OMOP Domain' /// status = 'active' /// description = 'This mapping maps blood pressure FHIR Vital Signs instances that are considered measurements to OMOP Measurement Table objects.' uses "http://hl7.org/fhir/StructureDefinition/Observation" alias BloodPressure as source uses "http://hl7.org/fhir/uv/omop/StructureDefinition/RecordSet" alias BPRecord as target uses "http://hl7.org/fhir/uv/omop/StructureDefinition/Measurement" alias Measurement as target // make the bundle group BloodPressure(source src : BloodPressure, target recordSet : BPRecord) { src where (src.category.coding.code contains 'vital-signs') then { src.code as s -> recordSet then { s.coding as sc -> recordSet then { sc.code as a where (a in ('85354-9' | '8478-0')) -> recordSet then { src as parent -> recordSet.measurement as measurement then parentTable(parent, measurement) "bpMeasurement"; src.component as comp -> recordSet then { comp where (comp.code.coding.code = '8480-6') -> recordSet.measurement as measurement then Systolic(src, comp, measurement) "systolicMeasurement"; comp where (comp.code.coding.code = '8462-4') -> recordSet.measurement as measurement then Diastolic(src, comp, measurement) "diastolicMeasurement"; }; }; }; }; } "bpComponentEntries"; } group parentTable(source src : BloodPressure, target tgt : Measurement) { src.id as id -> tgt.measurement_id = id; src.code as s -> tgt then { s.coding as sc -> tgt then { sc.code as a -> tgt.measurement_type_concept_id = translate(a, 'http://hl7.org/fhir/uv/omop/ConceptMap/BloodPressureCodes', 'code'); sc.display as display -> tgt.measurement_concept_id = display; }; }; src.effective : dateTime as edt -> tgt.measurement_datetime = edt, tgt.measurement_date = (edt.toString().substring(0, 10)); src.effective : instant as einst -> tgt.measurement_datetime = cast(einst, 'dateTime'), tgt.measurement_date = (einst.toString().substring(0, 10)); src.effective : Period as s -> tgt then { s.start as eps -> tgt.measurement_datetime = cast(eps, 'dateTime'), tgt.measurement_date = (eps.toString().substring(0, 10)); } "MeasurementDate"; } // make the systolic measurement table group Systolic(source parent : BloodPressure, source comp, target tgt : Measurement) { parent.effective : dateTime as edt -> tgt.measurement_datetime = edt, tgt.measurement_date = (edt.toString().substring(0, 10)); parent.effective : instant as einst -> tgt.measurement_datetime = cast(einst, 'dateTime'), tgt.measurement_date = (einst.toString().substring(0, 10)); parent.effective : Period as s -> tgt then { s.start as eps -> tgt.measurement_datetime = cast(eps, 'dateTime'), tgt.measurement_date = (eps.toString().substring(0, 10)); } "MeasurementDate"; comp.value : Quantity as s -> tgt then { s.value as a -> tgt.value_as_number = cast(a, 'decimal'); s.unit as b -> tgt.unit_concept_id = b; }; } // make the diastolic measurement table group Diastolic(source parent : BloodPressure, source comp, target tgt : Measurement) { parent.effective : dateTime as edt -> tgt.measurement_datetime = edt, tgt.measurement_date = (edt.toString().substring(0, 10)); parent.effective : instant as einst -> tgt.measurement_datetime = cast(einst, 'dateTime'), tgt.measurement_date = (einst.toString().substring(0, 10)); parent.effective : Period as s -> tgt then { s.start as eps -> tgt.measurement_datetime = cast(eps, 'dateTime'), tgt.measurement_date = (eps.toString().substring(0, 10)); } "MeasurementDate"; comp.value : Quantity as s -> tgt then { s.value as a -> tgt.value_as_number = cast(a, 'decimal'), tgt.value_source_value = cast(a, 'string'); s.unit as b -> tgt.unit_concept_id, tgt.unit_source_value = b; }; }
{
"resourceType": "StructureMap",
"id": "BloodPressureVitalSignsMap",
"text": {
"status": "generated",
"div": "<!-- snip (see above) -->"
},
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
"valueCode": "brr"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
"valueInteger": 2,
"_valueInteger": {
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
"valueCanonical": "http://hl7.org/fhir/uv/omop/ImplementationGuide/hl7.fhir.uv.omop"
}
]
}
},
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
"valueCode": "trial-use",
"_valueCode": {
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
"valueCanonical": "http://hl7.org/fhir/uv/omop/ImplementationGuide/hl7.fhir.uv.omop"
}
]
}
}
],
"url": "http://hl7.org/fhir/uv/omop/StructureMap/BloodPressureVitalSignsMap",
"identifier": [
{
"system": "urn:ietf:rfc:3986",
"value": "urn:oid:2.16.840.1.113883.4.642.40.77.43.2"
}
],
"version": "2.0.0-ballot",
"name": "BloodPressureVitalSignsMap",
"title": "Mapping Blood Pressure Vital Signs resource to Measurement OMOP Domain",
"status": "active",
"date": "2026-08-06T19:12:13+00:00",
"publisher": "HL7 International / Biomedical Research and Regulation",
"contact": [
{
"name": "HL7 International / Biomedical Research and Regulation",
"telecom": [
{
"system": "url",
"value": "http://www.hl7.org/Special/committees/rcrim"
}
]
}
],
"description": "This mapping maps blood pressure FHIR Vital Signs instances that are considered measurements to OMOP Measurement Table objects.",
"jurisdiction": [
{
"coding": [
{
"system": "http://unstats.un.org/unsd/methods/m49/m49.htm",
"code": "001",
"display": "World"
}
]
}
],
"structure": [
{
"url": "http://hl7.org/fhir/StructureDefinition/Observation",
"mode": "source",
"alias": "BloodPressure"
},
{
"url": "http://hl7.org/fhir/uv/omop/StructureDefinition/RecordSet",
"mode": "target",
"alias": "BPRecord"
},
{
"url": "http://hl7.org/fhir/uv/omop/StructureDefinition/Measurement",
"mode": "target",
"alias": "Measurement"
}
],
"group": [
{
"name": "BloodPressure",
"documentation": "make the bundle",
"input": [
{
"name": "src",
"type": "BloodPressure",
"mode": "source"
},
{
"name": "recordSet",
"type": "BPRecord",
"mode": "target"
}
],
"rule": [
{
"name": "bpComponentEntries",
"source": [
{
"context": "src",
"condition": "src.category.coding.code contains 'vital-signs'"
}
],
"rule": [
{
"name": "code",
"source": [
{
"context": "src",
"element": "code",
"variable": "s"
}
],
"target": [
{
"context": "recordSet"
}
],
"rule": [
{
"name": "coding",
"source": [
{
"context": "s",
"element": "coding",
"variable": "sc"
}
],
"target": [
{
"context": "recordSet"
}
],
"rule": [
{
"name": "code",
"source": [
{
"context": "sc",
"element": "code",
"variable": "a",
"condition": "a in ('85354-9' | '8478-0')"
}
],
"target": [
{
"context": "recordSet"
}
],
"rule": [
{
"name": "bpMeasurement",
"source": [
{
"context": "src",
"variable": "parent"
}
],
"target": [
{
"context": "recordSet",
"element": "measurement",
"variable": "measurement"
}
],
"dependent": [
{
"name": "parentTable",
"parameter": [
{
"valueId": "parent"
},
{
"valueId": "measurement"
}
]
}
]
},
{
"name": "component",
"source": [
{
"context": "src",
"element": "component",
"variable": "comp"
}
],
"target": [
{
"context": "recordSet"
}
],
"rule": [
{
"name": "systolicMeasurement",
"source": [
{
"context": "comp",
"condition": "comp.code.coding.code = '8480-6'"
}
],
"target": [
{
"context": "recordSet",
"element": "measurement",
"variable": "measurement"
}
],
"dependent": [
{
"name": "Systolic",
"parameter": [
{
"valueId": "src"
},
{
"valueId": "comp"
},
{
"valueId": "measurement"
}
]
}
]
},
{
"name": "diastolicMeasurement",
"source": [
{
"context": "comp",
"condition": "comp.code.coding.code = '8462-4'"
}
],
"target": [
{
"context": "recordSet",
"element": "measurement",
"variable": "measurement"
}
],
"dependent": [
{
"name": "Diastolic",
"parameter": [
{
"valueId": "src"
},
{
"valueId": "comp"
},
{
"valueId": "measurement"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name": "parentTable",
"input": [
{
"name": "src",
"type": "BloodPressure",
"mode": "source"
},
{
"name": "tgt",
"type": "Measurement",
"mode": "target"
}
],
"rule": [
{
"name": "id",
"source": [
{
"context": "src",
"element": "id",
"variable": "id"
}
],
"target": [
{
"context": "tgt",
"element": "measurement_id",
"transform": "copy",
"parameter": [
{
"valueId": "id"
}
]
}
]
},
{
"name": "code",
"source": [
{
"context": "src",
"element": "code",
"variable": "s"
}
],
"target": [
{
"context": "tgt"
}
],
"rule": [
{
"name": "coding",
"source": [
{
"context": "s",
"element": "coding",
"variable": "sc"
}
],
"target": [
{
"context": "tgt"
}
],
"rule": [
{
"name": "code",
"source": [
{
"context": "sc",
"element": "code",
"variable": "a"
}
],
"target": [
{
"context": "tgt",
"element": "measurement_type_concept_id",
"transform": "translate",
"parameter": [
{
"valueId": "a"
},
{
"valueString": "http://hl7.org/fhir/uv/omop/ConceptMap/BloodPressureCodes"
},
{
"valueString": "code"
}
]
}
]
},
{
"name": "display",
"source": [
{
"context": "sc",
"element": "display",
"variable": "display"
}
],
"target": [
{
"context": "tgt",
"element": "measurement_concept_id",
"transform": "copy",
"parameter": [
{
"valueId": "display"
}
]
}
]
}
]
}
]
},
{
"name": "effectiveDateTime",
"source": [
{
"context": "src",
"type": "dateTime",
"element": "effective",
"variable": "edt"
}
],
"target": [
{
"context": "tgt",
"element": "measurement_datetime",
"transform": "copy",
"parameter": [
{
"valueId": "edt"
}
]
},
{
"context": "tgt",
"element": "measurement_date",
"transform": "evaluate",
"parameter": [
{
"valueString": "edt.toString().substring(0, 10)"
}
]
}
]
},
{
"name": "effectiveInstant",
"source": [
{
"context": "src",
"type": "instant",
"element": "effective",
"variable": "einst"
}
],
"target": [
{
"context": "tgt",
"element": "measurement_datetime",
"transform": "cast",
"parameter": [
{
"valueId": "einst"
},
{
"valueString": "dateTime"
}
]
},
{
"context": "tgt",
"element": "measurement_date",
"transform": "evaluate",
"parameter": [
{
"valueString": "einst.toString().substring(0, 10)"
}
]
}
]
},
{
"name": "MeasurementDate",
"source": [
{
"context": "src",
"type": "Period",
"element": "effective",
"variable": "s"
}
],
"target": [
{
"context": "tgt"
}
],
"rule": [
{
"name": "start",
"source": [
{
"context": "s",
"element": "start",
"variable": "eps"
}
],
"target": [
{
"context": "tgt",
"element": "measurement_datetime",
"transform": "cast",
"parameter": [
{
"valueId": "eps"
},
{
"valueString": "dateTime"
}
]
},
{
"context": "tgt",
"element": "measurement_date",
"transform": "evaluate",
"parameter": [
{
"valueString": "eps.toString().substring(0, 10)"
}
]
}
]
}
]
}
]
},
{
"name": "Systolic",
"documentation": "make the systolic measurement table",
"input": [
{
"name": "parent",
"type": "BloodPressure",
"mode": "source"
},
{
"name": "comp",
"mode": "source"
},
{
"name": "tgt",
"type": "Measurement",
"mode": "target"
}
],
"rule": [
{
"name": "effectiveDateTime",
"source": [
{
"context": "parent",
"type": "dateTime",
"element": "effective",
"variable": "edt"
}
],
"target": [
{
"context": "tgt",
"element": "measurement_datetime",
"transform": "copy",
"parameter": [
{
"valueId": "edt"
}
]
},
{
"context": "tgt",
"element": "measurement_date",
"transform": "evaluate",
"parameter": [
{
"valueString": "edt.toString().substring(0, 10)"
}
]
}
]
},
{
"name": "effectiveInstant",
"source": [
{
"context": "parent",
"type": "instant",
"element": "effective",
"variable": "einst"
}
],
"target": [
{
"context": "tgt",
"element": "measurement_datetime",
"transform": "cast",
"parameter": [
{
"valueId": "einst"
},
{
"valueString": "dateTime"
}
]
},
{
"context": "tgt",
"element": "measurement_date",
"transform": "evaluate",
"parameter": [
{
"valueString": "einst.toString().substring(0, 10)"
}
]
}
]
},
{
"name": "MeasurementDate",
"source": [
{
"context": "parent",
"type": "Period",
"element": "effective",
"variable": "s"
}
],
"target": [
{
"context": "tgt"
}
],
"rule": [
{
"name": "start",
"source": [
{
"context": "s",
"element": "start",
"variable": "eps"
}
],
"target": [
{
"context": "tgt",
"element": "measurement_datetime",
"transform": "cast",
"parameter": [
{
"valueId": "eps"
},
{
"valueString": "dateTime"
}
]
},
{
"context": "tgt",
"element": "measurement_date",
"transform": "evaluate",
"parameter": [
{
"valueString": "eps.toString().substring(0, 10)"
}
]
}
]
}
]
},
{
"name": "valueQuantity",
"source": [
{
"context": "comp",
"type": "Quantity",
"element": "value",
"variable": "s"
}
],
"target": [
{
"context": "tgt"
}
],
"rule": [
{
"name": "value",
"source": [
{
"context": "s",
"element": "value",
"variable": "a"
}
],
"target": [
{
"context": "tgt",
"element": "value_as_number",
"transform": "cast",
"parameter": [
{
"valueId": "a"
},
{
"valueString": "decimal"
}
]
}
]
},
{
"name": "unit",
"source": [
{
"context": "s",
"element": "unit",
"variable": "b"
}
],
"target": [
{
"context": "tgt",
"element": "unit_concept_id",
"transform": "copy",
"parameter": [
{
"valueId": "b"
}
]
}
]
}
]
}
]
},
{
"name": "Diastolic",
"documentation": "make the diastolic measurement table",
"input": [
{
"name": "parent",
"type": "BloodPressure",
"mode": "source"
},
{
"name": "comp",
"mode": "source"
},
{
"name": "tgt",
"type": "Measurement",
"mode": "target"
}
],
"rule": [
{
"name": "effectiveDateTime",
"source": [
{
"context": "parent",
"type": "dateTime",
"element": "effective",
"variable": "edt"
}
],
"target": [
{
"context": "tgt",
"element": "measurement_datetime",
"transform": "copy",
"parameter": [
{
"valueId": "edt"
}
]
},
{
"context": "tgt",
"element": "measurement_date",
"transform": "evaluate",
"parameter": [
{
"valueString": "edt.toString().substring(0, 10)"
}
]
}
]
},
{
"name": "effectiveInstant",
"source": [
{
"context": "parent",
"type": "instant",
"element": "effective",
"variable": "einst"
}
],
"target": [
{
"context": "tgt",
"element": "measurement_datetime",
"transform": "cast",
"parameter": [
{
"valueId": "einst"
},
{
"valueString": "dateTime"
}
]
},
{
"context": "tgt",
"element": "measurement_date",
"transform": "evaluate",
"parameter": [
{
"valueString": "einst.toString().substring(0, 10)"
}
]
}
]
},
{
"name": "MeasurementDate",
"source": [
{
"context": "parent",
"type": "Period",
"element": "effective",
"variable": "s"
}
],
"target": [
{
"context": "tgt"
}
],
"rule": [
{
"name": "start",
"source": [
{
"context": "s",
"element": "start",
"variable": "eps"
}
],
"target": [
{
"context": "tgt",
"element": "measurement_datetime",
"transform": "cast",
"parameter": [
{
"valueId": "eps"
},
{
"valueString": "dateTime"
}
]
},
{
"context": "tgt",
"element": "measurement_date",
"transform": "evaluate",
"parameter": [
{
"valueString": "eps.toString().substring(0, 10)"
}
]
}
]
}
]
},
{
"name": "valueQuantity",
"source": [
{
"context": "comp",
"type": "Quantity",
"element": "value",
"variable": "s"
}
],
"target": [
{
"context": "tgt"
}
],
"rule": [
{
"name": "value",
"source": [
{
"context": "s",
"element": "value",
"variable": "a"
}
],
"target": [
{
"context": "tgt",
"element": "value_as_number",
"transform": "cast",
"parameter": [
{
"valueId": "a"
},
{
"valueString": "decimal"
}
]
},
{
"context": "tgt",
"element": "value_source_value",
"transform": "cast",
"parameter": [
{
"valueId": "a"
},
{
"valueString": "string"
}
]
}
]
},
{
"name": "unit",
"source": [
{
"context": "s",
"element": "unit",
"variable": "b"
}
],
"target": [
{
"context": "tgt",
"element": "unit_concept_id"
},
{
"context": "tgt",
"element": "unit_source_value",
"transform": "copy",
"parameter": [
{
"valueId": "b"
}
]
}
]
}
]
}
]
}
]
}