This page is part of the Personal Health Device FHIR IG (v0.1.0: STU 1 Draft) based on FHIR R3. The current version which supercedes this version is 1.0.0. For a full list of available versions, see the Directory of published versions
The BITs Enumeration Observation Profile is used when the PHD metric measurement contains one of the following attributes:
Attribute | Value | Additional Information |
---|---|---|
Enum-Observed-Value-Simple-Bit-Str | 32-bit value | Each bit in the 32-bit integer signifies some item |
Enum-Observed-Value-Basic-Bit-Str | 16-bit value | Each bit in the 16-bit integer signifies some item |
Enum-Observed-Value | 32-bit term code when a BITs | When this complex attribute is used the only option is for the 32-bit BITs field |
The Enum-Observed-Value-Simple/Basic-Bit-Str attribute is used when the measurement reports one or more events or states. Each bit in the 16 or 32-bit number may represent some state or event. The most common use of this type of measurement is for reporting device status events. It is also used extensively in the Independent Living specialization to report states such as 'door open', 'door closed' or 'patient in room', 'patient out of room', etc. The measurement is genrally used when there is the potential for more than one event or state to be set at the same time.
The Enum-Observed-Value attribute is a complex attribute and can be any one of the three possible enumeration measurements. There is an element in the structure which indicates which type of enumeration it is. If it is a 'BITs' type it reports only the 32-bit version. The attribute also has its own metric-id value telling what it is and status value. The metric-id value replaces the term code given by the Type attribute for the type of measurement (not the measurement!) and the status value replaces the Measurement-Status attribute.
The structure definition for this profile is
Name | Flags | Card. | Type | |
---|---|---|---|---|
Observation | Observation | Definition: The PhdBitsEnumerationObservation reports PHD measurements that contain a Enum-Observed-Value-Simple-Bit-Str or Enum-Observed-Value-Basic-Bit-Str attribute. This type of measurement is used when the Personal Health Device reports a measurement as an IEEE 11073 10101 BITs value. This measurement is a complex representation where each bit means something. In many cases only certain bits are defined and it is generally true that the significant case is when the bit has been set. Given that measurement could result in up to 32 component entries (one for each bit) only set bits are required to be reported. Some specializations have used this measurement type when they should have used IEEE 10101 codes. | ||
meta | 1.. | |||
profile | 1.. | Sliced: Unordered, Open, by PhdBitsEnumerationObservation(Value) | ||
phdProfile | 1..1 | Fixed Value | Fixed Value: PhdBitsEnumerationObservation | |
identifier | Sliced: Ordered, Open, by value(Value) | |||
conditionalCreateIdentifier | ..1 | Short description: Unique identifier of this measurment for a given patient and device Definition:An identifier created from a combination of the measurement parameters like sensor time stamp, type code, enumeration BITs integer, patient and device identifiers, and selected elements of any facet component elements. Allows observations to be distinguished in a selective enough manner to prevent resource duplication. This value is used in the conditional create to prevent data duplication. PHDs will often re-send already sent data for a variety of reasons. This element is required unless the metric measurement contains no time stamp or is a measurement containing a time stamp that is real time. By real time the time stamp reported by the PHD must be later than the current time reported by the PHD before any measurements are received. Temporarily stored data from IEEE 11073 20601 devices, which are required to delete the data after sending, can also be considered real time. Temporarily stored data from Bluetooth Low Energy Health devices may be resent so these cannot be considered as real time. | ||
value | 1.. | |||
status | Comments: The value shall be set to 'final' unless a Measurement-Status attribute or Enum-Observed-Value attribute, representing a BITs value, status field indicates that the measurement is preliminary. In that case this field shall be set to 'preliminary' | |||
code | Comments: For Enumeration BITs measurements, none will fall into the category of vital signs so a LOINC encoding is never necessary in this profile. | |||
11073Type | Comments: For 11073-20601 metric enumeration measurements, this code is obtained from one or more of the Type, Metric-Id, Enum-Observed-Value.metric, and Metric-Id-Partition attributes. The algorithm to get the 16-bit partition and 16-bit term code is as follows:
It is this value that is placed in the code.coding.code element for this 11073Type slice | |||
value[x] | ..0 | Comments: The values are reported in Observation.component elements. | ||
dataAbsentReason | Definition: Provides a reason why there are Observation.component elements reporting the BITs values present. This would be due to an error condition indicated by the Measurement-Status attribute. The current values in the http://hl7.org/fhir/data-absent-reason system do not provide the same detailed set of options reported in the Measurement-Status. In those cases one uses the generic 'error' code if the error is 'fatal'. The measurementStatusComponent can be used to report more specific information. | |||
coding | ||||
system | 1.. | |||
code | 1.. | |||
component | Sliced: Ordered, Open, by | |||
bitsComponent | Short description: BITs setting entry components Definition:Each bitsComponent contains one of the bits settings as code from the BITs measurement. These entries are NOT present if a Measurement-Status attribute indicates an error. Handles a measurement that may be represented by several different settings. A BITs measurement is a measurement where each BIT means something, such as a device status where many status situations may be reported. | |||
code | ||||
coding | 1.. | Sliced: Unordered, Open, by system(Value) | ||
ASN1Type | 1..1 | Short description: The ANS1 BITs code for the measurement Comments:For BITs measurements, this code is an alpha-numeric string created from the code reported in the Observation.code.coding:11073Type.code followed by a dot (.) followed by the MDER bit being reported. For example, the CGM Device status measurement code is 8418060. If the value reported in the BITs field is 0001 1000 0000 0000 the MDER bits set are bits 3 and 4. Note that MDER 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 alphas-numeric strings and not decimal numbers. If one took the code 8418060.3 and looked it up in the ASN1 Bits vocabulary one would find it meant 'sensor malfunctioned'. | ||
system | 1.. | Fixed Value | Comments: This value is a placeholder until the correct reference URL is registered. http://hl7.org/fhir/IEEE.ASN1 | |
code | 1.. | Definition: A symbol in syntax defined by the IEEE ASN1 system. | ||
valueCodeableConcept | CodeableConcept | Definition: The information determined as a result of making the observation, if the information is a code. If the application wishes to report an unsupported setting, this element is absent and the dataAbsentReason is used to report the condition. | ||
coding | Sliced: Ordered, Open, by system(Value) | |||
v2BinaryValue | 1.. | |||
system | 1.. | Fixed Value | Fixed Value: http://hl7.org/fhir/v2/0136 | |
code | 1.. | Definition: If the bit is set this code is 'Y' and 'N' if the bit is cleared. Only set bits are required to be reported. If the bit is unsupported, the dataAbsentReason code "unsupported' is used. Unsupported bits are optional to report. | ||
dataAbsentReason | Definition: Provides a reason why the expected value in the element Observation.component.value[x] is missing. In this profile for this component that happens if the PHD does not support this bit and the uploader wishes to report that situation. | |||
coding | 1..1 | |||
system | 1.. | |||
code | 1.. | Fixed Value | Definition: Indicates the bit is not supported by the device unsupported |
FHIR has no data type that corresponds to this kind of measurement. Consequently Continua has developed a value set which maps the BITs measurement to a set of codes. The details of the mapping and how these codes are generated from data received from the PHD are given in ASN1 BITS Value Set. These codes are reported in the component element; one component per reported bit setting. Thus similar to the compound numerical measurement, there is no Observation.value[x] element. There may still be an Observation.dataAbsentReason element if a measurement status indicates a measurement failure in which case no component elements representing the BITs setting are reported.
In the following table, N is the bit position being reported. M is the component element number in the Observation. Since not all bits may be reported, M is always <= N. The notation "Type" is the 32-bit code reported in Observation.code.coding.code used in the ASN1 mapping to HL7 codes. Note that the term code of this value will come from the metric-id element when an Enum-Observed-Value attribute is reported.
Attribute | FHIR coding |
---|---|
Enum-Observed-Value-Basic-Bit_str.bitN where 0 <= N <= 15 |
Observation.componentM.code.coding.code="Type.N" where M is the Mth setting being reported Observation.componentM.valueCodableConcept.coding.code="Y/N" if bit N is set/cleared |
Enum-Observed-Value-Simple-Bit_str.bitN where 0 <= N <= 31 |
Observation.componentM.code.coding.code where M is the Mth setting being reported Observation.componentM.valueCodableConcept.coding.code="Y/N" if bit N is set/cleared |
Enum-Observed-Value.bitN where 0 <= N <= 31 Enum-Observed-Value.metric-id Enum-Observed-Value.status |
Observation.componentN.code.coding.code="Type.N" where M is the Mth setting being reported Observation.componentM.valueCodableConcept.coding.code="Y/N" if bit N is set/cleared effects the Observation.component.code.coding.code "Type" see Obtaining the Observation.code see Measurement Status in Phd Base Observation Profile |
If reporting an unsupported bit N | Observation.componentM.dataAbsentReason="unsupported" |
For a general description of the PHD Profile Identifier see the "PHD Profile Identifier" section in Phd Base Profile. The table below lists the items that make up the identifier.
Entry | value | Additional information |
---|---|---|
device | "PhdParentDeviceComponent.identifier.value" | This value is the PHD IEEE EUI-64 system identifier |
patient | "Patient.identifier.value-Patient.identifier.system" or provided logical id |
The dashes are part of the identifier. When the service provider gives the PHG a pre-determined patient logical id the PHG creates no Patient resource and has no patient information. In that special case the provided logical id is used |
type | "Observation.code.coding.code" | See Obtaining the Observation.code |
value | The raw 16-bit or 32-bit integer delivered by the PHD | |
reported PHD timestamp | "timestamp" | See Generating the PHD Reported Time Stamp |
supplemental types | "Supplemental-Types.N-" | A sequence of 32-bit MDC codes separated by a dash |
The final identifier is made by concatenating the entries above as follows:
There are no additional descriptive attributes that are unique to the Enumeration type of measurement.
The following JSON example is from a Glucose Monitor. The context measurement is in regard to the device status events recorded at the time of the measurement. The measurement itself is an ASN1 BITs value. The BITs value is 0x10D0 or 4304 decimal. That value amounts to Mder bits 3, 8, 9, and 11 being set. In the future this measurement will contain a second related element due to a Source-Handle-Reference attribute pointing to the Glucose Concentration measurement. It has been added by hand below. In a real case the logical id of the Observation would be known.
{ "resourceType": "Observation", "meta": { "profile": ["http://pchalliance.org/phdfhir/StructureDefinition/PhdBitsEnumerationObservation"] }, "identifier": [{ "value": "sisansarahId-urn:oid:1.2.3.4.5.6.7.8.10-01040302f4000000-8417752-20171214103727-10D0" }], "status": "final", "code": { "coding": [{ "system": "urn:iso:std:iso:11073:10101", "code": "8417752", "display": "MDC_GLU_METER_DEV_STATUS" }] }, "subject": { "reference": "Patient/PatientId-sisansarahId" }, "effectiveDateTime": "2017-12-14T10:37:25-05:00", "performer": [{ "reference": "Patient/PatientId-sisansarahId" }], "device": { "reference": "DeviceComponent/SysId-01040302f4000000" }, "related": [{ "id": "coincidentTimeStampRelated", "type": "qualified-by", "target": { "reference": "urn:oid:3.14159.20171214103753" }, { "id": "SourceHandleReferenceRelated", "type": "qualified-by", "target": { "reference": "Observation/logical-id of Glucose concentration measurement" } }], "component": [{ "code": { "coding": [{ "system": "http://hl7.org/fhir/IEEE.ASN1", "code": "8417752.3", "display": "sensor-strip-insertion" }] }, "valueCodeableConcept": { "coding": [{ "system": "http://hl7.org/fhir/v2/0136", "code": "Y", "display": "Strip inserted incorrectly" }] } }, { "code": { "coding": [{ "system": "http://hl7.org/fhir/IEEE.ASN1", "code": "8417752.8", "display": "sensor-temp-too-low" }] }, "valueCodeableConcept": { "coding": [{ "system": "http://hl7.org/fhir/v2/0136", "code": "Y", "display": "Temperature too low" }] } }, { "code": { "coding": [{ "system": "http://hl7.org/fhir/IEEE.ASN1", "code": "8417752.9", "display": "sensor-read-interrupt" }] }, "valueCodeableConcept": { "coding": [{ "system": "http://hl7.org/fhir/v2/0136", "code": "Y", "display": "Process interrupted" }] } }, { "code": { "coding": [{ "system": "http://hl7.org/fhir/IEEE.ASN1", "code": "8417752.11", "display": "sensor-temp-out-of-range" }] }, "valueCodeableConcept": { "coding": [{ "system": "http://hl7.org/fhir/v2/0136", "code": "Y", "display": "Temperature out of range" }] } }] },