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: PhdRtsaObservation

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

Observations from a PHD where the measurement is a sample array.

The (Real Time) Sample Array (RTSA) Observation Profile is used when the measurement is a periodic sequences of scalars in time, typically waveforms. In theory, this measurement could be split up into a sequence of Numeric Observations but that would be inefficient especially if one is talking about a 1000 samples per second or more. Waveforms are used for spirometry, ECG, pulse oximeter pleth wave traces, etc. This profile is used to represent ACOM Sample Array Observations.

The values are scaled to reduced bandwidth. The bandwidth reduction can be significant in cases where the actual values are small fluctuations about a large average value. The scale factors, number of bits in each sample, the period, and the number of samples in the sequence are given by a set of support attributes.

IEEE 11073-10206 ACOM and GHS support the concept of multi-dimensional arrays. Reporting a sequence of x, y, z acceleration components from a PHD can be done by reporting 3 samples per period, that all share the same unit and scaling factors. FHIR also support the concept of multi-dimensional arrays.

IEEE 11073-10206 Sample Array Attribute Value type Description
Sample-Period period Interval between samples
number-of-samples-per-period integer #Dimensions of the measurement
Actual-Range Real range Lowest-Highest unscaled value PHD can ever report [A,B]
Scaled-range Integer range Low- and high-value used for scaling [I,J]
Unit-code MDC code The unit of the samples
Samples array of integer The scaled measured samples

When mapping the samples directly to FHIR SampledData.data, the FHIR scale factor and origin can be derived from this:

  • SampledData.factor = (B-A)/(J-I)
  • SampledData.origin = (A*J - B*I)/ (J-I)

A graphing application could use the Actual-range limits to define the upper and lower ranges of a graph and be assured that the waveform would never go above or below those boundaries. These upper and lower boundaries are scaled and placed in the SampledData.lowerLimit and SampledData.upperLimit elements, respectively.

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 Measurements and simple assertions
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
... 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 SampledData Actual result
.... origin ΣC 1..1 SimpleQuantity(6.0.0-ballot5) Zero value and units
Constraints: unit-system-code-coherent, phd-dim-code
..... value Σ 1..1 decimal Intercept value (with implicit precision)
..... unit Σ 0..1 string Unit representation
..... system ΣC 1..1 uri System that defines coded unit form
Constraints: system-is-mdc-or-ucum
..... code ΣC 1..1 code Coded form of the unit
.... interval ΣC 0..1 decimal Number of intervalUnits between samples
.... intervalUnit Σ 1..1 code The measurement unit of the interval between samples
Binding: UCUMCodes (required): Units of measure allowed for an element.
.... factor Σ 1..1 decimal The scale factor
.... lowerLimit Σ 0..1 decimal The scaled lower limit of the ACOM sample array when provided by the PHD device.
.... upperLimit Σ 0..1 decimal The scaled upper limit of the ACOM sample array when provided by the PHD device.
.... dimensions Σ 1..1 positiveInt Number of sample points at each time point
.... data 0..1 string Decimal values with spaces, or "E" | "U" | "L", or another code
... 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.
... 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].​intervalUnit Base required UCUM Codes 📍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].origin 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].origin.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].origin 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 Measurements and simple assertions
... value[x] 0..1 SampledData Actual result
.... origin C 1..1 SimpleQuantity(6.0.0-ballot5) Zero value and units
Constraints: unit-system-code-coherent, phd-dim-code
..... value 1..1 decimal Intercept value (with implicit precision)
..... unit 0..1 string Unit representation
..... system C 1..1 uri System that defines coded unit form
Constraints: system-is-mdc-or-ucum
..... code 1..1 code Coded form of the unit
.... interval 0..1 decimal Number of intervalUnits between samples
.... factor 1..1 decimal The scale factor
.... lowerLimit 0..1 decimal The scaled lower limit of the ACOM sample array when provided by the PHD device.
.... upperLimit 0..1 decimal The scaled upper limit of the ACOM sample array when provided by the PHD device.
.... dimensions 1..1 positiveInt Number of sample points at each time point
.... data 0..1 string Decimal values with spaces, or "E" | "U" | "L", or another code

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
phd-dim-code error Observation.value[x].origin 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].origin.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].origin 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 Measurements and simple assertions
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
... 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 SampledData Actual 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
.... origin ΣC 1..1 SimpleQuantity(6.0.0-ballot5) Zero value and units
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 Intercept value (with implicit precision)
..... unit Σ 0..1 string Unit representation
..... system ΣC 1..1 uri System that defines coded unit form
Constraints: system-is-mdc-or-ucum
..... code ΣC 1..1 code Coded form of the unit
.... interval ΣC 0..1 decimal Number of intervalUnits between samples
.... intervalUnit Σ 1..1 code The measurement unit of the interval between samples
Binding: UCUMCodes (required): Units of measure allowed for an element.
.... factor Σ 1..1 decimal The scale factor
.... lowerLimit Σ 0..1 decimal The scaled lower limit of the ACOM sample array when provided by the PHD device.
.... upperLimit Σ 0..1 decimal The scaled upper limit of the ACOM sample array when provided by the PHD device.
.... dimensions Σ 1..1 positiveInt Number of sample points at each time point
.... codeMap 0..1 canonical(ConceptMap) Defines the codes used in the data
.... offsets C 0..1 string Offsets, typically in time, at which data values were taken
.... data 0..1 string Decimal values with spaces, or "E" | "U" | "L", or another code
... 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
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].​intervalUnit Base required UCUM Codes 📍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].origin 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].origin.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].origin 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(4 nested mandatory elements)

