HL7 Europe Base and Core FHIR IG
2.0.0-ballot - ballot 150

HL7 Europe Base and Core FHIR IG - Downloaded Version 2.0.0-ballot See the Directory of published versions

## Resource Profile: MedicalTestResult (EU core)

Official URL: http://hl7.eu/fhir/base-r5/StructureDefinition/medicalTestResult-eu-core | Version: 2.0.0-ballot
Standards status: Draft | Maturity Level: 1 | Computable Name: MedicalTestResultEuCore
Copyright/Legal: Copyright HL7 Europe. Licensed under creative commons public domain (CC0 1.0).

This profile sets minimum expectations for the Observation resource for Medical Test Results common to most of the use cases.

Usages:

- Refer to this Profile: MedicalTestResult (EU core)
- Examples for this Profile: Observation/763f7902-8103-4d10-8bd1-546a726d43ee

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

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

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Observation | C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7, obs-8
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained |  | 0..* | Resource | Contained, inline Resources
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
status | ?!Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation.
Slices for category |  | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by value:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
category:laboratory |  | 0..1 | CodeableConcept | Classification of type of observation 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://terminology.hl7.org/CodeSystem/observation-category
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: laboratory
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
category:vital-signs |  | 0..1 | CodeableConcept | Classification of type of observation 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://terminology.hl7.org/CodeSystem/observation-category
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs
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: Laboratory Code (preferred)
subject | Σ | 1..1 | Reference(Patient (EU core)) | Who and/or what the observation is about
focus | Σ | 0..* | Reference(Patient (EU core) | RelatedPerson | Group | Device | Location (EU core)) | What the observation is about, when it is not about the subject of record
effective[x] | Σ | 1..1 |  | Clinically relevant time/time-period for observation
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
issued | Σ | 0..1 | instant | Date/Time this version was made available
performer | Σ | 0..* | Reference(Practitioner (EU core) | PractitionerRole (EU core) | Organization (EU core)) | Who is responsible for the observation
Slices for value[x] | Σ C | 0..1 |  | Actual result Slice: Unordered, Open by type:$this
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
valueAttachment |  |  | Attachment |
valueReference |  |  | Reference(MolecularSequence) |
value[x]:valueQuantity | Σ C | 0..1 | Quantity | Actual result
Slices for extension |  |  |  | Content/Rules for all slices
extension:uncertainty |  | 0..1 | decimal | Standard Deviation (same units as the quantity) URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
comparator | ?!Σ | 0..1 | code | < | <= | >= | > | ad - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented.
dataAbsentReason | C | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
note |  | 0..* | Annotation | Comments about the observation
bodySite | C | 0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts
bodyStructure | C | 0..1 | Reference(BodyStructure) | Observed body structure
method |  | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example): Methods for simple observations.
device |  | 0..1 | Reference(Device | DeviceMetric) | A reference to the device that generates the measurements or the device settings for the device
referenceRange | C | 0..* | BackboneElement | Provides guide for interpretation Constraints: obs-3
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
hasMember | Σ | 0..* | Reference(MedicalTestResult (EU core)) | Related resource that belongs to the Observation group
derivedFrom | Σ | 0..* | Reference(MedicalTestResult (EU core) | ImagingStudy) | Related resource from which the observation is made
component | Σ C | 0..* | BackboneElement | Component results
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code | Σ C | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: Laboratory Code (preferred)
Slices for value[x] | Σ | 0..1 |  | Actual component result Slice: Unordered, Open by type:$this
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
valueAttachment |  |  | Attachment |
valueReference |  |  | Reference(MolecularSequence) |
value[x]:valueQuantity | Σ | 0..1 | Quantity | Actual component result
Slices for extension |  |  |  | Content/Rules for all slices
extension:uncertainty |  | 0..1 | decimal | Standard Deviation (same units as the quantity) URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
comparator | ?!Σ | 0..1 | code | < | <= | >= | > | ad - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented.
dataAbsentReason |  | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
referenceRange |  | 0..* | See referenceRange (Observation) | Provides guide for interpretation of component result
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Observation.status | Base | required | Observation Status | 📍5.0.0 | FHIR Std.
Observation.category | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std.
Observation.category:laboratory | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std.
Observation.category:vital-signs | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std.
Observation.code | Base | preferred | Laboratory Code | 📦2.0.0-ballot | This IG
Observation.value[x]:valueQuantity.​comparator | Base | required | QuantityComparator | 📍5.0.0 | FHIR Std.
Observation.dataAbsentReason | Base | extensible | Data Absent Reason | 📍5.0.0 | FHIR Std.
Observation.interpretation | Base | extensible | Observation Interpretation Codes | 📍5.0.0 | FHIR Std.
Observation.bodySite | Base | example | SNOMED CT Body Structures | 📍5.0.0 | FHIR Std.
Observation.method | Base | example | Observation Methods | 📍5.0.0 | FHIR Std.
Observation.component.​code | Base | preferred | Laboratory Code | 📦2.0.0-ballot | This IG
Observation.component.​value[x]:valueQuantity.​comparator | Base | required | QuantityComparator | 📍5.0.0 | FHIR Std.
Observation.component.​dataAbsentReason | Base | extensible | Data Absent Reason | 📍5.0.0 | FHIR Std.
Observation.component.​interpretation | Base | extensible | Observation Interpretation Codes | 📍5.0.0 | 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 in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').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())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.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 | 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-8 | error | Observation | bodyStructure SHALL only be present if Observation.bodySite is not present | `bodySite.exists() implies bodyStructure.empty()`

