This page is part of the Point-of-care Device FHIR IG (v0.2.0: STU 1 Ballot 2) based on FHIR v3.5.0. . For a full list of available versions, see the Directory of published versions
This is a pre-release version (Ballot 2) of Point of Care Devices (PoCD) R1/STU. There is no current official version.
For a full list of available versions, see the Directory of published versions .
The official URL for this profile is:
http://hl7.org/fhir/uv/pocd/StructureDefinition/NumericObservation
StructureDefinition for Observation resources that represent numerical measurements, calculations, or settings.
This profile builds on Observation.
This profile was published on Tue Aug 07 00:00:00 AEST 2018 as a draft by Health Level Seven International (Health Care Devices Work Group).
Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.
This structure is derived from Observation
Summary
The profile defines the following rules:
Observation.code
shall have a coding from the ISO/IEEE 11073 MDC Metric nomenclature if there is an appropriate code available. Depending on the type of measurement, the Vital Signs profiles may require an additional LOINC code.Observation.subject
shall be present and refer to a Patient resource or MDS Device resource.Observation.valueQuantity
or Observation.valueRatio
or, if there is no value, Observation.dataAbsentReason
shall be present. Values shall have a UCUM unit code.Observation.interpretation
coding includes measurement status.Observation.device
shall be present and refer to the Numeric DeviceMetric resource where this observation belongs to.Mandatory: 2 elements (3 nested mandatory elements)
Fixed Value: 3 elements
Structures
This structure refers to these other structures:
Slices
This structure defines the following Slices:
This structure is derived from Observation
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | pocd-obs-1: If there is no value a dataAbsentReason shall be present | |
code | 1..1 | CodeableConcept | Binding: 11073 MDC Metric nomenclature (extensible) | |
subject | 1..1 | Reference(Patient | MDS Device Profile) | ||
value[x] | I | Quantity, Ratio | Slice: Unordered, Open by type:$this | |
valueQuantity | 0..1 | Quantity | ||
value | 1..1 | decimal | ||
system | 0..1 | uri | Fixed Value: http://unitsofmeasure.org | |
valueRatio | 0..1 | Ratio | ||
numerator | 0..1 | Quantity | ||
value | 1..1 | decimal | ||
system | 0..1 | uri | Fixed Value: http://unitsofmeasure.org | |
denominator | 0..1 | Quantity | ||
value | 1..1 | decimal | ||
system | 0..1 | uri | Fixed Value: http://unitsofmeasure.org | |
dataAbsentReason | I | 0..1 | CodeableConcept | |
interpretation | 0..* | CodeableConcept | Binding: Observation interpretation codes (extensible) | |
device | 1..1 | Reference(Numeric DeviceMetric Profile) | ||
Documentation for this format |
This structure is derived from Observation
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | Measurements and simple assertions pocd-obs-1: If there is no value a dataAbsentReason shall be present | |
id | Σ | 0..1 | id | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: Common Languages (preferred) | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | Σ | 0..* | Identifier | Business Identifier for observation |
basedOn | Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order |
partOf | Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) | Part of referenced event |
status | ?!Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
category | 0..* | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred) | |
code | Σ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: 11073 MDC Metric nomenclature (extensible) |
subject | Σ | 1..1 | Reference(Patient | MDS Device Profile) | Who and/or what the observation is about |
focus | Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record |
encounter | Σ | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made |
effective[x] | Σ | 0..1 | dateTime, Period, Timing, instant | Clinically relevant time/time-period for observation |
issued | Σ | 0..1 | instant | Date/Time this version was made available |
performer | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who is responsible for the observation |
value[x] | ΣI | Quantity, Ratio | Actual result Slice: Unordered, Open by type:$this | |
valueQuantity | ΣI | 0..1 | Quantity | Actual result |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
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 | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
unit | Σ | 0..1 | string | Unit representation |
system | ΣI | 0..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | Σ | 0..1 | code | Coded form of the unit |
valueRatio | ΣI | 0..1 | Ratio | Actual result |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
numerator | Σ | 0..1 | Quantity | Numerator value |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
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 | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
unit | Σ | 0..1 | string | Unit representation |
system | ΣI | 0..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | Σ | 0..1 | code | Coded form of the unit |
denominator | Σ | 0..1 | Quantity | Denominator value |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
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 | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
unit | Σ | 0..1 | string | Unit representation |
system | ΣI | 0..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | Σ | 0..1 | code | Coded form of the unit |
dataAbsentReason | I | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible) |
interpretation | 0..* | CodeableConcept | High, low, normal, etc. Binding: Observation interpretation codes (extensible) | |
comment | 0..1 | string | Comments about the test result value | |
bodySite | 0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example) | |
method | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example) | |
specimen | 0..1 | Reference(Specimen) | Specimen used for this observation | |
device | 1..1 | Reference(Numeric DeviceMetric Profile) | (Measurement) Device | |
referenceRange | I | 0..* | BackboneElement | Provides guide for interpretation obs-3: Must have at least a low or a high or text |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored if unrecognized |
low | I | 0..1 | SimpleQuantity | Low Range, if relevant |
high | I | 0..1 | SimpleQuantity | High Range, if relevant |
type | 0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred) | |
appliesTo | 0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example) | |
age | 0..1 | Range | Applicable age range, if relevant | |
text | 0..1 | string | Text based reference range in an observation | |
hasMember | Σ | 0..* | Reference(Observation | QuestionnaireResponse | Sequence) | Related resource that belongs to the Observation group |
derivedFrom | Σ | 0..* | Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | Sequence) | Related measurements the observation is made from |
component | ΣI | 0..* | BackboneElement | Component results |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored if unrecognized |
code | Σ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example) |
value[x] | Σ | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period | Actual component result |
dataAbsentReason | I | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible) |
interpretation | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible) | |
referenceRange | 0..* | Unknown reference to #Observation.referenceRange Provides guide for interpretation of component result | ||
Documentation for this format |
This structure is derived from Observation
Summary
The profile defines the following rules:
Observation.code
shall have a coding from the ISO/IEEE 11073 MDC Metric nomenclature if there is an appropriate code available. Depending on the type of measurement, the Vital Signs profiles may require an additional LOINC code.Observation.subject
shall be present and refer to a Patient resource or MDS Device resource.Observation.valueQuantity
or Observation.valueRatio
or, if there is no value, Observation.dataAbsentReason
shall be present. Values shall have a UCUM unit code.Observation.interpretation
coding includes measurement status.Observation.device
shall be present and refer to the Numeric DeviceMetric resource where this observation belongs to.Mandatory: 2 elements (3 nested mandatory elements)
Fixed Value: 3 elements
Structures
This structure refers to these other structures:
Slices
This structure defines the following Slices:
Differential View
This structure is derived from Observation
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | pocd-obs-1: If there is no value a dataAbsentReason shall be present | |
code | 1..1 | CodeableConcept | Binding: 11073 MDC Metric nomenclature (extensible) | |
subject | 1..1 | Reference(Patient | MDS Device Profile) | ||
value[x] | I | Quantity, Ratio | Slice: Unordered, Open by type:$this | |
valueQuantity | 0..1 | Quantity | ||
value | 1..1 | decimal | ||
system | 0..1 | uri | Fixed Value: http://unitsofmeasure.org | |
valueRatio | 0..1 | Ratio | ||
numerator | 0..1 | Quantity | ||
value | 1..1 | decimal | ||
system | 0..1 | uri | Fixed Value: http://unitsofmeasure.org | |
denominator | 0..1 | Quantity | ||
value | 1..1 | decimal | ||
system | 0..1 | uri | Fixed Value: http://unitsofmeasure.org | |
dataAbsentReason | I | 0..1 | CodeableConcept | |
interpretation | 0..* | CodeableConcept | Binding: Observation interpretation codes (extensible) | |
device | 1..1 | Reference(Numeric DeviceMetric Profile) | ||
Documentation for this format |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | Measurements and simple assertions pocd-obs-1: If there is no value a dataAbsentReason shall be present | |
id | Σ | 0..1 | id | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: Common Languages (preferred) | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | Σ | 0..* | Identifier | Business Identifier for observation |
basedOn | Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order |
partOf | Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) | Part of referenced event |
status | ?!Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
category | 0..* | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred) | |
code | Σ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: 11073 MDC Metric nomenclature (extensible) |
subject | Σ | 1..1 | Reference(Patient | MDS Device Profile) | Who and/or what the observation is about |
focus | Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record |
encounter | Σ | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made |
effective[x] | Σ | 0..1 | dateTime, Period, Timing, instant | Clinically relevant time/time-period for observation |
issued | Σ | 0..1 | instant | Date/Time this version was made available |
performer | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who is responsible for the observation |
value[x] | ΣI | Quantity, Ratio | Actual result Slice: Unordered, Open by type:$this | |
valueQuantity | ΣI | 0..1 | Quantity | Actual result |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
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 | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
unit | Σ | 0..1 | string | Unit representation |
system | ΣI | 0..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | Σ | 0..1 | code | Coded form of the unit |
valueRatio | ΣI | 0..1 | Ratio | Actual result |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
numerator | Σ | 0..1 | Quantity | Numerator value |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
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 | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
unit | Σ | 0..1 | string | Unit representation |
system | ΣI | 0..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | Σ | 0..1 | code | Coded form of the unit |
denominator | Σ | 0..1 | Quantity | Denominator value |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
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 | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
unit | Σ | 0..1 | string | Unit representation |
system | ΣI | 0..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | Σ | 0..1 | code | Coded form of the unit |
dataAbsentReason | I | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible) |
interpretation | 0..* | CodeableConcept | High, low, normal, etc. Binding: Observation interpretation codes (extensible) | |
comment | 0..1 | string | Comments about the test result value | |
bodySite | 0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example) | |
method | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example) | |
specimen | 0..1 | Reference(Specimen) | Specimen used for this observation | |
device | 1..1 | Reference(Numeric DeviceMetric Profile) | (Measurement) Device | |
referenceRange | I | 0..* | BackboneElement | Provides guide for interpretation obs-3: Must have at least a low or a high or text |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored if unrecognized |
low | I | 0..1 | SimpleQuantity | Low Range, if relevant |
high | I | 0..1 | SimpleQuantity | High Range, if relevant |
type | 0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred) | |
appliesTo | 0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example) | |
age | 0..1 | Range | Applicable age range, if relevant | |
text | 0..1 | string | Text based reference range in an observation | |
hasMember | Σ | 0..* | Reference(Observation | QuestionnaireResponse | Sequence) | Related resource that belongs to the Observation group |
derivedFrom | Σ | 0..* | Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | Sequence) | Related measurements the observation is made from |
component | ΣI | 0..* | BackboneElement | Component results |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored if unrecognized |
code | Σ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example) |
value[x] | Σ | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period | Actual component result |
dataAbsentReason | I | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible) |
interpretation | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible) | |
referenceRange | 0..* | Unknown reference to #Observation.referenceRange Provides guide for interpretation of component result | ||
Documentation for this format |
Path | Name | Conformance | ValueSet |
Observation.language | Language | preferred | Common Languages |
Observation.status | ObservationStatus | required | ObservationStatus |
Observation.category | Observation Category Codes | preferred | ObservationCategoryCodes |
Observation.code | 11073 MDC Metric nomenclature | extensible | MdcMetric |
Observation.valueQuantity.comparator | QuantityComparator | required | QuantityComparator |
Observation.valueRatio.numerator.comparator | QuantityComparator | required | QuantityComparator |
Observation.valueRatio.denominator.comparator | QuantityComparator | required | QuantityComparator |
Observation.dataAbsentReason | DataAbsentReason | extensible | DataAbsentReason |
Observation.interpretation | Observation interpretation codes | extensible | ObservationInterpretation |
Observation.bodySite | SNOMED CT Body Structures | example | SNOMEDCTBodyStructures |
Observation.method | Observation Methods | example | ObservationMethods |
Observation.referenceRange.type | Observation Reference Range Meaning Codes | preferred | ObservationReferenceRangeMeaningCodes |
Observation.referenceRange.appliesTo | Observation Reference Range Applies To Codes | example | ObservationReferenceRangeAppliesToCodes |
Observation.component.code | LOINC Codes | example | LOINCCodes |
Observation.component.dataAbsentReason | DataAbsentReason | extensible | DataAbsentReason |
Observation.component.interpretation | Observation Interpretation Codes | extensible | ObservationInterpretationCodes |
Id | Path | Details | Requirements |
dom-2 | Observation | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-4 | 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-3 | 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 in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-6 | Observation | A resource should have narrative for robust management : text.div.exists() | |
dom-5 | Observation | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
obs-7 | Observation | If Observation.code is the same as a Observation.component.code then the value element associated with the code SHALL NOT be present : value.empty() or component.code.where( (coding.code = %resource.code.coding.code) and (coding.system = %resource.code.coding.system)).empty() | |
obs-6 | Observation | dataAbsentReason SHALL only be present if Observation.value[x] is not present : dataAbsentReason.empty() or value.empty() | |
pocd-obs-1 | Observation | If there is no value a dataAbsentReason shall be present : value.exists() or dataAbsentReason.exists() | |
ele-1 | Observation.referenceRange | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
obs-3 | Observation.referenceRange | Must have at least a low or a high or text : low.exists() or high.exists() or text.exists() | |
ele-1 | Observation.component | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |