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

Phd BITs Enumeration Observation Profile

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

NameFlagsCard.Type
profile1..
phdProfile1..1Fixed Value
identifier
value1..
status
11073Type
value[x]..0
system1..
code1..
component
coding1..
system1..Fixed Value
code1..
coding
system1..Fixed Value
code1..
system1..
code1..Fixed Value

Mapping BITs Enumerations to FHIR

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"

Conditional Create Identifier Generation

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:

  • "device-patient-type-value-reported PHD timestamp-supplemental types"

Additional Enumeration Measurement Information

There are no additional descriptive attributes that are unique to the Enumeration type of measurement.

Phd BITs Enumeration Observation JSON Example

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"
			}]
		}
	}]
},