Personal Health Device Implementation Guide, published by HL7 International / Devices. This guide is not an authorized publication; it is the continuous build for version 2.0.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/phd/ and changes regularly. See the Directory of published versions
| Official URL: http://terminology.hl7.org/CodeSystem/ASN1ToHL7 | Version: 2.0.1 | ||||
| Standards status: Trial-use | Maturity Level: 2 | Computable Name: ASN1ToHL7 | |||
CodeSystem for mapping IEEE 11073-10206 bitstrings to FHIR Codeable Concepts
IEEE 11073-10206 PHDs report some device or measurement attributes as an integer where each bit in the integer may mean something. There is no HL7 data type that treats this kind of measurement. This code system defines a code for each of the possible bit settings. The bit value can be reported in a CodeableConcept data type.
The bit may either represent an event or a state. When an event, the defined event has occurred when set. If a state, the described item is either set or cleared. In addition the code may derive from an IEEE 11073-10206 device attribute or from an Observation. This is encoded in a property of the code. More codes maybe added to this list in the future.
The code values for the properties are included here as well, since the valueset extension for properties is not supported for FHIR R4.
The uploader can generate the code from the data received from the PHD. No external information is necessary unless the uploader wants to populate the display element of the CodeableConcept data type. It is recommended that the uploader populates the display element as defined by the CodeSystem if known, or otherwise populates the text element with the Reference Id or the MDC code as decimal string followed by "bit n". It is not required because it is desired to have an uploader that can still work with future specializations and in that case, it is not possible for the uploader to know what to use as display as it is not sent over the wire; it is only available from the specialization documents.
To generate the code, the uploader obtains the code for the type of measurement which is used to populate the Observation.code.coding.code –element. Then for each bit to be reported, a new code is generated by appending a period followed by the bit position being mapped.
A bit can only have two values, set or cleared. Thus the value is reported in the Observation.component.valueBoolean –element using true for set and false for cleared.
component elements and one with code 8418060.3 and the other with code 8418060.4. Note these are alpha-numeric strings and not decimal numbers. If one took the code 8418060.3 and looked it up in the ASN.1 Bits vocabulary one would find it meant 'sensor malfunctioned'.If the ASN.1 bit represents an event, only the set condition needs to be reported. If the ASN.1 bit represents a state, both the set and cleared conditions need to be reported. If the device does not support the bit, it is not required to report the value. If the uploader would, nevertheless, desire to report the unsupported situation it is done in an Observation.component.dataAbsentReason.coding.code –element with code "unsupported". The Observation.component.value[x] element is absent. Undefined bits are never reported.
This code system is used to report IEEE 11073-10206 Multiple Boolean State observations, where each bit represents a state and for Bluetooth GHS Compound state/event observations that come with a mask to indicate per bit if it is a state or an event and whether it is supported by the device or not.
It is also used for IEEE 11073-20601 Bit-Str metrics. In version 4 or later of the IEEE 11073-20601 specification the enumeration metric object supports both a Capability-Mask-Simple/Basic and State-flag-Simple/Basic attribute that must be present when Bit-Str is reported. The Capability-Mask attribute will have a bit set when the corresponding bit in the actual measurement is supported by the device. The State-Flag attribute will have a bit set if the corresponding bit is a state. If cleared, the corresponding bit is an event. These attributes are not present in IEEE 11073-20601 versions 3 or earlier. If such version is used, the uploader will need to obtain this information from the ASN.1 to HL7 code system.
This Code system is referenced in the definition of the following value sets:
Profile: Shareable CodeSystem
Properties
This code system defines the following properties for its concepts
| Name | Code | URI | Type | Description |
| Event or State | eventOrState | http://terminology.hl7.org/CodeSystem/ASN1ToHL7#eventOrState | code | The code type is an event or state |
| Source | source | http://terminology.hl7.org/CodeSystem/ASN1ToHL7#source | code | The code originates from a measurement or an attribute that further describes a measurement or the sensor device. |
| MDC Code | MDCCode | http://terminology.hl7.org/CodeSystem/ASN1ToHL7#MDCCode | Coding | The decimal code for the MDC code of the bits observation |
Concepts
This case-sensitive code system http://terminology.hl7.org/CodeSystem/ASN1ToHL7 defines the following codes:
| Code | Display | Definition | Event or State | Source | MDC Code |
| source | Source | The source of the bit |
|||
| eventOrState | Event or State | Whether the bit represents an event or a state |
|||
| device | Attribute | The bit represents a device attribute |
|||
| measurement | Measurement | The bit represents a measurement attribute |
|||
| event | Event | The bit represents an event |
|||
| state | State | The bit represents a state |
|||
| MDCCode | MDC Code | The MDC code for the bit |
|||
| 67925.0 | onMains | The device is on mains power |
state | device | MDC_ATTR_POWER_STAT |
| 67925.1 | onBattery | The device is on Battery power |
state | device | MDC_ATTR_POWER_STAT |
| 67925.8 | chargingFull | The device battery is charging at maximum rate |
event | device | MDC_ATTR_POWER_STAT |
| 67925.9 | chargingTrickle | The device battery is charging at a trickle rate |
event | device | MDC_ATTR_POWER_STAT |
| 67925.10 | chargingOff | The device battery charging is on |
state | device | MDC_ATTR_POWER_STAT |
| 532354.0 | negated-regulation-status | Device is regulated when cleared and unregulated when set |
state | device | MDC_REG_CERT_DATA_CONTINUA_REG_STATUS |
| 68219.0 | mds-time-capab-real-time-clock | Real time clock is supported |
event | device | MDC_TIME_CAP_STATE |
| 68219.1 | mds-time-capab-set-clock | Support for the PHG to set the time |
event | device | MDC_TIME_CAP_STATE |
| 68219.2 | mds-time-capab-relative-time | Relative Time is supported |
event | device | MDC_TIME_CAP_STATE |
| 68219.3 | mds-time-capab-high-res-relative-time | Hi-Res Relative Time is supported |
event | device | MDC_TIME_CAP_STATE |
| 68219.4 | mds-time-capab-sync-abs-time | Syncing the absolute time is supported |
event | device | MDC_TIME_CAP_STATE |
| 68219.5 | mds-time-capab-sync-rel-time | Syncing the relative time is supported |
event | device | MDC_TIME_CAP_STATE |
| 68219.6 | mds-time-capab-sync-hi-res-relative-time | Syncing hi-res relative time is supported |
event | device | MDC_TIME_CAP_STATE |
| 68219.7 | mds-time-capab-bo-time | The real-time clock supports base offset time |
event | device | MDC_TIME_CAP_STATE |
| 68219.8 | mds-time-state-abs-time-synced | The absolute time has been synced |
event | device | MDC_TIME_CAP_STATE |
| 68219.9 | mds-time-state-rel-time-synced | The relative time has been synced |
event | device | MDC_TIME_CAP_STATE |
| 68219.10 | mds-time-state-hi-res-relative-time-synced | The hi-res time has been synced |
event | device | MDC_TIME_CAP_STATE |
| 68219.11 | mds-time-mgr-set-time | PHG Requested to set the time |
event | device | MDC_TIME_CAP_STATE |
| 68219.12 | mds-time-capab-sync-bo-time | Syncing base-offset time is supported |
event | device | MDC_TIME_CAP_STATE |
| 68219.13 | mds-time-state-bo-time-synced | Base-offset time has been synced |
event | device | MDC_TIME_CAP_STATE |
| 68219.14 | mds-time-state-bo-time-UTC-aligned | Base-offset time is aligned with UTC time standard |
event | device | MDC_TIME_CAP_STATE |
| 68219.15 | mds-time-dst-rules-enabled | Support for daylight savings time rules |
event | device | MDC_TIME_CAP_STATE |
| 67846.0 | lim-alert-off | Both the high and the low limit alerts are disabled |
state | measurement | MDC_ATTR_AL_OP_STAT |
| 67846.1 | lim-low-off | The low limit alert is disabled |
state | measurement | MDC_ATTR_AL_OP_STAT |
| 67846.2 | lim-high-off | The high limit alert is disabled |
state | measurement | MDC_ATTR_AL_OP_STAT |
| 150604.0 | sensor-disconnected | The device is not connected with the sensor |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.1 | sensor-malfunction | The sensor has malfunctioned |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.2 | sensor-displaced | The sensor is not correctly placed on the user |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.3 | sensor-unsupported | The sensor connected to the device is unsupported |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.4 | sensor-off | The sensor is not connected to the user |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.5 | sensor-interference | The sensor is experiencing interference |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.6 | signal-searching | The sensor is searching for a signal |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.7 | signal-pulse-questionable | A questionable pulse has been detected |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.8 | signal-non-pulsatile | A non pulsatile signal has been detected |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.9 | signal-erratic | A signal has been discovered, but it is erratic |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.10 | signal-low-perfusion | The signal is experiencing low perfusion |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.11 | signal-poor | The signal has been discovered, but it is poor |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.12 | signal-inadequate | The signal has been discovered, but it is inadequate |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.13 | signal-processing-irregularity | The signal has been discovered, but is experiencing processing irregularity |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.14 | device-equipment-malfunction | A device malfunction has occurred |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150604.15 | device-extended-update | An extended display update is in progress on device |
event | measurement | MDC_PULS_OXIM_DEV_STATUS |
| 150605.0 | pulse-qual-nominal | No abnormalities have been detected by the sensor |
event | measurement | MDC_PULS_OXIM_PULS_CHAR |
| 150605.1 | pulse-qual-marginal | The pulse quality is marginal |
event | measurement | MDC_PULS_OXIM_PULS_CHAR |
| 150605.2 | pulse-qual-minimal | The pulse quality is minimal |
event | measurement | MDC_PULS_OXIM_PULS_CHAR |
| 150605.3 | pulse-qual-unacceptable | The pulse quality is unacceptable |
event | measurement | MDC_PULS_OXIM_PULS_CHAR |
| 8410584.0 | leadwire-loss | Loss of unspecified lead wire or electrode connection |
event | measurement | MDC_ECG_DEV_STAT |
| 8410584.1 | leadsignal-loss | Loss of unspecified lead signal |
event | measurement | MDC_ECG_DEV_STAT |
| 8410584.2 | leadwire-loss-first-lead | Loss of 1st lead wire or electrode connection |
event | measurement | MDC_ECG_DEV_STAT |
| 8410584.3 | leadsignal-loss-first-lead | Loss of 1st lead signal |
event | measurement | MDC_ECG_DEV_STAT |
| 8410584.4 | leadwire-loss-second-lead | Loss of 2nd lead wire or electrode connection |
event | measurement | MDC_ECG_DEV_STAT |
| 8410584.5 | leadsignal-loss-second-lead | Loss of 2nd lead signal |
event | measurement | MDC_ECG_DEV_STAT |
| 8410584.6 | leadwire-loss-third-lead | Loss of 3rd lead wire or electrode connection |
event | measurement | MDC_ECG_DEV_STAT |
| 8410584.7 | leadsignal-loss-third-lead | Loss of 3rd lead signal |
event | measurement | MDC_ECG_DEV_STAT |
| 8417752.0 | device-battery-low | The device battery is low |
event | measurement | MDC_GLU_METER_DEV_STATUS |
| 8417752.1 | sensor-malfunction | The sensor has malfunctioned |
event | measurement | MDC_GLU_METER_DEV_STATUS |
| 8417752.2 | sensor-sample-size-insufficient | The sensor's sample size is insufficient |
event | measurement | MDC_GLU_METER_DEV_STATUS |
| 8417752.3 | sensor-strip-insertion | The test strip was inserted incorrectly |
event | measurement | MDC_GLU_METER_DEV_STATUS |
| 8417752.4 | sensor-strip-type-incorrect | The test strip type is incompatible with the sensor |
event | measurement | MDC_GLU_METER_DEV_STATUS |
| 8417752.5 | sensor-result-too-high | The value reported by the sensor is too high |
event | measurement | MDC_GLU_METER_DEV_STATUS |
| 8417752.6 | sensor-result-too-low | The value reported by the sensor is too low |
event | measurement | MDC_GLU_METER_DEV_STATUS |
| 8417752.7 | sensor-temp-too-high | The temperature is too high |
event | measurement | MDC_GLU_METER_DEV_STATUS |
| 8417752.8 | sensor-temp-too-low | The temperature is too low |
event | measurement | MDC_GLU_METER_DEV_STATUS |
| 8417752.9 | sensor-read-interrupt | The read process was interrupted |
event | measurement | MDC_GLU_METER_DEV_STATUS |
| 8417752.10 | device-gen-fault | General Device Fault |
event | measurement | MDC_GLU_METER_DEV_STATUS |
| 8417752.11 | sensor-temp-out-of-range | The temperature is out of range |
event | measurement | MDC_GLU_METER_DEV_STATUS |
| 8417909.0 | inr-device-battery-low | The INR device battery is low |
event | measurement | MDC_INR_METER_DEV_STATUS |
| 8417909.1 | inr-sensor-malfunction | The INR device sensor has malfunctioned |
event | measurement | MDC_INR_METER_DEV_STATUS |
| 8417909.2 | inr-sensor-sample-size-insufficient | The sample size was insufficient |
event | measurement | MDC_INR_METER_DEV_STATUS |
| 8417909.3 | inr-sensor-strip-insertion | The test script was inserted incorrectly |
event | measurement | MDC_INR_METER_DEV_STATUS |
| 8417909.4 | inr-sensor-strip-type-incorrect | The test strip used is not compatible with the INR |
event | measurement | MDC_INR_METER_DEV_STATUS |
| 8417909.5 | inr-sensor-result-too-high | The test result is too high |
event | measurement | MDC_INR_METER_DEV_STATUS |
| 8417909.6 | inr-sensor-result-too-low | The test result is too low |
event | measurement | MDC_INR_METER_DEV_STATUS |
| 8417909.7 | inr-sensor-temp-too-high | The temperature is too high |
event | measurement | MDC_INR_METER_DEV_STATUS |
| 8417909.8 | inr-sensor-temp-too-low | The temperature is too low |
event | measurement | MDC_INR_METER_DEV_STATUS |
| 8417909.9 | inr-sensor-read-interrupt | The read process was interrupted |
event | measurement | MDC_INR_METER_DEV_STATUS |
| 8417909.10 | inr-device-gen-fault | General device fault |
event | measurement | MDC_INR_METER_DEV_STATUS |
| 8417909.11 | inr-sensor-calibration-due | The INR sensor calibration is due |
event | measurement | MDC_INR_METER_DEV_STATUS |
| 8408608.0 | device-status-undetermined | Undetermined device status event |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.1 | device-status-reset | Device reset |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.5 | device-status-error | Device error |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.6 | device-status-error-mechanical | Mechanical error |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.7 | device-status-error-electronic | Electronic error |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.8 | device-status-error-software | Software error |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.9 | device-status-error-battery | Battery error |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.15 | device-status-service | Undetermined device status event, service needed |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.16 | device-status-service-time-sync-required | Time sync service required |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.17 | device-status-service-calibration-required | Calibration required |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.18 | device-status-service-replenishment-required | Replenishment required |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.25 | device-status-battery-low | Battery power is too low |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.26 | device-status-battery-depleted | Battery is depleted |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.27 | device-status-battery-replaced | Battery has been replaced |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8408608.28 | device-status-battery-interrupted | Battery was interrupted |
event | measurement | MDC_PHD_DM_DEV_STAT |
| 8418060.0 | sensor-session-stopped | Session stopped |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.2 | sensor-type-incorrect | Sensor type incorrect for device |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.3 | sensor-malfunction | The sensor malfunctioned |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.4 | device-specific-alert | Device specific alert |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.7 | sensor-calibration-not-allowed | Calibrating the sensor is not allowed |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.8 | sensor-calibration-recommended | Calibrating the sensor is recommended |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.9 | sensor-calibration-required | Calibrating the sensor is required |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.10 | sensor-temp-too-high | Temperature is too high for a valid result |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.11 | sensor-temp-too-low | Temperature is too low for a valid result |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.12 | sensor-result-below-patient-low | Sensor result below the Patient Low level |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.13 | sensor-result-above-patient-high | Sensor result above the Patient High level |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.14 | sensor-low-hypo | Sensor result below level |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.15 | sensor-high-hyper | Sensor result above level |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.16 | sensor-rate-decrease-exceeded | The sensor rate of decrease has been exceeded |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.17 | sensor-rate-increase-exceeded | The sensor rate of increase has been exceeded |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.18 | sensor-result-too-low | Sensor result is lower than the device can process |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.19 | sensor-result-too-high | Sensor result is higher than the device can process |
event | measurement | MDC_CGM_DEV_STAT |
| 8418060.20 | sensor-com-out-of-range | The sensor communication is out of range |
event | measurement | MDC_CGM_DEV_STAT |
| 8418512.0 | Battery-status-Undetermined | The status of the battery is unknown |
state | measurement | MDC_BATTERY_STATUS |
| 8418512.1 | Battery-absent | The battery is absent |
state | measurement | MDC_BATTERY_STATUS |
| 8418512.2 | Battery-active | The battery is active in the system |
state | measurement | MDC_BATTERY_STATUS |
| 8418512.3 | Battery-charging | The battery is charging |
state | measurement | MDC_BATTERY_STATUS |
| 8418512.4 | Battery-fullyCharged | The battery is fully charged |
state | measurement | MDC_BATTERY_STATUS |
| 8418512.5 | Battery-disposable | The battery is disposable |
state | measurement | MDC_BATTERY_STATUS |
| 8418512.6 | Battery-rechargeable | The battery is rechargeable |
state | measurement | MDC_BATTERY_STATUS |
| 8418512.7 | Battery-overTemperature | The battery is too hot |
event | measurement | MDC_BATTERY_STATUS |
| 8418512.8 | Battery-faulty | The battery is faulty |
event | measurement | MDC_BATTERY_STATUS |
| 8418512.9 | Battery-incompatible | The battery is incompatible |
event | measurement | MDC_BATTERY_STATUS |
| 8410608.0 | body-movement | Too much body movement |
event | measurement | MDC_BLOOD_PRESSURE_MEASUREMENT_STATUS |
| 8410608.1 | cuff-too-loose | The cuff was too loose |
event | measurement | MDC_BLOOD_PRESSURE_MEASUREMENT_STATUS |
| 8410608.2 | irregular-pulse | An irregular pulse was detected |
event | measurement | MDC_BLOOD_PRESSURE_MEASUREMENT_STATUS |
| 8410608.3 | pulse-over-range-limit | The pulse was too high for sensor to work |
event | measurement | MDC_BLOOD_PRESSURE_MEASUREMENT_STATUS |
| 8410608.4 | pulse-under-range-limit | The pulse was too low for sensor to work |
event | measurement | MDC_BLOOD_PRESSURE_MEASUREMENT_STATUS |
| 8410608.5 | improper-body-position | The cuff was incorrectly placed with respect to the heart |
event | measurement | MDC_BLOOD_PRESSURE_MEASUREMENT_STATUS |