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

Personal Health Device Implementation Guide, published by HL7 International / Health Care Devices. This guide is not an authorized publication; it is the continuous build for version 2.0.0-ballot2 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/phd/ and changes regularly. See the Directory of published versions

Resource Profile: PhdBaseObservation ( Abstract )

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

Common base profile with the elements that are common to the PHD IG Observation profiles.

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

  • code: what the measurement is
  • subject: the patient this measurement refers to
  • effective[x]: the timestamp and perhaps duration of the measurement
  • device: reference to the PHD taking the measurement
  • derivedFrom / memberOf: references to related observations
  • components: contains any additional measurement descriptions (Supplemental Information)
  • category: a fixed value identifying observations generated by PHDs
  • measurementStatus: the status of the measurement
  • gatewayDevice extension: reference to the PHG responsible for generating the upload
  • coincidentTimestamp extension: reference to the coincidentTimestamp observation that relates PHD time and PHG time
  • performer: optional, when the patient is known to be the performer this may refer to the patient
  • identifier: the PHD conditional-create identifier for this measurement to avoid duplicate uploads

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 This is an abstract profile. Child profiles: PhdBitsEnumerationObservation, PhdCodedEnumerationObservation, PhdCompoundNumericObservation, PhdCompoundObservation, PhdNumericObservation, PhdRtsaObservation, PhdStringObservation
Measurements and simple assertions
Constraints: obs-6, obs-7
... id Σ 0..1 id Logical id of this artifact
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:GatewayDevice 1..1 (Complex) Gateway Device
URL: http://hl7.org/fhir/StructureDefinition/observation-gatewayDevice
..... extension 0..0
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/observation-gatewayDevice"
..... value[x] 1..1 Reference(PhgDevice) Reference to the PHG Device
.... extension:CoincidentTimeStamp 0..1 Reference(PhdCoincidentTimeStampObservation) Coincident Timestamp Reference
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/CoincidentTimeStampReference
... Slices for identifier Σ 0..* Identifier Business Identifier for observation
Slice: Unordered, Open by value:system
.... identifier:conditionalCreate Σ 0..1 Identifier Unique identifier of this measurement for a given patient and device
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: http://hl7.org/fhir/uv/phd/StructureDefinition/PhdBaseObservation
..... value Σ 1..1 string The value that is unique
Example General: 123456
... status ?!Σ 1..1 code registered | preliminary | final | amended +
Binding: ObservationStatus (required): Codes providing the status of an observation.
... Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by value:coding.code, value:coding.system
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
.... category:PHD-Observation 1..1 CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
..... coding Σ 1..* Coding Code defined by a terminology system
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/phd/CodeSystem/PhdObservationCategories
...... code Σ 1..1 code Symbol in syntax defined by the system
Fixed Value: phd
... code ΣC 1..1 CodeableConcept Type of observation (code / type)
Binding: MDC Non-Object codes (extensible)
Constraints: mdc-1
... subject Σ 1..1 Reference(Patient | PhdDevice) Reference to the patient or the PhdDevice that is the subject of the observation
... Slices for effective[x] Σ 1..1 Clinically relevant time/time-period for observation
Slice: Unordered, Closed by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime Σ 0..1 dateTime Clinically relevant time/time-period for observation
.... effective[x]:effectivePeriod Σ 0..1 Period Clinically relevant time/time-period for observation
..... start ΣC 0..1 dateTime Starting time with inclusive boundary
..... end ΣC 0..1 dateTime End time with inclusive boundary, if not ongoing
... value[x] ΣC 0..1 Actual 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 This element is populated when the Measurement Status indicates invalid, not available or measurement-ongoing.
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
.... coding Σ 0..* Coding Code defined by a terminology system
Binding: DataAbsentReason (required)
... interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
.... Slices for coding Σ 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:MsmtStatusInterpretation Σ 1..1 Coding Measurement status interpretation when questionable, calibration-ongoing, validated, early-indication, threshold exceeded, alarm inhibited
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/pocd/CodeSystem/measurement-status
...... code Σ 1..1 code Symbol in syntax defined by the system
... device 1..1 Reference(PhdDevice) (Measurement) Device
.... reference ΣC 1..1 string Reference to the device responsible for the measurement
... hasMember Σ 0..* Reference(PhdBaseObservation) Other PHD Observations that are part of this group observation.
... derivedFrom Σ 0..* Reference(PhdBaseObservation) A source the measurement data is derived from.
... 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:supplementalTypesComponent Σ 0..* BackboneElement Supplemental Type: A further description of the measurement type.
..... 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: 68193
....... 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
...... coding Σ 1..* Coding Code defined by a terminology system
....... 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: 68193
....... display Σ 0..1 string Representation defined by the system
..... value[x] Σ 0..1 CodeableConcept Actual component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Observation.identifier:conditionalCreate.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
From the FHIR Standard
Observation.statusrequiredObservationStatus
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.category:PHD-ObservationpreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
From the FHIR Standard
Observation.codeextensibleMDCnotObject
http://hl7.org/fhir/uv/phd/ValueSet/MDCnotObject
From this IG
Observation.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.dataAbsentReason.codingrequiredDataAbsentReason
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.component.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component:supplementalTypesComponent.codeexamplePattern Value: 68193
http://hl7.org/fhir/ValueSet/observation-codes
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()
mdc-1warningObservation.codeA published MDC Code is preferred but private MDC codes are allowed as well.
: coding.exists() and coding.where(system = 'urn:iso:std:iso:11073:10101').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 This is an abstract profile. Child profiles: PhdBitsEnumerationObservation, PhdCodedEnumerationObservation, PhdCompoundNumericObservation, PhdCompoundObservation, PhdNumericObservation, PhdRtsaObservation, PhdStringObservation
Measurements and simple assertions
... id 0..1 id Logical id of this artifact
... meta
.... Slices for security 0..* Coding Security Labels applied to this resource
Slice: Unordered, Open by value:system, value:code
..... security:PhdHtest 0..1 Coding Security value set to HTEST when measurement status indicates demo or test data
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActReason
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: HTEST
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:GatewayDevice 1..1 (Complex) Gateway Device
URL: http://hl7.org/fhir/StructureDefinition/observation-gatewayDevice
..... value[x] 1..1 Reference(PhgDevice) Reference to the PHG Device
.... extension:CoincidentTimeStamp 0..1 Reference(PhdCoincidentTimeStampObservation) Coincident Timestamp Reference
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/CoincidentTimeStampReference
.... identifier:conditionalCreate 0..1 Identifier Unique identifier of this measurement for a given patient and device
..... type 0..0
..... system 1..1 uri The namespace for the identifier value
Fixed Value: http://hl7.org/fhir/uv/phd/StructureDefinition/PhdBaseObservation
..... value 1..1 string The value that is unique
... status 1..1 code registered | preliminary | final | amended +
... Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by value:coding.code, value:coding.system
.... category:PHD-Observation 1..1 CodeableConcept Classification of type of observation
..... coding 1..* Coding Code defined by a terminology system
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/phd/CodeSystem/PhdObservationCategories
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: phd
... code C 1..1 CodeableConcept Type of observation (code / type)
Binding: MDC Non-Object codes (extensible)
Constraints: mdc-1
.... coding
..... system 0..1 uri Identity of the terminology system
..... code 0..1 code Symbol in syntax defined by the system
... subject 1..1 Reference(Patient | PhdDevice) Reference to the patient or the PhdDevice that is the subject of the observation
... Slices for effective[x] 1..1 Clinically relevant time/time-period for observation
Slice: Unordered, Open by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime 0..1 dateTime Clinically relevant time/time-period for observation
.... effective[x]:effectivePeriod 0..1 Period Clinically relevant time/time-period for observation
..... start 0..1 dateTime Starting time with inclusive boundary
..... end 0..1 dateTime End time with inclusive boundary, if not ongoing
... value[x] 0..1 Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period Actual result
... dataAbsentReason 0..1 CodeableConcept This element is populated when the Measurement Status indicates invalid, not available or measurement-ongoing.
.... coding 0..* Coding Code defined by a terminology system
Binding: DataAbsentReason (required)
... interpretation 0..* CodeableConcept High, low, normal, etc.
.... Slices for coding 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:MsmtStatusInterpretation 1..1 Coding Measurement status interpretation when questionable, calibration-ongoing, validated, early-indication, threshold exceeded, alarm inhibited
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/pocd/CodeSystem/measurement-status
...... code 1..1 code Symbol in syntax defined by the system
... device 1..1 Reference(PhdDevice) (Measurement) Device
.... reference 1..1 string Reference to the device responsible for the measurement
... hasMember 0..* Reference(PhdBaseObservation) Other PHD Observations that are part of this group observation.
... derivedFrom 0..* Reference(PhdBaseObservation) A source the measurement data is derived from.
... Slices for component 0..* BackboneElement Component results
Slice: Unordered, Open by value:code
.... component:supplementalTypesComponent 0..* BackboneElement Supplemental Type: A further description of the measurement type.
..... 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: 68193
...... coding 1..* Coding Code defined by a terminology system
....... 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: 68193
....... display 0..1 string Representation defined by the system
..... value[x] 0..1 CodeableConcept Actual component result
...... coding
....... 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
..... dataAbsentReason 0..0

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Observation.codeextensibleMDCnotObject
http://hl7.org/fhir/uv/phd/ValueSet/MDCnotObject
From this IG
Observation.dataAbsentReason.codingrequiredDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
mdc-1warningObservation.codeA published MDC Code is preferred but private MDC codes are allowed as well.
: coding.exists() and coding.where(system = 'urn:iso:std:iso:11073:10101').exists()
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation This is an abstract profile. Child profiles: PhdBitsEnumerationObservation, PhdCodedEnumerationObservation, PhdCompoundNumericObservation, PhdCompoundObservation, PhdNumericObservation, PhdRtsaObservation, PhdStringObservation
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
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... Slices for security Σ 0..* Coding Security Labels applied to this resource
Slice: Unordered, Open by value:system, value:code
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
..... security:PhdHtest Σ 0..1 Coding Security value set to HTEST when measurement status indicates demo or test data
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActReason
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
Fixed Value: HTEST
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
... 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
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:GatewayDevice 1..1 (Complex) Gateway Device
URL: http://hl7.org/fhir/StructureDefinition/observation-gatewayDevice
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/observation-gatewayDevice"
..... value[x] 1..1 Reference(PhgDevice) Reference to the PHG Device
.... extension:CoincidentTimeStamp 0..1 Reference(PhdCoincidentTimeStampObservation) Coincident Timestamp Reference
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/CoincidentTimeStampReference
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 0..* Identifier Business Identifier for observation
Slice: Unordered, Open by value:system
.... identifier:conditionalCreate Σ 0..1 Identifier Unique identifier of this measurement for a given patient and 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
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: http://hl7.org/fhir/uv/phd/StructureDefinition/PhdBaseObservation
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... 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.
... Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by value:coding.code, value:coding.system
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
.... category:PHD-Observation 1..1 CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... coding Σ 1..* Coding Code defined by a terminology system
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/phd/CodeSystem/PhdObservationCategories
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
Fixed Value: phd
...... 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
... code ΣC 1..1 CodeableConcept Type of observation (code / type)
Binding: MDC Non-Object codes (extensible)
Constraints: mdc-1
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 0..* Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 0..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 0..1 code Symbol in syntax defined by the system
..... 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
... subject Σ 1..1 Reference(Patient | PhdDevice) Reference to the patient or the PhdDevice that is the subject of the observation
... focus Σ 0..* Reference(Resource) What the observation is about, when it is not about the subject of record
... encounter Σ 0..1 Reference(Encounter) Healthcare event during which this observation is made
... Slices for effective[x] Σ 1..1 Clinically relevant time/time-period for observation
Slice: Unordered, Closed by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime Σ 0..1 dateTime Clinically relevant time/time-period for observation
.... effective[x]:effectivePeriod Σ 0..1 Period Clinically relevant time/time-period for observation
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... start ΣC 0..1 dateTime Starting time with inclusive boundary
..... end ΣC 0..1 dateTime End time with inclusive boundary, if not ongoing
... 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 Actual 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 This element is populated when the Measurement Status indicates invalid, not available or measurement-ongoing.
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
.... coding Σ 0..* Coding Code defined by a terminology system
Binding: DataAbsentReason (required)
.... 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.
.... 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:system
..... coding:MsmtStatusInterpretation Σ 1..1 Coding Measurement status interpretation when questionable, calibration-ongoing, validated, early-indication, threshold exceeded, alarm inhibited
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/pocd/CodeSystem/measurement-status
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... 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
... 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.
... specimen 0..1 Reference(Specimen) Specimen used for this observation
... device 1..1 Reference(PhdDevice) (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 device responsible for the 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
... hasMember Σ 0..* Reference(PhdBaseObservation) Other PHD Observations that are part of this group observation.
... derivedFrom Σ 0..* Reference(PhdBaseObservation) A source the measurement data is derived from.
... 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:supplementalTypesComponent Σ 0..* BackboneElement Supplemental Type: A further description of the measurement type.
..... 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: 68193
....... 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
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... coding Σ 1..* Coding Code defined by a terminology system
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... 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: 68193
....... 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
..... value[x] Σ 0..1 CodeableConcept Actual component result
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... coding Σ 0..* Coding Code defined by a terminology system
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... 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
....... 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.
..... referenceRange 0..* See referenceRange (Observation) Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Observation.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
From the FHIR Standard
Observation.meta.security:PhdHtestextensibleFixed Value: HTEST
http://hl7.org/fhir/ValueSet/security-labels
From the FHIR Standard
Observation.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
From the FHIR Standard
Observation.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Observation.identifier:conditionalCreate.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
From the FHIR Standard
Observation.statusrequiredObservationStatus
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.category:PHD-ObservationpreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
From the FHIR Standard
Observation.codeextensibleMDCnotObject
http://hl7.org/fhir/uv/phd/ValueSet/MDCnotObject
From this IG
Observation.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.dataAbsentReason.codingrequiredDataAbsentReason
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:supplementalTypesComponent.codeexamplePattern Value: 68193
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component:supplementalTypesComponent.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()
mdc-1warningObservation.codeA published MDC Code is preferred but private MDC codes are allowed as well.
: coding.exists() and coding.where(system = 'urn:iso:std:iso:11073:10101').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: 11 elements(13 nested mandatory elements)
Fixed: 9 elements
Prohibited: 2 elements

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element 2 is sliced based on the values of Observation.meta.security
  • The element 1 is sliced based on the value of Observation.identifier
  • The element 2 is sliced based on the values of Observation.category
  • The element 1 is sliced based on the value of Observation.effective[x]
  • The element 1 is sliced based on the value of Observation.interpretation.coding
  • The element 1 is sliced based on the value of Observation.component

Maturity: 1

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation This is an abstract profile. Child profiles: PhdBitsEnumerationObservation, PhdCodedEnumerationObservation, PhdCompoundNumericObservation, PhdCompoundObservation, PhdNumericObservation, PhdRtsaObservation, PhdStringObservation
Measurements and simple assertions
Constraints: obs-6, obs-7
... id Σ 0..1 id Logical id of this artifact
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:GatewayDevice 1..1 (Complex) Gateway Device
URL: http://hl7.org/fhir/StructureDefinition/observation-gatewayDevice
..... extension 0..0
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/observation-gatewayDevice"
..... value[x] 1..1 Reference(PhgDevice) Reference to the PHG Device
.... extension:CoincidentTimeStamp 0..1 Reference(PhdCoincidentTimeStampObservation) Coincident Timestamp Reference
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/CoincidentTimeStampReference
... Slices for identifier Σ 0..* Identifier Business Identifier for observation
Slice: Unordered, Open by value:system
.... identifier:conditionalCreate Σ 0..1 Identifier Unique identifier of this measurement for a given patient and device
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: http://hl7.org/fhir/uv/phd/StructureDefinition/PhdBaseObservation
..... value Σ 1..1 string The value that is unique
Example General: 123456
... status ?!Σ 1..1 code registered | preliminary | final | amended +
Binding: ObservationStatus (required): Codes providing the status of an observation.
... Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by value:coding.code, value:coding.system
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
.... category:PHD-Observation 1..1 CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
..... coding Σ 1..* Coding Code defined by a terminology system
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/phd/CodeSystem/PhdObservationCategories
...... code Σ 1..1 code Symbol in syntax defined by the system
Fixed Value: phd
... code ΣC 1..1 CodeableConcept Type of observation (code / type)
Binding: MDC Non-Object codes (extensible)
Constraints: mdc-1
... subject Σ 1..1 Reference(Patient | PhdDevice) Reference to the patient or the PhdDevice that is the subject of the observation
... Slices for effective[x] Σ 1..1 Clinically relevant time/time-period for observation
Slice: Unordered, Closed by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime Σ 0..1 dateTime Clinically relevant time/time-period for observation
.... effective[x]:effectivePeriod Σ 0..1 Period Clinically relevant time/time-period for observation
..... start ΣC 0..1 dateTime Starting time with inclusive boundary
..... end ΣC 0..1 dateTime End time with inclusive boundary, if not ongoing
... value[x] ΣC 0..1 Actual 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 This element is populated when the Measurement Status indicates invalid, not available or measurement-ongoing.
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
.... coding Σ 0..* Coding Code defined by a terminology system
Binding: DataAbsentReason (required)
... interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
.... Slices for coding Σ 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:MsmtStatusInterpretation Σ 1..1 Coding Measurement status interpretation when questionable, calibration-ongoing, validated, early-indication, threshold exceeded, alarm inhibited
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/pocd/CodeSystem/measurement-status
...... code Σ 1..1 code Symbol in syntax defined by the system
... device 1..1 Reference(PhdDevice) (Measurement) Device
.... reference ΣC 1..1 string Reference to the device responsible for the measurement
... hasMember Σ 0..* Reference(PhdBaseObservation) Other PHD Observations that are part of this group observation.
... derivedFrom Σ 0..* Reference(PhdBaseObservation) A source the measurement data is derived from.
... 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:supplementalTypesComponent Σ 0..* BackboneElement Supplemental Type: A further description of the measurement type.
..... 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: 68193
....... 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
...... coding Σ 1..* Coding Code defined by a terminology system
....... 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: 68193
....... display Σ 0..1 string Representation defined by the system
..... value[x] Σ 0..1 CodeableConcept Actual component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Observation.identifier:conditionalCreate.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
From the FHIR Standard
Observation.statusrequiredObservationStatus
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.category:PHD-ObservationpreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
From the FHIR Standard
Observation.codeextensibleMDCnotObject
http://hl7.org/fhir/uv/phd/ValueSet/MDCnotObject
From this IG
Observation.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.dataAbsentReason.codingrequiredDataAbsentReason
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.component.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component:supplementalTypesComponent.codeexamplePattern Value: 68193
http://hl7.org/fhir/ValueSet/observation-codes
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()
mdc-1warningObservation.codeA published MDC Code is preferred but private MDC codes are allowed as well.
: coding.exists() and coding.where(system = 'urn:iso:std:iso:11073:10101').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 This is an abstract profile. Child profiles: PhdBitsEnumerationObservation, PhdCodedEnumerationObservation, PhdCompoundNumericObservation, PhdCompoundObservation, PhdNumericObservation, PhdRtsaObservation, PhdStringObservation
Measurements and simple assertions
... id 0..1 id Logical id of this artifact
... meta
.... Slices for security 0..* Coding Security Labels applied to this resource
Slice: Unordered, Open by value:system, value:code
..... security:PhdHtest 0..1 Coding Security value set to HTEST when measurement status indicates demo or test data
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActReason
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: HTEST
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:GatewayDevice 1..1 (Complex) Gateway Device
URL: http://hl7.org/fhir/StructureDefinition/observation-gatewayDevice
..... value[x] 1..1 Reference(PhgDevice) Reference to the PHG Device
.... extension:CoincidentTimeStamp 0..1 Reference(PhdCoincidentTimeStampObservation) Coincident Timestamp Reference
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/CoincidentTimeStampReference
.... identifier:conditionalCreate 0..1 Identifier Unique identifier of this measurement for a given patient and device
..... type 0..0
..... system 1..1 uri The namespace for the identifier value
Fixed Value: http://hl7.org/fhir/uv/phd/StructureDefinition/PhdBaseObservation
..... value 1..1 string The value that is unique
... status 1..1 code registered | preliminary | final | amended +
... Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by value:coding.code, value:coding.system
.... category:PHD-Observation 1..1 CodeableConcept Classification of type of observation
..... coding 1..* Coding Code defined by a terminology system
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/phd/CodeSystem/PhdObservationCategories
...... code 1..1 code Symbol in syntax defined by the system
Fixed Value: phd
... code C 1..1 CodeableConcept Type of observation (code / type)
Binding: MDC Non-Object codes (extensible)
Constraints: mdc-1
.... coding
..... system 0..1 uri Identity of the terminology system
..... code 0..1 code Symbol in syntax defined by the system
... subject 1..1 Reference(Patient | PhdDevice) Reference to the patient or the PhdDevice that is the subject of the observation
... Slices for effective[x] 1..1 Clinically relevant time/time-period for observation
Slice: Unordered, Open by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime 0..1 dateTime Clinically relevant time/time-period for observation
.... effective[x]:effectivePeriod 0..1 Period Clinically relevant time/time-period for observation
..... start 0..1 dateTime Starting time with inclusive boundary
..... end 0..1 dateTime End time with inclusive boundary, if not ongoing
... value[x] 0..1 Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period Actual result
... dataAbsentReason 0..1 CodeableConcept This element is populated when the Measurement Status indicates invalid, not available or measurement-ongoing.
.... coding 0..* Coding Code defined by a terminology system
Binding: DataAbsentReason (required)
... interpretation 0..* CodeableConcept High, low, normal, etc.
.... Slices for coding 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:MsmtStatusInterpretation 1..1 Coding Measurement status interpretation when questionable, calibration-ongoing, validated, early-indication, threshold exceeded, alarm inhibited
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/pocd/CodeSystem/measurement-status
...... code 1..1 code Symbol in syntax defined by the system
... device 1..1 Reference(PhdDevice) (Measurement) Device
.... reference 1..1 string Reference to the device responsible for the measurement
... hasMember 0..* Reference(PhdBaseObservation) Other PHD Observations that are part of this group observation.
... derivedFrom 0..* Reference(PhdBaseObservation) A source the measurement data is derived from.
... Slices for component 0..* BackboneElement Component results
Slice: Unordered, Open by value:code
.... component:supplementalTypesComponent 0..* BackboneElement Supplemental Type: A further description of the measurement type.
..... 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: 68193
...... coding 1..* Coding Code defined by a terminology system
....... 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: 68193
....... display 0..1 string Representation defined by the system
..... value[x] 0..1 CodeableConcept Actual component result
...... coding
....... 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
..... dataAbsentReason 0..0

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Observation.codeextensibleMDCnotObject
http://hl7.org/fhir/uv/phd/ValueSet/MDCnotObject
From this IG
Observation.dataAbsentReason.codingrequiredDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
mdc-1warningObservation.codeA published MDC Code is preferred but private MDC codes are allowed as well.
: coding.exists() and coding.where(system = 'urn:iso:std:iso:11073:10101').exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation This is an abstract profile. Child profiles: PhdBitsEnumerationObservation, PhdCodedEnumerationObservation, PhdCompoundNumericObservation, PhdCompoundObservation, PhdNumericObservation, PhdRtsaObservation, PhdStringObservation
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
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... Slices for security Σ 0..* Coding Security Labels applied to this resource
Slice: Unordered, Open by value:system, value:code
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
..... security:PhdHtest Σ 0..1 Coding Security value set to HTEST when measurement status indicates demo or test data
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActReason
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
Fixed Value: HTEST
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... tag Σ 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
... 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
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:GatewayDevice 1..1 (Complex) Gateway Device
URL: http://hl7.org/fhir/StructureDefinition/observation-gatewayDevice
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/observation-gatewayDevice"
..... value[x] 1..1 Reference(PhgDevice) Reference to the PHG Device
.... extension:CoincidentTimeStamp 0..1 Reference(PhdCoincidentTimeStampObservation) Coincident Timestamp Reference
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/CoincidentTimeStampReference
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 0..* Identifier Business Identifier for observation
Slice: Unordered, Open by value:system
.... identifier:conditionalCreate Σ 0..1 Identifier Unique identifier of this measurement for a given patient and 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
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: http://hl7.org/fhir/uv/phd/StructureDefinition/PhdBaseObservation
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... 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.
... Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by value:coding.code, value:coding.system
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
.... category:PHD-Observation 1..1 CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... coding Σ 1..* Coding Code defined by a terminology system
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/phd/CodeSystem/PhdObservationCategories
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
Fixed Value: phd
...... 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
... code ΣC 1..1 CodeableConcept Type of observation (code / type)
Binding: MDC Non-Object codes (extensible)
Constraints: mdc-1
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 0..* Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 0..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 0..1 code Symbol in syntax defined by the system
..... 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
... subject Σ 1..1 Reference(Patient | PhdDevice) Reference to the patient or the PhdDevice that is the subject of the observation
... focus Σ 0..* Reference(Resource) What the observation is about, when it is not about the subject of record
... encounter Σ 0..1 Reference(Encounter) Healthcare event during which this observation is made
... Slices for effective[x] Σ 1..1 Clinically relevant time/time-period for observation
Slice: Unordered, Closed by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime Σ 0..1 dateTime Clinically relevant time/time-period for observation
.... effective[x]:effectivePeriod Σ 0..1 Period Clinically relevant time/time-period for observation
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... start ΣC 0..1 dateTime Starting time with inclusive boundary
..... end ΣC 0..1 dateTime End time with inclusive boundary, if not ongoing
... 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 Actual 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 This element is populated when the Measurement Status indicates invalid, not available or measurement-ongoing.
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
.... coding Σ 0..* Coding Code defined by a terminology system
Binding: DataAbsentReason (required)
.... 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.
.... 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:system
..... coding:MsmtStatusInterpretation Σ 1..1 Coding Measurement status interpretation when questionable, calibration-ongoing, validated, early-indication, threshold exceeded, alarm inhibited
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://hl7.org/fhir/uv/pocd/CodeSystem/measurement-status
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... 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
... 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.
... specimen 0..1 Reference(Specimen) Specimen used for this observation
... device 1..1 Reference(PhdDevice) (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 device responsible for the 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
... hasMember Σ 0..* Reference(PhdBaseObservation) Other PHD Observations that are part of this group observation.
... derivedFrom Σ 0..* Reference(PhdBaseObservation) A source the measurement data is derived from.
... 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:supplementalTypesComponent Σ 0..* BackboneElement Supplemental Type: A further description of the measurement type.
..... 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: 68193
....... 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
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... coding Σ 1..* Coding Code defined by a terminology system
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... 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: 68193
....... 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
..... value[x] Σ 0..1 CodeableConcept Actual component result
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... coding Σ 0..* Coding Code defined by a terminology system
....... id 0..1 string Unique id for inter-element referencing
....... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
....... 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
....... 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.
..... referenceRange 0..* See referenceRange (Observation) Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Observation.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
From the FHIR Standard
Observation.meta.security:PhdHtestextensibleFixed Value: HTEST
http://hl7.org/fhir/ValueSet/security-labels
From the FHIR Standard
Observation.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
From the FHIR Standard
Observation.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Observation.identifier:conditionalCreate.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
From the FHIR Standard
Observation.statusrequiredObservationStatus
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.category:PHD-ObservationpreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
From the FHIR Standard
Observation.codeextensibleMDCnotObject
http://hl7.org/fhir/uv/phd/ValueSet/MDCnotObject
From this IG
Observation.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.dataAbsentReason.codingrequiredDataAbsentReason
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:supplementalTypesComponent.codeexamplePattern Value: 68193
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component:supplementalTypesComponent.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()
mdc-1warningObservation.codeA published MDC Code is preferred but private MDC codes are allowed as well.
: coding.exists() and coding.where(system = 'urn:iso:std:iso:11073:10101').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: 11 elements(13 nested mandatory elements)
Fixed: 9 elements
Prohibited: 2 elements

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element 2 is sliced based on the values of Observation.meta.security
  • The element 1 is sliced based on the value of Observation.identifier
  • The element 2 is sliced based on the values of Observation.category
  • The element 1 is sliced based on the value of Observation.effective[x]
  • The element 1 is sliced based on the value of Observation.interpretation.coding
  • The element 1 is sliced based on the value of Observation.component

Maturity: 1

 

Other representations of profile: CSV, Excel, Schematron

Notes:

The following sections give more details on the data elements in a PHDBaseObservation resource.

Gateway Device extension

HL7 has defined an extension for the Observation resource to reference a gateway device. This extension is used to reference the Device resource representing the Personal Health Gateway (PHG) device.

Conditional-create Identifier - prevention of data duplication

The Conditional-create Identifier is defined to prevent data duplication. It can be used as the selection criterion in the conditional create when uploading observations.

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

Additionally a globally unique identifier can be used in combination with a conditional create operation to prevent duplication of observations on the server when multiple PHGs can upload observations from the same PHD. The identifier is a concatenated string of elements that contain sufficient information to uniquely identify the observation. The identifier is the concatenation of the device identifier, patient identifier, the PHD timestamp of the observation, the observation type code, the measurement duration if present, and the list of Supplemental-Types codes if any. Each entry is separated by a dash (-). It is important to use the timestamp of the PHD and not the potentially modified timestamp placed in the Observation.effective[x] element. Two PHGs may have slightly different times which would allow an undesired duplicate observation to appear. Note that for this scheme to work PHDs should NOT change the timestamp of a generated observation.

Entry value Additional information
device PHD Device.identifier.value This value is a hexadecimal representation of the PHD system identifier (16 hexadecimal characters for the IEEE EUI-64 identifier, 12 for the EUI-48 transport address identifier) all capitals and without dashes
patient Patient.identifier.value-Patient.identifier.system or
provided logical id
The dashes are part of the identifier.
When the service provider gives the PHG a pre-determined patient logical id the PHG creates no Patient resource and has no patient information. In that situation the provided logical id is used
type Observation.code.coding.code See MDC Nomenclature codes (decimal number)
timestamp Observation.effectiveDateTime or Observation.effectivePeriod.start The reported PHD timestamp. See Generating the PHD Reported Timestamp
duration the length of Observation.effectivePeriod See Generating the PHD Reported Timestamp
Supplemental Information Observation.component.valueCodeableConcept.coding.code A sequence of MDC codes (decimal number) separated by a dash from the "supplemental information" components.

The final identifier is made by concatenating the entries above as follows:

  • device-patient-type-timestamp-duration-Supplemental Information

All PHGs compliant to this IG should implement this identifier in the same manner. Compliance assures that even if the patient uploads the same observation to the same server from a different PHG, a duplicate of the observation will not be generated on the server. This is important since some PHDs do not provide a means of deleting stored and uploaded observations and will upload old observations again with each new addition of a observation as much as device storage allows.

An example of the this identifier from this example is given below:

{
  "resourceType" : "Observation",
  ...
  "identifier" : [
    {
      "system" : "http://hl7.org/fhir/uv/phd/StructureDefinition/PhdBaseObservation",
      "value" : "74E8FFFEFF051C00-sisansarahId-urn:oid:2.999.1.2.3.4.5.6.7.8.10-149530-20181113175903.00-150588"
    }
  ],
  ...
}

Obtaining the Type of observation

One obtains the IEEE 11073-10101 observation type for the code element in the same manner for all types of observations. See the section MDC Nomenclature codes for the details.

Subject

The subject element normally points to the PhdPatient resource using the logical id of the Patient resource, for example 'Patient/123546'. For device settings known to the PHG it should point to the PHD.

Performer

In situations where the gateway knows that the patient is the person performing the measurement, a Observation.performer element can also point to the PhdPatient resource. However, in most situations this is unknown and the performer is not filled in. And for coincident timestamp observations, the performer should not be provided. This profile puts no constraints on the performer element.

Timestamp: effective[x]

PHDs report timestamps in various methods and may not report timestamps at all. The PHG will include a timestamp in every observation that is uploaded using a conversion as needed based on the timestamp data received from the PHD. The timestamp types and corresponding PHG conversions are summarized below:

IEEE 11073-10206 timestamps represent a UTC time or a local time, that is synchronized with an external time source or not and can come with or without a TZ/DST offset or the timestamp represents a Tick Counter value. These timestamps can come from the current timeline of the PHD or not. In order to map a timestamp for the PHD's current timeline, the PHG needs the PHD's current time.

A timestamp comes from the current timeline of the PHD if the PHD's clock progressed naturally without discontinuities since the time reported in the timestamp. This information is included in the timestamp reported by an IEEE 11073-10206 compliant PHD, such as Bluetooth devices following the GHS specification. More information can be found in the IEEE 11073-10206 ACOM and Bluetooth GHS specifications.

Observations with a timestamp that is not from the current timeline of the PHD and that are not from a timeline synchronized with an external time source should be thrown away since there is no way to give them a correct timestamp.

The PHG can work with the assumption that the PHD and the PHG are always in the same time zone. This allows the PHG to set the offset of the timestamp to its offset.

For IEEE 11073-10206 timestamps the following table can be used:

Time type Current Synced Offset Recommended Mapping Coincident Timestamp Observation required
UTC Yes Yes Yes Keep as is No
UTC Yes Yes No Keep as is, but include PHG offset No
UTC Yes No Yes Map to PHG timeline, including PHG offset Yes
UTC Yes No No Map to PHG UTC timeline, include PHG offset Yes
UTC No Yes Yes Keep as is No
UTC No Yes No Keep as is, include PHG offset No
UTC No No Yes Throw away n.a.
UTC No No No Throw away n.a.
Local Yes Yes Yes Map to UTC+offset Yes
Local Yes Yes No Map to UTC+offset, including PHG offset Yes
Local Yes No Yes Map to PHG timeline, including PHG offset Yes
Local Yes No No Map to PHG timeline, including PHG offset Yes
Local No Yes Yes Map to UTC+offset No
Local No Yes No Map to UTC+offset, include PHG offset No
Local No No Yes Throw away n.a.
Local No No No Throw away n.a.
Tick counter Yes n.a. n.a. Map to PHG timeline, including PHG offset Yes
Tick counter No n.a. n.a. Throw away n.a.

The PHG maps the 'converted' timestamp to either an Observation.effectiveDateTime element or an Observation.effectivePeriod element. The second situation occurs when the observation includes a Measurement-Duration (duration) attribute. Then the timestamp attribute gives the start of the period and the end of the period is obtained by adding the Measurement-Duration value to it. If no timestamp is provided, the PHG, using the time of reception of the observation as its timestamp must then do the reverse; the time of reception is the end time and the start time is given by subtracting the Measurement-Duration value from it. When the PHG modifies an Observation's timestamp as received from the PHD it shall also generate a Coincident Timestamp observation that records how the Observation.effective[x] element is generated.

extension: Coincident timestamp reference

This extension references Coincident Timestamp Observation resource that relates the PHD and PHG timelines. This occurs whenever the observation reported by the PHD has a timestamp. The Coincident Timestamp Observation reports how this Observation.effective[x] element is generated.

Device

The Observation.device element is a reference to the Device resource representing the PHD that generated the observation.

The derivedFrom element references Observation resources that are in some manner related to this Observation resource. In the PHD use case, this situation occurs whenever the observation reported by the PHD contains a derivedFrom attribute referencing a related Observation.

The hasMember element is used when the PHD Observation reports a group of related observations. In GHS an Observation can have an Is Member Of attribute that references a group observation. When uploading to a FHIR server the gateway should report the group observation with a hasMember reference to all member Observations.

In GHS the sensor related Observations are identified using a 32-bit Observation Id that is unique in the set of observations transferred during a connection.
Related observations are best uploaded in a single FHIR Bundle with logical ids assigned.

Source-Handle-Reference case (concept from IEEE 11073-20601 - deprecated)

A Source-Handle-Reference attribute points to a previously reported observation that is important to this observation. By previously it is meant that the observation is reported prior to the current observation but in the same connection. If multiple such observations have been received, the correct one is that which is most recently received. As an example, the cardiovascular specialization defines a session observation defining some type of exercise period, such as a run. All observations taken during that run have a source handle reference attribute pointing to the session observation. Since Source-Handle-Reference attributes use IEEE 11073-20601 Object handle values and not Logical resource ids to point to observations, the PHG will need to keep track of the Observation resources created during a connection to identify the correct Observation resource, and thus logical id, the Source-Handle-Reference attribute points to. Recent versions 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. The references are placed in a derivedFrom element.

This mapping is quite often semantically incorrect. In FHIR the session observation resource should have "hasMember" references to all observations that are part of the session.

Category

The category element identifies the observation as being generated by a PHD. This can be used in searches and distinguishes such observations from observations collected using clinical equipment or collected in a clinical context. PHGs shall include a category element with a fixed coding as specified by the profile.

Note that for vital signs observations there also should be a category element as defined by the Vital Signs profile.

Supplemental Information - Components

component elements are used whenever the observation contains additional information attributes that further describe the observation. PHD observations can include Supplemental-Information that can be mapped to one or more FHIR Observation components.

The Supplemental Information attribute contains a list of one or more MDC codes that describe some property of the observation. There will be one component element for each entry in the list. For example, the code MDC_MODALITY_SPOT used in the pulse oximeter specialization indicates that the observation reported is a stable average. In contrast there is MDC_MODALITY_FAST and MDC_MODALITY_SLOW.

{
  "resourceType" : "Observation",
  ...
  "component" : [
    {
      "code" : {
        "coding" : [
          {
            "system" : "urn:iso:std:iso:11073:10101",
            "code" : "68193",
            "display" : "MDC_ATTR_SUPPLEMENTAL_TYPES"
          }
        ]
      },
      "valueCodeableConcept" : {
        "coding" : [
          {
            "system" : "urn:iso:std:iso:11073:10101",
            "code" : "150588",
            "display" : "MDC_MODALITY_SPOT"
          }
        ]
      }
    }
  ]
}
Should we move Supplemental Type information to an extension? In the PHD IG v1.0 an attempt was made to avoid extensions as much as possible. In this version we are using extensions for less often used attributes of the IEEE 11073-10206 model and in places were the conceptual models from PHD and FHIR model are too different to have a 1-1 mapping between parts of these models. The question is if this applies to Supplemental Type information as well. Should IEEE 11073-10206/20601 Supplemental Information be modeled as a FHIR `Observation.component` or as an extension in FHIR? Input is welcome.

Measurement Status

The Measurement Status attribute from IEEE 11073-10206 ACOM is used to report errors or other special conditions. The Bluetooth SIG GHS specification adds more possible conditions. It is possible to have multiple conditions simultaneously, but some combinations of conditions do not make sense and should not occur.

To report these conditions in FHIR requires the use of different elements:

  • The dataAbsentReason element is used to report the error or not-available condition.
  • The status element is used to report the entered-in-error condition.
  • The interpretation element is used to report the questionable, calibrating, early-estimate, manually-entered, threshold error, and thresholding disabled conditions.

The table below lists the error conditions and the FHIR data elements to which they are mapped. The code system from which the code is drawn is also shown using a codsystem#code notation.

IEEE 11073-10206 Measurement Status FHIR Observation Resource Data Element Further Remarks Options
Invalid dataAbsentReason = DAR#error
status = HL7Status#entered-in-error
A device or gateway could decide not to upload invalid observations and could report an error by other means.
Questionable interpretation = PoCDStatus#questionable -
Not-available dataAbsentReason = DAR#not-performed A device or gateway could decide not to upload observations with no value and could report an error by other means.
Calibrating interpretation = PoCDStatus#calibration-ongoing -
Test-data meta.security = ActReason#HTEST Test data should in most cases not be uploaded to a FHIR server, except for testing purposes.
Early-estimate interpretation = PoCDStatus#early-indication
status = HL7Status#preliminary
-
Manually-entered - Add a note to the Observation resource that it was manually entered.
Setting - For device settings, the Observation resource should reference the PHD Device as the subject and not the Patient.
Threshold error interpretation = PoCDStatus#in-alarm Applies to numeric data. Add a note to the Observation resource that it is outside its boundaries. Should be used in combination with the SimpleAlerting Extension.
Thresholding disabled interpretation = PoCDStatus#alarm-inhibited Applies to numeric data. Add a note to the Observation resource that its boundaries are not checked. Should be used in combination with the SimpleAlerting Extension.

DAR: Data Absent Reason CodeSystem HL7Status: Observation Status CodeSystem PoCDStatus: Measurement Status Codes CodeSystem ActReason: Act Reason CodeSystem