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 Base Observation Profile

The Phd Base Observation profile contains the elements that are common to all Phd Observation profiles describing measurements. These element are:

  • code: what the measurement is,
  • subject: the patient this measurement refers to,
  • effective[ x ]: the time stamp and perhaps duration of the measurement,
  • device: the PHD taking the measurement,
  • related: references to any coincident time stamp and/or source handle reference, and
  • components: contains any additional measurement descriptions (supplemental types, relative time stamps, and measurement status

The structure definition is given below:

NameFlagsCard.Type
identifier
status
coding1..
system1..Fixed Value
code1..
system1..Fixed Value
code1..
reference1..
effective[x]1..
dateTimeEffectivedateTime
start1..
end1..
reference1..
related
reference1..
reference1..
component
coding1..
system1..Fixed Value
code1..Fixed Value
display
coding1..
system1..Fixed Value
code1..
dataAbsentReason..0
coding1..
system1..Fixed Value
code1..Fixed Value
display
value1..
unit1..
system1..Fixed Value
code1..Fixed Value
dataAbsentReason..0
coding1..
system1..Fixed Value
code1..Fixed Value
display
value1..
unit1..
system1..Fixed Value
code1..Fixed Value
dataAbsentReason..0
system1..Fixed Value
code1..
system1..Fixed Value
code1..
dataAbsentReason..0

PHD Profile Identifier

The PHD Profile Identifier is used to prevent data duplication. It serves as the selection criteria in the conditional create. All measurements that have a timestamp earlier than the current time of connection are required to use the conditional create upload when converted to FHIR. If the uploader knows that the received measurement is a new measurement or the measurement has no time stamp, then the identifier is not needed.

Ideally the uploader will implement a duplication detection mechanism and filter out any measurements that have already been uploaded. One possible mechanism is to record the latest time stamp of any measurement received during a connection. Then for a given device and patient and upload destination, on a subsequent connection filter out any measurements with a time stamp earlier than the recorded latest time stamp of the previous connection. The latest time stamp is then updated given the information received during the current connection. The filter not only saves the server from the strain of handling the conditional update transaction but saves bandwidth and upload costs.

The identifier is a combined string of elements that contain sufficient information to uniquely identify the measurement for a given patient and device. The identifier is thus a combination of the device identifier, patient identifier, PHD timestamp of the measurement, measurement type code, measurement value, and the list of Supplemental-Types codes if any. Each entry is separated by a dash (-). It is important to use the time stamp of the PHD and not the potentially modified time stamp placed in the Observation.effective[x] element. Two PHGs may have slightly different times which would allow a duplicate measurement to appear different.

All Continua compliant PHGs must implement this identifier in the same manner. Compliance assures that even if the patient uploads the same measurement to the same server from a different PHG, a duplicate of the measurement will not be generated on the server. Some Bluetooth Low Energy PHDs do not provide a means of deleting stored data and will upload all the old data with each new addition up to the point of the device storage.

The consumer of this Observation resource should ignore the identifer element used for the PHD Profiles.

Generation of the PHD Profile Identifier is PHD Profile specific and is outlined in the respective profiles.

Obtaining the Type of Measurement

One obtains the 11073 20601 measurement type for the code element in the same manner for all metric measurments. See the section Obtaining the Observation.code for the details of this mapping.

Subject

The subject element points to the PhdPatient resource using the logical id of the Patient resource, for example 'Patient/123546'

Time Stamp: effective[x]

PHDs report time stamps in one of four methods and may not report time stamps at all. The time clock types are summarized below:

Time Stamp Type Description PHD requirent PHG conversion
Absolute Time Local Wall clock time without time zone information PHD must provide its current absolute time PHG maps UTC plus offset and may correct it as described in the section Coincident Time Stamp
Base-Offset Time Time as UTC plus time added in minutes to get the local time PHD must provide its current base-offset time PHG maps UTC plus offset and may correct it as described in the section Coincident Time Stamp
Relative time The number of ticks in units of 1/8th millisecond PHD must provide its current relative time PHD obtains the current relative time at its current time and maps all measurement times to UTC plus offset based upon the difference given by the current relative time
Hi-Resolution Relative time The number of ticks in units of microseconds PHD must provide its current hi-res time PHD obtains the current hi-res relative time at its current time and maps all measurement times to UTC plus offset based upon the difference given by the current relative time
No time stamp PHG uses time of reception as UTC plus offset

The PHG maps the 'converted' time stamp to either an Observation.effectiveDateTime element or an Observation.effectivePeriod element. The second situation occurs when the metric measurement includes a Measurement-Active-Period (duration) attribute. Then the time stamp attribute gives the start of the period and the end of the period is obtained by adding the Measurement-Active-Period value to it. If no time stamp is provided, the PHG, using the time of reception of the measurement as its time stamp must then do the reverse; the time of reception is the end time and the start time is given by subtracting the Measurement-Active-Period value from it.

Device

The Observation.device element is a reference to the DeviceComponent representing the PHD that took the measurement. Note that such a reference is only available in post 3.0.1 versions of the FHIR specification. In versions 3.0.1 and earlier, the Observation can only point to the DeviceComponent via a DeviceMetric resource. In these versions of the Continua mapping, a dummy DeviceMetric object containing no useful information except the pointer is used to satisfy the specification. In that case, the Observation.device points to the DeviceMetric which, in turn, points to the DeviceComponent representing the PHD.

This element references Observation resources that are in some manner related to this Observation resource. In the PHD use case, this situation occurs whenever the metric measurement reported by the PHD has a time stamp and/or the measurement contains a source handle reference.

Time Stamp case

When the metric measurement contains a time stamp, there will be a Coicident Time Stamp Observation defining the details of how the Observtion.effective[x] element is generated.

Source-Handle-Reference case

A Source-Handle-Reference attribute points to a previously reported measurement that is important to this measurement. By previously it is meant that the measurement is reported prior to the current measurement but in the same connection. If multiple such measurements have been received, the correct one is that which is most recently received. As an example, the cardiovascular specialization defines a session measurement defining some type of excercise period, such as a run. All measurements taken during that run have a source handle reference attribute pointing to the session measurement. Since Source-Handle-Reference attributes use IEEE 11073 Object handle values and not Logical resource ids to point to measurements, the PHG will need to keep track of the Observation resources created during a connnection in order to identify the correct Observation resource, and thus logical id, the Source-Handle-Reference attribute points to. The latest version of the IEEE 11073 20601 standard also supports a Source-Handle-Reference-List containing a list of handles so there can be more than one entry generated due to these attributes.

Components

Component elements are used whenever the metric measurement contains additional information attributes that further describe the measurement. There are four such attributes that can be reported by all three types of metric measurements; the Supplemental-Types, Relative-Time, Hi-Res-Relative-Time, and Measurement-Status.

Supplemental Types

The Supplemental Types attribute contains a list of one or more partition-term code pairs. These define MDC codes that describe some property of the measurement. There will be one component element for each entry pair in the list. For example, the code MDC_MODALITY_SPOT used in the pulse oximeter specialization indicates that the measurement reported is a stable average. In contrast there is MDC_MODALITY_FAST and MDC_MODALITY_SLOW. The component elements are as populated as follows:

Observation.component element entry Additional Information
.code.coding.code 68193 This is the MDC code for the Supplemental Types attribute
.code.coding.system urn:iso:std:iso:11073:10101 Indicates the MDC coding system
.code.coding.display optional but Should contain the reference id MDC_ATTR_SUPPLEMENTAL_TYPES along with any other additional text
.valueCodeableConcept.coding.system urn:iso:std:iso:11073:10101 Indicates the MDC coding system
.valueCodeableConcept.coding.code the 32-bit MDC code (partition) * 216 + term code
.valueCodeableConcept.coding.display optional but Should contain the reference id for the reported code along with any other additional text

Relative Time Stamp

The Relative-Time-Stamp attribute contains the time stamp of the measurement in units of ticks where each tick is 1/8th of a millisecond. When mapped to FHIR, it is converted to microseconds (multiplied by 125). This attribute is reported as a means to audit the derivation of the Observation.effective[x] time stamp value. The component element is mapped as follows:

Observation.component element entry Additional Information
.code.coding.code 67985 This is the MDC code for the Relative-Time-Stamp attribute
.code.coding.system urn:iso:std:iso:11073:10101 Indicates the MDC coding system
.code.coding.display optional but Should contain the reference id MDC_ATTR_TIME_STAMP_REL along with any other additional text
.valueQuantity.value the value This is relative time value scaled to microseconds
.valueQuantity.unit optional but Should contain the UCUM string 'us' for microseconds
.valueQuantity.system urn:iso:std:iso:11073:10101 Indicates the MDC coding system
.valueQuantity.code shall be the code 264339 for microseconds

High Resolution Relative Time Stamp

The Hi-Res-Relative-Time-Stamp attribute contains the time stamp of the measurement in units of ticks where each tick is a microsecond. This attribute is reported as a means to audit the derivation of the Observation.effective[x] time stamp value. The component element is mapped as follows:

Observation.component element entry Additional Information
.code.coding.code 68073 This is the MDC code for the Relative-Time-Stamp attribute
.code.coding.system urn:iso:std:iso:11073:10101 Indicates the MDC coding system
.code.coding.display optional but Should contain the reference id MDC_ATTR_TIME_STAMP_REL_HI_RES along with any other additional text
.valueQuantity.value the value This is relative time value scaled to microseconds
.valueQuantity.unit optional but Should contain the UCUM string 'us' for microseconds
.valueQuantity.system urn:iso:std:iso:11073:10101 Indicates the MDC coding system
.valueQuantity.code shall be the code 264339 for microseconds

Measurement Status

The Measurement Status attribute is an ASN.1 16-BITs measurement. It contains up to 16 event conditions indicating the status of the measurement. The reason this attribute is encoded into FHIR is that FHIR does not support all the status conditions reported by this attribute. The attribute reports one or more of the following conditions in the indicated Mder bit position:

  • invalid(0),
  • questionable(1),
  • not-available(2),
  • calibration-ongoing(3),
  • test-data(4),
  • demo-data(5),
  • validated-data(8)
  • early-indication(9)
  • msmt-ongoing(10),
  • msmt-value-exceed-boundaries(14),
  • msmt-state-ann-inhibited(15)

FHIR supports the 'invalid', 'not-available', and 'early-indication' conditions in the Observation.dataAbsentReason and Observation.status element. When these conditions are indicated, the Observation.dataAbsentReason and Observation.status elements shall be populated as indicated. The various Measurement-Status events are mapped as follows:

status Mder bit ASN1 name Observation element
0 invalid dataAbsentReason.coding.code="error"
1 questionable a component for measurement status
2 not-available dataAbsentReason.coding.code="unknown"
3 calibration-ongoing a component for measurement status
4 test-data a component for measurement status
5 demo-data dataAbsentReason.coding.code="unknown"
8 validated-data a component for measurement status
9 early-indication status="preliminary"
10 msmt-ongoing a component for measurement status
14 msmt-value-exceed-boundaries a component for measurement status
15 msmt-state-ann-inhibited a component for measurement status

In those cases where the condition can be mapped to FHIR, this attribute does not need to be reported but may be reported in a component. The remaining conditions are not supported in FHIR and are reported in a component.

For a given Mder bit m, the component elements are as populated as follows:

Observation.component element entry Additional Information
.code.coding.code 67911.m This is the ASN1 code for the Measurement-Status attribute bit m
.code.coding.system http://hl7.org/fhir/IEEE.ASN1 Indicates the ASN1 coding system
.code.coding.display optional but Should contain the ASN1 name for bit m along with any other additional text
.valueCodeableConcept.coding.system http://hl7.org/fhir/v2/0136 Indicates the V2 binary coding system
.valueCodeableConcept.coding.code Y/N Y = bit set, N = bit cleared