Personal Health Device Implementation Guide
2.0.0-ballot2 - STU 2 - Ballot International flag

This page is part of the Personal Health Device FHIR IG (v2.0.0-ballot2: STU 2 Ballot) based on FHIR (HL7® FHIR® Standard) R4. This version is a pre-release. The current official version is 1.1.0. For a full list of available versions, see the Directory of published versions

Resource Profile: PhdCoincidentTimeStampObservation

Official URL: http://hl7.org/fhir/uv/phd/StructureDefinition/PhdCoincidentTimeStampObservation Version: 2.0.0-ballot2
Standards status: Trial-use Maturity Level: 1 Computable Name: PhdCoincidentTimeStampObservation

Observations containing a coincident timestamp.

The Coincident Timestamp 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 time of the PHG at the moment of generating the observation, and the Observation.valueDateTime or Observation.valueQuantity, which has the corresponding time of the PHD. The valueDateTime is used when the PHD uses a time-of-day clock, and the valueQuantity is used when the PHD uses a tick counter (relative time). The PHG reports its current time at the time it reads the (current) time of the PHD.

In remote patient monitoring, data can arrive from any location on the planet. Given that PHDs can be unsynchronized, have time clocks set by the user, default factory times, or no time clock at all, providing accurate timestamps in the Observation resources is a challenge. The Coincident Timestamp Observation provides a mechanism to report the PHD clock status and links it to the timeline of the PHG.

For more details on the interpretation of the Coincident Timestamp, see the notes section below.

A PHD Observation may reference a Coincident Timestamp Observation if the measurement reported from the PHD contains a timestamp and is from the current timeline of the PHD and needed correction. It will not reference a Coincident Timestamp Observation if the measurement reported from the PHD contains no timestamp or is from an older timeline after which a time adjustment occurred.

A Coincident Timestamp Observation is created for every connection between PHG and PHD, so data duplication is not an issue. Therefore, the conditional create identifier element is not used in this profile.