Maturity: 1

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* PhdBaseObservation Measurements and simple assertions
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
... 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 SampledData Actual result
.... origin ΣC 1..1 SimpleQuantity(6.0.0-ballot5) Zero value and units
Constraints: unit-system-code-coherent, phd-dim-code
..... value Σ 1..1 decimal Intercept value (with implicit precision)
..... unit Σ 0..1 string Unit representation
..... system ΣC 1..1 uri System that defines coded unit form
Constraints: system-is-mdc-or-ucum
..... code ΣC 1..1 code Coded form of the unit
.... interval ΣC 0..1 decimal Number of intervalUnits between samples
.... intervalUnit Σ 1..1 code The measurement unit of the interval between samples
Binding: UCUMCodes (required): Units of measure allowed for an element.
.... factor Σ 1..1 decimal The scale factor
.... lowerLimit Σ 0..1 decimal The scaled lower limit of the ACOM sample array when provided by the PHD device.
.... upperLimit Σ 0..1 decimal The scaled upper limit of the ACOM sample array when provided by the PHD device.
.... dimensions Σ 1..1 positiveInt Number of sample points at each time point
.... data 0..1 string Decimal values with spaces, or "E" | "U" | "L", or another code
... 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.
... 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].​intervalUnit Base required UCUM Codes 📍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].origin 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].origin.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].origin 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 Measurements and simple assertions
... value[x] 0..1 SampledData Actual result
.... origin C 1..1 SimpleQuantity(6.0.0-ballot5) Zero value and units
Constraints: unit-system-code-coherent, phd-dim-code
..... value 1..1 decimal Intercept value (with implicit precision)
..... unit 0..1 string Unit representation
..... system C 1..1 uri System that defines coded unit form
Constraints: system-is-mdc-or-ucum
..... code 1..1 code Coded form of the unit
.... interval 0..1 decimal Number of intervalUnits between samples
.... factor 1..1 decimal The scale factor
.... lowerLimit 0..1 decimal The scaled lower limit of the ACOM sample array when provided by the PHD device.
.... upperLimit 0..1 decimal The scaled upper limit of the ACOM sample array when provided by the PHD device.
.... dimensions 1..1 positiveInt Number of sample points at each time point
.... data 0..1 string Decimal values with spaces, or "E" | "U" | "L", or another code

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
phd-dim-code error Observation.value[x].origin 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].origin.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].origin 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 Measurements and simple assertions
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
... 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 SampledData Actual 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
.... origin ΣC 1..1 SimpleQuantity(6.0.0-ballot5) Zero value and units
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 Intercept value (with implicit precision)
..... unit Σ 0..1 string Unit representation
..... system ΣC 1..1 uri System that defines coded unit form
Constraints: system-is-mdc-or-ucum
..... code ΣC 1..1 code Coded form of the unit
.... interval ΣC 0..1 decimal Number of intervalUnits between samples
.... intervalUnit Σ 1..1 code The measurement unit of the interval between samples
Binding: UCUMCodes (required): Units of measure allowed for an element.
.... factor Σ 1..1 decimal The scale factor
.... lowerLimit Σ 0..1 decimal The scaled lower limit of the ACOM sample array when provided by the PHD device.
.... upperLimit Σ 0..1 decimal The scaled upper limit of the ACOM sample array when provided by the PHD device.
.... dimensions Σ 1..1 positiveInt Number of sample points at each time point
.... codeMap 0..1 canonical(ConceptMap) Defines the codes used in the data
.... offsets C 0..1 string Offsets, typically in time, at which data values were taken
.... data 0..1 string Decimal values with spaces, or "E" | "U" | "L", or another code
... 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
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].​intervalUnit Base required UCUM Codes 📍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].origin 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].origin.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].origin 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(4 nested mandatory elements)

