Personal Health Device Implementation Guide
3.0.0-draft - STU 3 - R6 Global (Whole world)

Personal Health Device Implementation Guide, published by HL7 International / Devices. This guide is not an authorized publication; it is the continuous build for version 3.0.0-draft 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: PhdNumericObservation

Official URL: http://hl7.org/fhir/uv/phd/StructureDefinition/PhdNumericObservation Version: 3.0.0-draft
Standards status: Trial-use Maturity Level: 1 Computable Name: PhdNumericObservation
Other Identifiers: OID:2.16.840.1.113883.4.642.40.73.42.12

Observations from a PHD where the measurement is number

The Numeric Observation Profile is used when the PHD measurement reports a quantity. Examples are weight, body temperature, glucose concentration, pulse rate, oxygen saturation, steps take, calories burned, etc.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* PhdBaseObservation Simple Numeric measurement
Constraints: obs-6, obs-7, obs-10, obs-11, obs-12
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:GatewayDevice 1..1 (Complex) Device Gateway
URL: http://hl7.org/fhir/StructureDefinition/device-gateway
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/device-gateway"
.... extension:CoincidentTimeStamp 0..1 Reference(PhdCoincidentTimeStampObservation) Coincident Timestamp Reference
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/CoincidentTimeStampReference
.... extension:Accuracy 0..1 Quantity Numeric Accuracy
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/Accuracy
.... extension:Confidence95 0..1 Range Confidence95
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/Confidence95
... 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
Required Pattern: http://hl7.org/fhir/uv/phd/StructureDefinition/PhdBaseObservation
..... value ΣC 1..1 string The value that is unique
Example General: 123456
... status ?!Σ 1..1 code registered | in-process | specimen-in-process | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | unknown | cannot-be-obtained
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:$this
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
.... category:PHD-Observation 1..1 CodeableConcept PHD observation category
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.

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: 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): IEEE 11073-10101 Nomenclature codes for PHD measurements
Constraints: mdc-1
... 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
... 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
... value[x] ΣC 0..1 Quantity Actual result
Constraints: unit-system-code-coherent, phd-dim-code
.... value Σ 1..1 decimal Numerical value (with implicit precision)
.... comparator ?!Σ 0..1 code < | <= | >= | > | ~ | ad - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
.... unit Σ 0..1 string Unit representation
.... system ΣC 1..1 uri The code system for the units of this measurement (UCUM or MDC).
Constraints: system-is-mdc-or-ucum
.... code ΣC 1..1 code The UCUM or MDC code for the units of this measurement.
... dataAbsentReason C 0..1 CodeableConcept This element is populated for numeric observations when a special FLOAT value is reported that is not a real number.
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
... device 1..1 Reference(PhdDevice) A reference to the device that generates the measurements or the device settings for the device
.... reference ΣC 1..1 string Reference to the device responsible for the measurement
... Slices for component ΣC 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
Slice: Unordered, Open by value:url
..... code ΣC 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCObsOrBoth (example): Codes identifying names of simple observations.
.... component:supplementalTypesComponent ΣC 0..* BackboneElement Supplemental Type: A further description of the measurement type.
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
..... code ΣC 1..1 CodeableConcept Supplemental-Types code (68193)
Binding: LOINCObsOrBoth (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

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.identifier:conditionalCreate.​use Base required IdentifierUse 📍6.0.0-ballot5 FHIR Std.
Observation.status Base required Observation Status 📍6.0.0-ballot5 FHIR Std.
Observation.category Base preferred Observation Category Codes 📍6.0.0-ballot5 FHIR Std.
Observation.category:PHD-Observation Base preferred Observation Category Codes 📍6.0.0-ballot5 FHIR Std.
Observation.code Base extensible MDC Non-Object codes 📦3.0.0-draft This IG
Observation.value[x].​comparator Base required QuantityComparator 📍6.0.0-ballot5 FHIR Std.
Observation.dataAbsentReason Base extensible Data Absent Reason 📍6.0.0-ballot5 FHIR Std.
Observation.component.​code Base example LOINC codes with Observation or Both 📍6.0.0-ballot5 FHIR Std.
Observation.component:supplementalTypesComponent.​code Base example LOINC codes with Observation or Both 📍6.0.0-ballot5 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If 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-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
mdc-1 warning Observation.code A 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-6 error Observation Observation.dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.component.code is the same as Observation.code, then Observation.value SHALL NOT be present (the Observation.component.value[x] holds the value). value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
obs-10 error Observation Observation.component.dataAbsentReason SHALL only be present if Observation.component.value[x] is not present component.empty() or component.where(dataAbsentReason.exists()).all(value.empty())
obs-11 error Observation if organizer exists and organizer = true, then value[x], dataAbsentReason and component SHALL NOT be present (organizer.exists() and organizer.allTrue()) implies (value.empty() and dataAbsentReason.empty() and component.empty())
obs-12 warning Observation All observations SHOULD have a performer performer.exists()
phd-dim-code error Observation.value[x] If system is MDC, code must be a partition-4 dimension code (262144-327679) system != 'urn:iso:std:iso:11073:10101' or (code.toInteger() >= 262144 and code.toInteger() <= 327679)
system-is-mdc-or-ucum error Observation.value[x].system system SHALL be either the MDC or UCUM URI $this = 'urn:iso:std:iso:11073:10101' or $this = 'http://unitsofmeasure.org'
unit-system-code-coherent error Observation.value[x] system and code SHALL be coherent: UCUM system uses UCUM code, MDC system uses MDC code (system = 'http://unitsofmeasure.org' implies code.memberOf('http://hl7.org/fhir/ValueSet/ucum-units')) and (system = 'urn:iso:std:iso:11073:10101' implies code.memberOf('http://hl7.org/fhir/uv/phd/ValueSet/MDCValueSet'))

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation 0..* PhdBaseObservation Simple Numeric measurement
... Slices for extension Content/Rules for all slices
.... extension:Accuracy 0..1 Quantity Numeric Accuracy
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/Accuracy
.... extension:Confidence95 0..1 Range Confidence95
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/Confidence95
... value[x] C 0..1 Quantity Actual result
Constraints: unit-system-code-coherent, phd-dim-code
.... value 1..1 decimal Numerical value (with implicit precision)
.... unit 0..1 string Unit representation
.... system C 1..1 uri The code system for the units of this measurement (UCUM or MDC).
Constraints: system-is-mdc-or-ucum
.... code 1..1 code The UCUM or MDC code for the units of this measurement.
... dataAbsentReason 0..1 CodeableConcept This element is populated for numeric observations when a special FLOAT value is reported that is not a real number.

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
phd-dim-code error Observation.value[x] If system is MDC, code must be a partition-4 dimension code (262144-327679) system != 'urn:iso:std:iso:11073:10101' or (code.toInteger() >= 262144 and code.toInteger() <= 327679)
system-is-mdc-or-ucum error Observation.value[x].system system SHALL be either the MDC or UCUM URI $this = 'urn:iso:std:iso:11073:10101' or $this = 'http://unitsofmeasure.org'
unit-system-code-coherent error Observation.value[x] system and code SHALL be coherent: UCUM system uses UCUM code, MDC system uses MDC code (system = 'http://unitsofmeasure.org' implies code.memberOf('http://hl7.org/fhir/ValueSet/ucum-units')) and (system = 'urn:iso:std:iso:11073:10101' implies code.memberOf('http://hl7.org/fhir/uv/phd/ValueSet/MDCValueSet'))
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* PhdBaseObservation Simple Numeric measurement
Constraints: obs-6, obs-7, obs-10, obs-11, obs-12
... 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:$this
Binding: AllSecurityLabels (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: AllSecurityLabels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/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: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
... 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) Device Gateway
URL: http://hl7.org/fhir/StructureDefinition/device-gateway
..... id 0..1 id Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/device-gateway"
..... value[x] 0..1 CodeableReference(PhgDevice) Reference to the PHG Device
Binding: DeviceType (example)
.... extension:CoincidentTimeStamp 0..1 Reference(PhdCoincidentTimeStampObservation) Coincident Timestamp Reference
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/CoincidentTimeStampReference
.... extension:Accuracy 0..1 Quantity Numeric Accuracy
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/Accuracy
.... extension:Confidence95 0..1 Range Confidence95
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/Confidence95
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... 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
Required Pattern: http://hl7.org/fhir/uv/phd/StructureDefinition/PhdBaseObservation
..... value ΣC 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 | MedicationRequest | NutritionOrder | ServiceRequest) Fulfills plan, proposal or order
... triggeredBy 0..* BackboneElement Triggering observation(s)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
.... observation Σ 1..1 Reference(Observation) Triggering observation
.... type Σ 1..1 code reflex | repeat | re-run
Binding: TriggeredBytype (required): The type of TriggeredBy Observation.
.... reason 0..1 string Reason that the observation was triggered
... partOf Σ 0..* Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) Part of referenced event
... status ?!Σ 1..1 code registered | in-process | specimen-in-process | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | unknown | cannot-be-obtained
Binding: ObservationStatus (required): Codes providing the status of an observation.
... statusReason 0..1 CodeableConcept Reason for current status
Binding: ObservationStatusReason (example): Codes identifying the reason for the current state of an observation.
... Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by value:$this
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
.... category:PHD-Observation 1..1 CodeableConcept PHD observation category
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.

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: 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): IEEE 11073-10101 Nomenclature codes for PHD measurements
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 ΣC 0..1 code Symbol in syntax defined by the system
..... display ΣC 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
... organizer ΣC 0..1 boolean This observation organizes/groups a set of sub-observations
... encounter Σ 0..1 Reference(Encounter) Healthcare event during which this observation is made. If you need to place the observation within one or more episodes of care, use the workflow-episodeOfCare extension
... 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 | HealthcareService | Group) Who is responsible for the observation
... value[x] ΣC 0..1 Quantity Actual result
Constraints: unit-system-code-coherent, phd-dim-code
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... value Σ 1..1 decimal Numerical value (with implicit precision)
.... comparator ?!Σ 0..1 code < | <= | >= | > | ~ | ad - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
.... unit Σ 0..1 string Unit representation
.... system ΣC 1..1 uri The code system for the units of this measurement (UCUM or MDC).
Constraints: system-is-mdc-or-ucum
.... code ΣC 1..1 code The UCUM or MDC code for the units of this measurement.
... dataAbsentReason C 0..1 CodeableConcept This element is populated for numeric observations when a special FLOAT value is reported that is not a real number.
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
Required Pattern: http://hl7.org/fhir/uv/pocd/CodeSystem/measurement-status
...... version Σ 0..1 string Version of the system - if relevant
...... code ΣC 1..1 code Symbol in syntax defined by the system
...... display ΣC 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
... context 0..* CodeableReference(Resource) Context for understanding the observation
Binding: ObservationContextCodes (example): Codes identifying contextual factors that affect interpretation of observations.
... note 0..* Annotation Comments about the observation
... bodySite 0..1 CodeableConcept DEPRECATED: Observed body part
... bodyStructure 0..* CodeableReference(BodyStructure) Observed body structure
Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body Structures
... method 0..1 CodeableConcept How it was done
Binding: ObservationMethods (example): Methods for simple observations.
... specimen C 0..1 Reference(Specimen | Group) Specimen used for this observation
Constraints: obs-9
... device 1..1 Reference(PhdDevice) A reference to the device that generates the measurements or the device settings for the 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") - must be a resource in resources
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
.... identifier ΣC 0..1 Identifier Logical reference, when literal reference is not known
.... display ΣC 0..1 string Text alternative for the resource
... supportingDevice 0..* CodeableReference(Device) Device supporting generation of the measurement
Binding: DeviceType (example): Type of device supporting the generation of the measurement.
... 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
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
.... low C 0..1 Quantity Low Range, if relevant
Constraints: obs-13
.... high C 0..1 Quantity High Range, if relevant
Constraints: obs-14
.... normalValue 0..1 CodeableConcept Normal value, if relevant
Binding: ObservationReferenceRangeNormalValueCodes (example): Codes identifying the normal value of the observation.
.... 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 C 0..1 markdown 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 ΣC 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
Slice: Unordered, Open by value:url
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
..... code ΣC 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCObsOrBoth (example): Codes identifying names of simple observations.
..... value[x] ΣC 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
...... valueAttachment Attachment
..... dataAbsentReason C 0..1 CodeableConcept Why the component result value 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 value
.... component:supplementalTypesComponent ΣC 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
Slice: Unordered, Open by value:url
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
..... code ΣC 1..1 CodeableConcept Supplemental-Types code (68193)
Binding: LOINCObsOrBoth (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
..... value[x] ΣC 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 Σ 0..1 uri Identity of the terminology system
Required Pattern: urn:iso:std:iso:11073:10101
....... version Σ 0..1 string Version of the system - if relevant
....... code ΣC 0..1 code Symbol in syntax defined by the system
....... display ΣC 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 value

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.meta.security Base extensible All Security Labels 📍6.0.0-ballot5 FHIR Std.
Observation.meta.security:PhdHtest Base extensible All Security Labels 📍6.0.0-ballot5 FHIR Std.
Observation.meta.tag Base example Common Tags 📍6.0.0-ballot5 FHIR Std.
Observation.language Base required All Languages 📍6.0.0-ballot5 FHIR Std.
Observation.extension:GatewayDevice.​value[x] Base example Device Type 📦6.0.0-ballot5 FHIR Std.
Observation.identifier:conditionalCreate.​use Base required IdentifierUse 📍6.0.0-ballot5 FHIR Std.
Observation.triggeredBy.​type Base required triggered Bytype 📍6.0.0-ballot5 FHIR Std.
Observation.status Base required Observation Status 📍6.0.0-ballot5 FHIR Std.
Observation.statusReason Base example Observation Status Reason 📍6.0.0-ballot5 FHIR Std.
Observation.category Base preferred Observation Category Codes 📍6.0.0-ballot5 FHIR Std.
Observation.category:PHD-Observation Base preferred Observation Category Codes 📍6.0.0-ballot5 FHIR Std.
Observation.code Base extensible MDC Non-Object codes 📦3.0.0-draft This IG
Observation.value[x].​comparator Base required QuantityComparator 📍6.0.0-ballot5 FHIR Std.
Observation.dataAbsentReason Base extensible Data Absent Reason 📍6.0.0-ballot5 FHIR Std.
Observation.dataAbsentReason.​coding Base required Data Absent Reason 📦6.0.0-ballot5 FHIR Std.
Observation.interpretation Base extensible Observation Interpretation Codes 📍6.0.0-ballot5 FHIR Std.
Observation.context Base example Observation Context Codes 📍6.0.0-ballot5 FHIR Std.
Observation.bodyStructure Base example SNOMED CT Body Structures 📍6.0.0-ballot5 FHIR Std.
Observation.method Base example Observation Methods 📍6.0.0-ballot5 FHIR Std.
Observation.device.type Base extensible Resource Types 📍6.0.0-ballot5 FHIR Std.
Observation.supportingDevice Base example Device Type 📍6.0.0-ballot5 FHIR Std.
Observation.referenceRange.​normalValue Base example Observation Reference Range Normal Value Codes 📍6.0.0-ballot5 FHIR Std.
Observation.referenceRange.​type Base preferred Observation Reference Range Meaning Codes 📍6.0.0-ballot5 FHIR Std.
Observation.referenceRange.​appliesTo Base example Observation Reference Range Applies To Codes 📍6.0.0-ballot5 FHIR Std.
Observation.component.​code Base example LOINC codes with Observation or Both 📍6.0.0-ballot5 FHIR Std.
Observation.component.​dataAbsentReason Base extensible Data Absent Reason 📍6.0.0-ballot5 FHIR Std.
Observation.component.​interpretation Base extensible Observation Interpretation Codes 📍6.0.0-ballot5 FHIR Std.
Observation.component:supplementalTypesComponent.​code Base example LOINC codes with Observation or Both 📍6.0.0-ballot5 FHIR Std.
Observation.component:supplementalTypesComponent.​interpretation Base extensible Observation Interpretation Codes 📍6.0.0-ballot5 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If 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-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
mdc-1 warning Observation.code A 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-3 error Observation.referenceRange Must have at least a low or a high or text low.exists() or high.exists() or text.exists()
obs-6 error Observation Observation.dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.component.code is the same as Observation.code, then Observation.value SHALL NOT be present (the Observation.component.value[x] holds the value). value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
obs-9 error Observation.specimen If Observation.specimen is a reference to Group, the group can only have specimens (reference.resolve().exists() and reference.resolve() is Group) implies reference.resolve().member.entity.resolve().all($this is Specimen)
obs-10 error Observation Observation.component.dataAbsentReason SHALL only be present if Observation.component.value[x] is not present component.empty() or component.where(dataAbsentReason.exists()).all(value.empty())
obs-11 error Observation if organizer exists and organizer = true, then value[x], dataAbsentReason and component SHALL NOT be present (organizer.exists() and organizer.allTrue()) implies (value.empty() and dataAbsentReason.empty() and component.empty())
obs-12 warning Observation All observations SHOULD have a performer performer.exists()
obs-13 error Observation.referenceRange.low If low.comparator exists, it must be '>=' or '>'. comparator.exists() implies (comparator = '>=' or comparator = '>')
obs-14 error Observation.referenceRange.high If high.comparator exists, it must be '<=' or '<'. comparator.exists() implies (comparator = '<=' or comparator = '<')
phd-dim-code error Observation.value[x] If system is MDC, code must be a partition-4 dimension code (262144-327679) system != 'urn:iso:std:iso:11073:10101' or (code.toInteger() >= 262144 and code.toInteger() <= 327679)
system-is-mdc-or-ucum error Observation.value[x].system system SHALL be either the MDC or UCUM URI $this = 'urn:iso:std:iso:11073:10101' or $this = 'http://unitsofmeasure.org'
unit-system-code-coherent error Observation.value[x] system and code SHALL be coherent: UCUM system uses UCUM code, MDC system uses MDC code (system = 'http://unitsofmeasure.org' implies code.memberOf('http://hl7.org/fhir/ValueSet/ucum-units')) and (system = 'urn:iso:std:iso:11073:10101' implies code.memberOf('http://hl7.org/fhir/uv/phd/ValueSet/MDCValueSet'))

Summary

Mandatory: 0 element(3 nested mandatory elements)

Extensions

This structure refers to these extensions:

Maturity: 1

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* PhdBaseObservation Simple Numeric measurement
Constraints: obs-6, obs-7, obs-10, obs-11, obs-12
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained 0..* Resource Contained, inline Resources
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:GatewayDevice 1..1 (Complex) Device Gateway
URL: http://hl7.org/fhir/StructureDefinition/device-gateway
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/device-gateway"
.... extension:CoincidentTimeStamp 0..1 Reference(PhdCoincidentTimeStampObservation) Coincident Timestamp Reference
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/CoincidentTimeStampReference
.... extension:Accuracy 0..1 Quantity Numeric Accuracy
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/Accuracy
.... extension:Confidence95 0..1 Range Confidence95
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/Confidence95
... 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
Required Pattern: http://hl7.org/fhir/uv/phd/StructureDefinition/PhdBaseObservation
..... value ΣC 1..1 string The value that is unique
Example General: 123456
... status ?!Σ 1..1 code registered | in-process | specimen-in-process | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | unknown | cannot-be-obtained
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:$this
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
.... category:PHD-Observation 1..1 CodeableConcept PHD observation category
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.

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: 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): IEEE 11073-10101 Nomenclature codes for PHD measurements
Constraints: mdc-1
... 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
... 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
... value[x] ΣC 0..1 Quantity Actual result
Constraints: unit-system-code-coherent, phd-dim-code
.... value Σ 1..1 decimal Numerical value (with implicit precision)
.... comparator ?!Σ 0..1 code < | <= | >= | > | ~ | ad - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
.... unit Σ 0..1 string Unit representation
.... system ΣC 1..1 uri The code system for the units of this measurement (UCUM or MDC).
Constraints: system-is-mdc-or-ucum
.... code ΣC 1..1 code The UCUM or MDC code for the units of this measurement.
... dataAbsentReason C 0..1 CodeableConcept This element is populated for numeric observations when a special FLOAT value is reported that is not a real number.
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
... device 1..1 Reference(PhdDevice) A reference to the device that generates the measurements or the device settings for the device
.... reference ΣC 1..1 string Reference to the device responsible for the measurement
... Slices for component ΣC 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
Slice: Unordered, Open by value:url
..... code ΣC 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCObsOrBoth (example): Codes identifying names of simple observations.
.... component:supplementalTypesComponent ΣC 0..* BackboneElement Supplemental Type: A further description of the measurement type.
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
..... code ΣC 1..1 CodeableConcept Supplemental-Types code (68193)
Binding: LOINCObsOrBoth (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

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.identifier:conditionalCreate.​use Base required IdentifierUse 📍6.0.0-ballot5 FHIR Std.
Observation.status Base required Observation Status 📍6.0.0-ballot5 FHIR Std.
Observation.category Base preferred Observation Category Codes 📍6.0.0-ballot5 FHIR Std.
Observation.category:PHD-Observation Base preferred Observation Category Codes 📍6.0.0-ballot5 FHIR Std.
Observation.code Base extensible MDC Non-Object codes 📦3.0.0-draft This IG
Observation.value[x].​comparator Base required QuantityComparator 📍6.0.0-ballot5 FHIR Std.
Observation.dataAbsentReason Base extensible Data Absent Reason 📍6.0.0-ballot5 FHIR Std.
Observation.component.​code Base example LOINC codes with Observation or Both 📍6.0.0-ballot5 FHIR Std.
Observation.component:supplementalTypesComponent.​code Base example LOINC codes with Observation or Both 📍6.0.0-ballot5 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If 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-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
mdc-1 warning Observation.code A 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-6 error Observation Observation.dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.component.code is the same as Observation.code, then Observation.value SHALL NOT be present (the Observation.component.value[x] holds the value). value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
obs-10 error Observation Observation.component.dataAbsentReason SHALL only be present if Observation.component.value[x] is not present component.empty() or component.where(dataAbsentReason.exists()).all(value.empty())
obs-11 error Observation if organizer exists and organizer = true, then value[x], dataAbsentReason and component SHALL NOT be present (organizer.exists() and organizer.allTrue()) implies (value.empty() and dataAbsentReason.empty() and component.empty())
obs-12 warning Observation All observations SHOULD have a performer performer.exists()
phd-dim-code error Observation.value[x] If system is MDC, code must be a partition-4 dimension code (262144-327679) system != 'urn:iso:std:iso:11073:10101' or (code.toInteger() >= 262144 and code.toInteger() <= 327679)
system-is-mdc-or-ucum error Observation.value[x].system system SHALL be either the MDC or UCUM URI $this = 'urn:iso:std:iso:11073:10101' or $this = 'http://unitsofmeasure.org'
unit-system-code-coherent error Observation.value[x] system and code SHALL be coherent: UCUM system uses UCUM code, MDC system uses MDC code (system = 'http://unitsofmeasure.org' implies code.memberOf('http://hl7.org/fhir/ValueSet/ucum-units')) and (system = 'urn:iso:std:iso:11073:10101' implies code.memberOf('http://hl7.org/fhir/uv/phd/ValueSet/MDCValueSet'))

Differential View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation 0..* PhdBaseObservation Simple Numeric measurement
... Slices for extension Content/Rules for all slices
.... extension:Accuracy 0..1 Quantity Numeric Accuracy
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/Accuracy
.... extension:Confidence95 0..1 Range Confidence95
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/Confidence95
... value[x] C 0..1 Quantity Actual result
Constraints: unit-system-code-coherent, phd-dim-code
.... value 1..1 decimal Numerical value (with implicit precision)
.... unit 0..1 string Unit representation
.... system C 1..1 uri The code system for the units of this measurement (UCUM or MDC).
Constraints: system-is-mdc-or-ucum
.... code 1..1 code The UCUM or MDC code for the units of this measurement.
... dataAbsentReason 0..1 CodeableConcept This element is populated for numeric observations when a special FLOAT value is reported that is not a real number.

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
phd-dim-code error Observation.value[x] If system is MDC, code must be a partition-4 dimension code (262144-327679) system != 'urn:iso:std:iso:11073:10101' or (code.toInteger() >= 262144 and code.toInteger() <= 327679)
system-is-mdc-or-ucum error Observation.value[x].system system SHALL be either the MDC or UCUM URI $this = 'urn:iso:std:iso:11073:10101' or $this = 'http://unitsofmeasure.org'
unit-system-code-coherent error Observation.value[x] system and code SHALL be coherent: UCUM system uses UCUM code, MDC system uses MDC code (system = 'http://unitsofmeasure.org' implies code.memberOf('http://hl7.org/fhir/ValueSet/ucum-units')) and (system = 'urn:iso:std:iso:11073:10101' implies code.memberOf('http://hl7.org/fhir/uv/phd/ValueSet/MDCValueSet'))

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* PhdBaseObservation Simple Numeric measurement
Constraints: obs-6, obs-7, obs-10, obs-11, obs-12
... 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:$this
Binding: AllSecurityLabels (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: AllSecurityLabels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.

Required Pattern: At least the following
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/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: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
... 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) Device Gateway
URL: http://hl7.org/fhir/StructureDefinition/device-gateway
..... id 0..1 id Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/device-gateway"
..... value[x] 0..1 CodeableReference(PhgDevice) Reference to the PHG Device
Binding: DeviceType (example)
.... extension:CoincidentTimeStamp 0..1 Reference(PhdCoincidentTimeStampObservation) Coincident Timestamp Reference
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/CoincidentTimeStampReference
.... extension:Accuracy 0..1 Quantity Numeric Accuracy
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/Accuracy
.... extension:Confidence95 0..1 Range Confidence95
URL: http://hl7.org/fhir/uv/phd/StructureDefinition/Confidence95
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... 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
Required Pattern: http://hl7.org/fhir/uv/phd/StructureDefinition/PhdBaseObservation
..... value ΣC 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 | MedicationRequest | NutritionOrder | ServiceRequest) Fulfills plan, proposal or order
... triggeredBy 0..* BackboneElement Triggering observation(s)
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
.... observation Σ 1..1 Reference(Observation) Triggering observation
.... type Σ 1..1 code reflex | repeat | re-run
Binding: TriggeredBytype (required): The type of TriggeredBy Observation.
.... reason 0..1 string Reason that the observation was triggered
... partOf Σ 0..* Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) Part of referenced event
... status ?!Σ 1..1 code registered | in-process | specimen-in-process | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | unknown | cannot-be-obtained
Binding: ObservationStatus (required): Codes providing the status of an observation.
... statusReason 0..1 CodeableConcept Reason for current status
Binding: ObservationStatusReason (example): Codes identifying the reason for the current state of an observation.
... Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by value:$this
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
.... category:PHD-Observation 1..1 CodeableConcept PHD observation category
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.

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: 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): IEEE 11073-10101 Nomenclature codes for PHD measurements
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 ΣC 0..1 code Symbol in syntax defined by the system
..... display ΣC 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
... organizer ΣC 0..1 boolean This observation organizes/groups a set of sub-observations
... encounter Σ 0..1 Reference(Encounter) Healthcare event during which this observation is made. If you need to place the observation within one or more episodes of care, use the workflow-episodeOfCare extension
... 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 | HealthcareService | Group) Who is responsible for the observation
... value[x] ΣC 0..1 Quantity Actual result
Constraints: unit-system-code-coherent, phd-dim-code
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... value Σ 1..1 decimal Numerical value (with implicit precision)
.... comparator ?!Σ 0..1 code < | <= | >= | > | ~ | ad - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
.... unit Σ 0..1 string Unit representation
.... system ΣC 1..1 uri The code system for the units of this measurement (UCUM or MDC).
Constraints: system-is-mdc-or-ucum
.... code ΣC 1..1 code The UCUM or MDC code for the units of this measurement.
... dataAbsentReason C 0..1 CodeableConcept This element is populated for numeric observations when a special FLOAT value is reported that is not a real number.
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
Required Pattern: http://hl7.org/fhir/uv/pocd/CodeSystem/measurement-status
...... version Σ 0..1 string Version of the system - if relevant
...... code ΣC 1..1 code Symbol in syntax defined by the system
...... display ΣC 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
... context 0..* CodeableReference(Resource) Context for understanding the observation
Binding: ObservationContextCodes (example): Codes identifying contextual factors that affect interpretation of observations.
... note 0..* Annotation Comments about the observation
... bodySite 0..1 CodeableConcept DEPRECATED: Observed body part
... bodyStructure 0..* CodeableReference(BodyStructure) Observed body structure
Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body Structures
... method 0..1 CodeableConcept How it was done
Binding: ObservationMethods (example): Methods for simple observations.
... specimen C 0..1 Reference(Specimen | Group) Specimen used for this observation
Constraints: obs-9
... device 1..1 Reference(PhdDevice) A reference to the device that generates the measurements or the device settings for the 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") - must be a resource in resources
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
.... identifier ΣC 0..1 Identifier Logical reference, when literal reference is not known
.... display ΣC 0..1 string Text alternative for the resource
... supportingDevice 0..* CodeableReference(Device) Device supporting generation of the measurement
Binding: DeviceType (example): Type of device supporting the generation of the measurement.
... 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
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
.... low C 0..1 Quantity Low Range, if relevant
Constraints: obs-13
.... high C 0..1 Quantity High Range, if relevant
Constraints: obs-14
.... normalValue 0..1 CodeableConcept Normal value, if relevant
Binding: ObservationReferenceRangeNormalValueCodes (example): Codes identifying the normal value of the observation.
.... 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 C 0..1 markdown 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 ΣC 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
Slice: Unordered, Open by value:url
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
..... code ΣC 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCObsOrBoth (example): Codes identifying names of simple observations.
..... value[x] ΣC 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
...... valueAttachment Attachment
..... dataAbsentReason C 0..1 CodeableConcept Why the component result value 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 value
.... component:supplementalTypesComponent ΣC 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
Slice: Unordered, Open by value:url
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Slice: Unordered, Open by value:url
..... code ΣC 1..1 CodeableConcept Supplemental-Types code (68193)
Binding: LOINCObsOrBoth (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
..... value[x] ΣC 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 Σ 0..1 uri Identity of the terminology system
Required Pattern: urn:iso:std:iso:11073:10101
....... version Σ 0..1 string Version of the system - if relevant
....... code ΣC 0..1 code Symbol in syntax defined by the system
....... display ΣC 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 value

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.meta.security Base extensible All Security Labels 📍6.0.0-ballot5 FHIR Std.
Observation.meta.security:PhdHtest Base extensible All Security Labels 📍6.0.0-ballot5 FHIR Std.
Observation.meta.tag Base example Common Tags 📍6.0.0-ballot5 FHIR Std.
Observation.language Base required All Languages 📍6.0.0-ballot5 FHIR Std.
Observation.extension:GatewayDevice.​value[x] Base example Device Type 📦6.0.0-ballot5 FHIR Std.
Observation.identifier:conditionalCreate.​use Base required IdentifierUse 📍6.0.0-ballot5 FHIR Std.
Observation.triggeredBy.​type Base required triggered Bytype 📍6.0.0-ballot5 FHIR Std.
Observation.status Base required Observation Status 📍6.0.0-ballot5 FHIR Std.
Observation.statusReason Base example Observation Status Reason 📍6.0.0-ballot5 FHIR Std.
Observation.category Base preferred Observation Category Codes 📍6.0.0-ballot5 FHIR Std.
Observation.category:PHD-Observation Base preferred Observation Category Codes 📍6.0.0-ballot5 FHIR Std.
Observation.code Base extensible MDC Non-Object codes 📦3.0.0-draft This IG
Observation.value[x].​comparator Base required QuantityComparator 📍6.0.0-ballot5 FHIR Std.
Observation.dataAbsentReason Base extensible Data Absent Reason 📍6.0.0-ballot5 FHIR Std.
Observation.dataAbsentReason.​coding Base required Data Absent Reason 📦6.0.0-ballot5 FHIR Std.
Observation.interpretation Base extensible Observation Interpretation Codes 📍6.0.0-ballot5 FHIR Std.
Observation.context Base example Observation Context Codes 📍6.0.0-ballot5 FHIR Std.
Observation.bodyStructure Base example SNOMED CT Body Structures 📍6.0.0-ballot5 FHIR Std.
Observation.method Base example Observation Methods 📍6.0.0-ballot5 FHIR Std.
Observation.device.type Base extensible Resource Types 📍6.0.0-ballot5 FHIR Std.
Observation.supportingDevice Base example Device Type 📍6.0.0-ballot5 FHIR Std.
Observation.referenceRange.​normalValue Base example Observation Reference Range Normal Value Codes 📍6.0.0-ballot5 FHIR Std.
Observation.referenceRange.​type Base preferred Observation Reference Range Meaning Codes 📍6.0.0-ballot5 FHIR Std.
Observation.referenceRange.​appliesTo Base example Observation Reference Range Applies To Codes 📍6.0.0-ballot5 FHIR Std.
Observation.component.​code Base example LOINC codes with Observation or Both 📍6.0.0-ballot5 FHIR Std.
Observation.component.​dataAbsentReason Base extensible Data Absent Reason 📍6.0.0-ballot5 FHIR Std.
Observation.component.​interpretation Base extensible Observation Interpretation Codes 📍6.0.0-ballot5 FHIR Std.
Observation.component:supplementalTypesComponent.​code Base example LOINC codes with Observation or Both 📍6.0.0-ballot5 FHIR Std.
Observation.component:supplementalTypesComponent.​interpretation Base extensible Observation Interpretation Codes 📍6.0.0-ballot5 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If 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-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
mdc-1 warning Observation.code A 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-3 error Observation.referenceRange Must have at least a low or a high or text low.exists() or high.exists() or text.exists()
obs-6 error Observation Observation.dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.component.code is the same as Observation.code, then Observation.value SHALL NOT be present (the Observation.component.value[x] holds the value). value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
obs-9 error Observation.specimen If Observation.specimen is a reference to Group, the group can only have specimens (reference.resolve().exists() and reference.resolve() is Group) implies reference.resolve().member.entity.resolve().all($this is Specimen)
obs-10 error Observation Observation.component.dataAbsentReason SHALL only be present if Observation.component.value[x] is not present component.empty() or component.where(dataAbsentReason.exists()).all(value.empty())
obs-11 error Observation if organizer exists and organizer = true, then value[x], dataAbsentReason and component SHALL NOT be present (organizer.exists() and organizer.allTrue()) implies (value.empty() and dataAbsentReason.empty() and component.empty())
obs-12 warning Observation All observations SHOULD have a performer performer.exists()
obs-13 error Observation.referenceRange.low If low.comparator exists, it must be '>=' or '>'. comparator.exists() implies (comparator = '>=' or comparator = '>')
obs-14 error Observation.referenceRange.high If high.comparator exists, it must be '<=' or '<'. comparator.exists() implies (comparator = '<=' or comparator = '<')
phd-dim-code error Observation.value[x] If system is MDC, code must be a partition-4 dimension code (262144-327679) system != 'urn:iso:std:iso:11073:10101' or (code.toInteger() >= 262144 and code.toInteger() <= 327679)
system-is-mdc-or-ucum error Observation.value[x].system system SHALL be either the MDC or UCUM URI $this = 'urn:iso:std:iso:11073:10101' or $this = 'http://unitsofmeasure.org'
unit-system-code-coherent error Observation.value[x] system and code SHALL be coherent: UCUM system uses UCUM code, MDC system uses MDC code (system = 'http://unitsofmeasure.org' implies code.memberOf('http://hl7.org/fhir/ValueSet/ucum-units')) and (system = 'urn:iso:std:iso:11073:10101' implies code.memberOf('http://hl7.org/fhir/uv/phd/ValueSet/MDCValueSet'))

Summary

Mandatory: 0 element(3 nested mandatory elements)

Extensions

This structure refers to these extensions:

Maturity: 1

 

Other representations of profile: CSV, Excel, Schematron

Notes:

This profile is used to map ACOM Numeric Observations. The measured value is reported as a floating number with an optional accuracy. In GHS the value is encoded as an IEEE 11073 FLOAT that indicates both precision and the number of significant digits. The Observation.valueQuantity.value element is required to honor the reported precision. See FLOATs and SFLOATs for instructions on handling S/FLOATs and their encoding to the valueQuantity .

Mapping the unit code to FHIR

The MDC unit code as provided by the PHD needs to be mapped to UCUM. See MDC Nomenclature Codes for more details.

Additional Numerical Measurement Information

IEEE 11073-10206 numeric observations have some additional optional attributes that are used only for numerics and provide further information about the measurement. These optional attributes are seldom used directly by PHDs and are mapped to FHIR extensions.

Accuracy

The Accuracy attribute gives the maximum deviation as an absolute value of the reported measurement from the actual measurement. It shall be reported if the PHD provides it. When static it can be reported as an extension in a Device Metric, otherwise it is reported as an extension of an Observation. See Accuracy extension. The accuracy is reported in the same unit as the measurement itself. An example of an accuracy entry for a thermometer is shown below:

{
  "resourceType" : "Observation",
  ...
  "extension" : [
    ...
    {
      "url" : "http://hl7.org/fhir/uv/phd/StructureDefinition/Accuracy",
      "valueQuantity" : {
        "value" : 0.1,
        "system" : "http://unitsofmeasure.org",
        "code" : "Cel"
      }
    }
  ],
  ...
}
Measurement Confidence 95

The Measurement-Confidence-95 gives a lower and upper bound with which the manufacturer is 95% confident that the actual reported measurement is within that bounds. The Measurement Confidence 95 applies only to measurement values that are quantities. It is supported by the IEEE 11073-20601 specification, but not by the IEEE 11073-10206 ACOM specification. It shall be reported if the PHD provides it. When static it can be reported as an extension in a Device Metric, otherwise it is reported as an extension of an Observation. See Confidence95 extension. The range is encoded in an Extension.valueRange element. The ranges have the same units as the primary measurement. The IEEE 11073-20601 Measurement-Confidence-95 component is currently used only in the Continuous Glucose specialization. An example of a Measurement Confidence 95 entry is shown below:

{
  "resourceType" : "Observation",
  ...
  "extension" : [
    ...
    {
      "url" : "http://hl7.org/fhir/uv/phd/StructureDefinition/Confidence95",
      "valueRange" : {
        "low" : {
          "value" : 98,
          "unit" : "mg/dL",
          "system" : "http://unitsofmeasure.org",
          "code" : "mg/dL"
        },
        "high" : {
          "value" : 100,
          "unit" : "mg/dL",
          "system" : "http://unitsofmeasure.org",
          "code" : "mg/dL"
        }
      }
    }
  ],
  ...
}

The above states that the Continuous Glucose Monitor PHG is 95% sure that the reported measurement of (say 99 mg/dL) lies between 98 and 100 mg/dL.

Examples:

A basic simple numeric observation with a timestamp and a supplemental types attribute is shown in Pulse Rate Spot Measurement. Simple numeric measurements are common in PHDs.

An example of a NaN (not a number) measurement is shown in NaN Example. Note that the value element is absent and replaced by a dataAbsentReason element.

Consumer of the PHD Numeric Observation Profile

The consumer of this profile does not need to concern itself with the complexities or the PHD-related entry for the Observation.identifier which is used by the uploader to prevent data duplication. There are some extensions introduced by this profile but the resource is consumable by any reader that understands the Observation resource. The following table summarizes the elements used describing the measurement:

Measurement Item Element Additional Information
Measurement type Observation.code.coding.code There shall be one coding element using the MDC coding system.
If a vital sign, there will be an additional coding element using one of the LOINC vital-signs codes.
Measurement value Observation.valueQuantity.value The value has the precision of the original. measurement.
Measurement units Observation.valueQuantity.code FHIR uses the UCUM coding system.
Error Observation.dataAbsentReason Contains error code. If present, no Observation.valueQuantity is present.
Timestamp Observation.effectiveDateTime
Observation.effectivePeriod
If the measurement is a point in time.
If the measurement has a duration.
Coincident timestamp reference Observation.extension.valueReference Points to an Observation following the Coincident Timestamp Observation profile. For time quality auditing purposes. Not present if the sensor provides no timestamp.
Related measurement Observation.derivedFrom Points to PHD Observations that are related to this Observation, such as a height observation related to a BMI measurement. Not present if the observation did not reference other observations it is derived from.
Related measurement Observation.memberOf Points to a PHD Observation that reports a group of related Observations, such as a cardio session. Not present if the observation is not a member of a group of related measurements.
Additional descriptions Observation.extension.* When present it contains additional information about the measurement.
Patient Observation.subject Points to the Patient resource.
Sensor device Observation.device Points to the Device resource.