If a PHD has its time clock altered during a connection, a new Coincident Timestamp Observation is generated, and all data sent after the adjustment will reference the new Coincident Timestamp Observation.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code registered | preliminary | final | amended +
Binding: ObservationStatus (required): Codes providing the status of an observation.
Fixed Value: final
.... Slices for coding Σ 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:$this
..... coding:MDCType Σ 1..1 Coding The type of time clock used by the PHD
Binding: MDC Clock Types (required)
... subject Σ 1..1 Reference(PhdDevice) Reference to the PHD device for which the coincident timestamp measurement is reported
.... reference ΣC 1..1 string Literal reference, Relative, internal or absolute URL
... effective[x] Σ 0..1 The current time of the PHG at the current time of the PHD. Absent if PHD is better synchronized
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effectiveTiming Timing
.... effectiveInstant instant
... value[x] ΣC 0..1 The current time of the PHD as a wallclock time (dateTime), relative time (Quantity), or if a time fault a dataAbsentReason
.... valueQuantity Quantity
.... valueDateTime dateTime
... device 1..1 Reference(PhgDevice) (Measurement) Device
.... reference ΣC 1..1 string Reference to the PHG device responsible for the coincident timestamp measurement
... Slices for component Σ 0..* BackboneElement Component results
Slice: Unordered, Open by value:code
.... component:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
.... component:clockSyncMethod Σ 0..1 BackboneElement Clock Synchronization Method: The method used to synchronize the clock.
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... coding 1..* Coding Code defined by a terminology system
Fixed Value: (Complex)
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
....... system 1..1 uri Identity of the terminology system
Fixed Value: urn:iso:std:iso:11073:10101
....... version 0..1 string Version of the system - if relevant
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: 68220
....... display 0..1 string Representation defined by the system
....... userSelected 0..1 boolean If this coding was chosen directly by the user
...... text 0..1 string Plain text representation of the concept
..... Slices for value[x] Σ 0..1 Actual component result
Slice: Unordered, Open by type:$this
...... valueQuantity Quantity
...... valueCodeableConcept CodeableConcept
...... valueString string
...... valueBoolean boolean
...... valueInteger integer
...... valueRange Range
...... valueRatio Ratio
...... valueSampledData SampledData
...... valueTime time
...... valueDateTime dateTime
...... valuePeriod Period
...... value[x]:valueCodeableConcept Σ 0..1 CodeableConcept The clock synchronization method last used by the PHD/PHG to synchronize the clock of the PHD
Binding: MDC Time Synchronization Methods (extensible)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Observation.statusrequiredFixed Value: final
http://hl7.org/fhir/ValueSet/observation-status|4.0.1
From the FHIR Standard
Observation.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.code.coding:MDCTyperequiredMDCClockTypes
http://hl7.org/fhir/uv/phd/ValueSet/MDCClockTypes
From this IG
Observation.component.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component:clockSyncMethod.codeexamplePattern Value: 68220
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component:clockSyncMethod.value[x]:valueCodeableConceptextensibleMDCTimeSyncMethods
http://hl7.org/fhir/uv/phd/ValueSet/MDCTimeSyncMethods
From this IG

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation 0..* Observation Measurements and simple assertions
... status 1..1 code registered | preliminary | final | amended +
Fixed Value: final
... code
.... Slices for coding 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:$this
..... coding:MDCType 1..1 Coding The type of time clock used by the PHD
Binding: MDC Clock Types (required)
... subject 1..1 Reference(PhdDevice) Reference to the PHD device for which the coincident timestamp measurement is reported
.... reference 1..1 string Literal reference, Relative, internal or absolute URL
... effective[x] 0..1 dateTime, Period, Timing, instant The current time of the PHG at the current time of the PHD. Absent if PHD is better synchronized
... value[x] 0..1 The current time of the PHD as a wallclock time (dateTime), relative time (Quantity), or if a time fault a dataAbsentReason
.... valueQuantity Quantity
.... valueDateTime dateTime
... dataAbsentReason
.... Slices for coding 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:$this
..... coding:TimeFault 0..1 Coding Time Fault: The PHD has a time fault
Required Pattern: At least the following
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/data-absent-reason
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: unknown
... specimen 0..0
... device 1..1 Reference(PhgDevice) (Measurement) Device
.... reference 1..1 string Reference to the PHG device responsible for the coincident timestamp measurement
... hasMember 0..0
... derivedFrom 0..0
... Slices for component 0..* BackboneElement Component results
Slice: Unordered, Open by value:code
.... component:clockSyncMethod 0..1 BackboneElement Clock Synchronization Method: The method used to synchronize the clock.
..... code 1..1 CodeableConcept Type of component observation (code / type)
Required Pattern: At least the following
...... coding 1..* Coding Code defined by a terminology system
Fixed Value: (Complex)
....... system 1..1 uri Identity of the terminology system
Fixed Value: urn:iso:std:iso:11073:10101
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: 68220
..... Slices for value[x] 0..1 Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period Actual component result
Slice: Unordered, Open by type:$this
...... value[x]:valueCodeableConcept 0..1 CodeableConcept The clock synchronization method last used by the PHD/PHG to synchronize the clock of the PHD
Binding: MDC Time Synchronization Methods (extensible)
..... dataAbsentReason 0..0

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Observation.code.coding:MDCTyperequiredMDCClockTypes
http://hl7.org/fhir/uv/phd/ValueSet/MDCClockTypes
From this IG
Observation.component:clockSyncMethod.value[x]:valueCodeableConceptextensibleMDCTimeSyncMethods
http://hl7.org/fhir/uv/phd/ValueSet/MDCTimeSyncMethods
From this IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Business Identifier for observation
... basedOn Σ 0..* Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) Fulfills plan, proposal or order
... partOf Σ 0..* Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) Part of referenced event
... status ?!Σ 1..1 code registered | preliminary | final | amended +
Binding: ObservationStatus (required): Codes providing the status of an observation.
Fixed Value: final
... category 0..* CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
... code Σ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:$this
..... coding:MDCType Σ 1..1 Coding The type of time clock used by the PHD
Binding: MDC Clock Types (required)
.... text Σ 0..1 string Plain text representation of the concept
... subject Σ 1..1 Reference(PhdDevice) Reference to the PHD device for which the coincident timestamp measurement is reported
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣC 1..1 string Literal reference, Relative, internal or absolute URL
.... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
.... identifier Σ 0..1 Identifier Logical reference, when literal reference is not known
.... display Σ 0..1 string Text alternative for the resource
... encounter Σ 0..1 Reference(Encounter) Healthcare event during which this observation is made
... effective[x] Σ 0..1 The current time of the PHG at the current time of the PHD. Absent if PHD is better synchronized
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effectiveTiming Timing
.... effectiveInstant instant
... issued Σ 0..1 instant Date/Time this version was made available
... performer Σ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who is responsible for the observation
... value[x] ΣC 0..1 The current time of the PHD as a wallclock time (dateTime), relative time (Quantity), or if a time fault a dataAbsentReason
.... valueQuantity Quantity
.... valueDateTime dateTime
... dataAbsentReason C 0..1 CodeableConcept Why the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:$this
..... coding:TimeFault Σ 0..1 Coding Time Fault: The PHD has a time fault

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/data-absent-reason
...... version 0..1 string Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: unknown
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
... note 0..* Annotation Comments about the observation
... bodySite 0..1 CodeableConcept Observed body part
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
... method 0..1 CodeableConcept How it was done
Binding: ObservationMethods (example): Methods for simple observations.
... device 1..1 Reference(PhgDevice) (Measurement) Device
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣC 1..1 string Reference to the PHG device responsible for the coincident timestamp measurement
.... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
.... identifier Σ 0..1 Identifier Logical reference, when literal reference is not known
.... display Σ 0..1 string Text alternative for the resource
... referenceRange C 0..* BackboneElement Provides guide for interpretation
Constraints: obs-3
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... low C 0..1 SimpleQuantity Low Range, if relevant
.... high C 0..1 SimpleQuantity High Range, if relevant
.... type 0..1 CodeableConcept Reference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.
.... appliesTo 0..* CodeableConcept Reference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.
.... age 0..1 Range Applicable age range, if relevant
.... text 0..1 string Text based reference range in an observation
... Slices for component Σ 0..* BackboneElement Component results
Slice: Unordered, Open by value:code
.... component:All Slices Content/Rules for all slices
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
..... value[x] Σ 0..1 Actual component result
...... valueQuantity Quantity
...... valueCodeableConcept CodeableConcept
...... valueString string
...... valueBoolean boolean
...... valueInteger integer
...... valueRange Range
...... valueRatio Ratio
...... valueSampledData SampledData
...... valueTime time
...... valueDateTime dateTime
...... valuePeriod Period
..... dataAbsentReason C 0..1 CodeableConcept Why the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
..... interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
..... referenceRange 0..* See referenceRange (Observation) Provides guide for interpretation of component result
.... component:clockSyncMethod Σ 0..1 BackboneElement Clock Synchronization Method: The method used to synchronize the clock.
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... coding 1..* Coding Code defined by a terminology system
Fixed Value: (Complex)
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
....... system 1..1 uri Identity of the terminology system
Fixed Value: urn:iso:std:iso:11073:10101
....... version 0..1 string Version of the system - if relevant
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: 68220
....... display 0..1 string Representation defined by the system
....... userSelected 0..1 boolean If this coding was chosen directly by the user
...... text 0..1 string Plain text representation of the concept
..... Slices for value[x] Σ 0..1 Actual component result
Slice: Unordered, Open by type:$this
...... valueQuantity Quantity
...... valueCodeableConcept CodeableConcept
...... valueString string
...... valueBoolean boolean
...... valueInteger integer
...... valueRange Range
...... valueRatio Ratio
...... valueSampledData SampledData
...... valueTime time
...... valueDateTime dateTime
...... valuePeriod Period
...... value[x]:valueCodeableConcept Σ 0..1 CodeableConcept The clock synchronization method last used by the PHD/PHG to synchronize the clock of the PHD
Binding: MDC Time Synchronization Methods (extensible)
..... interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
..... referenceRange 0..* See referenceRange (Observation) Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Observation.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Observation.statusrequiredFixed Value: final
http://hl7.org/fhir/ValueSet/observation-status|4.0.1
From the FHIR Standard
Observation.categorypreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
From the FHIR Standard
Observation.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.code.coding:MDCTyperequiredMDCClockTypes
http://hl7.org/fhir/uv/phd/ValueSet/MDCClockTypes
From this IG
Observation.subject.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
From the FHIR Standard
Observation.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
From the FHIR Standard
Observation.bodySiteexampleSNOMEDCTBodyStructures
http://hl7.org/fhir/ValueSet/body-site
From the FHIR Standard
Observation.methodexampleObservationMethods
http://hl7.org/fhir/ValueSet/observation-methods
From the FHIR Standard
Observation.device.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
From the FHIR Standard
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
http://hl7.org/fhir/ValueSet/referencerange-meaning
From the FHIR Standard
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
http://hl7.org/fhir/ValueSet/referencerange-appliesto
From the FHIR Standard
Observation.component.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.component.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
From the FHIR Standard
Observation.component:clockSyncMethod.codeexamplePattern Value: 68220
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component:clockSyncMethod.value[x]:valueCodeableConceptextensibleMDCTimeSyncMethods
http://hl7.org/fhir/uv/phd/ValueSet/MDCTimeSyncMethods
From this IG
Observation.component:clockSyncMethod.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()