Maturity: 1

 

Other representations of profile: CSV, Excel, Schematron

Notes:

These notes provide information on how the scaling of the ACOM Sample Array observation is done and how it can best be mapped to the FHIR Observation resource and its SampledData element.

In the case of the Sample Array observation, ACOM provides the Actual-range and Scaled-Range attributes. The ith entry of the actual unscaled data from the sensor is obtained from these attributes using the following relation:

y[i] = ((A – B)*x[i])/(I – J) + A – (A-B)*I/(I-J) where:

  • A = Actual-range.upper-value
  • B = Actual-range.lower-value
  • I = Scaled-Range.upper-value
  • J = Scaled-Range.lower-value
  • x[i] = SampleArray.samples[i]

Since ((A – B)*x[i])/(I – J) + A – (A-B)*I/(I-J) = d[i] * s + b,

d[i] = x[i] if

  • s = SampledData.scaleFactor = (A – B)/(I – J) and
  • b = SampledData.origin.value = A –(A-B)I/(I-J) = (B*I-A*J)/(I-J)

Using these scale factor and origin values allows to map the SampleArray.samples[i] values directly to the SampledData.data[i] values unchanged. It is recommended that the uploader maps the samples to the Observation.valueSampledData element using the above scaling as it is assumed the PHD chose this scaling for a good reason. However, that does not restrict the uploader using another scaling. As an example, the uploader could decode the scaled values and report the unscaled original sensor values in the Observation.valueSampledData.data element and set the Observation.valueSampledData.scaleFactor to 1.0 and the Observation.valueSampledData.origin.value to 0. This approach is used in IHE PCD-01.

Using the variables 'b' and 's' as defined above the mapping to the FHIR Observation resource is as follows:

IEEE 11073-10206 Sample Array Observation Attribute FHIR Observation element
samples[i] valueSampledData.data[i]
Unit-Code valueSampledData.origin.code (mapped to UCUM when available)
See calculation of 'b' above valueSampledData.origin.value = b
See calculation of 's' above valueSampledData.scaleFactor = s
Sample-period valueSampledData.period (milliseconds)
number-of-samples-per-period valueSampledData.dimensions
Actual-range.upper-limit valueSampledData.upperLimit
Actual-range.lower-limit valueSampledData.lowerLimit

Additional Sample Array Attributes

All additional attributes such as accuracy that may be reported in a numerical observation may also be present in a Sample Array Observation and are mapped to FHIR in the same way. See the Additional Numerical Measurement Information for more information on these attributes.

Consumers of the RTSA Profile

About the only work a consumer of this profile needs to do is to back-scale the valueSampledData.data values to the original values reported by the sensor. The following table summarizes where a reader can obtain the most pertinent information.

information Data element in Observation
Type of measurement code.coding.code
Time at the start of the waveform effectiveDateTime
Dimensions / number of samples per period valueSampledData.dimension
Time between samples in milliseconds valueSampledData.period
Units of samples valueSampledData.origin.code
Upper range of values valueSampledData.upperLimit (scaled)
Lower range of values valueSampledData.lowerLimit (scaled)
The actual n values valueSampledData.data[*n*] * valueSampledData.scaleFactor + valueSampledData.origin.value