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 Phd Base Observation profile contains the elements that are common to all Phd Observation profiles describing measurements. These element are:
The structure definition is given below:
Name | Flags | Card. | Type | |
---|---|---|---|---|
Observation | Observation | Comments: This variant on the Observation defines a base profile for the PHD Observation profiles. This profile is abstract and does not exist alone. | ||
identifier | Comments: For Phd Observations that require conditional creates the create selection criteria will be based upon the information placed in an identifier element. The information will uniquely represent the measurement content. How that information is generated is dependent upon the Phd Observation Profile. | |||
status | Definition: The status of the result value. Either 'final' or 'preliminary' The value shall be set to 'final' unless a Measurement-Status attribute or Nu-Observed-Value attribute status field indicates that the measurement is preliminary. In that case this field shall be set to 'preliminary' | |||
code | ||||
coding | 1.. | Sliced: Ordered, Open, by system(Value) | ||
11073Type | 1..1 | Short description: The 11073-10101 code for the measurement Comments:For non-compound 11073-20601 metric numeric measurements, this code is obtained from one or more of the Type, Metric-Id, Nu-Observed-Value, and Metric-Id-Partition attributes. The algorithm to get the 16-bit partition and 16-bit term code is as follows: 1. The partition and term code are obtained from the Type attribute. 2. If there is a Metric-Id attribute the term code comes from this attribute. 3. If there is a Nu-Observed-Value attribute the term code comes from this attribute. 4. If the term code is NOT from the Type attribute, and there is a Metric-Id-Partition attribute, the partition comes from this attribute. 5. The 32-bit 11073-10101 code value is given by partition * 2 **16 + term code. It is this value that is placed in the code.coding.code element for this 11073Type slice. For compound numeric measurements, the code comes from the Type attribute. | ||
system | 1.. | Fixed Value | Fixed Value: urn:iso:std:iso:11073:10101 | |
code | 1.. | |||
LoincCoding | ..1 | Comments: If the measurement is one of the magic vital signs, the Magic LOINC code for that vital sign as specified by FHIR appears here. When it occurs It shall be second after the MDC code. | ||
system | 1.. | Fixed Value | Fixed Value: http://loinc.org | |
code | 1.. | Comments: Required if the measurement is a vital sign | ||
subject | 1.. | |||
reference | 1.. | |||
effective[x] | 1.. | Definition: The time or time-period the observed value is asserted as being true. It is a time period if a Measure-Active-Period (duration) attribute is part of the metric measurement sent by the PHD. Otherwise it is the time stamp sent by the PHD or the time of reception by the PHG if the PHD sent no time stamp. Unordered, Open, by start(Exists) | ||
dateTimeEffective | dateTime | Comments: A date and time shall always be present. | ||
effectivePeriod | Period | Definition: The time period when there is a Measure-Active-Period attribute. The difference between the end and start fields is the value of the Measure-Active-Period. | ||
start | 1.. | |||
end | 1.. | Definition: The end of the period. It will be the value of the Measure-Active-Period plus the start time. | ||
device | 1.. | Comments: This field will reference the DeviceComponent when the updated fixes are in place. In the meantime it will reference the DeviceMetric | ||
reference | 1.. | Short description: Reference to the device responsible for the measurement Definition:Reference to the device-related resources that describe the sensor device taking the measurement and the gateway that handled it. This element will point to a DeviceComponent resource following the Phd Parent DeviceComponent Profile. This reference points to the DeviceComponent resource containing information about the sensor device that took the measurement and gateway (if any) that handled it. | ||
related | Sliced: Ordered, Open, by target.reference(Value) | |||
coincidentTimeStampRelated | Short description: Pointer to the Coincident Time Stamp Definition:A reference to the Coincident Time Stamp observation. The Coincident Time Stamp indicates how the time stamps from the PHD are corrected, if at all. This Observation allows one to re-create the original time stamp generated by the PHD should it have been modified by the PHG. This reference shall be present if the PHD reports a time stamp. The reference shall point to the Coincident Time Stamp observation. The Coincident Time Stamp Observation provides an audit of the time stamp. Whether or not the gateway corrected the time stamp can be determined from the elements in this Observation. If the timestamps were corrected, the elements of the Observation can be used to obtain the actual time stamps reported by the PHD. There is no reference to a Coincident Time Stamp Observation when the PHD does not report a time stamp. | |||
target | ||||
reference | 1.. | |||
SourceHandleReferenceRelated | Requirements: Points to a measurement that this measurement is related to or dependent upon, for example a BMI which is calculated from a weight and height measurement or a heart rate taken during a running session. A measurement may have one or more source handle references which point to measurements that this measurement is related to in some way. When one of these attributes are present in the measurement, these values point to other measurements. In this case these measurements will be previously generated Observation resources which are then referenced here. Note that the previously received measurement must be received in the same connection as the current measurement. The application does not need to keep record of all measurements from the given device! | |||
target | ||||
reference | 1.. | |||
component | Sliced: Unordered, Open, by code.coding.code(Value) | |||
supplementalTypesComponent | Definition: For each paritition:term code pair contained in the Supplemental-Types attribute, a separate supplementalTypesComponent element is generated. The component is not generated if the attribute is absent or empty. The component shall be generated otherwise. A PHD may send a Supplemental-Types attribute as part of the measurement. This attribute consists of a set of MDC nomenclature codes as partition:term code pairs. Each pair is a code describing something additional about the measurement, such as MDC_MODALITY_SPOT in the pulse oximeter which indicates that the provided meausrement is a stable average. An MDC_MODALITY_FAST would indicate that a short averaging is used and the result reported regardless of stability. | |||
code | ||||
coding | 1.. | Sliced: Ordered, Open, by system(Value) | ||
11073Type | 1..1 | |||
system | 1.. | Fixed Value | Fixed Value: urn:iso:std:iso:11073:10101 | |
code | 1.. | Fixed Value | Definition: 68193 is the 32-bit nomenclature code indicating a 'Supplemental-Types' value 68193 | |
display | Definition: It is recommended to display at least the reference identifier for the Supplemental-Types which is MDC_ATTR_SUPPLEMENTAL_TYPES | |||
valueCodeableConcept | 1.. | CodeableConcept | Definition: The information determined as a result of making the observation, if the information is a code. | |
coding | 1.. | Sliced: Ordered, Open, by system(Value) | ||
11073Value | 1..1 | |||
system | 1.. | Fixed Value | Fixed Value: urn:iso:std:iso:11073:10101 | |
code | 1.. | Definition: For the given Supplemental-Types entry the code here is given by: partition * 2**16 + term code | ||
dataAbsentReason | ..0 | |||
relativeTimeComponent | ..1 | Definition: This component shall be present if the measurement contains a Relative-Time-Stamp. Relative time stamps are converted to wall clock time by the PHG through the Coincident Time Stamp Observation. The original relative time value shall be provided here in order to recover the data sent by the sensor device. The Relative-Time-Stamp is a 32-bit unsigned integer in units of 1/8th ms. | ||
code | ||||
coding | 1.. | Sliced: Ordered, Open, by code(Value) | ||
11073Type | 1..1 | |||
system | 1.. | Fixed Value | Fixed Value: urn:iso:std:iso:11073:10101 | |
code | 1.. | Fixed Value | Definition: The MDC code of the Relative-Time-Stamp attribute 67985 | |
display | Definition: The reference identifier should be included in the description. For a Relative-Time-Stamp the ref id is MDC_ATTR_TIME_STAMP_REL | |||
valueQuantity | 1.. | Quantity | Data Type | |
value | 1.. | Definition: The value of the relative time attribute which is in units of 1/8th milliseconds scaled to microseconds. | ||
unit | 1.. | Definition: A human-readable form of the unit which in this case is recommended to be the UCUM code for microseconds (us) | ||
system | 1.. | Fixed Value | Definition: The unit code shall use the MDC system urn:iso:std:iso:11073:10101 | |
code | 1.. | Fixed Value | Definition: The MDC code for microseconds is 264339 264339 | |
dataAbsentReason | ..0 | |||
hiresRelativeTimeComponent | ..1 | Definition: This component shall be present if the measurement contains Hi-Res-Relative-Time-Stamp. Hi Res Relative time stamps are converted to wall clock time by the PHG through the Coincident Time Stamp Observation. The original relative time value shall be provided here in order to recover the data sent by the sensor device. The Hi-Res-Relative-Time-Stamp is a 64-bit unsigned interger in units of microseconds. | ||
code | ||||
coding | 1.. | Sliced: Ordered, Open, by code(Value) | ||
11073Type | 1..1 | |||
system | 1.. | Fixed Value | Fixed Value: urn:iso:std:iso:11073:10101 | |
code | 1.. | Fixed Value | Definition: The MDC code for the Hi-Res-Relative-Time-Stamp attribute 68073 | |
display | Definition: The reference identifier should be included in the description. For a Hi-Res-Relative-Time-Stamp the ref id is MDC_ATTR_TIME_STAMP_REL_HI_RES | |||
valueQuantity | 1.. | Quantity | Data Type | |
value | 1.. | Short description: Numerical value Definition:The value of the hi res relative time attribute (already in microseconds). | ||
unit | 1.. | Definition: A human-readable form of the unit which in this case is recommended to be the UCUM code for microseconds (us) | ||
system | 1.. | Fixed Value | Definition: The unit code shall use the MDC system urn:iso:std:iso:11073:10101 | |
code | 1.. | Fixed Value | Definition: The MDC code for microseconds is 264339 264339 | |
dataAbsentReason | ..0 | |||
measurementStatusComponent | Definition: This component gives one of the settings reported in the Measurement-Status attribute that are not reported in the Observation.dataAbsentReason or Observation.status element. The settings that ARE reported in the dataAbsentReason and status elements are 'invalid', 'questionable', 'not-available', and 'early-indication'. It is optional to report any of the other settings UNLESS MDER-BITs 14 or 15 are set. It is optional to report any defined cleared setting; these are all events. This component indicates a Measurement-Status setting. When MDER-BITs 14 and 15 are set, these are special uses cases by the Pulse Oximeter and Continuous Glucose specialization. MDER-BIT 14 indicates that a threshold set up in other attributes has been crossed. MDER-BIT 15 indicates that the alert mechanism has been turned off. There will be one measurementStatusComponent entry for every setting reported. | |||
code | ||||
coding | 1..1 | Comments: Normally alternative coding systems are allowed but in this case the value is intimately tied to the code. The code represents the feature indicated by a bit settin in the attribute value. which is either cleared (0) or set (1). Thus the value for this entry is itself a binary 'Y' or 'N' code from http://hl7.org/fhir/v2/0136 | ||
system | 1.. | Fixed Value | Fixed Value: http://hl7.org/fhir/IEEE.ASN1 | |
code | 1.. | Definition: This code, which is an alpha-numeric string, is generated by the attribute MDC code, which is 133447 for the Measurement-Status, followed by a dot (.) followed by the MDER-bit that was set. Note that this code is an alpha-numeric string and not a decimal number. Think of it like a very-limited OID. MDER-BITs 14 and 15 shall be reported if set. | ||
valueCodeableConcept | 1.. | CodeableConcept | Data Type | |
coding | 1..1 | |||
system | 1.. | Fixed Value | Definition: This coding system contains only two entries, 'Y' (yes) and 'N' (no) http://hl7.org/fhir/v2/0136 | |
code | 1.. | Definition: If the MDER-Bit is set, the code value is 'Y' otherwise it is 'N' Recall that when the value is 'Y' the alarm or alert is turned off | ||
dataAbsentReason | ..0 |
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.
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.
The subject element points to the PhdPatient resource using the logical id of the Patient resource, for example 'Patient/123546'
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.
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.
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.
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.
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.
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 |
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 |
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 |
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:
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 |