This structure is derived from Observation

Summary

Mandatory: 6 elements
Fixed: 1 element
Prohibited: 5 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Observation.code.coding
  • The element 1 is sliced based on the value of Observation.dataAbsentReason.coding
  • The element 1 is sliced based on the value of Observation.component
  • The element 1 is sliced based on the value of Observation.component.value[x]

Maturity: 1

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code registered | preliminary | final | amended +
Binding: ObservationStatus (required): Codes providing the status of an observation.
Fixed Value: final
.... Slices for coding Σ 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:$this
..... coding:MDCType Σ 1..1 Coding The type of time clock used by the PHD
Binding: MDC Clock Types (required)
... subject Σ 1..1 Reference(PhdDevice) Reference to the PHD device for which the coincident timestamp measurement is reported
.... reference ΣC 1..1 string Literal reference, Relative, internal or absolute URL
... effective[x] Σ 0..1 The current time of the PHG at the current time of the PHD. Absent if PHD is better synchronized
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effectiveTiming Timing
.... effectiveInstant instant
... value[x] ΣC 0..1 The current time of the PHD as a wallclock time (dateTime), relative time (Quantity), or if a time fault a dataAbsentReason
.... valueQuantity Quantity
.... valueDateTime dateTime
... device 1..1 Reference(PhgDevice) (Measurement) Device
.... reference ΣC 1..1 string Reference to the PHG device responsible for the coincident timestamp measurement
... Slices for component Σ 0..* BackboneElement Component results
Slice: Unordered, Open by value:code
.... component:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
.... component:clockSyncMethod Σ 0..1 BackboneElement Clock Synchronization Method: The method used to synchronize the clock.
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... coding 1..* Coding Code defined by a terminology system
Fixed Value: (Complex)
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
....... system 1..1 uri Identity of the terminology system
Fixed Value: urn:iso:std:iso:11073:10101
....... version 0..1 string Version of the system - if relevant
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: 68220
....... display 0..1 string Representation defined by the system
....... userSelected 0..1 boolean If this coding was chosen directly by the user
...... text 0..1 string Plain text representation of the concept
..... Slices for value[x] Σ 0..1 Actual component result
Slice: Unordered, Open by type:$this
...... valueQuantity Quantity
...... valueCodeableConcept CodeableConcept
...... valueString string
...... valueBoolean boolean
...... valueInteger integer
...... valueRange Range
...... valueRatio Ratio
...... valueSampledData SampledData
...... valueTime time
...... valueDateTime dateTime
...... valuePeriod Period
...... value[x]:valueCodeableConcept Σ 0..1 CodeableConcept The clock synchronization method last used by the PHD/PHG to synchronize the clock of the PHD
Binding: MDC Time Synchronization Methods (extensible)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Observation.statusrequiredFixed Value: final
http://hl7.org/fhir/ValueSet/observation-status|4.0.1
From the FHIR Standard
Observation.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.code.coding:MDCTyperequiredMDCClockTypes
http://hl7.org/fhir/uv/phd/ValueSet/MDCClockTypes
From this IG
Observation.component.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component:clockSyncMethod.codeexamplePattern Value: 68220
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component:clockSyncMethod.value[x]:valueCodeableConceptextensibleMDCTimeSyncMethods
http://hl7.org/fhir/uv/phd/ValueSet/MDCTimeSyncMethods
From this IG

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()

