Personal Health Device Implementation Guide
2.1.0 - STU 2.0 International flag

Personal Health Device Implementation Guide, published by HL7 International / Health Care Devices. This guide is not an authorized publication; it is the continuous build for version 2.1.0 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

CodeSystem: ASN1 bits to HL7 enumerated values

Official URL: http://hl7.org/fhir/uv/phd/CodeSystem/ASN1ToHL7 Version: 2.1.0
Standards status: Trial-use Maturity Level: 3 Computable Name: ASN1ToHL7

Codesystem for mapping IEEE 11073 bitstrings to FHIR Codeable Concepts

11073 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 attribute or from a measurement. The codes come either from measurements or from a device attribute. 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 populate the display element with at least the 11073 specialization name for the bit setting. 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 the 11073 specialization name for the bit is 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. Thus a 16-bit measurement may correspond to 16 codes.

A bit can only have two values, set or cleared. Thus the value is reported in the Observation.component.valueCodeableConcept.coding.code element using the HL7 Version 2 binary coding system; "Y" for set and "N" for cleared.

  • As an example, the continuous glucose monitor specialization has a Device status measurement whose type is given by the code 8418060. If the value reported is 0001 1000 0000 0000 the bits set are bits 3 and 4. Note that bit 0 is the HIGH order bit. Bit 3 means 'sensor malfunction' and bit 4 means 'device specific alert'. This measurement would require two component elements and one would be 8418060.3 and the other would be 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'.

Reporting Requirements

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 can be 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 can also be used for 11073-20601 Bit-Str metrics. In version 4 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 an enumeration BITs measurement 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. However, these attributes are not present in IEEE 11073-20601 versions 3 or earlier that are currently used by PHDs. Thus, the uploader will need to obtain this information from the ASN.1 mapping tables.

This Code system is referenced in the content logical definition of the following value sets:

Generated Narrative: CodeSystem ASN1ToHL7

Properties

This code system defines the following properties for its concepts

NameCodeURITypeDescription
Event or State eventOrState http://hl7.org/fhir/uv/phd/CodeSystem/ASN1ToHL7#eventOrState code The code type is an event or state
Source source http://hl7.org/fhir/uv/phd/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://hl7.org/fhir/uv/phd/CodeSystem/ASN1ToHL7#MDCCode Coding The decimal code for the MDC code of the bits observation

Concepts

This case-sensitive code system http://hl7.org/fhir/uv/phd/CodeSystem/ASN1ToHL7 defines the following codes:

CodeDisplayDefinitionEvent or StateSourceMDC 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

device
67925.1 onBattery

The device is on Battery power

device
67925.8 chargingFull

The device battery is charging at maximum rate

device
67925.9 chargingTrickle

The device battery is charging at a trickle rate

device
67925.10 chargingOff

The device battery charging is on

device
532354.0 negated-regulation-status

Device is regulated when cleared and unregulated when set

device
68219.0 mds-time-capab-real-time-clock

Real time clock is supported

device
68219.1 mds-time-capab-set-clock

Support for the PHG to set the time

device
68219.2 mds-time-capab-relative-time

Relative Time is supported

device
68219.3 mds-time-capab-high-res-relative-time

Hi-Res Relative Time is supported

device
68219.4 mds-time-capab-sync-abs-time

Syncing the absolute time is supported

device
68219.5 mds-time-capab-sync-rel-time

Syncing the relative time is supported

device
68219.6 mds-time-capab-sync-hi-res-relative-time

Syncing hi-res relative time is supported

device
68219.7 mds-time-capab-bo-time

The real-time clock supports base offset time

device
68219.8 mds-time-state-abs-time-synced

The absolute time has been synced

device
68219.9 mds-time-state-rel-time-synced

The relative time has been synced

device
68219.10 mds-time-state-hi-res-relative-time-synced

The hi-res time has been synced

device
68219.11 mds-time-mgr-set-time

PHG Requested to set the time

device
68219.12 mds-time-capab-sync-bo-time

Syncing base-offset time is supported

device
68219.13 mds-time-state-bo-time-synced

Base-offset time has been synced

device
68219.14 mds-time-state-bo-time-UTC-aligned