This structure is derived from Observation

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Observation |  | 0..* | Observation | Measurements and simple assertions
identifier |  | 0..* | Identifier | Business Identifier for observation
basedOn |  | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order
triggeredBy |  |  |  |
observation |  | 1..1 | Reference(MedicalTestResult (EU core)) | Triggering observation
status |  | 1..1 | code | registered | preliminary | final | amended +
Slices for category |  | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by value:$this
category:laboratory |  | 0..1 | CodeableConcept | Classification of type of observation Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: laboratory
category:vital-signs |  | 0..1 | CodeableConcept | Classification of type of observation Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs
code |  | 1..1 | CodeableConcept | Type of observation (code / type) Binding: Laboratory Code (preferred)
subject |  | 1..1 | Reference(Patient (EU core)) | Who and/or what the observation is about
focus |  | 0..* | Reference(Patient (EU core) | RelatedPerson | Group | Device | Location (EU core)) | What the observation is about, when it is not about the subject of record
effective[x] |  | 1..1 |  | Clinically relevant time/time-period for observation
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
issued |  | 0..1 | instant | Date/Time this version was made available
performer |  | 0..* | Reference(Practitioner (EU core) | PractitionerRole (EU core) | Organization (EU core)) | Who is responsible for the observation
Slices for value[x] |  | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period, Attachment, Reference(MolecularSequence) | Actual result Slice: Unordered, Open by type:$this
value[x]:valueQuantity |  | 0..1 | Quantity | Actual result
Slices for extension |  |  |  | Content/Rules for all slices
extension:uncertainty |  | 0..1 | decimal | Standard Deviation (same units as the quantity) URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
dataAbsentReason |  | 0..1 | CodeableConcept | Why the result is missing
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc
note |  | 0..* | Annotation | Comments about the observation
bodySite |  | 0..1 | CodeableConcept | Observed body part
bodyStructure |  | 0..1 | Reference(BodyStructure) | Observed body structure
method |  | 0..1 | CodeableConcept | How it was done
device |  | 0..1 | Reference(Device | DeviceMetric) | A reference to the device that generates the measurements or the device settings for the device
referenceRange |  | 0..* | BackboneElement | Provides guide for interpretation
hasMember |  | 0..* | Reference(MedicalTestResult (EU core)) | Related resource that belongs to the Observation group
derivedFrom |  | 0..* | Reference(MedicalTestResult (EU core) | ImagingStudy) | Related resource from which the observation is made
component |  | 0..* | BackboneElement | Component results
code |  | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: Laboratory Code (preferred)
Slices for value[x] |  | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period, Attachment, Reference(MolecularSequence) | Actual component result Slice: Unordered, Open by type:$this
value[x]:valueQuantity |  | 0..1 | Quantity | Actual component result
Slices for extension |  |  |  | Content/Rules for all slices
extension:uncertainty |  | 0..1 | decimal | Standard Deviation (same units as the quantity) URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
dataAbsentReason |  | 0..1 | CodeableConcept | Why the component result is missing
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc
referenceRange |  | 0..* |  | Provides guide for interpretation of component result
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Observation.code | Base | preferred | Laboratory Code | 📦2.0.0-ballot | This IG
Observation.component.​code | Base | preferred | Laboratory Code | 📦2.0.0-ballot | This IG

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Observation | C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7, obs-8
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: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
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
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Business Identifier for observation
instantiates[x] | Σ | 0..1 | canonical(ObservationDefinition), Reference(ObservationDefinition) | Instantiates FHIR ObservationDefinition
basedOn | Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
observation | Σ | 1..1 | Reference(MedicalTestResult (EU core)) | 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 | GenomicStudy) | Part of referenced event
status | ?!Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation.
Slices for category |  | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by value:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
category:laboratory |  | 0..1 | CodeableConcept | Classification of type of observation 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://terminology.hl7.org/CodeSystem/observation-category
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: laboratory
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
category:vital-signs |  | 0..1 | CodeableConcept | Classification of type of observation 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://terminology.hl7.org/CodeSystem/observation-category
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs
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: Laboratory Code (preferred)
subject | Σ | 1..1 | Reference(Patient (EU core)) | Who and/or what the observation is about
focus | Σ | 0..* | Reference(Patient (EU core) | RelatedPerson | Group | Device | Location (EU core)) | 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] | Σ | 1..1 |  | Clinically relevant time/time-period for observation
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
issued | Σ | 0..1 | instant | Date/Time this version was made available
performer | Σ | 0..* | Reference(Practitioner (EU core) | PractitionerRole (EU core) | Organization (EU core)) | Who is responsible for the observation
Slices for value[x] | Σ C | 0..1 |  | Actual result Slice: Unordered, Open by type:$this
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
valueAttachment |  |  | Attachment |
valueReference |  |  | Reference(MolecularSequence) |
value[x]:valueQuantity | Σ C | 0..1 | Quantity | Actual result
id |  | 0..1 | id | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
extension:uncertainty |  | 0..1 | decimal | Standard Deviation (same units as the quantity) URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
value | Σ | 0..1 | decimal | Numerical value (with implicit precision)
comparator | ?!Σ | 0..1 | code | < | <= | >= | > | ad - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented.
unit | Σ | 0..1 | string | Unit representation
system | Σ C | 0..1 | uri | System that defines coded unit form
code | Σ C | 0..1 | code | Coded form of the unit
dataAbsentReason | C | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
note |  | 0..* | Annotation | Comments about the observation
bodySite | C | 0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts
bodyStructure | C | 0..1 | Reference(BodyStructure) | Observed body structure
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 |  | 0..1 | Reference(Device | DeviceMetric) | A reference to the device that generates the measurements or the device settings for the device
referenceRange | C | 0..* | BackboneElement | Provides guide for interpretation Constraints: obs-3
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
low | C | 0..1 | SimpleQuantity(5.0.0) | Low Range, if relevant
high | C | 0..1 | SimpleQuantity(5.0.0) | High Range, if relevant
normalValue |  | 0..1 | CodeableConcept | Normal value, if relevant Binding: ObservationReferenceRangeNormalValueCodes (extensible): 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(MedicalTestResult (EU core)) | Related resource that belongs to the Observation group
derivedFrom | Σ | 0..* | Reference(MedicalTestResult (EU core) | ImagingStudy) | Related resource from which the observation is made
component | Σ C | 0..* | BackboneElement | Component results
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code | Σ C | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: Laboratory Code (preferred)
Slices for value[x] | Σ | 0..1 |  | Actual component result Slice: Unordered, Open by type:$this
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
valueAttachment |  |  | Attachment |
valueReference |  |  | Reference(MolecularSequence) |
value[x]:valueQuantity | Σ | 0..1 | Quantity | Actual component result
id |  | 0..1 | id | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
extension:uncertainty |  | 0..1 | decimal | Standard Deviation (same units as the quantity) URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
value | Σ | 0..1 | decimal | Numerical value (with implicit precision)
comparator | ?!Σ | 0..1 | code | < | <= | >= | > | ad - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented.
unit | Σ | 0..1 | string | Unit representation
system | Σ C | 0..1 | uri | System that defines coded unit form
code | Σ C | 0..1 | code | Coded form of the unit
dataAbsentReason |  | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
referenceRange |  | 0..* | See referenceRange (Observation) | Provides guide for interpretation of component result
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Observation.language | Base | required | All Languages | 📍5.0.0 | FHIR Std.
Observation.triggeredBy.​type | Base | required | triggered Bytype | 📍5.0.0 | FHIR Std.
Observation.status | Base | required | Observation Status | 📍5.0.0 | FHIR Std.
Observation.category | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std.
Observation.category:laboratory | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std.
Observation.category:vital-signs | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std.
Observation.code | Base | preferred | Laboratory Code | 📦2.0.0-ballot | This IG
Observation.value[x]:valueQuantity.​comparator | Base | required | QuantityComparator | 📍5.0.0 | FHIR Std.
Observation.dataAbsentReason | Base | extensible | Data Absent Reason | 📍5.0.0 | FHIR Std.
Observation.interpretation | Base | extensible | Observation Interpretation Codes | 📍5.0.0 | FHIR Std.
Observation.bodySite | Base | example | SNOMED CT Body Structures | 📍5.0.0 | FHIR Std.
Observation.method | Base | example | Observation Methods | 📍5.0.0 | FHIR Std.
Observation.referenceRange.​normalValue | Base | extensible | Observation Reference Range Normal Value Codes | 📍5.0.0 | FHIR Std.
Observation.referenceRange.​type | Base | preferred | Observation Reference Range Meaning Codes | 📍5.0.0 | FHIR Std.
Observation.referenceRange.​appliesTo | Base | example | Observation Reference Range Applies To Codes | 📍5.0.0 | FHIR Std.
Observation.component.​code | Base | preferred | Laboratory Code | 📦2.0.0-ballot | This IG
Observation.component.​value[x]:valueQuantity.​comparator | Base | required | QuantityComparator | 📍5.0.0 | FHIR Std.
Observation.component.​dataAbsentReason | Base | extensible | Data Absent Reason | 📍5.0.0 | FHIR Std.
Observation.component.​interpretation | Base | extensible | Observation Interpretation Codes | 📍5.0.0 | 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 in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').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())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.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 | 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-8 | error | Observation | bodyStructure SHALL only be present if Observation.bodySite is not present | `bodySite.exists() implies bodyStructure.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)`