Differential View

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation 0..* Observation Measurements and simple assertions
... status 1..1 code registered | preliminary | final | amended +
Fixed Value: final
... code
.... Slices for coding 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:$this
..... coding:MDCType 1..1 Coding The type of time clock used by the PHD
Binding: MDC Clock Types (required)
... subject 1..1 Reference(PhdDevice) Reference to the PHD device for which the coincident timestamp measurement is reported
.... reference 1..1 string Literal reference, Relative, internal or absolute URL
... effective[x] 0..1 dateTime, Period, Timing, instant The current time of the PHG at the current time of the PHD. Absent if PHD is better synchronized
... value[x] 0..1 The current time of the PHD as a wallclock time (dateTime), relative time (Quantity), or if a time fault a dataAbsentReason
.... valueQuantity Quantity
.... valueDateTime dateTime
... dataAbsentReason
.... Slices for coding 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:$this
..... coding:TimeFault 0..1 Coding Time Fault: The PHD has a time fault
Required Pattern: At least the following
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/data-absent-reason
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: unknown
... specimen 0..0
... device 1..1 Reference(PhgDevice) (Measurement) Device
.... reference 1..1 string Reference to the PHG device responsible for the coincident timestamp measurement
... hasMember 0..0
... derivedFrom 0..0
... Slices for component 0..* BackboneElement Component results
Slice: Unordered, Open by value:code
.... component:clockSyncMethod 0..1 BackboneElement Clock Synchronization Method: The method used to synchronize the clock.
..... code 1..1 CodeableConcept Type of component observation (code / type)
Required Pattern: At least the following
...... coding 1..* Coding Code defined by a terminology system
Fixed Value: (Complex)
....... system 1..1 uri Identity of the terminology system
Fixed Value: urn:iso:std:iso:11073:10101
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: 68220
..... Slices for value[x] 0..1 Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period Actual component result
Slice: Unordered, Open by type:$this
...... value[x]:valueCodeableConcept 0..1 CodeableConcept The clock synchronization method last used by the PHD/PHG to synchronize the clock of the PHD
Binding: MDC Time Synchronization Methods (extensible)
..... dataAbsentReason 0..0

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Observation.code.coding:MDCTyperequiredMDCClockTypes
http://hl7.org/fhir/uv/phd/ValueSet/MDCClockTypes
From this IG
Observation.component:clockSyncMethod.value[x]:valueCodeableConceptextensibleMDCTimeSyncMethods
http://hl7.org/fhir/uv/phd/ValueSet/MDCTimeSyncMethods
From this IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Business Identifier for observation
... basedOn Σ 0..* Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) Fulfills plan, proposal or order
... partOf Σ 0..* Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) Part of referenced event
... status ?!Σ 1..1 code registered | preliminary | final | amended +
Binding: ObservationStatus (required): Codes providing the status of an observation.
Fixed Value: final
... category 0..* CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
... code Σ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:$this
..... coding:MDCType Σ 1..1 Coding The type of time clock used by the PHD
Binding: MDC Clock Types (required)
.... text Σ 0..1 string Plain text representation of the concept
... subject Σ 1..1 Reference(PhdDevice) Reference to the PHD device for which the coincident timestamp measurement is reported
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣC 1..1 string Literal reference, Relative, internal or absolute URL
.... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
.... identifier Σ 0..1 Identifier Logical reference, when literal reference is not known
.... display Σ 0..1 string Text alternative for the resource
... encounter Σ 0..1 Reference(Encounter) Healthcare event during which this observation is made
... effective[x] Σ 0..1 The current time of the PHG at the current time of the PHD. Absent if PHD is better synchronized
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effectiveTiming Timing
.... effectiveInstant instant
... issued Σ 0..1 instant Date/Time this version was made available
... performer Σ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who is responsible for the observation
... value[x] ΣC 0..1 The current time of the PHD as a wallclock time (dateTime), relative time (Quantity), or if a time fault a dataAbsentReason
.... valueQuantity Quantity
.... valueDateTime dateTime
... dataAbsentReason C 0..1 CodeableConcept Why the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:$this
..... coding:TimeFault Σ 0..1 Coding Time Fault: The PHD has a time fault

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/data-absent-reason
...... version 0..1 string Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: unknown
...... display 0..1 string Representation defined by the system
...... userSelected 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
... note 0..* Annotation Comments about the observation
... bodySite 0..1 CodeableConcept Observed body part
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
... method 0..1 CodeableConcept How it was done
Binding: ObservationMethods (example): Methods for simple observations.
... device 1..1 Reference(PhgDevice) (Measurement) Device
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣC 1..1 string Reference to the PHG device responsible for the coincident timestamp measurement
.... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
.... identifier Σ 0..1 Identifier Logical reference, when literal reference is not known
.... display Σ 0..1 string Text alternative for the resource
... referenceRange C 0..* BackboneElement Provides guide for interpretation
Constraints: obs-3
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... low C 0..1 SimpleQuantity Low Range, if relevant
.... high C 0..1 SimpleQuantity High Range, if relevant
.... type 0..1 CodeableConcept Reference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.
.... appliesTo 0..* CodeableConcept Reference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.
.... age 0..1 Range Applicable age range, if relevant
.... text 0..1 string Text based reference range in an observation
... Slices for component Σ 0..* BackboneElement Component results
Slice: Unordered, Open by value:code
.... component:All Slices Content/Rules for all slices
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
..... value[x] Σ 0..1 Actual component result
...... valueQuantity Quantity
...... valueCodeableConcept CodeableConcept
...... valueString string
...... valueBoolean boolean
...... valueInteger integer
...... valueRange Range
...... valueRatio Ratio
...... valueSampledData SampledData
...... valueTime time
...... valueDateTime dateTime
...... valuePeriod Period
..... dataAbsentReason C 0..1 CodeableConcept Why the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
..... interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
..... referenceRange 0..* See referenceRange (Observation) Provides guide for interpretation of component result
.... component:clockSyncMethod Σ 0..1 BackboneElement Clock Synchronization Method: The method used to synchronize the clock.
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... coding 1..* Coding Code defined by a terminology system
Fixed Value: (Complex)
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
....... system 1..1 uri Identity of the terminology system
Fixed Value: urn:iso:std:iso:11073:10101
....... version 0..1 string Version of the system - if relevant
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: 68220
....... display 0..1 string Representation defined by the system
....... userSelected 0..1 boolean If this coding was chosen directly by the user
...... text 0..1 string Plain text representation of the concept
..... Slices for value[x] Σ 0..1 Actual component result
Slice: Unordered, Open by type:$this
...... valueQuantity Quantity
...... valueCodeableConcept CodeableConcept
...... valueString string
...... valueBoolean boolean
...... valueInteger integer
...... valueRange Range
...... valueRatio Ratio
...... valueSampledData SampledData
...... valueTime time
...... valueDateTime dateTime
...... valuePeriod Period
...... value[x]:valueCodeableConcept Σ 0..1 CodeableConcept The clock synchronization method last used by the PHD/PHG to synchronize the clock of the PHD
Binding: MDC Time Synchronization Methods (extensible)
..... interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
..... referenceRange 0..* See referenceRange (Observation) Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Observation.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Observation.statusrequiredFixed Value: final
http://hl7.org/fhir/ValueSet/observation-status|4.0.1
From the FHIR Standard
Observation.categorypreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
From the FHIR Standard
Observation.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.code.coding:MDCTyperequiredMDCClockTypes
http://hl7.org/fhir/uv/phd/ValueSet/MDCClockTypes
From this IG
Observation.subject.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
From the FHIR Standard
Observation.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
From the FHIR Standard
Observation.bodySiteexampleSNOMEDCTBodyStructures
http://hl7.org/fhir/ValueSet/body-site
From the FHIR Standard
Observation.methodexampleObservationMethods
http://hl7.org/fhir/ValueSet/observation-methods
From the FHIR Standard
Observation.device.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
From the FHIR Standard
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
http://hl7.org/fhir/ValueSet/referencerange-meaning
From the FHIR Standard
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
http://hl7.org/fhir/ValueSet/referencerange-appliesto
From the FHIR Standard
Observation.component.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.component.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
From the FHIR Standard
Observation.component:clockSyncMethod.codeexamplePattern Value: 68220
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component:clockSyncMethod.value[x]:valueCodeableConceptextensibleMDCTimeSyncMethods
http://hl7.org/fhir/uv/phd/ValueSet/MDCTimeSyncMethods
From this IG
Observation.component:clockSyncMethod.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()