Base-offset time is aligned with UTC time standard

device
68219.15 mds-time-dst-rules-enabled

Support for daylight savings time rules

device
67846.0 lim-alert-off

Both the high and the low limit alerts are disabled

measurement
67846.1 lim-low-off

The low limit alert is disabled

measurement
67846.2 lim-high-off

The high limit alert is disabled

measurement
150604.0 sensor-disconnected

The device is not connected with the sensor

measurement
150604.1 sensor-malfunction

The sensor has malfunctioned

measurement
150604.2 sensor-displaced

The sensor is not correctly placed on the user

measurement
150604.3 sensor-unsupported

The sensor connected to the device is unsupported

measurement
150604.4 sensor-off

The sensor is not connected to the user

measurement
150604.5 sensor-interference

The sensor is experiencing interference

measurement
150604.6 signal-searching

The sensor is searching for a signal

measurement
150604.7 signal-pulse-questionable

A questionable pulse has been detected

measurement
150604.8 signal-non-pulsatile

A non pulsatile signal has been detected

measurement
150604.9 signal-erratic

A signal has been discovered, but it is erratic

measurement
150604.10 signal-low-perfusion

The signal is experiencing low perfusion

measurement
150604.11 signal-poor

The signal has been discovered, but it is poor

measurement
150604.12 signal-inadequate

The signal has been discovered, but it is inadequate

measurement
150604.13 signal-processing-irregularity

The signal has been discovered, but is experiencing processing irregularity

measurement
150604.14 device-equipment-malfunction

A device malfunction has occurred

measurement
150604.15 device-extended-update

An extended display update is in progress on device

measurement
150605.0 pulse-qual-nominal

No abnormalities have been detected by the sensor

measurement
150605.1 pulse-qual-marginal

The pulse quality is marginal

measurement
150605.2 pulse-qual-minimal

The pulse quality is minimal

measurement
150605.3 pulse-qual-unacceptable

The pulse quality is unacceptable

measurement
8410584.0 leadwire-loss

Loss of unspecified lead wire or electrode connection

measurement
8410584.1 leadsignal-loss

Loss of unspecified lead signal

measurement
8410584.2 leadwire-loss-first-lead

Loss of 1st lead wire or electrode connection

measurement
8410584.3 leadsignal-loss-first-lead

Loss of 1st lead signal

measurement
8410584.4 leadwire-loss-second-lead

Loss of 2nd lead wire or electrode connection

measurement
8410584.5 leadsignal-loss-second-lead

Loss of 2nd lead signal

measurement
8410584.6 leadwire-loss-third-lead

Loss of 3rd lead wire or electrode connection

measurement
8410584.7 leadsignal-loss-third-lead

Loss of 3rd lead signal

measurement
8417752.0 device-battery-low

The device battery is low

measurement
8417752.1 sensor-malfunction

The sensor has malfunctioned

measurement
8417752.2 sensor-sample-size-insufficient

The sensor's sample size is insufficient

measurement
8417752.3 sensor-strip-insertion

The test strip was inserted incorrectly

measurement
8417752.4 sensor-strip-type-incorrect

The test strip type is incompatable with the sensor

measurement
8417752.5 sensor-result-too-high

The value reported by the sensor is too high

measurement
8417752.6 sensor-result-too-low

The value reported by the sensor is too low

measurement
8417752.7 sensor-temp-too-high

The temperature is too high

measurement
8417752.8 sensor-temp-too-low

The temperature is too low

measurement
8417752.9 sensor-read-interrupt

The read process was interrupted

measurement
8417752.10 device-gen-fault

General Device Fault

measurement
8417752.11 sensor-temp-out-of-range

The temperature is out of range

measurement
8417909.0 inr-device-battery-low

The INR device battery is low

measurement
8417909.1 inr-sensor-malfunction

The INR device sensor has malfunctioned

measurement
8417909.2 inr-sensor-sample-size-insufficient

The sample size was insufficient

measurement
8417909.3 inr-sensor-strip-insertion

The test script was inserted incorrectly

measurement
8417909.4 inr-sensor-strip-type-incorrect

The test strip used is not compatible with the INR

measurement
8417909.5 inr-sensor-result-too-high

The test result is too high