This structure is derived from Observation

Summary

Mandatory: 3 elements

Structures

This structure refers to these other structures:

- MedicalTestResult (EU core) (http://hl7.eu/fhir/base-r5/StructureDefinition/medicalTestResult-eu-core)
- Patient (EU core) (http://hl7.eu/fhir/base-r5/StructureDefinition/patient-eu-core)
- Location (EU core) (http://hl7.eu/fhir/base-r5/StructureDefinition/location-eu-core)
- Practitioner (EU core) (http://hl7.eu/fhir/base-r5/StructureDefinition/practitioner-eu-core)
- PractitionerRole (EU core) (http://hl7.eu/fhir/base-r5/StructureDefinition/practitionerRole-eu-core)
- Organization (EU core) (http://hl7.eu/fhir/base-r5/StructureDefinition/organization-eu-core)

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Observation.category
- The element 1 is sliced based on the value of Observation.value[x]
- The element 1 is sliced based on the value of Observation.component.value[x]

Maturity: 1

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Observation | C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7, obs-8
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained |  | 0..* | Resource | Contained, inline Resources
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
status | ?!Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation.
Slices for category |  | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by value:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
category:laboratory |  | 0..1 | CodeableConcept | Classification of type of observation 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://terminology.hl7.org/CodeSystem/observation-category
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: laboratory
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
category:vital-signs |  | 0..1 | CodeableConcept | Classification of type of observation 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://terminology.hl7.org/CodeSystem/observation-category
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs
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: Laboratory Code (preferred)
subject | Σ | 1..1 | Reference(Patient (EU core)) | Who and/or what the observation is about
focus | Σ | 0..* | Reference(Patient (EU core) | RelatedPerson | Group | Device | Location (EU core)) | What the observation is about, when it is not about the subject of record
effective[x] | Σ | 1..1 |  | Clinically relevant time/time-period for observation
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
issued | Σ | 0..1 | instant | Date/Time this version was made available
performer | Σ | 0..* | Reference(Practitioner (EU core) | PractitionerRole (EU core) | Organization (EU core)) | Who is responsible for the observation
Slices for value[x] | Σ C | 0..1 |  | Actual result Slice: Unordered, Open by type:$this
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
valueAttachment |  |  | Attachment |
valueReference |  |  | Reference(MolecularSequence) |
value[x]:valueQuantity | Σ C | 0..1 | Quantity | Actual result
Slices for extension |  |  |  | Content/Rules for all slices
extension:uncertainty |  | 0..1 | decimal | Standard Deviation (same units as the quantity) URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
comparator | ?!Σ | 0..1 | code | < | <= | >= | > | ad - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented.
dataAbsentReason | C | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
note |  | 0..* | Annotation | Comments about the observation
bodySite | C | 0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts
bodyStructure | C | 0..1 | Reference(BodyStructure) | Observed body structure
method |  | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example): Methods for simple observations.
device |  | 0..1 | Reference(Device | DeviceMetric) | A reference to the device that generates the measurements or the device settings for the device
referenceRange | C | 0..* | BackboneElement | Provides guide for interpretation Constraints: obs-3
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
hasMember | Σ | 0..* | Reference(MedicalTestResult (EU core)) | Related resource that belongs to the Observation group
derivedFrom | Σ | 0..* | Reference(MedicalTestResult (EU core) | ImagingStudy) | Related resource from which the observation is made
component | Σ C | 0..* | BackboneElement | Component results
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code | Σ C | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: Laboratory Code (preferred)
Slices for value[x] | Σ | 0..1 |  | Actual component result Slice: Unordered, Open by type:$this
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
valueAttachment |  |  | Attachment |
valueReference |  |  | Reference(MolecularSequence) |
value[x]:valueQuantity | Σ | 0..1 | Quantity | Actual component result
Slices for extension |  |  |  | Content/Rules for all slices
extension:uncertainty |  | 0..1 | decimal | Standard Deviation (same units as the quantity) URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
comparator | ?!Σ | 0..1 | code | < | <= | >= | > | ad - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented.
dataAbsentReason |  | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
referenceRange |  | 0..* | See referenceRange (Observation) | Provides guide for interpretation of component result
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Observation.status | Base | required | Observation Status | 📍5.0.0 | FHIR Std.
Observation.category | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std.
Observation.category:laboratory | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std.
Observation.category:vital-signs | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std.
Observation.code | Base | preferred | Laboratory Code | 📦2.0.0-ballot | This IG
Observation.value[x]:valueQuantity.​comparator | Base | required | QuantityComparator | 📍5.0.0 | FHIR Std.
Observation.dataAbsentReason | Base | extensible | Data Absent Reason | 📍5.0.0 | FHIR Std.
Observation.interpretation | Base | extensible | Observation Interpretation Codes | 📍5.0.0 | FHIR Std.
Observation.bodySite | Base | example | SNOMED CT Body Structures | 📍5.0.0 | FHIR Std.
Observation.method | Base | example | Observation Methods | 📍5.0.0 | FHIR Std.
Observation.component.​code | Base | preferred | Laboratory Code | 📦2.0.0-ballot | This IG
Observation.component.​value[x]:valueQuantity.​comparator | Base | required | QuantityComparator | 📍5.0.0 | FHIR Std.
Observation.component.​dataAbsentReason | Base | extensible | Data Absent Reason | 📍5.0.0 | FHIR Std.
Observation.component.​interpretation | Base | extensible | Observation Interpretation Codes | 📍5.0.0 | 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 in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').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())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.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 | 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-8 | error | Observation | bodyStructure SHALL only be present if Observation.bodySite is not present | `bodySite.exists() implies bodyStructure.empty()`

Differential View

This structure is derived from Observation

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Observation |  | 0..* | Observation | Measurements and simple assertions
identifier |  | 0..* | Identifier | Business Identifier for observation
basedOn |  | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order
triggeredBy |  |  |  |
observation |  | 1..1 | Reference(MedicalTestResult (EU core)) | Triggering observation
status |  | 1..1 | code | registered | preliminary | final | amended +
Slices for category |  | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by value:$this
category:laboratory |  | 0..1 | CodeableConcept | Classification of type of observation Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: laboratory
category:vital-signs |  | 0..1 | CodeableConcept | Classification of type of observation Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs
code |  | 1..1 | CodeableConcept | Type of observation (code / type) Binding: Laboratory Code (preferred)
subject |  | 1..1 | Reference(Patient (EU core)) | Who and/or what the observation is about
focus |  | 0..* | Reference(Patient (EU core) | RelatedPerson | Group | Device | Location (EU core)) | What the observation is about, when it is not about the subject of record
effective[x] |  | 1..1 |  | Clinically relevant time/time-period for observation
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
issued |  | 0..1 | instant | Date/Time this version was made available
performer |  | 0..* | Reference(Practitioner (EU core) | PractitionerRole (EU core) | Organization (EU core)) | Who is responsible for the observation
Slices for value[x] |  | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period, Attachment, Reference(MolecularSequence) | Actual result Slice: Unordered, Open by type:$this
value[x]:valueQuantity |  | 0..1 | Quantity | Actual result
Slices for extension |  |  |  | Content/Rules for all slices
extension:uncertainty |  | 0..1 | decimal | Standard Deviation (same units as the quantity) URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
dataAbsentReason |  | 0..1 | CodeableConcept | Why the result is missing
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc
note |  | 0..* | Annotation | Comments about the observation
bodySite |  | 0..1 | CodeableConcept | Observed body part
bodyStructure |  | 0..1 | Reference(BodyStructure) | Observed body structure
method |  | 0..1 | CodeableConcept | How it was done
device |  | 0..1 | Reference(Device | DeviceMetric) | A reference to the device that generates the measurements or the device settings for the device
referenceRange |  | 0..* | BackboneElement | Provides guide for interpretation
hasMember |  | 0..* | Reference(MedicalTestResult (EU core)) | Related resource that belongs to the Observation group
derivedFrom |  | 0..* | Reference(MedicalTestResult (EU core) | ImagingStudy) | Related resource from which the observation is made
component |  | 0..* | BackboneElement | Component results
code |  | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: Laboratory Code (preferred)
Slices for value[x] |  | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period, Attachment, Reference(MolecularSequence) | Actual component result Slice: Unordered, Open by type:$this
value[x]:valueQuantity |  | 0..1 | Quantity | Actual component result
Slices for extension |  |  |  | Content/Rules for all slices
extension:uncertainty |  | 0..1 | decimal | Standard Deviation (same units as the quantity) URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
dataAbsentReason |  | 0..1 | CodeableConcept | Why the component result is missing
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc
referenceRange |  | 0..* |  | Provides guide for interpretation of component result
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Observation.code | Base | preferred | Laboratory Code | 📦2.0.0-ballot | This IG
Observation.component.​code | Base | preferred | Laboratory Code | 📦2.0.0-ballot | This IG

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Observation | C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7, obs-8
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: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
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
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Business Identifier for observation
instantiates[x] | Σ | 0..1 | canonical(ObservationDefinition), Reference(ObservationDefinition) | Instantiates FHIR ObservationDefinition
basedOn | Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
observation | Σ | 1..1 | Reference(MedicalTestResult (EU core)) | 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 | GenomicStudy) | Part of referenced event
status | ?!Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation.
Slices for category |  | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by value:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
category:laboratory |  | 0..1 | CodeableConcept | Classification of type of observation 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://terminology.hl7.org/CodeSystem/observation-category
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: laboratory
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
category:vital-signs |  | 0..1 | CodeableConcept | Classification of type of observation 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://terminology.hl7.org/CodeSystem/observation-category
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs
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: Laboratory Code (preferred)
subject | Σ | 1..1 | Reference(Patient (EU core)) | Who and/or what the observation is about
focus | Σ | 0..* | Reference(Patient (EU core) | RelatedPerson | Group | Device | Location (EU core)) | 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] | Σ | 1..1 |  | Clinically relevant time/time-period for observation
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
issued | Σ | 0..1 | instant | Date/Time this version was made available
performer | Σ | 0..* | Reference(Practitioner (EU core) | PractitionerRole (EU core) | Organization (EU core)) | Who is responsible for the observation
Slices for value[x] | Σ C | 0..1 |  | Actual result Slice: Unordered, Open by type:$this
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
valueAttachment |  |  | Attachment |
valueReference |  |  | Reference(MolecularSequence) |
value[x]:valueQuantity | Σ C | 0..1 | Quantity | Actual result
id |  | 0..1 | id | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
extension:uncertainty |  | 0..1 | decimal | Standard Deviation (same units as the quantity) URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
value | Σ | 0..1 | decimal | Numerical value (with implicit precision)
comparator | ?!Σ | 0..1 | code | < | <= | >= | > | ad - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented.
unit | Σ | 0..1 | string | Unit representation
system | Σ C | 0..1 | uri | System that defines coded unit form
code | Σ C | 0..1 | code | Coded form of the unit
dataAbsentReason | C | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
note |  | 0..* | Annotation | Comments about the observation
bodySite | C | 0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts
bodyStructure | C | 0..1 | Reference(BodyStructure) | Observed body structure
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 |  | 0..1 | Reference(Device | DeviceMetric) | A reference to the device that generates the measurements or the device settings for the device
referenceRange | C | 0..* | BackboneElement | Provides guide for interpretation Constraints: obs-3
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
low | C | 0..1 | SimpleQuantity(5.0.0) | Low Range, if relevant
high | C | 0..1 | SimpleQuantity(5.0.0) | High Range, if relevant
normalValue |  | 0..1 | CodeableConcept | Normal value, if relevant Binding: ObservationReferenceRangeNormalValueCodes (extensible): 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(MedicalTestResult (EU core)) | Related resource that belongs to the Observation group
derivedFrom | Σ | 0..* | Reference(MedicalTestResult (EU core) | ImagingStudy) | Related resource from which the observation is made
component | Σ C | 0..* | BackboneElement | Component results
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code | Σ C | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: Laboratory Code (preferred)
Slices for value[x] | Σ | 0..1 |  | Actual component result Slice: Unordered, Open by type:$this
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
valueAttachment |  |  | Attachment |
valueReference |  |  | Reference(MolecularSequence) |
value[x]:valueQuantity | Σ | 0..1 | Quantity | Actual component result
id |  | 0..1 | id | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
extension:uncertainty |  | 0..1 | decimal | Standard Deviation (same units as the quantity) URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
value | Σ | 0..1 | decimal | Numerical value (with implicit precision)
comparator | ?!Σ | 0..1 | code | < | <= | >= | > | ad - how to understand the value Binding: QuantityComparator (required): How the Quantity should be understood and represented.
unit | Σ | 0..1 | string | Unit representation
system | Σ C | 0..1 | uri | System that defines coded unit form
code | Σ C | 0..1 | code | Coded form of the unit
dataAbsentReason |  | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
referenceRange |  | 0..* | See referenceRange (Observation) | Provides guide for interpretation of component result
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Observation.language | Base | required | All Languages | 📍5.0.0 | FHIR Std.
Observation.triggeredBy.​type | Base | required | triggered Bytype | 📍5.0.0 | FHIR Std.
Observation.status | Base | required | Observation Status | 📍5.0.0 | FHIR Std.
Observation.category | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std.
Observation.category:laboratory | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std.
Observation.category:vital-signs | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std.
Observation.code | Base | preferred | Laboratory Code | 📦2.0.0-ballot | This IG
Observation.value[x]:valueQuantity.​comparator | Base | required | QuantityComparator | 📍5.0.0 | FHIR Std.
Observation.dataAbsentReason | Base | extensible | Data Absent Reason | 📍5.0.0 | FHIR Std.
Observation.interpretation | Base | extensible | Observation Interpretation Codes | 📍5.0.0 | FHIR Std.
Observation.bodySite | Base | example | SNOMED CT Body Structures | 📍5.0.0 | FHIR Std.
Observation.method | Base | example | Observation Methods | 📍5.0.0 | FHIR Std.
Observation.referenceRange.​normalValue | Base | extensible | Observation Reference Range Normal Value Codes | 📍5.0.0 | FHIR Std.
Observation.referenceRange.​type | Base | preferred | Observation Reference Range Meaning Codes | 📍5.0.0 | FHIR Std.
Observation.referenceRange.​appliesTo | Base | example | Observation Reference Range Applies To Codes | 📍5.0.0 | FHIR Std.
Observation.component.​code | Base | preferred | Laboratory Code | 📦2.0.0-ballot | This IG
Observation.component.​value[x]:valueQuantity.​comparator | Base | required | QuantityComparator | 📍5.0.0 | FHIR Std.
Observation.component.​dataAbsentReason | Base | extensible | Data Absent Reason | 📍5.0.0 | FHIR Std.
Observation.component.​interpretation | Base | extensible | Observation Interpretation Codes | 📍5.0.0 | 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 in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').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())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.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 | 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-8 | error | Observation | bodyStructure SHALL only be present if Observation.bodySite is not present | `bodySite.exists() implies bodyStructure.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)`

This structure is derived from Observation

Summary

Mandatory: 3 elements

Structures

This structure refers to these other structures:

- MedicalTestResult (EU core) (http://hl7.eu/fhir/base-r5/StructureDefinition/medicalTestResult-eu-core)
- Patient (EU core) (http://hl7.eu/fhir/base-r5/StructureDefinition/patient-eu-core)
- Location (EU core) (http://hl7.eu/fhir/base-r5/StructureDefinition/location-eu-core)
- Practitioner (EU core) (http://hl7.eu/fhir/base-r5/StructureDefinition/practitioner-eu-core)
- PractitionerRole (EU core) (http://hl7.eu/fhir/base-r5/StructureDefinition/practitionerRole-eu-core)
- Organization (EU core) (http://hl7.eu/fhir/base-r5/StructureDefinition/organization-eu-core)

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Observation.category
- The element 1 is sliced based on the value of Observation.value[x]
- The element 1 is sliced based on the value of Observation.component.value[x]

Maturity: 1

Other representations of profile: CSV, Excel, Schematron