-
Notifications
You must be signed in to change notification settings - Fork 9
Quick Start Guide
Measurements such as steps or heart rate are modeled using OMH schemas. These models can be used to represent instance of the measurement "over the wire" in JSON. The OMH schema can be transformed into FHIR
The following 9 OMH schemas used to represent instance of the measurement "over the wire" in JSON:
- blood glucose
- blood pressure [add property cuff position]
- body temperature
- body weight
- heart rate [resting]
- O2 saturation
- respiratory rate
- sleep duration [--> total sleep time ]
- step count [change datatype of property step_count to unit_value]
are composed of the of the OMH header element a body which contains the datapoint schema represents the body's properties. They are transformed into FHIR using a series of mapping steps to convert the sctructure and content into a corresponding FHIR Observation Profile.
Each OMH schema for a datapoint is composed of the 'header' and 'body, This table summarizes the mapping of the OMH header elements to the corresponding OMH to FHIR Observation Profile element. Each datapoint schema represents the body's properties and will be covered individually.
| OMH element | FHIR element |
|---|---|
| template profile | OMH to FHIR Observation Profile |
| header.id | Observation.identifier |
| header.creation_date_time | Observation.issued |
| header.schema_id | None |
| header.schema_id.namespace | None |
| header.schema_id.name | Observation.category,Observation.code ( see datapoint mapping table below ) |
| header.schema_id.version | None |
| header.acquisition_provenance | None |
| header.acquisition_provenance.source_name | Observation.device |
| header.acquisition_provenance.source_data_point_id | Observation.identifier |
| header.acquisition_provenance.source_creation_date_time | None |
| header.acquisition_provenance.modication_data_time | None |
| header.acquisition_provenance.modality | Observation.device.extension |
| header.user_id | Observation.subject |
| {: .grid} |
The detailed mapping for the OMH header can be found here...
Each Datapoint is represented by the body properties and this table summarizes of the OMH datapoint schema type as represented by the header.schema_id.name element to the corresponding FHIR Observation category and 'code' elements and default units for quantitative measures.
| header.schema_id.name | Observation.category.code | Observation.code.system | Observation.code.code | Observation.code.display | observation_value_quantity_unit(s) (list) |
|---|---|---|---|---|---|
| blood_glucose | laboratory | http://loinc.org | 2339-0 | Glucose Mass/volume in Blood | ['mg/dL', 'mmol/L'] |
| blood_pressure* | vital-signs | http://loinc.org | 85354-9 | Blood pressure panel with all children optional | None |
| body_temperature | vital-signs | http://loinc.org | 8310-5 | Body temperature | ['K','F','C'] |
| body_weight | vital-signs | http://loinc.org | 29463-7 | Body weight | ['kg', 'g', 'lb'] |
| heart_rate | vital-signs | http://loinc.org | 8867-4 | Heart rate | ['beats/min'] |
| oxygen_saturation | vital-signs | http://loinc.org | 59408-5 | Oxygen saturation in Arterial blood by Pulse oximetry | ['%'] |
| respiratory_rate | vital-signs | http://loinc.org | 9279-1 | Respiratory Rate | ['breaths/min'] |
| sleep_duration | physical-activity | http://snomed.info/id | 248263006 | Duration of sleep (observable entity) | ['sec', 'min', 'h'] |
| step_count | physical-activity | http://loinc.org | 55423-8 | Number of steps in unspecified time Pedometer | ['steps'] |
Data Point Component Mapping Table
Blood Pressure Datapoints has these additional properties that are represented by the FHIR Observation.component element in FHIR. This table summarizes these OMH datapoint schema properties and list the corresponding OMH propertied name in the Component Name column and its corresponding FHIR Observation component code and valuetype attributes. This table is used along with the OMH to FHIR concept mapping table to to populate the the FHIR Observation profile.
| Component Name | Component Code System | Component Code Code | Component Code Display | Component Value Type |
|---|---|---|---|---|
| cuff_position | http://loinc.org | NNNN-N | Position of cuff [add property cuff position] | |
| diastolic_blood_pressure | http://loinc.org | 8462-4 | Diastolic blood pressure | valueQuantity |
| systolic_blood_pressure | http://loinc.org | 8480-6 | Systolic blood pressure | valueQuantity |
The following Table provides the detailed mapping for the OMH Header to the OMH to FHIR Observation Profile TODO: add link to profile:
| Index | OMH Header Element | FHIR Attribute | Derived Mapping | Comments |
|---|---|---|---|---|
| 1 | header-1.2.json | OMH to FHIR Observation Profile | ||
| 2.1 | header.id | identifier[0].value | ||
| 2.2 | header.id | identifier[0].system | https://omh.org/shimmer/ids | fixed to 'https://omh.org/shimmer/ids' |
| 3 | header.creation_date_time | issued | 1:1 mapping of header.creation_date_time | |
| 4 | header.schema_id | None | ||
| 5 | header.schema_id.namespace | None | ||
| 6A.1 | header.schema_id.name | category[0].coding[0].code | data_point_mapping_table | "Maps to column 'Observation.category.code' |
| 6A.2 | header.schema_id.name | category[0].coding[0].system | http://hl7.org/fhir/observation-category | "fixed to ""http://hl7.org/fhir/observation-category"" |
| 6B.1 | header.schema_id.name | code.coding[0].code | data_point_mapping_table['Observation.code.code'] | "Maps to column 'Observation.code.code' |
| 6B.2 | code.coding[0].system | data_point_mapping_table['Observation.code.system'] | "Maps to column 'Observation.code.system' | |
| 6B.3 | code.coding[0].display | data_point_mapping_table['Observation.code.display'] | "Maps to column 'Observation.code.display' | |
| 7 | header.schema_id.version | None | ||
| 8 | header.acquisition_provenance | None | ||
| 9 | header.acquisition_provenance.source_name | device.display | 1:1 mapping of header.acquisition_provenance.source_name | |
| 10.1 | header.acquisition_provenance.source_data_point_id | identifier[1].value | 1:1 mapping of header.acquisition_provenance.source_data_point_id | |
| 10.2 | identifier[1].system | https://omh.org/source/ids | fixed to 'https://omh.org/source/ids' | |
| 11 | header.acquisition_provenance.source_creation_date_time | None | ||
| 12 | header.acquisition_provenance.modication_date_time | None | ||
| 13.1 | header.acquisition_provenance.modality | device.extension[0].valueCode | 1:1 mapping of header.acquisition_provenance.modality | |
| 13.2 | device.extension[0].url | http://www.fhir.org/mfhir/StructureDefinition/extenion-modality | fixed to 'http://www.fhir.org/mfhir/StructureDefinition/extenion-modality' | |
| 14.1 | header.user_id | subject.identifier.value | 1:1 mapping of string | |
| 14.2 | subject.identifier.system | https://omh.org/shimmerM/patient_id | fixed to 'https://omh.org/shimmer/patient_id' |
Example Mapping:
The following OMH Header schema instance:
"header": {
"id": "243c773b-8936-407e-9c23-270d0ea49cc4",
"creation_date_time": "2015-09-10T12:43:39.138-06:00",
"acquisition_provenance": {
"source_name": "Jawbone UP API",
"modality": "sensed",
"source_updated_date_time": "2015-09-10T18:43:39Z"
},
"schema_id": {
"namespace": "omh",
"name": "blood_glucose",
"version": "1.0"
},
"user_id": "306a1202-410d-11e8-842f-0ed5f89f718b"
}
Maps to the FHIR Observation resource:
{
"issued": "2015-09-10T12:43:39.138-06:00",
"resourceType": "Observation",
"category": [
{
"coding": [
{
"code": "laboratory",
"display": "Laboratory",
"system": "http://hl7.org/fhir/observation-category"
}
]
}
],
"code": {
"coding": [
{
"code": "2339-0",
"display": "Glucose Mass/volume in Blood",
"system": "http://loinc.org"
}
]
},
"device": {
"display": "Jawbone UP API",
"extension": [
{
"valueCode": "sensed",
"url": "http://www.fhir.org/mfhir/StructureDefinition/omh_fhir_observation_device_modality"
}
]
},
"identifier": [
{
"value": "243c773b-8936-407e-9c23-270d0ea49cc4",
"system": "https://omh.org/shimmer/ids"
}
],
"meta": {
"profile": [
"http://www.fhir.org/mfhir/StructureDefinition/omh_fhir_profile_quantitative_observation"
]
},
"status": "unknown",
"subject": {
"identifier": {
"value": "306a1202-410d-11e8-842f-0ed5f89f718b",
"system": "https://omh.org/shimmer/patient_ids"
}
}
}
The following Table provides the detailed mapping for the OMH HeartRate DataPoint to the OMH to FHIR Observation Profile TODO: add link to profile:
| Index | OMH Heart Rate | HL7 FHIR Observation | Derived Mapping | Comments |
|---|---|---|---|---|
| 1 | heart-rate-1.1.json | OMH to FHIR Observation Profile | ||
| 7 | body.heart_rate | Observation.valueQuantity | ||
| 2 | body.effective_time_frame | None | ||
| 3 | body.effective_time_frame.time_interval | None | ||
| 4 | body.effective_time_frame.date_time | Observation.effectiveDateTime | 1:1 mapping of body.effective_time_frame.date_time | |
| 5 | body.effective_time_frame.time_interval.start_date_time | Observation.effectivePeriod.start | 1:1 mapping of body.effective_time_frame.time_interval.start_date_time | |
| 6 | body.effective_time_frame.time_interval.end_date_time | Observation.effectivePeriod.end | 1:1 mapping of body.effective_time_frame.time_interval.end_date_time | |
| 8 | body.user_notes | Observation.comment | 1:1 mapping of body.user_notes | |
| 9 | body.descriptive_statistic | Observation.coding | Map descriptive statistic to the OMH to FHIR additional Observation codings ( code system http://www.fhir.org/guides/mfhir/omh_fhir_observation_codes). | |
| 10 | body.temporal_relationship_to_physical_activity | Observation.component | component_mapping_table | A mapping table between OMH schema ('datapoint_variables') and FHIR Observation Component data elements. Multiple components mapping are appended as a list |
| 11 | body.temporal_relationship_to_sleep | Observation.component | component_mapping_table | A mapping table between OMH schema ('datapoint_variables') and FHIR Observation Component data elements. Multiple components mapping are appended as a list |
Example Mapping:
The following OMH HeartRate schema instance:
{
"body": {
"effective_time_frame": {
"date_time": "2013-02-05T07:25:00Z"
},
"blood_glucose": {
"value": 95,
"unit": "mg/dL"
}
}
}
Maps to this fragment FHIR Observation
...
"effectiveDateTime": "2013-02-05T07:25:00Z",
"valueQuantity": {
"value": 95,
"code": "mg/dL",
"unit": "mg/dL",
"system": "http://unitsofmeasure.org"
...
to make this this FHIR Observation:
{
"issued": "2015-09-10T12:43:39.138-06:00",
"effectiveDateTime": "2013-02-05T07:25:00Z",
"resourceType": "Observation",
"valueQuantity": {
"value": 95,
"code": "mg/dL",
"unit": "mg/dL",
"system": "http://unitsofmeasure.org"
},
"category": [
{
"coding": [
{
"code": "laboratory",
"display": "Laboratory",
"system": "http://hl7.org/fhir/observation-category"
}
]
}
],
"code": {
"coding": [
{
"code": "2339-0",
"display": "Glucose Mass/volume in Blood",
"system": "http://loinc.org"
}
]
},
"device": {
"display": "Jawbone UP API",
"extension": [
{
"valueCode": "sensed",
"url": "http://www.fhir.org/mfhir/StructureDefinition/omh_fhir_observation_device_modality"
}
]
},
"identifier": [
{
"value": "243c773b-8936-407e-9c23-270d0ea49cc4",
"system": "https://omh.org/shimmer/ids"
}
],
"meta": {
"profile": [
"http://www.fhir.org/mfhir/StructureDefinition/omh_fhir_profile_quantitative_observation"
]
},
"status": "unknown",
"subject": {
"identifier": {
"value": "306a1202-410d-11e8-842f-0ed5f89f718b",
"system": "https://omh.org/shimmer/patient_ids"
}
}
}