measurement
8417909.6 inr-sensor-result-too-low

The test result is too low

measurement
8417909.7 inr-sensor-temp-too-high

The temperature is too high

measurement
8417909.8 inr-sensor-temp-too-low

The temperature is too low

measurement
8417909.9 inr-sensor-read-interrupt

The read process was interrupted

measurement
8417909.10 inr-device-gen-fault

General device fault

measurement
8417909.11 inr-sensor-calibration-due

The INR sensor calibration is due

measurement
8408608.0 device-status-undetermined

Undetermined device status event

measurement
8408608.1 device-status-reset

Device reset

measurement
8408608.5 device-status-error

Device error

measurement
8408608.6 device-status-error-mechanical

Mechanical error

measurement
8408608.7 device-status-error-electronic

Electronic error

measurement
8408608.8 device-status-error-software

Software error

measurement
8408608.9 device-status-error-battery

Battery error

measurement
8408608.15 device-status-service

Undetermined device status event, service needed

measurement
8408608.16 device-status-service-time-sync-required

Time sync service required

measurement
8408608.17 device-status-service-calibration-required

Calibration required

measurement
8408608.18 device-status-service-replenishment-required

Replenishment required

measurement
8408608.25 device-status-battery-low

Battery power is too low

measurement
8408608.26 device-status-battery-depleted

Battery is depleted

measurement
8408608.27 device-status-battery-replaced

Battery has been replaced

measurement
8408608.28 device-status-battery-interrupted

Battery was interrupted

measurement
8418060.0 sensor-session-stopped

Session stopped

measurement
8418060.2 sensor-type-incorrect

Sensor type incorrect for device

measurement
8418060.3 sensor-malfunction

The sensor malfunctioned

measurement
8418060.4 device-specific-alert

Device specific alert

measurement
8418060.7 sensor-calibration-not-allowed

Calibrating the sensor is not allowed

measurement
8418060.8 sensor-calibration-recommended

Calibrating the sensor is recommended

measurement
8418060.9 sensor-calibration-required

Calibrating the sensor is required

measurement
8418060.10 sensor-temp-too-high

Temperature is too high for a valid result

measurement
8418060.11 sensor-temp-too-low

Temperature is too low for a valid result

measurement
8418060.12 sensor-result-below-patient-low

Sensor result below the Patient Low level

measurement
8418060.13 sensor-result-above-patient-high

Sensor result above the Patient High level

measurement
8418060.14 sensor-low-hypo

Sensor result below level

measurement
8418060.15 sensor-high-hyper

Sensor result above level

measurement
8418060.16 sensor-rate-decrease-exceeded

The sensor rate of decrease has been exceeded

measurement
8418060.17 sensor-rate-increase-exceeded

The sensor rate of increase has been exceeded

measurement
8418060.18 sensor-result-too-low

Sensor result is lower than the device can process

measurement
8418060.19 sensor-result-too-high

Sensor result is higher than the device can process

measurement
8418060.20 sensor-com-out-of-range

The sensor communication is out of range

measurement
8418512.0 Battery-status-Undetermined

The status of the battery is unknown

measurement
8418512.1 Battery-absent

The battery is absent

measurement
8418512.2 Battery-active

The battery is active in the system

measurement
8418512.3 Battery-charging

The battery is charging

measurement
8418512.4 Battery-fullyCharged

The battery is fully charged

measurement
8418512.5 Battery-disposable

The battery is disposable

measurement
8418512.6 Battery-rechargeable

The battery is rechargable

measurement
8418512.7 Battery-overTemperature

The battery is too hot

event measurement 8418512
8418512.8 Battery-faulty

The battery is faulty

measurement
8418512.9 Battery-incompatible

The battery is incompatible

measurement
8410608.0 body-movement

Too much body movement

measurement
8410608.1 cuff-too-loose

The cuff was too loose

measurement
8410608.2 irregular-pulse

An irregular pulse was detected

measurement
8410608.3 pulse-over-range-limit

The pulse was too high for sensor to work

measurement
8410608.4 pulse-under-range-limit

The pulse was too low for sensor to work

measurement
8410608.5 improper-body-position

The cuff was incorrectly placed with respect to the heart

measurement