This structure is derived from Observation

Summary

Mandatory: 6 elements
Fixed: 1 element
Prohibited: 5 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Observation.code.coding
  • The element 1 is sliced based on the value of Observation.dataAbsentReason.coding
  • The element 1 is sliced based on the value of Observation.component
  • The element 1 is sliced based on the value of Observation.component.value[x]

Maturity: 1

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Further notes on elements and the use of the PhdCoincidentTimeObservation resource:

Code

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 inspecting the PHD's measurement timestamp and the PHD's clock. The ACOM clock types are mapped as follows:

ACOM clock type Observation.code.coding
Wall Clock with DST and Time Zone offset Mdc#68225
Wall Clock without DST and Time Zone offset Mdc#67975
Time counter Mdc#67983

PHG Current Time → Observation.effectiveDateTime

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. In that case, the Observation.effective[x] element is not populated.

PHD Current Time → Observation.value[x]

If the PHD uses a wall 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 does not provide that, the PHG adds its offset to the value. It is reasonable to assume that the PHD and PHG are in the same time zone and thus have the same offset to UTC. However, PHDs can be mobile, and if the PHD is reporting an offset, the offset reported by the PHD is used even if it is NOT the offset of the PHG.

If the PHD uses a time counter, the current tick time is reported in an Observation.valueQuantity element scaled to microseconds or milliseconds as appropriate for the resolution of the counter.

Mapping Tick Counters

PHDs may also use tick counters of a specified resolution that report a tick count or relative time. GHS supports resolutions of 1 second to 100 microseconds. With relative times, there is no check for which device is better synchronized. The PHG must always map the value to UTC plus offset. The PHD's current time is reported in the Observation.valueQuantity element scaled to the tick counter's resolution. This time provides the anchor time allowing the PHG to map the relative times reported in measurements to its own timeline in UTC plus offset format.

A relative timestamp value in a measurement is mapped to UTC plus offset by taking the difference between the measurement timestamp and the synchronization point's relative time. That difference is added to the synchronization point's UTC time plus offset.

PHD synchronization method → Observation.component.valueCodeableConcept

The PHD synchronization method is reported in the Observation.component.valueCodeableConcept element. The code is a code from the MDC Time Synchronization Methods value set. The synchronization method is present in the timestamps supported by GHS and ACOM.

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 when the PHD reports its clock is unsynchronized and when a PHD measurement indicates an unsynchronized clock.

Device

The Observation.device element is a reference to the Device resource representing the PHG that generated the coincident timestamp.

Logic to Report Coincident Timestamps

The PHG may use the following logic to report Coincident Timestamps and adjust PHD observation timestamps, assuming the PHD and PHG are in close proximity and share the same UTC time zone and DST offset:

Case 1: PHD Does Not Report Timestamps in Measurements

  • No Coincident Timestamp Observation is created for the measurement.
  • The PHG uses the time of reception as the measurement timestamp.

Case 2: PHD Measurement Reports a Timestamp Not from Its Current Timeline

  • The PHG reports its current time in the Coincident Timestamp Observation.effectiveDateTime element.
  • The Coincident Timestamp Observation.value[x] element is left empty.
  • The Coincident Timestamp dataAbsentReason is set to unknown.
  • If the PHD measurement timestamp contains a UTC or local time and reports being externally synchronized:
    • The PHG reports the PHD measurement timestamps, correcting only for time zone and DST offset as needed.
  • Otherwise:
    • If the PHD measurement timestamp reports a tick counter (relative time) or indicates it is not externally synchronized:
      • The PHG cannot produce a meaningful timestamp for the measurement.
      • The PHG either reports an observation without an effective[x] element or chooses not to report the observation.

Case 3: PHD Measurement Reports a Timestamp from Its Current Timeline

  • If the PHD measurement timestamp contains a UTC or local time and reports being externally synchronized:
    • If the PHG is better synchronized than the PHD:
      • The PHG's current time is reported in the Observation.effectiveDateTime element.
      • The PHD's current time is reported in the Observation.valueDateTime element.
      • The PHG adjusts the measurement timestamps from the PHD's current timeline by the difference.
    • If the PHD is better synchronized than the PHG:
      • The PHG's current time is not reported, leaving the Observation.effectiveDateTime element empty.
      • The PHD's current time is reported in the Observation.valueDateTime element.
      • The PHG reports the PHD measurement timestamps, correcting for time zone and DST offset as needed.
  • Otherwise:
    • If the PHD observation contains a tick counter (relative time) or is not externally synchronized:
      • The PHG's current time is reported in the Observation.effectiveDateTime element.
      • The PHD's corresponding time is reported in the Observation.valueDateTime or Observation.valueQuantity element.
      • The PHG maps the PHD measurement timestamp to its own timeline using the Coincident Timestamp as an anchor point.

Example

Suppose the PHG reads the current time of the PHD and finds it is six minutes behind its own time. If the PHG is better synchronized to NTP, it will add six minutes to all timestamps reported by the PHD on its current timeline.