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 Coincident Time Stamp Observation Profile is used to compare the timelines of the PHD with the timeline of the PHG. The primary elements are the Observation.effectiveDateTime which has the current time of the PHG and the Observation.valueDateTime or Observation.valueQuantity which has the current time of the PHD. The valueDateTime is used when the PHD uses either an Absolute or Base-Offset time clock and the valueQuantity is used when the PHD uses a relative time clock. The PHG reports its current time at the time it reads the current time of the PHD. For more details on the interpretation of the Coincident Time Stamp see the section Coincident Time Stamp.
A Phd Observtion will always reference a Coincident Time Stamp Observation if the measurement reported from the PHD contains a time stamp. It will not reference a Coincident Time Stamp Observation if the measurement contains no time stamp.
If a PHD has its time clock altered, a Date-Time-Adjustment attribute is sent to the PHG. The attribute can come in a live measurement or be part of the PM Segment information in perisitently stored data. When a Date-Time-Adjustment occurs, a new Coincident Time Stamp Observation is generated and all effected data will reference the new Coincident Time Stamp Observation.
The Structure Definition for the Phd Coincident Time Stamp Observation Profile is as follows:
Name | Flags | Card. | Type | |
---|---|---|---|---|
Observation | Observation | Definition: The PhdCoincidentTimeStampObservation reports the current time of the PHD sensor at the current time of the PHG. Used to record the correction the PHG applied to the PHD measurement time stamps (if any) and to be able to recover the original time stamps reported by the PHD should that be needed. | ||
meta | 1.. | Comments: Implementations must indicate the PhdCoincidentTimeStampObservation profile this resource adheres to. | ||
profile | 1.. | Definition: A list of profiles (references to StructureDefinition resources) that this resource claims to conform to. The URL is a reference to StructureDefinition.url. At least one entry must be PhdCoincidentTimeStampObservation Unordered, Open, by PhdCoincidentTimeStampObservation(Value) | ||
phdProfile | 1..1 | Fixed Value | Fixed Value: PhdCoincidentTimeStampObservation | |
status | Fixed Value | Definition: The status of the result value. Always 'final' The value shall be set to 'final' final | ||
code | ||||
coding | 1.. | Sliced: Ordered, Open, by system(Value) | ||
11073Type | 1..1 | Short description: The 11073-10101 code for the type of time clock used by the PHD Comments:PHDs use one of absolute time, base offset time, relative time, or high resolution relative time. | ||
system | 1.. | Fixed Value | Fixed Value: urn:iso:std:iso:11073:10101 | |
code | 1.. | Comments: The code for absolute time is 67975 with reference id MDC_ATTR_TIME_ABS, for base offset time is 68226 with reference id MDC_ATTR_TIME_BO, for relative time is 67983 with reference id MDC_ATTR_TIME_REL, and for high resolution relative time is 68072 with reference id MDC_ATTR_TIME_REL_HI_RES. | ||
subject | 1.. | |||
reference | 1.. | |||
effectiveDateTime | dateTime | Definition: The time of the PHG at the time the current time of the PHD is ascertained. This element is absent if the PHD has superior time synchronization relative to the PHG. Wnen this element is absent it indicates that the PHG reported the measurement time stamps of the PHD without modification. | ||
value[x] | Definition: The current time reported by the PHD unless there is a time fault in which case this element is absent and the dataAbsentReason indicates 'unknown' The primary reason for the coincident time stamp is to know the details of any time stamp corrections the PHG may have applied. This observation is a measurement of the PHDs current time at the current time of the PHG and is present to allow a comparison and auditing. PHGs are responsible for assuring the measurement time stamps are correctly aligned to UTC and local offset. If the PHD has superior time synchronization than the PHG (very rare with PHDs) only the current time of the PHD is shown and the effectiveDateTime element is absent. If the PHD has a time fault (the current time line of the PHD cannot be ascertained for the measurements uploaded) the value[x] element is absent. If the PHD reports no time stanps in its measurements, this resource is not needed. Unordered, Open, by system(Exists) | |||
dateTimeValue | dateTime | Definition: This reports the current time of the PHD when the real time clock uses either absolute time or base offset time | ||
relativeTimeValue | Quantity | Data Type | ||
value | 1.. | Definition: The current relative or high resolution relative time reported by the PHD scaled to units of microseconds. The current relative time forms the 'origin' of the time axis allowing the PHG to convert the PHD's relative time stamps to wall-clock time. The PHG knows the current wall clock time at this current relative time. Any measurement relative time stamp can be converted to wall clock time by subtracting this value from the measurement relative time stamp and adding that to the current wall-clock time recorded at the 'origin' relative time. | ||
unit | Definition: A human-readable form of the unit. This should be the UCUM code 'us' for microseconds. | |||
system | 1.. | Fixed Value | Definition: Identifies the MDC coding system urn:iso:std:iso:11073:10101 | |
code | 1.. | Fixed Value | Definition: The 32-bit 11073 10101 code for microseconds which is 264339. The 11073-10101 code is used as this comes from the device. This usage allows gateways responsible for translating device measurements to FHIR to handle future specializations they may introduce new codes. If a translation to another coding system is done instead, that gateway would not be able to process the measurement. 264339 | |
dataAbsentReason | Definition: In this profile this element indicates that the current time of the PHD for the measurements reported is not known and is unable to be obtained This situation arises when the PHD has a time fault, perhaps by battery change. The sensor device may have stored data with time stamps taken at a time when the clock was running but after the fault the original time line was not able to be recovered. Thus the current time line, if any, has an unknown relationship to the previous time line. | |||
coding | 1..1 | |||
system | 1.. | Fixed Value | Fixed Value: http://hl7.org/fhir/data-absent-reason | |
code | 1.. | Fixed Value | Fixed Value: unknown | |
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 reference points to the DeviceComponent resource chain containing information about the sensor device that took the measurement and gateway (if any) that handled it. |
The code element is used to report the type of time clock used by the PHD. The PHG obtains the type of time clock and its current setting by reading the MDS attributes. There are four types of clocks as follows:
Attribute | Type of clock | Description | FHIR mapping |
---|---|---|---|
Date-and-Time | Absolute time | Wall-clock time with offset to UTC | Observation.code.coding.code = 67975 |
Base-Offset-Time | Base offset time | Wall-clock time with offset to some base time, often UTC | Observation.code.coding.code = 68226 |
Relative-Time | relative time | a sequence of ticks with 1/8th millisecond resolution | Observation.code.coding.code = 67983 |
HiRes-Relative-Time | relative time | a sequence of ticks with microsecond resolution | Observation.code.coding.code = 68072 |
The subject element points to the PhdPatient resource using the logical id of the Patient resource, for example 'Patient/123546'
The PHG is required to have the capability to report local time and offset to UTC. The PHG records its current time in the Observation.effectiveDateTime element regardless of the type of time clock used by the PHD unless the PHD has superior time synchronization than the PHG see the section Coincident Time Stamp on this topic. In that case, the Observation.effective[x] element is not populated.
If the PHD uses an Absolute or Base-Offset time clock, the current time of the PHD is reported in an Observation.valueDateTime element. FHIR requires the presence of an offset to UTC so if the PHD uses an absolute time, the PHG adds its offset to the value. Since all PHDs currently use local transports, the PHD and PHG are logically in the same time zone and thus have the same offset to UTC.
If the PHD uses a relative time clock the current tick time is reported in an Observation.valueQuantity element scaled to microseconds.
If the PHD has a time fault, the Observation.value[x] element is absent and an Observation.dataAbsentReason.coding.code element is present with the code "unknown". A time fault is reported if the PHD itself indicates a time fault or the PHD uses a time stamp in its measurements but does not report its current time.
Attribute | FHIR mapping |
---|---|
Date-and-Time.value | Observation.valueDateTime |
Base-Offset-Time.value | Observation.valueDateTime |
Relative-Time.value | Observation.valueQuantity.value = Relative-Time.value * 125 |
HiRes-Relative-Time.value | Observation.valueQuantity.value = HiRes-Relative-Time.value |
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.
There is no additional information reported in component elements in this profile.
The following JSON example is the Coincident Time Stamp Observation associated with a Blood Pressure measurement.
{ "resourceType":"Observation", "meta":{ "profile": [ "http: //pchalliance.org/phdfhir/StructureDefinition/PhdCoincidentTimeStampObservation" ] }, "status":"final", "code":{ "coding": [ { "system":"urn:iso:std:iso:11073:10101", "code":"67975", "display":"MDC_ATTR_TIME_ABS" } ] }, "subject":{ "reference":"Patient/PatientId-sisansarahId" }, "effectiveDateTime":"2017-12-12T09:13:39-05:00", // If the effectiveDateTime is absent, it means that the PHD has superior // time synchronization than the PHG. All reported times stamps are then taken directly from // the PHD and reported in the metric Observations unmodified. To date there are no PHDs that // have external synchronization "valueDateTime":"2017-12-12T09:13:39-05:00", // If the value[x] element is absent, it means that the PHD has experienced // a time fault or is non-compliant by reporting a time stamp but no current time. All reported // times stamps are then taken directly from the PHD and reported in the metric Observations // unmodified. However, the time stamps are not reliable. // A consumer of this resource can restore the original time reported by the PHD // by taking (effectiveDateTime - valueDateTime) and subtracting it from the time stamp reported in // times stamps are then taken directly from the PHD and reported in the metric Observations // the metric Observation. If there is a valueQuantity element for the PHD time, the PHD uses // a relative time stamp. One can use a similar approach to find the relative time sent by the PHD // but the value is already reported in a component element of the metric Observation "device":{ "reference":"DeviceComponent/SysId-01040302f0000000" } }