HL7 Europe Laboratory Report
2.1.0 - trial-use 150

This page is part of the HL7 Europe Laboratory Report (v2.1.0: STU 2) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: Observation Results: laboratory

Official URL: http://hl7.eu/fhir/laboratory/StructureDefinition/Observation-resultslab-eu-lab Version: 2.1.0
Standards status: Trial-use Maturity Level: 2 Computable Name: ObservationResultsLaboratoryEu

Copyright/Legal: Copyright HL7 Europe. Licensed under creative commons public domain (CC0 1.0).

This profile constrains the Observation resource to represent results produced by laboratory tests or panels/studies for the HL7 Europe project. This observation may represent the result of a simple laboratory test such as hematocrit or it may group the set of results produced by a multi-test study or panel such as a complete blood count, a dynamic function test, a urine specimen study. In the latter case, the observation carries the overall conclusion of the study and or a global interpretation by the producer of the study, in the comment element; and references the atomic results of the study as "has-member" child observations.

This profile constrains the Observation resource to represent a laboratory in vitro diagnostic test or panel/study. In case of a panel/study, the results of the panel appear as sub-observations. In this case this top-level Observation acts as a grouper of all the observations belonging to the panel or study. The top-level observation may carry a conclusion in the value element and or a global interpretation by the producer of the study, in the comment element.

Medical and Laboratory Test Results

Medical Test Results

Medical test results represent the outcomes of procedures performed to determine values of properties of the human body or of subjects related to the body (e.g., environment, substances, animals, devices etc.).

This broad category includes laboratory test results typically based on in vitro diagnostic devices that follow In Vitro Diagnostic Medical Devices Regulation (IVDR) (EU) 2017/746 and results based on measurements and diagnostic functions by medical devices according to the Medical Device Regulation (MDR) 2017/745. Additionally, the medical test results may include results from direct observation or emerging technologies for minimally invasive tests, such as biosensor monitoring or other non-invasive tests for direct measurement of the properties of saliva, sweat, or tears, as well as techniques for transcutaneous measurement of properties, regardless of whether the measurement is performed in a healthcare provider setting, such as in dedicated outpatient clinics, or at the point of care, or in patient’s home environment.

Medical test results include, but are not limited to:

  • laboratory tests typically based on in vitro diagnostic devices regulated under the IVDR (EU) 2017/746;
  • results from measurements performed by medical devices regulated under the MDR (EU) 2017/745, such as physiological or functional in vivo measurements;
  • measurement results obtained by the imaging observation methods
  • examination results from observation of the patient, body parts of the patient and/or their functions
  • results generated by emerging technologies, including minimally invasive or non-invasive techniques such as biosensors and direct measurements from saliva, sweat, or tears, as well as transcutaneous measurement techniques.

Laboratory Test Results

Laboratory test results are a subset of medical test results and represent electronic health data produced by studies performed primarily using in vitro diagnostic methods under controlled conditions.

Laboratory test results constitute a major subset of medical test results and represent the primary focus of the specifications defined in this IG. Laboratory test results in electronic form represent results from studies performed through in vitro diagnostics such as clinical biochemistry, haematology, transfusion medicine, microbiology, immunology and related disciplines. Laboratory test results are often provided together with additional information supporting the interpretation of the results.

Laboratory test results are typically produced using in vitro diagnostic devices compliant with IVDR (EU) 2017/746. The results may originate from dedicated laboratories, point of care testing performed in healthcare settings such as doctor’s office or hospital wards, or from supervised testing performed in a non-clinical environment, including patient homes.

Laboratory test results are typically characterized by:

  • controlled environmental conditions (e.g. temperature, humidity, lighting);
  • standardized and validated standard operating procedures (SOPs);
  • use of calibrated and maintained instruments;
  • application of internal quality control (IQC) and participation in external quality assessment (EQA) / proficiency testing schemes;
  • performance by trained and qualified personnel operating within defined professional roles and responsibilities.

Laboratory results are typically generated in:

  • accredited clinical laboratories,
  • hospital laboratory departments,
  • or certified POCT environments operating under laboratory governance frameworks.

These conditions provide a high level of analytical reliability and support the use of laboratory test results for diagnostic decision-making, clinical monitoring, and secondary use such as research and population health analysis.

Guidance for Use

It is not easy to draw a clear line between general medical test results and laboratory test results as they are rather similar, with only minor differences in content, as shown in the logical models. Nevertheless, FHIR IG developers and implementers of the EHR systems would have to decide which type of observation to use. We propose to take into consideration the following rules:

  • Use Laboratory test results when results originate from in vitro diagnostic procedures performed under laboratory governance and quality assurance frameworks.
  • Use Medical test results as the broader category for results obtained across different environments and technologies.
  • When representing medical including laboratory test results, ensure that the measurement context is available to support appropriate clinical interpretation.

Implementation note: Laboratory panels

Laboratory panels (or batteries) are predefined groups of tests that can be ordered from a laboratory using a single code from a chosen coding system. Upon receiving such an order, the laboratory expands it into its individual component tests and reports results for each test separately.

If it is necessary to preserve the relationship between the panel and its component tests, the panel should be represented as a grouping Observation. In this approach, the panel code is used as the code of the grouping Observation, and each component test is represented as a separate Observation. These individual Observations are then linked to the grouping Observation via the hasMember reference.

Implementation note: Reflex tests

Reflex tests are additional laboratory tests performed automatically based on predefined criteria, such as the result of an initial test. They are not usually ordered directly as part of the original request, but are triggered by the laboratory workflow when specific conditions are met.

When it is necessary to preserve the relationship between the initial test and the reflex test, this relationship should be represented using the triggeredBy element. The original test result is represented as one Observation, and each reflex test result is represented as a separate Observation. The reflex test Observation should reference the Observation that triggered it using triggeredBy.observation, and the appropriate trigger type should be recorded in triggeredBy.type.

This allows the result report to clearly indicate that the reflex test was performed as a consequence of another observation, while keeping each test result as a distinct Observation.

This profile offers two options to indicate the Certified Reference Material used for the calibration (in general when the UCUM International Units are used for the results [IU]).

  • The first to be used when the Certified Reference Material is represented by a coded concept
  • The second when the Certified Reference Material is identified with an Identifier.

Adopters are invited to give their feedback about

  1. The most proper way to refer the Certified Reference Material, that is by using an Identifier or a CodeableConcept
  2. If a CodeableReference should be used
  3. If this information should be an extension of the Observation resource, or of other elements (e.g. DeviceMetric.calibration)

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Observation C 0..* MedicalTestResultEuCore Laboratory result for a simple test or for a panel/study
Constraints: obs-6, obs-7, obs-value-1, eu-lab-1, eu-lab-2
Observation.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Observation.Slices for extension Content/Rules for all slices
Observation.Slices for extension.extension:bodyStructure 0..1 Reference(Cross-version Profile for R5.BodyStructure for use in FHIR R4(0.1.0) | BodyStructure) R5: Observed body structure (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.bodyStructure
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy 0..* (Complex) R5: Triggering observation(s) (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.triggeredBy
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension Content/Rules for all slices
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation 1..1 Extension Extension
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.extension 0..0 Extension
Slice: Unordered, Open by value:url
Constraints: ext-1

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.url 1..1 uri "observation"
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.value[x] 1..1 Reference(Observation: Medical Test Result (EU core)) Triggering observation
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type 1..1 Extension R5: reflex | repeat | re-run (new)
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type.url 1..1 uri "type"
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type.value[x] 1..1 code reflex | repeat | re-run
Binding: R5ObservationTriggeredbytypeForR4 (0.1.0) (required): The type of TriggeredBy Observation.
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason 0..1 Extension R5: Reason that the observation was triggered (new)
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason.url 1..1 uri "reason"
Observation.Slices for extension.extension:triggeredBy.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.triggeredBy"
Observation.Slices for extension.extension:value-r5 0..1 (Complex) only for Diagrams or Pictures
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value
Constraints: ext-1
Observation.Slices for extension.extension:value-r5.extension 0..0 Extension
Slice: Unordered, Open by value:url
Constraints: ext-1

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for extension.extension:value-r5.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value"
Observation.Slices for extension.extension:supportingInfo 0..* Reference(Resource) Other information that may be relevant to this event.
URL: http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo
Observation.Slices for extension.extension:labTestKit 0..* Reference(Device) Laboratory Test Kit
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-deviceLabTestKit
Observation.Slices for extension.extension:certifiedRefMaterialCodeable 0..* CodeableConcept Certified Reference Material: CodeableConcept
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-certifiedRefMaterialCodeable
Binding: Laboratory Certified Reference Material (example)
Observation.Slices for extension.extension:certifiedRefMaterialIdentifer 0..* Identifier Certified Reference Material: Identifier
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-certifiedRefMaterialIdentifer
Observation.Slices for extension.extension:accredited 0..1 boolean Accredited test
URL: http://hl7.eu/fhir/StructureDefinition/laboratory-accredited
Observation.Slices for extension.extension:statusReason 0..1 CodeableConcept Reason for the current status
URL: http://hl7.org/fhir/StructureDefinition/event-statusReason
Binding Description: (example): Codes identifying the reason for the current state of an event.
Observation.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Observation.status This element is a modifier element. This element is included in summaries. 1..1 code Status of this observation (e.g. preliminary, final,...)
Binding: ObservationStatus (required): Codes providing the status of an observation.
Observation.Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by pattern:$this
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for category.category:laboratory 1..1 CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.

Required Pattern:
{
  "coding" : [
    {
      "system" : "http://terminology.hl7.org/CodeSystem/observation-category",
      "code" : "laboratory"
    }
  ]
}
Observation.Slices for category.category:studyType 0..* CodeableConcept The way of grouping of the test results into clinically meaningful domains (e.g. hematology study, microbiology study, etc.)
Binding: Laboratory Study Types (required)
Observation.Slices for category.category:specialty 0..* CodeableConcept The clinical domain of the laboratory performing the observation (e.g. microbiology, toxicology, chemistry)
Binding: Laboratory Specialty (required)
Observation.code This element is included in summaries. 1..1 CodeableConcept Type of observation (code / type)
Binding: Laboratory Code (preferred)
Observation.subject This element is included in summaries. 1..1 Reference(Patient (EU core) | Device | Group | Location) Who and/or what the observation is about
Observation.focus This element is included in summaries. 0..* Reference(Patient (EU core) | RelatedPerson: AnimalSpecimen | Group | Device | Location (EU core) | Substance | BiologicallyDerivedProduct) What the observation is about, when it is not about the subject of record
Observation.effective[x] This element is included in summaries. 1..1 Clinically relevant time/time-period for observation
Observation.effective[x].effectiveDateTime dateTime
Observation.effective[x].effectivePeriod Period
Observation.issued This element is included in summaries. 0..1 instant Date/Time this result was made available
Observation.performer This element is included in summaries. 1..* Reference(Practitioner (EU core) | PractitionerRole (EU core) | Organization (EU core) | Patient (EU core) | RelatedPerson) Who is responsible for the observation
Observation.performer.Slices for extension Content/Rules for all slices
Observation.performer.Slices for extension.extension:performerFunction 0..1 CodeableConcept Type of performance
URL: http://hl7.org/fhir/StructureDefinition/event-performerFunction
Binding: Performer Function Codes (extensible)
Observation.Slices for value[x] This element is included in summaries. C 0..1 Actual result
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for value[x].valueQuantity Quantity
Observation.Slices for value[x].valueCodeableConcept CodeableConcept
Observation.Slices for value[x].valueString string
Observation.Slices for value[x].valueBoolean boolean
Observation.Slices for value[x].valueInteger integer
Observation.Slices for value[x].valueRange Range
Observation.Slices for value[x].valueRatio Ratio
Observation.Slices for value[x].valueSampledData SampledData
Observation.Slices for value[x].valueTime time
Observation.Slices for value[x].valueDateTime dateTime
Observation.Slices for value[x].valuePeriod Period
Observation.Slices for value[x].value[x]:valueQuantity This element is included in summaries. C 0..1 QuantityEuLab Actual result
Observation.Slices for value[x].value[x]:valueQuantity.Slices for extension Content/Rules for all slices
Observation.Slices for value[x].value[x]:valueQuantity.Slices for extension.extension:uncertainty 0..1 decimal Standard Deviation (same units as the quantity)
URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
Observation.Slices for value[x].value[x]:valueQuantity.comparator This element is a modifier element. This element is included in summaries. 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
Observation.Slices for value[x].value[x]:valueString This element is included in summaries. C 0..1 string Actual result
Observation.Slices for value[x].value[x]:valueRange This element is included in summaries. C 0..1 RangeEuLab Actual result
Observation.Slices for value[x].value[x]:valueRatio This element is included in summaries. C 0..1 RatioEuLab Actual result
Observation.Slices for value[x].value[x]:valueTime This element is included in summaries. C 0..1 time Actual result
Observation.Slices for value[x].value[x]:valueDateTime This element is included in summaries. C 0..1 dateTime Actual result
Observation.Slices for value[x].value[x]:valuePeriod This element is included in summaries. C 0..1 Period Actual result
Observation.Slices for value[x].value[x]:valueBoolean This element is included in summaries. C 0..1 boolean Actual result
Observation.Slices for value[x].value[x]:valueInteger This element is included in summaries. C 0..1 integer Actual result
Observation.Slices for value[x].value[x]:valueSampledData This element is included in summaries. C 0..1 SampledData Actual result
Observation.Slices for value[x].value[x]:valueCodeableConcept This element is included in summaries. C 0..1 CodeableConcept Actual result
Binding: Results Coded Values Laboratory/Pathology - IPS (preferred)
Observation.dataAbsentReason C 0..1 CodeableConcept Provides a reason why the expected value is missing.
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
Observation.method 0..1 CodeableConcept How it was done
Binding: Laboratory Techniques (preferred)
Observation.specimen 0..1 Reference(Specimen: Laboratory) Specimen used for the observation
Observation.device 0..1 Reference(Device | DeviceMetric) Measuring instrument
Observation.referenceRange C 0..* BackboneElement Provides guide for interpretation
Constraints: obs-3
Observation.referenceRange.Slices for modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.referenceRange.Slices for modifierExtension.modifierExtension:lowComparator This element is a modifier element. This element is included in summaries. 0..1 code Observation Reference Range Low Comparator
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-reference-range-low-comparator
Binding: Reference Range Low Comparator (required)
Observation.referenceRange.Slices for modifierExtension.modifierExtension:highComparator This element is a modifier element. This element is included in summaries. 0..1 code Observation Reference Range High Comparator
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-reference-range-high-comparator
Binding: Reference Range High Comparator (required)
Observation.hasMember This element is included in summaries. 0..* Reference(Observation Results: laboratory) Related resource that belongs to the Observation group
Observation.component This element is included in summaries. C 0..* BackboneElement Laboratory result
Constraints: obs-value-2
Observation.component.Slices for extension Content/Rules for all slices
Observation.component.Slices for extension.extension:value-r5 0..1 (Complex) only for Diagrams or Pictures
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value
Constraints: ext-1
Observation.component.Slices for extension.extension:value-r5.extension 0..0 Extension
Slice: Unordered, Open by value:url
Constraints: ext-1

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.component.Slices for extension.extension:value-r5.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value"
Observation.component.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Observation.component.code This element is included in summaries. 1..1 CodeableConcept Type of component observation (code / type)
Binding: Laboratory Code (preferred)
Observation.component.Slices for value[x] This element is included in summaries. 0..1 Actual component result
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.component.Slices for value[x].valueQuantity Quantity
Observation.component.Slices for value[x].valueCodeableConcept CodeableConcept
Observation.component.Slices for value[x].valueString string
Observation.component.Slices for value[x].valueBoolean boolean
Observation.component.Slices for value[x].valueInteger integer
Observation.component.Slices for value[x].valueRange Range
Observation.component.Slices for value[x].valueRatio Ratio
Observation.component.Slices for value[x].valueSampledData SampledData
Observation.component.Slices for value[x].valueTime time
Observation.component.Slices for value[x].valueDateTime dateTime
Observation.component.Slices for value[x].valuePeriod Period
Observation.component.Slices for value[x].value[x]:valueQuantity This element is included in summaries. 0..1 QuantityEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueQuantity.Slices for extension Content/Rules for all slices
Observation.component.Slices for value[x].value[x]:valueQuantity.Slices for extension.extension:uncertainty 0..1 decimal Standard Deviation (same units as the quantity)
URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
Observation.component.Slices for value[x].value[x]:valueQuantity.comparator This element is a modifier element. This element is included in summaries. 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
Observation.component.Slices for value[x].value[x]:valueString This element is included in summaries. 0..1 string Actual component result
Observation.component.Slices for value[x].value[x]:valueRange This element is included in summaries. 0..1 RangeEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueRatio This element is included in summaries. 0..1 RatioEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueTime This element is included in summaries. 0..1 time Actual component result
Observation.component.Slices for value[x].value[x]:valueDateTime This element is included in summaries. 0..1 dateTime Actual component result
Observation.component.Slices for value[x].value[x]:valuePeriod This element is included in summaries. 0..1 Period Actual component result
Observation.component.Slices for value[x].value[x]:valueBoolean This element is included in summaries. 0..1 boolean Actual component result
Observation.component.Slices for value[x].value[x]:valueInteger This element is included in summaries. 0..1 integer Actual component result
Observation.component.Slices for value[x].value[x]:valueSampledData This element is included in summaries. 0..1 SampledData Actual component result
Observation.component.Slices for value[x].value[x]:valueCodeableConcept This element is included in summaries. 0..1 CodeableConcept Actual component result
Binding: Results Coded Values Laboratory/Pathology - IPS (preferred)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.extension:triggeredBy.​extension:type.value[x] Base required Cross-version ValueSet R5.TriggeredBytype for use in FHIR R4 📍0.1.0 Extensions for Using Data Elements from FHIR R5 in FHIR R4 v0.1
Observation.status Base required ObservationStatus 📍4.0.1 FHIR Std.
Observation.category Base preferred Observation Category Codes 📍4.0.1 FHIR Std.
Observation.category:laboratory Base preferred Observation Category Codes 📍4.0.1 FHIR Std.
Observation.category:studyType Base required Laboratory Study Types 📦2.1.0 This IG
Observation.category:specialty Base required Laboratory Specialty 📦2.1.0 This IG
Observation.code Base preferred Laboratory Code 📦2.1.0 This IG
Observation.value[x]:valueQuantity.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Observation.value[x]:valueCodeableConcept Base preferred Results Coded Values Laboratory/Pathology - IPS 📦2.0.1 International Patient Summary Implementation Guide v2.0
Observation.dataAbsentReason Base extensible DataAbsentReason 📍4.0.1 FHIR Std.
Observation.method Base preferred Laboratory Techniques 📦2.1.0 This IG
Observation.component.​code Base preferred Laboratory Code 📦2.1.0 This IG
Observation.component.​value[x]:valueQuantity.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Observation.component.​value[x]:valueCodeableConcept Base preferred Results Coded Values Laboratory/Pathology - IPS 📦2.0.1 International Patient Summary Implementation Guide v2.0

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().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-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())
eu-lab-1 error Observation If observation status is other then "registered" or "cancelled", at least one of these Observation elements shall be provided with an actual value: "value", the R5 "value[x]" extension, "dataAbsentReason", "hasMember" or "component" (status in ('registered'|'cancelled')) or value.hasValue() or value.children().exclude(value.extension).exists() or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value').value.exists() or hasMember.exists() or component.exists() or dataAbsentReason.exists()
eu-lab-2 error Observation If observation status is other then "registered" or "cancelled", every Observation.component shall provide one of these elements with an actual value: "value", the R5 "component.value[x]" extension or "dataAbsentReason" (status in ('registered'|'cancelled')) or component.all(value.hasValue() or value.children().exclude(value.extension).exists() or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value').value.exists() or dataAbsentReason.exists())
ext-1 error Observation.extension:bodyStructure, Observation.extension:triggeredBy, Observation.extension:triggeredBy.extension, Observation.extension:triggeredBy.extension:observation, Observation.extension:triggeredBy.extension:type, Observation.extension:triggeredBy.extension:reason, Observation.extension:value-r5, Observation.extension:supportingInfo, Observation.extension:labTestKit, Observation.extension:certifiedRefMaterialCodeable, Observation.extension:certifiedRefMaterialIdentifer, Observation.extension:accredited, Observation.extension:statusReason, Observation.modifierExtension, Observation.performer.extension:performerFunction, Observation.value[x]:valueQuantity.extension:uncertainty, Observation.referenceRange.modifierExtension, Observation.referenceRange.modifierExtension:lowComparator, Observation.referenceRange.modifierExtension:highComparator, Observation.component.extension:value-r5, Observation.component.modifierExtension, Observation.component.value[x]:valueQuantity.extension:uncertainty 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.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
obs-value-1 error Observation The elements Observation.extension:value-r5 and Observation.value[x] SHALL not be used simultaneously. value.empty() or extension('http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value').empty()
obs-value-2 error Observation.component The elements Observation.component.extension:value-r5 and Observation.component.value[x] SHALL not be used simultaneously. value.empty() or extension('http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value').empty()

This structure is derived from MedicalTestResultEuCore

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Observation C 0..* MedicalTestResultEuCore Laboratory result for a simple test or for a panel/study
Constraints: eu-lab-1, eu-lab-2
Observation.Slices for extension Content/Rules for all slices
Observation.Slices for extension.extension:supportingInfo 0..* Reference(Resource) Other information that may be relevant to this event.
URL: http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo
Observation.Slices for extension.extension:labTestKit 0..* Reference(Device) Laboratory Test Kit
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-deviceLabTestKit
Observation.Slices for extension.extension:certifiedRefMaterialCodeable 0..* CodeableConcept Certified Reference Material: CodeableConcept
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-certifiedRefMaterialCodeable
Binding: Laboratory Certified Reference Material (example)
Observation.Slices for extension.extension:certifiedRefMaterialIdentifer 0..* Identifier Certified Reference Material: Identifier
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-certifiedRefMaterialIdentifer
Observation.Slices for extension.extension:accredited 0..1 boolean Accredited test
URL: http://hl7.eu/fhir/StructureDefinition/laboratory-accredited
Observation.Slices for extension.extension:statusReason 0..1 CodeableConcept Reason for the current status
URL: http://hl7.org/fhir/StructureDefinition/event-statusReason
Binding Description: (example): Codes identifying the reason for the current state of an event.
Observation.status 1..1 code Status of this observation (e.g. preliminary, final,...)
Observation.Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by pattern:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for category.category:laboratory 1..1 CodeableConcept Classification of type of observation
Required Pattern:
{
  "coding" : [
    {
      "system" : "http://terminology.hl7.org/CodeSystem/observation-category",
      "code" : "laboratory"
    }
  ]
}
Observation.Slices for category.category:studyType 0..* CodeableConcept The way of grouping of the test results into clinically meaningful domains (e.g. hematology study, microbiology study, etc.)
Binding: Laboratory Study Types (required)
Observation.Slices for category.category:specialty 0..* CodeableConcept The clinical domain of the laboratory performing the observation (e.g. microbiology, toxicology, chemistry)
Binding: Laboratory Specialty (required)
Observation.focus 0..* Reference(Patient (EU core) | RelatedPerson: AnimalSpecimen | Group | Device | Location (EU core) | Substance | BiologicallyDerivedProduct) What the observation is about, when it is not about the subject of record
Observation.issued 0..1 instant Date/Time this result was made available
Observation.performer 1..* Reference(Practitioner (EU core) | PractitionerRole (EU core) | Organization (EU core) | Patient (EU core) | RelatedPerson) Who is responsible for the observation
Observation.Slices for value[x] Content/Rules for all slices
Observation.Slices for value[x].value[x]:valueQuantity 0..1 QuantityEuLab Actual result
Observation.Slices for value[x].value[x]:valueString 0..1 string Actual result
Observation.Slices for value[x].value[x]:valueRange 0..1 RangeEuLab Actual result
Observation.Slices for value[x].value[x]:valueRatio 0..1 RatioEuLab Actual result
Observation.Slices for value[x].value[x]:valueTime 0..1 time Actual result
Observation.Slices for value[x].value[x]:valueDateTime 0..1 dateTime Actual result
Observation.Slices for value[x].value[x]:valuePeriod 0..1 Period Actual result
Observation.Slices for value[x].value[x]:valueBoolean 0..1 boolean Actual result
Observation.Slices for value[x].value[x]:valueInteger 0..1 integer Actual result
Observation.Slices for value[x].value[x]:valueSampledData 0..1 SampledData Actual result
Observation.Slices for value[x].value[x]:valueCodeableConcept 0..1 CodeableConcept Actual result
Binding: Results Coded Values Laboratory/Pathology - IPS (preferred)
Observation.dataAbsentReason 0..1 CodeableConcept Provides a reason why the expected value is missing.
Observation.method 0..1 CodeableConcept How it was done
Binding: Laboratory Techniques (preferred)
Observation.specimen 0..1 Reference(Specimen: Laboratory) Specimen used for the observation
Observation.device 0..1 Reference(Device | DeviceMetric) Measuring instrument
Observation.referenceRange 0..* BackboneElement Provides guide for interpretation
Observation.referenceRange.Slices for modifierExtension 0..* Extension Extension
Slice: Unordered, Open by value:url
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.referenceRange.Slices for modifierExtension.modifierExtension:lowComparator 0..1 code Observation Reference Range Low Comparator
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-reference-range-low-comparator
Binding: Reference Range Low Comparator (required)
Observation.referenceRange.Slices for modifierExtension.modifierExtension:highComparator 0..1 code Observation Reference Range High Comparator
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-reference-range-high-comparator
Binding: Reference Range High Comparator (required)
Observation.hasMember 0..* Reference(Observation Results: laboratory) Related resource that belongs to the Observation group
Observation.component 0..* BackboneElement Laboratory result
Observation.component.code 1..1 CodeableConcept Type of component observation (code / type)
Binding: Laboratory Code (preferred)
Observation.component.Slices for value[x] Content/Rules for all slices
Observation.component.Slices for value[x].value[x]:valueQuantity 0..1 QuantityEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueString 0..1 string Actual component result
Observation.component.Slices for value[x].value[x]:valueRange 0..1 RangeEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueRatio 0..1 RatioEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueTime 0..1 time Actual component result
Observation.component.Slices for value[x].value[x]:valueDateTime 0..1 dateTime Actual component result
Observation.component.Slices for value[x].value[x]:valuePeriod 0..1 Period Actual component result
Observation.component.Slices for value[x].value[x]:valueBoolean 0..1 boolean Actual component result
Observation.component.Slices for value[x].value[x]:valueInteger 0..1 integer Actual component result
Observation.component.Slices for value[x].value[x]:valueSampledData 0..1 SampledData Actual component result
Observation.component.Slices for value[x].value[x]:valueCodeableConcept 0..1 CodeableConcept Actual component result
Binding: Results Coded Values Laboratory/Pathology - IPS (preferred)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Observation.category:studyType Base required Laboratory Study Types 📦2.1.0 This IG
Observation.category:specialty Base required Laboratory Specialty 📦2.1.0 This IG
Observation.code Base preferred Laboratory Code 📦2.1.0 This IG
Observation.value[x]:valueCodeableConcept Base preferred Results Coded Values Laboratory/Pathology - IPS 📦2.0.1 International Patient Summary Implementation Guide v2.0
Observation.method Base preferred Laboratory Techniques 📦2.1.0 This IG
Observation.component.​code Base preferred Laboratory Code 📦2.1.0 This IG
Observation.component.​value[x]:valueCodeableConcept Base preferred Results Coded Values Laboratory/Pathology - IPS 📦2.0.1 International Patient Summary Implementation Guide v2.0

Constraints

Id Grade Path(s) Description Expression
eu-lab-1 error Observation If observation status is other then "registered" or "cancelled", at least one of these Observation elements shall be provided with an actual value: "value", the R5 "value[x]" extension, "dataAbsentReason", "hasMember" or "component" (status in ('registered'|'cancelled')) or value.hasValue() or value.children().exclude(value.extension).exists() or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value').value.exists() or hasMember.exists() or component.exists() or dataAbsentReason.exists()
eu-lab-2 error Observation If observation status is other then "registered" or "cancelled", every Observation.component shall provide one of these elements with an actual value: "value", the R5 "component.value[x]" extension or "dataAbsentReason" (status in ('registered'|'cancelled')) or component.all(value.hasValue() or value.children().exclude(value.extension).exists() or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value').value.exists() or dataAbsentReason.exists())
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Observation C 0..* MedicalTestResultEuCore Laboratory result for a simple test or for a panel/study
Constraints: obs-6, obs-7, obs-value-1, eu-lab-1, eu-lab-2
Observation.id This element is included in summaries. 0..1 id Logical id of this artifact
Observation.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Observation.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Observation.language 0..1 code Language of the observation
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Observation.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
Observation.contained 0..* Resource Contained, inline Resources
Observation.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for extension.extension:bodyStructure 0..1 Reference(Cross-version Profile for R5.BodyStructure for use in FHIR R4(0.1.0) | BodyStructure) R5: Observed body structure (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.bodyStructure
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy 0..* (Complex) R5: Triggering observation(s) (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.triggeredBy
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.id 0..1 string Unique id for inter-element referencing
Observation.Slices for extension.extension:triggeredBy.Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension Content/Rules for all slices
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation 1..1 Extension Extension
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.id 0..1 string Unique id for inter-element referencing
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.extension 0..0 Extension
Slice: Unordered, Open by value:url
Constraints: ext-1

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.url 1..1 uri "observation"
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.value[x] 1..1 Reference(Observation: Medical Test Result (EU core)) Triggering observation
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type 1..1 Extension R5: reflex | repeat | re-run (new)
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type.id 0..1 string Unique id for inter-element referencing
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type.url 1..1 uri "type"
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type.value[x] 1..1 code reflex | repeat | re-run
Binding: R5ObservationTriggeredbytypeForR4 (0.1.0) (required): The type of TriggeredBy Observation.
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason 0..1 Extension R5: Reason that the observation was triggered (new)
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason.id 0..1 string Unique id for inter-element referencing
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason.url 1..1 uri "reason"
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason.value[x] 0..1 string Reason that the observation was triggered
Observation.Slices for extension.extension:triggeredBy.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.triggeredBy"
Observation.Slices for extension.extension:value-r5 0..1 (Complex) only for Diagrams or Pictures
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value
Constraints: ext-1
Observation.Slices for extension.extension:value-r5.id 0..1 string Unique id for inter-element referencing
Observation.Slices for extension.extension:value-r5.extension 0..0 Extension
Slice: Unordered, Open by value:url
Constraints: ext-1

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for extension.extension:value-r5.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value"
Observation.Slices for extension.extension:value-r5.value[x] 0..1 Attachment Actual result
Observation.Slices for extension.extension:supportingInfo 0..* Reference(Resource) Other information that may be relevant to this event.
URL: http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo
Observation.Slices for extension.extension:labTestKit 0..* Reference(Device) Laboratory Test Kit
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-deviceLabTestKit
Observation.Slices for extension.extension:certifiedRefMaterialCodeable 0..* CodeableConcept Certified Reference Material: CodeableConcept
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-certifiedRefMaterialCodeable
Binding: Laboratory Certified Reference Material (example)
Observation.Slices for extension.extension:certifiedRefMaterialIdentifer 0..* Identifier Certified Reference Material: Identifier
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-certifiedRefMaterialIdentifer
Observation.Slices for extension.extension:accredited 0..1 boolean Accredited test
URL: http://hl7.eu/fhir/StructureDefinition/laboratory-accredited
Observation.Slices for extension.extension:statusReason 0..1 CodeableConcept Reason for the current status
URL: http://hl7.org/fhir/StructureDefinition/event-statusReason
Binding Description: (example): Codes identifying the reason for the current state of an event.
Observation.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Observation.identifier This element is included in summaries. 0..* Identifier Business Identifier for observation
Observation.basedOn This element is included in summaries. 0..* Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) Fulfills plan, proposal or order
Observation.partOf This element is included in summaries. 0..* Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) Part of referenced event
Observation.status This element is a modifier element. This element is included in summaries. 1..1 code Status of this observation (e.g. preliminary, final,...)
Binding: ObservationStatus (required): Codes providing the status of an observation.
Observation.Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by pattern:$this
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for category.category:laboratory 1..1 CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.

Required Pattern:
{
  "coding" : [
    {
      "system" : "http://terminology.hl7.org/CodeSystem/observation-category",
      "code" : "laboratory"
    }
  ]
}
Observation.Slices for category.category:studyType 0..* CodeableConcept The way of grouping of the test results into clinically meaningful domains (e.g. hematology study, microbiology study, etc.)
Binding: Laboratory Study Types (required)
Observation.Slices for category.category:specialty 0..* CodeableConcept The clinical domain of the laboratory performing the observation (e.g. microbiology, toxicology, chemistry)
Binding: Laboratory Specialty (required)
Observation.code This element is included in summaries. 1..1 CodeableConcept Type of observation (code / type)
Binding: Laboratory Code (preferred)
Observation.subject This element is included in summaries. 1..1 Reference(Patient (EU core) | Device | Group | Location) Who and/or what the observation is about
Observation.focus This element is included in summaries. 0..* Reference(Patient (EU core) | RelatedPerson: AnimalSpecimen | Group | Device | Location (EU core) | Substance | BiologicallyDerivedProduct) What the observation is about, when it is not about the subject of record
Observation.encounter This element is included in summaries. 0..1 Reference(Encounter) Healthcare event during which this observation is made
Observation.effective[x] This element is included in summaries. 1..1 Clinically relevant time/time-period for observation
Observation.effective[x].effectiveDateTime dateTime
Observation.effective[x].effectivePeriod Period
Observation.issued This element is included in summaries. 0..1 instant Date/Time this result was made available
Observation.performer This element is included in summaries. 1..* Reference(Practitioner (EU core) | PractitionerRole (EU core) | Organization (EU core) | Patient (EU core) | RelatedPerson) Who is responsible for the observation
Observation.performer.id 0..1 string Unique id for inter-element referencing
Observation.performer.Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Observation.performer.Slices for extension.extension:performerFunction 0..1 CodeableConcept Type of performance
URL: http://hl7.org/fhir/StructureDefinition/event-performerFunction
Binding: Performer Function Codes (extensible)
Observation.performer.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Observation.performer.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Observation.performer.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Observation.performer.display This element is included in summaries. 0..1 string Text alternative for the resource
Observation.Slices for value[x] This element is included in summaries. C 0..1 Actual result
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for value[x].valueQuantity Quantity
Observation.Slices for value[x].valueCodeableConcept CodeableConcept
Observation.Slices for value[x].valueString string
Observation.Slices for value[x].valueBoolean boolean
Observation.Slices for value[x].valueInteger integer
Observation.Slices for value[x].valueRange Range
Observation.Slices for value[x].valueRatio Ratio
Observation.Slices for value[x].valueSampledData SampledData
Observation.Slices for value[x].valueTime time
Observation.Slices for value[x].valueDateTime dateTime
Observation.Slices for value[x].valuePeriod Period
Observation.Slices for value[x].value[x]:valueQuantity This element is included in summaries. C 0..1 QuantityEuLab Actual result
Observation.Slices for value[x].value[x]:valueQuantity.id 0..1 string Unique id for inter-element referencing
Observation.Slices for value[x].value[x]:valueQuantity.Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Observation.Slices for value[x].value[x]:valueQuantity.Slices for extension Content/Rules for all slices
Observation.Slices for value[x].value[x]:valueQuantity.Slices for extension.extension:uncertainty 0..1 decimal Standard Deviation (same units as the quantity)
URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
Observation.Slices for value[x].value[x]:valueQuantity.value This element is included in summaries. 0..1 decimal Numerical value (with implicit precision)
Observation.Slices for value[x].value[x]:valueQuantity.comparator This element is a modifier element. This element is included in summaries. 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
Observation.Slices for value[x].value[x]:valueQuantity.unit This element is included in summaries. 0..1 string Unit representation
Observation.Slices for value[x].value[x]:valueQuantity.system This element is included in summaries. C 0..1 uri System that defines coded unit form
Observation.Slices for value[x].value[x]:valueQuantity.code This element is included in summaries. 0..1 code Coded form of the unit
Observation.Slices for value[x].value[x]:valueString This element is included in summaries. C 0..1 string Actual result
Observation.Slices for value[x].value[x]:valueRange This element is included in summaries. C 0..1 RangeEuLab Actual result
Observation.Slices for value[x].value[x]:valueRatio This element is included in summaries. C 0..1 RatioEuLab Actual result
Observation.Slices for value[x].value[x]:valueTime This element is included in summaries. C 0..1 time Actual result
Observation.Slices for value[x].value[x]:valueDateTime This element is included in summaries. C 0..1 dateTime Actual result
Observation.Slices for value[x].value[x]:valuePeriod This element is included in summaries. C 0..1 Period Actual result
Observation.Slices for value[x].value[x]:valueBoolean This element is included in summaries. C 0..1 boolean Actual result
Observation.Slices for value[x].value[x]:valueInteger This element is included in summaries. C 0..1 integer Actual result
Observation.Slices for value[x].value[x]:valueSampledData This element is included in summaries. C 0..1 SampledData Actual result
Observation.Slices for value[x].value[x]:valueCodeableConcept This element is included in summaries. C 0..1 CodeableConcept Actual result
Binding: Results Coded Values Laboratory/Pathology - IPS (preferred)
Observation.dataAbsentReason C 0..1 CodeableConcept Provides a reason why the expected value is missing.
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
Observation.interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
Observation.note 0..* Annotation Comments about the observation
Observation.bodySite 0..1 CodeableConcept Observed body part
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
Observation.method 0..1 CodeableConcept How it was done
Binding: Laboratory Techniques (preferred)
Observation.specimen 0..1 Reference(Specimen: Laboratory) Specimen used for the observation
Observation.device 0..1 Reference(Device | DeviceMetric) Measuring instrument
Observation.referenceRange C 0..* BackboneElement Provides guide for interpretation
Constraints: obs-3
Observation.referenceRange.id 0..1 string Unique id for inter-element referencing
Observation.referenceRange.extension 0..* Extension Additional content defined by implementations
Observation.referenceRange.Slices for modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.referenceRange.Slices for modifierExtension.modifierExtension:lowComparator This element is a modifier element. This element is included in summaries. 0..1 code Observation Reference Range Low Comparator
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-reference-range-low-comparator
Binding: Reference Range Low Comparator (required)
Observation.referenceRange.Slices for modifierExtension.modifierExtension:highComparator This element is a modifier element. This element is included in summaries. 0..1 code Observation Reference Range High Comparator
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-reference-range-high-comparator
Binding: Reference Range High Comparator (required)
Observation.referenceRange.low C 0..1 SimpleQuantity(4.0.1) Low Range, if relevant
Constraints: sqty-1
Observation.referenceRange.high C 0..1 SimpleQuantity(4.0.1) High Range, if relevant
Constraints: sqty-1
Observation.referenceRange.type 0..1 CodeableConcept Reference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.
Observation.referenceRange.appliesTo 0..* CodeableConcept Reference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.
Observation.referenceRange.age 0..1 Range Applicable age range, if relevant
Observation.referenceRange.text 0..1 string Text based reference range in an observation
Observation.hasMember This element is included in summaries. 0..* Reference(Observation Results: laboratory) Related resource that belongs to the Observation group
Observation.derivedFrom This element is included in summaries. 0..* Reference(Observation: Medical Test Result (EU core) | ImagingStudy) Related measurements the observation is made from
Observation.component This element is included in summaries. C 0..* BackboneElement Laboratory result
Constraints: obs-value-2
Observation.component.id 0..1 string Unique id for inter-element referencing
Observation.component.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.component.Slices for extension.extension:value-r5 0..1 (Complex) only for Diagrams or Pictures
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value
Constraints: ext-1
Observation.component.Slices for extension.extension:value-r5.id 0..1 string Unique id for inter-element referencing
Observation.component.Slices for extension.extension:value-r5.extension 0..0 Extension
Slice: Unordered, Open by value:url
Constraints: ext-1

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.component.Slices for extension.extension:value-r5.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value"
Observation.component.Slices for extension.extension:value-r5.value[x] 0..1 Attachment Actual component result
Observation.component.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Observation.component.code This element is included in summaries. 1..1 CodeableConcept Type of component observation (code / type)
Binding: Laboratory Code (preferred)
Observation.component.Slices for value[x] This element is included in summaries. 0..1 Actual component result
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.component.Slices for value[x].valueQuantity Quantity
Observation.component.Slices for value[x].valueCodeableConcept CodeableConcept
Observation.component.Slices for value[x].valueString string
Observation.component.Slices for value[x].valueBoolean boolean
Observation.component.Slices for value[x].valueInteger integer
Observation.component.Slices for value[x].valueRange Range
Observation.component.Slices for value[x].valueRatio Ratio
Observation.component.Slices for value[x].valueSampledData SampledData
Observation.component.Slices for value[x].valueTime time
Observation.component.Slices for value[x].valueDateTime dateTime
Observation.component.Slices for value[x].valuePeriod Period
Observation.component.Slices for value[x].value[x]:valueQuantity This element is included in summaries. 0..1 QuantityEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueQuantity.id 0..1 string Unique id for inter-element referencing
Observation.component.Slices for value[x].value[x]:valueQuantity.Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Observation.component.Slices for value[x].value[x]:valueQuantity.Slices for extension Content/Rules for all slices
Observation.component.Slices for value[x].value[x]:valueQuantity.Slices for extension.extension:uncertainty 0..1 decimal Standard Deviation (same units as the quantity)
URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
Observation.component.Slices for value[x].value[x]:valueQuantity.value This element is included in summaries. 0..1 decimal Numerical value (with implicit precision)
Observation.component.Slices for value[x].value[x]:valueQuantity.comparator This element is a modifier element. This element is included in summaries. 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
Observation.component.Slices for value[x].value[x]:valueQuantity.unit This element is included in summaries. 0..1 string Unit representation
Observation.component.Slices for value[x].value[x]:valueQuantity.system This element is included in summaries. C 0..1 uri System that defines coded unit form
Observation.component.Slices for value[x].value[x]:valueQuantity.code This element is included in summaries. 0..1 code Coded form of the unit
Observation.component.Slices for value[x].value[x]:valueString This element is included in summaries. 0..1 string Actual component result
Observation.component.Slices for value[x].value[x]:valueRange This element is included in summaries. 0..1 RangeEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueRatio This element is included in summaries. 0..1 RatioEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueTime This element is included in summaries. 0..1 time Actual component result
Observation.component.Slices for value[x].value[x]:valueDateTime This element is included in summaries. 0..1 dateTime Actual component result
Observation.component.Slices for value[x].value[x]:valuePeriod This element is included in summaries. 0..1 Period Actual component result
Observation.component.Slices for value[x].value[x]:valueBoolean This element is included in summaries. 0..1 boolean Actual component result
Observation.component.Slices for value[x].value[x]:valueInteger This element is included in summaries. 0..1 integer Actual component result
Observation.component.Slices for value[x].value[x]:valueSampledData This element is included in summaries. 0..1 SampledData Actual component result
Observation.component.Slices for value[x].value[x]:valueCodeableConcept This element is included in summaries. 0..1 CodeableConcept Actual component result
Binding: Results Coded Values Laboratory/Pathology - IPS (preferred)
Observation.component.dataAbsentReason C 0..1 CodeableConcept Why the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
Observation.component.interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
Observation.component.referenceRange 0..* See referenceRange (Observation) Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Observation.extension:triggeredBy.​extension:type.value[x] Base required Cross-version ValueSet R5.TriggeredBytype for use in FHIR R4 📍0.1.0 Extensions for Using Data Elements from FHIR R5 in FHIR R4 v0.1
Observation.status Base required ObservationStatus 📍4.0.1 FHIR Std.
Observation.category Base preferred Observation Category Codes 📍4.0.1 FHIR Std.
Observation.category:laboratory Base preferred Observation Category Codes 📍4.0.1 FHIR Std.
Observation.category:studyType Base required Laboratory Study Types 📦2.1.0 This IG
Observation.category:specialty Base required Laboratory Specialty 📦2.1.0 This IG
Observation.code Base preferred Laboratory Code 📦2.1.0 This IG
Observation.performer.​type Base extensible ResourceType 📍4.0.1 FHIR Std.
Observation.value[x]:valueQuantity.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Observation.value[x]:valueCodeableConcept Base preferred Results Coded Values Laboratory/Pathology - IPS 📦2.0.1 International Patient Summary Implementation Guide v2.0
Observation.dataAbsentReason Base extensible DataAbsentReason 📍4.0.1 FHIR Std.
Observation.interpretation Base extensible Observation Interpretation Codes 📍4.0.1 FHIR Std.
Observation.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.
Observation.method Base preferred Laboratory Techniques 📦2.1.0 This IG
Observation.referenceRange.​type Base preferred Observation Reference Range Meaning Codes 📍4.0.1 FHIR Std.
Observation.referenceRange.​appliesTo Base example Observation Reference Range Applies To Codes 📍4.0.1 FHIR Std.
Observation.component.​code Base preferred Laboratory Code 📦2.1.0 This IG
Observation.component.​value[x]:valueQuantity.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Observation.component.​value[x]:valueCodeableConcept Base preferred Results Coded Values Laboratory/Pathology - IPS 📦2.0.1 International Patient Summary Implementation Guide v2.0
Observation.component.​dataAbsentReason Base extensible DataAbsentReason 📍4.0.1 FHIR Std.
Observation.component.​interpretation Base extensible Observation Interpretation Codes 📍4.0.1 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().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-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())
eu-lab-1 error Observation If observation status is other then "registered" or "cancelled", at least one of these Observation elements shall be provided with an actual value: "value", the R5 "value[x]" extension, "dataAbsentReason", "hasMember" or "component" (status in ('registered'|'cancelled')) or value.hasValue() or value.children().exclude(value.extension).exists() or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value').value.exists() or hasMember.exists() or component.exists() or dataAbsentReason.exists()
eu-lab-2 error Observation If observation status is other then "registered" or "cancelled", every Observation.component shall provide one of these elements with an actual value: "value", the R5 "component.value[x]" extension or "dataAbsentReason" (status in ('registered'|'cancelled')) or component.all(value.hasValue() or value.children().exclude(value.extension).exists() or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value').value.exists() or dataAbsentReason.exists())
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.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
obs-value-1 error Observation The elements Observation.extension:value-r5 and Observation.value[x] SHALL not be used simultaneously. value.empty() or extension('http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value').empty()
obs-value-2 error Observation.component The elements Observation.component.extension:value-r5 and Observation.component.value[x] SHALL not be used simultaneously. value.empty() or extension('http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value').empty()
sqty-1 error Observation.referenceRange.low, Observation.referenceRange.high The comparator is not used on a SimpleQuantity comparator.empty()

This structure is derived from MedicalTestResultEuCore

Summary

Mandatory: 2 elements

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Observation.category

Maturity: 2

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Observation C 0..* MedicalTestResultEuCore Laboratory result for a simple test or for a panel/study
Constraints: obs-6, obs-7, obs-value-1, eu-lab-1, eu-lab-2
Observation.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Observation.Slices for extension Content/Rules for all slices
Observation.Slices for extension.extension:bodyStructure 0..1 Reference(Cross-version Profile for R5.BodyStructure for use in FHIR R4(0.1.0) | BodyStructure) R5: Observed body structure (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.bodyStructure
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy 0..* (Complex) R5: Triggering observation(s) (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.triggeredBy
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension Content/Rules for all slices
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation 1..1 Extension Extension
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.extension 0..0 Extension
Slice: Unordered, Open by value:url
Constraints: ext-1

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.url 1..1 uri "observation"
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.value[x] 1..1 Reference(Observation: Medical Test Result (EU core)) Triggering observation
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type 1..1 Extension R5: reflex | repeat | re-run (new)
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type.url 1..1 uri "type"
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type.value[x] 1..1 code reflex | repeat | re-run
Binding: R5ObservationTriggeredbytypeForR4 (0.1.0) (required): The type of TriggeredBy Observation.
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason 0..1 Extension R5: Reason that the observation was triggered (new)
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason.url 1..1 uri "reason"
Observation.Slices for extension.extension:triggeredBy.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.triggeredBy"
Observation.Slices for extension.extension:value-r5 0..1 (Complex) only for Diagrams or Pictures
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value
Constraints: ext-1
Observation.Slices for extension.extension:value-r5.extension 0..0 Extension
Slice: Unordered, Open by value:url
Constraints: ext-1

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for extension.extension:value-r5.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value"
Observation.Slices for extension.extension:supportingInfo 0..* Reference(Resource) Other information that may be relevant to this event.
URL: http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo
Observation.Slices for extension.extension:labTestKit 0..* Reference(Device) Laboratory Test Kit
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-deviceLabTestKit
Observation.Slices for extension.extension:certifiedRefMaterialCodeable 0..* CodeableConcept Certified Reference Material: CodeableConcept
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-certifiedRefMaterialCodeable
Binding: Laboratory Certified Reference Material (example)
Observation.Slices for extension.extension:certifiedRefMaterialIdentifer 0..* Identifier Certified Reference Material: Identifier
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-certifiedRefMaterialIdentifer
Observation.Slices for extension.extension:accredited 0..1 boolean Accredited test
URL: http://hl7.eu/fhir/StructureDefinition/laboratory-accredited
Observation.Slices for extension.extension:statusReason 0..1 CodeableConcept Reason for the current status
URL: http://hl7.org/fhir/StructureDefinition/event-statusReason
Binding Description: (example): Codes identifying the reason for the current state of an event.
Observation.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Observation.status This element is a modifier element. This element is included in summaries. 1..1 code Status of this observation (e.g. preliminary, final,...)
Binding: ObservationStatus (required): Codes providing the status of an observation.
Observation.Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by pattern:$this
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for category.category:laboratory 1..1 CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.

Required Pattern:
{
  "coding" : [
    {
      "system" : "http://terminology.hl7.org/CodeSystem/observation-category",
      "code" : "laboratory"
    }
  ]
}
Observation.Slices for category.category:studyType 0..* CodeableConcept The way of grouping of the test results into clinically meaningful domains (e.g. hematology study, microbiology study, etc.)
Binding: Laboratory Study Types (required)
Observation.Slices for category.category:specialty 0..* CodeableConcept The clinical domain of the laboratory performing the observation (e.g. microbiology, toxicology, chemistry)
Binding: Laboratory Specialty (required)
Observation.code This element is included in summaries. 1..1 CodeableConcept Type of observation (code / type)
Binding: Laboratory Code (preferred)
Observation.subject This element is included in summaries. 1..1 Reference(Patient (EU core) | Device | Group | Location) Who and/or what the observation is about
Observation.focus This element is included in summaries. 0..* Reference(Patient (EU core) | RelatedPerson: AnimalSpecimen | Group | Device | Location (EU core) | Substance | BiologicallyDerivedProduct) What the observation is about, when it is not about the subject of record
Observation.effective[x] This element is included in summaries. 1..1 Clinically relevant time/time-period for observation
Observation.effective[x].effectiveDateTime dateTime
Observation.effective[x].effectivePeriod Period
Observation.issued This element is included in summaries. 0..1 instant Date/Time this result was made available
Observation.performer This element is included in summaries. 1..* Reference(Practitioner (EU core) | PractitionerRole (EU core) | Organization (EU core) | Patient (EU core) | RelatedPerson) Who is responsible for the observation
Observation.performer.Slices for extension Content/Rules for all slices
Observation.performer.Slices for extension.extension:performerFunction 0..1 CodeableConcept Type of performance
URL: http://hl7.org/fhir/StructureDefinition/event-performerFunction
Binding: Performer Function Codes (extensible)
Observation.Slices for value[x] This element is included in summaries. C 0..1 Actual result
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for value[x].valueQuantity Quantity
Observation.Slices for value[x].valueCodeableConcept CodeableConcept
Observation.Slices for value[x].valueString string
Observation.Slices for value[x].valueBoolean boolean
Observation.Slices for value[x].valueInteger integer
Observation.Slices for value[x].valueRange Range
Observation.Slices for value[x].valueRatio Ratio
Observation.Slices for value[x].valueSampledData SampledData
Observation.Slices for value[x].valueTime time
Observation.Slices for value[x].valueDateTime dateTime
Observation.Slices for value[x].valuePeriod Period
Observation.Slices for value[x].value[x]:valueQuantity This element is included in summaries. C 0..1 QuantityEuLab Actual result
Observation.Slices for value[x].value[x]:valueQuantity.Slices for extension Content/Rules for all slices
Observation.Slices for value[x].value[x]:valueQuantity.Slices for extension.extension:uncertainty 0..1 decimal Standard Deviation (same units as the quantity)
URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
Observation.Slices for value[x].value[x]:valueQuantity.comparator This element is a modifier element. This element is included in summaries. 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
Observation.Slices for value[x].value[x]:valueString This element is included in summaries. C 0..1 string Actual result
Observation.Slices for value[x].value[x]:valueRange This element is included in summaries. C 0..1 RangeEuLab Actual result
Observation.Slices for value[x].value[x]:valueRatio This element is included in summaries. C 0..1 RatioEuLab Actual result
Observation.Slices for value[x].value[x]:valueTime This element is included in summaries. C 0..1 time Actual result
Observation.Slices for value[x].value[x]:valueDateTime This element is included in summaries. C 0..1 dateTime Actual result
Observation.Slices for value[x].value[x]:valuePeriod This element is included in summaries. C 0..1 Period Actual result
Observation.Slices for value[x].value[x]:valueBoolean This element is included in summaries. C 0..1 boolean Actual result
Observation.Slices for value[x].value[x]:valueInteger This element is included in summaries. C 0..1 integer Actual result
Observation.Slices for value[x].value[x]:valueSampledData This element is included in summaries. C 0..1 SampledData Actual result
Observation.Slices for value[x].value[x]:valueCodeableConcept This element is included in summaries. C 0..1 CodeableConcept Actual result
Binding: Results Coded Values Laboratory/Pathology - IPS (preferred)
Observation.dataAbsentReason C 0..1 CodeableConcept Provides a reason why the expected value is missing.
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
Observation.method 0..1 CodeableConcept How it was done
Binding: Laboratory Techniques (preferred)
Observation.specimen 0..1 Reference(Specimen: Laboratory) Specimen used for the observation
Observation.device 0..1 Reference(Device | DeviceMetric) Measuring instrument
Observation.referenceRange C 0..* BackboneElement Provides guide for interpretation
Constraints: obs-3
Observation.referenceRange.Slices for modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.referenceRange.Slices for modifierExtension.modifierExtension:lowComparator This element is a modifier element. This element is included in summaries. 0..1 code Observation Reference Range Low Comparator
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-reference-range-low-comparator
Binding: Reference Range Low Comparator (required)
Observation.referenceRange.Slices for modifierExtension.modifierExtension:highComparator This element is a modifier element. This element is included in summaries. 0..1 code Observation Reference Range High Comparator
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-reference-range-high-comparator
Binding: Reference Range High Comparator (required)
Observation.hasMember This element is included in summaries. 0..* Reference(Observation Results: laboratory) Related resource that belongs to the Observation group
Observation.component This element is included in summaries. C 0..* BackboneElement Laboratory result
Constraints: obs-value-2
Observation.component.Slices for extension Content/Rules for all slices
Observation.component.Slices for extension.extension:value-r5 0..1 (Complex) only for Diagrams or Pictures
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value
Constraints: ext-1
Observation.component.Slices for extension.extension:value-r5.extension 0..0 Extension
Slice: Unordered, Open by value:url
Constraints: ext-1

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.component.Slices for extension.extension:value-r5.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value"
Observation.component.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Observation.component.code This element is included in summaries. 1..1 CodeableConcept Type of component observation (code / type)
Binding: Laboratory Code (preferred)
Observation.component.Slices for value[x] This element is included in summaries. 0..1 Actual component result
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.component.Slices for value[x].valueQuantity Quantity
Observation.component.Slices for value[x].valueCodeableConcept CodeableConcept
Observation.component.Slices for value[x].valueString string
Observation.component.Slices for value[x].valueBoolean boolean
Observation.component.Slices for value[x].valueInteger integer
Observation.component.Slices for value[x].valueRange Range
Observation.component.Slices for value[x].valueRatio Ratio
Observation.component.Slices for value[x].valueSampledData SampledData
Observation.component.Slices for value[x].valueTime time
Observation.component.Slices for value[x].valueDateTime dateTime
Observation.component.Slices for value[x].valuePeriod Period
Observation.component.Slices for value[x].value[x]:valueQuantity This element is included in summaries. 0..1 QuantityEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueQuantity.Slices for extension Content/Rules for all slices
Observation.component.Slices for value[x].value[x]:valueQuantity.Slices for extension.extension:uncertainty 0..1 decimal Standard Deviation (same units as the quantity)
URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
Observation.component.Slices for value[x].value[x]:valueQuantity.comparator This element is a modifier element. This element is included in summaries. 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
Observation.component.Slices for value[x].value[x]:valueString This element is included in summaries. 0..1 string Actual component result
Observation.component.Slices for value[x].value[x]:valueRange This element is included in summaries. 0..1 RangeEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueRatio This element is included in summaries. 0..1 RatioEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueTime This element is included in summaries. 0..1 time Actual component result
Observation.component.Slices for value[x].value[x]:valueDateTime This element is included in summaries. 0..1 dateTime Actual component result
Observation.component.Slices for value[x].value[x]:valuePeriod This element is included in summaries. 0..1 Period Actual component result
Observation.component.Slices for value[x].value[x]:valueBoolean This element is included in summaries. 0..1 boolean Actual component result
Observation.component.Slices for value[x].value[x]:valueInteger This element is included in summaries. 0..1 integer Actual component result
Observation.component.Slices for value[x].value[x]:valueSampledData This element is included in summaries. 0..1 SampledData Actual component result
Observation.component.Slices for value[x].value[x]:valueCodeableConcept This element is included in summaries. 0..1 CodeableConcept Actual component result
Binding: Results Coded Values Laboratory/Pathology - IPS (preferred)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.extension:triggeredBy.​extension:type.value[x] Base required Cross-version ValueSet R5.TriggeredBytype for use in FHIR R4 📍0.1.0 Extensions for Using Data Elements from FHIR R5 in FHIR R4 v0.1
Observation.status Base required ObservationStatus 📍4.0.1 FHIR Std.
Observation.category Base preferred Observation Category Codes 📍4.0.1 FHIR Std.
Observation.category:laboratory Base preferred Observation Category Codes 📍4.0.1 FHIR Std.
Observation.category:studyType Base required Laboratory Study Types 📦2.1.0 This IG
Observation.category:specialty Base required Laboratory Specialty 📦2.1.0 This IG
Observation.code Base preferred Laboratory Code 📦2.1.0 This IG
Observation.value[x]:valueQuantity.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Observation.value[x]:valueCodeableConcept Base preferred Results Coded Values Laboratory/Pathology - IPS 📦2.0.1 International Patient Summary Implementation Guide v2.0
Observation.dataAbsentReason Base extensible DataAbsentReason 📍4.0.1 FHIR Std.
Observation.method Base preferred Laboratory Techniques 📦2.1.0 This IG
Observation.component.​code Base preferred Laboratory Code 📦2.1.0 This IG
Observation.component.​value[x]:valueQuantity.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Observation.component.​value[x]:valueCodeableConcept Base preferred Results Coded Values Laboratory/Pathology - IPS 📦2.0.1 International Patient Summary Implementation Guide v2.0

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().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-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())
eu-lab-1 error Observation If observation status is other then "registered" or "cancelled", at least one of these Observation elements shall be provided with an actual value: "value", the R5 "value[x]" extension, "dataAbsentReason", "hasMember" or "component" (status in ('registered'|'cancelled')) or value.hasValue() or value.children().exclude(value.extension).exists() or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value').value.exists() or hasMember.exists() or component.exists() or dataAbsentReason.exists()
eu-lab-2 error Observation If observation status is other then "registered" or "cancelled", every Observation.component shall provide one of these elements with an actual value: "value", the R5 "component.value[x]" extension or "dataAbsentReason" (status in ('registered'|'cancelled')) or component.all(value.hasValue() or value.children().exclude(value.extension).exists() or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value').value.exists() or dataAbsentReason.exists())
ext-1 error Observation.extension:bodyStructure, Observation.extension:triggeredBy, Observation.extension:triggeredBy.extension, Observation.extension:triggeredBy.extension:observation, Observation.extension:triggeredBy.extension:type, Observation.extension:triggeredBy.extension:reason, Observation.extension:value-r5, Observation.extension:supportingInfo, Observation.extension:labTestKit, Observation.extension:certifiedRefMaterialCodeable, Observation.extension:certifiedRefMaterialIdentifer, Observation.extension:accredited, Observation.extension:statusReason, Observation.modifierExtension, Observation.performer.extension:performerFunction, Observation.value[x]:valueQuantity.extension:uncertainty, Observation.referenceRange.modifierExtension, Observation.referenceRange.modifierExtension:lowComparator, Observation.referenceRange.modifierExtension:highComparator, Observation.component.extension:value-r5, Observation.component.modifierExtension, Observation.component.value[x]:valueQuantity.extension:uncertainty 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.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
obs-value-1 error Observation The elements Observation.extension:value-r5 and Observation.value[x] SHALL not be used simultaneously. value.empty() or extension('http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value').empty()
obs-value-2 error Observation.component The elements Observation.component.extension:value-r5 and Observation.component.value[x] SHALL not be used simultaneously. value.empty() or extension('http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value').empty()

Differential View

This structure is derived from MedicalTestResultEuCore

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Observation C 0..* MedicalTestResultEuCore Laboratory result for a simple test or for a panel/study
Constraints: eu-lab-1, eu-lab-2
Observation.Slices for extension Content/Rules for all slices
Observation.Slices for extension.extension:supportingInfo 0..* Reference(Resource) Other information that may be relevant to this event.
URL: http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo
Observation.Slices for extension.extension:labTestKit 0..* Reference(Device) Laboratory Test Kit
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-deviceLabTestKit
Observation.Slices for extension.extension:certifiedRefMaterialCodeable 0..* CodeableConcept Certified Reference Material: CodeableConcept
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-certifiedRefMaterialCodeable
Binding: Laboratory Certified Reference Material (example)
Observation.Slices for extension.extension:certifiedRefMaterialIdentifer 0..* Identifier Certified Reference Material: Identifier
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-certifiedRefMaterialIdentifer
Observation.Slices for extension.extension:accredited 0..1 boolean Accredited test
URL: http://hl7.eu/fhir/StructureDefinition/laboratory-accredited
Observation.Slices for extension.extension:statusReason 0..1 CodeableConcept Reason for the current status
URL: http://hl7.org/fhir/StructureDefinition/event-statusReason
Binding Description: (example): Codes identifying the reason for the current state of an event.
Observation.status 1..1 code Status of this observation (e.g. preliminary, final,...)
Observation.Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by pattern:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for category.category:laboratory 1..1 CodeableConcept Classification of type of observation
Required Pattern:
{
  "coding" : [
    {
      "system" : "http://terminology.hl7.org/CodeSystem/observation-category",
      "code" : "laboratory"
    }
  ]
}
Observation.Slices for category.category:studyType 0..* CodeableConcept The way of grouping of the test results into clinically meaningful domains (e.g. hematology study, microbiology study, etc.)
Binding: Laboratory Study Types (required)
Observation.Slices for category.category:specialty 0..* CodeableConcept The clinical domain of the laboratory performing the observation (e.g. microbiology, toxicology, chemistry)
Binding: Laboratory Specialty (required)
Observation.code 1..1 CodeableConcept Type of observation (code / type)
Binding: Laboratory Code (preferred)
Observation.focus 0..* Reference(Patient (EU core) | RelatedPerson: AnimalSpecimen | Group | Device | Location (EU core) | Substance | BiologicallyDerivedProduct) What the observation is about, when it is not about the subject of record
Observation.issued 0..1 instant Date/Time this result was made available
Observation.performer 1..* Reference(Practitioner (EU core) | PractitionerRole (EU core) | Organization (EU core) | Patient (EU core) | RelatedPerson) Who is responsible for the observation
Observation.Slices for value[x] Content/Rules for all slices
Observation.Slices for value[x].value[x]:valueQuantity 0..1 QuantityEuLab Actual result
Observation.Slices for value[x].value[x]:valueString 0..1 string Actual result
Observation.Slices for value[x].value[x]:valueRange 0..1 RangeEuLab Actual result
Observation.Slices for value[x].value[x]:valueRatio 0..1 RatioEuLab Actual result
Observation.Slices for value[x].value[x]:valueTime 0..1 time Actual result
Observation.Slices for value[x].value[x]:valueDateTime 0..1 dateTime Actual result
Observation.Slices for value[x].value[x]:valuePeriod 0..1 Period Actual result
Observation.Slices for value[x].value[x]:valueBoolean 0..1 boolean Actual result
Observation.Slices for value[x].value[x]:valueInteger 0..1 integer Actual result
Observation.Slices for value[x].value[x]:valueSampledData 0..1 SampledData Actual result
Observation.Slices for value[x].value[x]:valueCodeableConcept 0..1 CodeableConcept Actual result
Binding: Results Coded Values Laboratory/Pathology - IPS (preferred)
Observation.dataAbsentReason 0..1 CodeableConcept Provides a reason why the expected value is missing.
Observation.method 0..1 CodeableConcept How it was done
Binding: Laboratory Techniques (preferred)
Observation.specimen 0..1 Reference(Specimen: Laboratory) Specimen used for the observation
Observation.device 0..1 Reference(Device | DeviceMetric) Measuring instrument
Observation.referenceRange 0..* BackboneElement Provides guide for interpretation
Observation.referenceRange.Slices for modifierExtension 0..* Extension Extension
Slice: Unordered, Open by value:url
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.referenceRange.Slices for modifierExtension.modifierExtension:lowComparator 0..1 code Observation Reference Range Low Comparator
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-reference-range-low-comparator
Binding: Reference Range Low Comparator (required)
Observation.referenceRange.Slices for modifierExtension.modifierExtension:highComparator 0..1 code Observation Reference Range High Comparator
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-reference-range-high-comparator
Binding: Reference Range High Comparator (required)
Observation.hasMember 0..* Reference(Observation Results: laboratory) Related resource that belongs to the Observation group
Observation.component 0..* BackboneElement Laboratory result
Observation.component.code 1..1 CodeableConcept Type of component observation (code / type)
Binding: Laboratory Code (preferred)
Observation.component.Slices for value[x] Content/Rules for all slices
Observation.component.Slices for value[x].value[x]:valueQuantity 0..1 QuantityEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueString 0..1 string Actual component result
Observation.component.Slices for value[x].value[x]:valueRange 0..1 RangeEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueRatio 0..1 RatioEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueTime 0..1 time Actual component result
Observation.component.Slices for value[x].value[x]:valueDateTime 0..1 dateTime Actual component result
Observation.component.Slices for value[x].value[x]:valuePeriod 0..1 Period Actual component result
Observation.component.Slices for value[x].value[x]:valueBoolean 0..1 boolean Actual component result
Observation.component.Slices for value[x].value[x]:valueInteger 0..1 integer Actual component result
Observation.component.Slices for value[x].value[x]:valueSampledData 0..1 SampledData Actual component result
Observation.component.Slices for value[x].value[x]:valueCodeableConcept 0..1 CodeableConcept Actual component result
Binding: Results Coded Values Laboratory/Pathology - IPS (preferred)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Observation.category:studyType Base required Laboratory Study Types 📦2.1.0 This IG
Observation.category:specialty Base required Laboratory Specialty 📦2.1.0 This IG
Observation.code Base preferred Laboratory Code 📦2.1.0 This IG
Observation.value[x]:valueCodeableConcept Base preferred Results Coded Values Laboratory/Pathology - IPS 📦2.0.1 International Patient Summary Implementation Guide v2.0
Observation.method Base preferred Laboratory Techniques 📦2.1.0 This IG
Observation.component.​code Base preferred Laboratory Code 📦2.1.0 This IG
Observation.component.​value[x]:valueCodeableConcept Base preferred Results Coded Values Laboratory/Pathology - IPS 📦2.0.1 International Patient Summary Implementation Guide v2.0

Constraints

Id Grade Path(s) Description Expression
eu-lab-1 error Observation If observation status is other then "registered" or "cancelled", at least one of these Observation elements shall be provided with an actual value: "value", the R5 "value[x]" extension, "dataAbsentReason", "hasMember" or "component" (status in ('registered'|'cancelled')) or value.hasValue() or value.children().exclude(value.extension).exists() or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value').value.exists() or hasMember.exists() or component.exists() or dataAbsentReason.exists()
eu-lab-2 error Observation If observation status is other then "registered" or "cancelled", every Observation.component shall provide one of these elements with an actual value: "value", the R5 "component.value[x]" extension or "dataAbsentReason" (status in ('registered'|'cancelled')) or component.all(value.hasValue() or value.children().exclude(value.extension).exists() or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value').value.exists() or dataAbsentReason.exists())

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Observation C 0..* MedicalTestResultEuCore Laboratory result for a simple test or for a panel/study
Constraints: obs-6, obs-7, obs-value-1, eu-lab-1, eu-lab-2
Observation.id This element is included in summaries. 0..1 id Logical id of this artifact
Observation.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Observation.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Observation.language 0..1 code Language of the observation
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Observation.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
Observation.contained 0..* Resource Contained, inline Resources
Observation.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for extension.extension:bodyStructure 0..1 Reference(Cross-version Profile for R5.BodyStructure for use in FHIR R4(0.1.0) | BodyStructure) R5: Observed body structure (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.bodyStructure
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy 0..* (Complex) R5: Triggering observation(s) (new)
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.triggeredBy
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.id 0..1 string Unique id for inter-element referencing
Observation.Slices for extension.extension:triggeredBy.Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension Content/Rules for all slices
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation 1..1 Extension Extension
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.id 0..1 string Unique id for inter-element referencing
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.extension 0..0 Extension
Slice: Unordered, Open by value:url
Constraints: ext-1

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.url 1..1 uri "observation"
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:observation.value[x] 1..1 Reference(Observation: Medical Test Result (EU core)) Triggering observation
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type 1..1 Extension R5: reflex | repeat | re-run (new)
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type.id 0..1 string Unique id for inter-element referencing
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type.url 1..1 uri "type"
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:type.value[x] 1..1 code reflex | repeat | re-run
Binding: R5ObservationTriggeredbytypeForR4 (0.1.0) (required): The type of TriggeredBy Observation.
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason 0..1 Extension R5: Reason that the observation was triggered (new)
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason.id 0..1 string Unique id for inter-element referencing
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason.url 1..1 uri "reason"
Observation.Slices for extension.extension:triggeredBy.Slices for extension.extension:reason.value[x] 0..1 string Reason that the observation was triggered
Observation.Slices for extension.extension:triggeredBy.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.triggeredBy"
Observation.Slices for extension.extension:value-r5 0..1 (Complex) only for Diagrams or Pictures
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value
Constraints: ext-1
Observation.Slices for extension.extension:value-r5.id 0..1 string Unique id for inter-element referencing
Observation.Slices for extension.extension:value-r5.extension 0..0 Extension
Slice: Unordered, Open by value:url
Constraints: ext-1

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for extension.extension:value-r5.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value"
Observation.Slices for extension.extension:value-r5.value[x] 0..1 Attachment Actual result
Observation.Slices for extension.extension:supportingInfo 0..* Reference(Resource) Other information that may be relevant to this event.
URL: http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo
Observation.Slices for extension.extension:labTestKit 0..* Reference(Device) Laboratory Test Kit
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-deviceLabTestKit
Observation.Slices for extension.extension:certifiedRefMaterialCodeable 0..* CodeableConcept Certified Reference Material: CodeableConcept
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-certifiedRefMaterialCodeable
Binding: Laboratory Certified Reference Material (example)
Observation.Slices for extension.extension:certifiedRefMaterialIdentifer 0..* Identifier Certified Reference Material: Identifier
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-certifiedRefMaterialIdentifer
Observation.Slices for extension.extension:accredited 0..1 boolean Accredited test
URL: http://hl7.eu/fhir/StructureDefinition/laboratory-accredited
Observation.Slices for extension.extension:statusReason 0..1 CodeableConcept Reason for the current status
URL: http://hl7.org/fhir/StructureDefinition/event-statusReason
Binding Description: (example): Codes identifying the reason for the current state of an event.
Observation.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Observation.identifier This element is included in summaries. 0..* Identifier Business Identifier for observation
Observation.basedOn This element is included in summaries. 0..* Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) Fulfills plan, proposal or order
Observation.partOf This element is included in summaries. 0..* Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) Part of referenced event
Observation.status This element is a modifier element. This element is included in summaries. 1..1 code Status of this observation (e.g. preliminary, final,...)
Binding: ObservationStatus (required): Codes providing the status of an observation.
Observation.Slices for category 1..* CodeableConcept Classification of type of observation
Slice: Unordered, Open by pattern:$this
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for category.category:laboratory 1..1 CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.

Required Pattern:
{
  "coding" : [
    {
      "system" : "http://terminology.hl7.org/CodeSystem/observation-category",
      "code" : "laboratory"
    }
  ]
}
Observation.Slices for category.category:studyType 0..* CodeableConcept The way of grouping of the test results into clinically meaningful domains (e.g. hematology study, microbiology study, etc.)
Binding: Laboratory Study Types (required)
Observation.Slices for category.category:specialty 0..* CodeableConcept The clinical domain of the laboratory performing the observation (e.g. microbiology, toxicology, chemistry)
Binding: Laboratory Specialty (required)
Observation.code This element is included in summaries. 1..1 CodeableConcept Type of observation (code / type)
Binding: Laboratory Code (preferred)
Observation.subject This element is included in summaries. 1..1 Reference(Patient (EU core) | Device | Group | Location) Who and/or what the observation is about
Observation.focus This element is included in summaries. 0..* Reference(Patient (EU core) | RelatedPerson: AnimalSpecimen | Group | Device | Location (EU core) | Substance | BiologicallyDerivedProduct) What the observation is about, when it is not about the subject of record
Observation.encounter This element is included in summaries. 0..1 Reference(Encounter) Healthcare event during which this observation is made
Observation.effective[x] This element is included in summaries. 1..1 Clinically relevant time/time-period for observation
Observation.effective[x].effectiveDateTime dateTime
Observation.effective[x].effectivePeriod Period
Observation.issued This element is included in summaries. 0..1 instant Date/Time this result was made available
Observation.performer This element is included in summaries. 1..* Reference(Practitioner (EU core) | PractitionerRole (EU core) | Organization (EU core) | Patient (EU core) | RelatedPerson) Who is responsible for the observation
Observation.performer.id 0..1 string Unique id for inter-element referencing
Observation.performer.Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Observation.performer.Slices for extension.extension:performerFunction 0..1 CodeableConcept Type of performance
URL: http://hl7.org/fhir/StructureDefinition/event-performerFunction
Binding: Performer Function Codes (extensible)
Observation.performer.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Observation.performer.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Observation.performer.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Observation.performer.display This element is included in summaries. 0..1 string Text alternative for the resource
Observation.Slices for value[x] This element is included in summaries. C 0..1 Actual result
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.Slices for value[x].valueQuantity Quantity
Observation.Slices for value[x].valueCodeableConcept CodeableConcept
Observation.Slices for value[x].valueString string
Observation.Slices for value[x].valueBoolean boolean
Observation.Slices for value[x].valueInteger integer
Observation.Slices for value[x].valueRange Range
Observation.Slices for value[x].valueRatio Ratio
Observation.Slices for value[x].valueSampledData SampledData
Observation.Slices for value[x].valueTime time
Observation.Slices for value[x].valueDateTime dateTime
Observation.Slices for value[x].valuePeriod Period
Observation.Slices for value[x].value[x]:valueQuantity This element is included in summaries. C 0..1 QuantityEuLab Actual result
Observation.Slices for value[x].value[x]:valueQuantity.id 0..1 string Unique id for inter-element referencing
Observation.Slices for value[x].value[x]:valueQuantity.Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Observation.Slices for value[x].value[x]:valueQuantity.Slices for extension Content/Rules for all slices
Observation.Slices for value[x].value[x]:valueQuantity.Slices for extension.extension:uncertainty 0..1 decimal Standard Deviation (same units as the quantity)
URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
Observation.Slices for value[x].value[x]:valueQuantity.value This element is included in summaries. 0..1 decimal Numerical value (with implicit precision)
Observation.Slices for value[x].value[x]:valueQuantity.comparator This element is a modifier element. This element is included in summaries. 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
Observation.Slices for value[x].value[x]:valueQuantity.unit This element is included in summaries. 0..1 string Unit representation
Observation.Slices for value[x].value[x]:valueQuantity.system This element is included in summaries. C 0..1 uri System that defines coded unit form
Observation.Slices for value[x].value[x]:valueQuantity.code This element is included in summaries. 0..1 code Coded form of the unit
Observation.Slices for value[x].value[x]:valueString This element is included in summaries. C 0..1 string Actual result
Observation.Slices for value[x].value[x]:valueRange This element is included in summaries. C 0..1 RangeEuLab Actual result
Observation.Slices for value[x].value[x]:valueRatio This element is included in summaries. C 0..1 RatioEuLab Actual result
Observation.Slices for value[x].value[x]:valueTime This element is included in summaries. C 0..1 time Actual result
Observation.Slices for value[x].value[x]:valueDateTime This element is included in summaries. C 0..1 dateTime Actual result
Observation.Slices for value[x].value[x]:valuePeriod This element is included in summaries. C 0..1 Period Actual result
Observation.Slices for value[x].value[x]:valueBoolean This element is included in summaries. C 0..1 boolean Actual result
Observation.Slices for value[x].value[x]:valueInteger This element is included in summaries. C 0..1 integer Actual result
Observation.Slices for value[x].value[x]:valueSampledData This element is included in summaries. C 0..1 SampledData Actual result
Observation.Slices for value[x].value[x]:valueCodeableConcept This element is included in summaries. C 0..1 CodeableConcept Actual result
Binding: Results Coded Values Laboratory/Pathology - IPS (preferred)
Observation.dataAbsentReason C 0..1 CodeableConcept Provides a reason why the expected value is missing.
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
Observation.interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
Observation.note 0..* Annotation Comments about the observation
Observation.bodySite 0..1 CodeableConcept Observed body part
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
Observation.method 0..1 CodeableConcept How it was done
Binding: Laboratory Techniques (preferred)
Observation.specimen 0..1 Reference(Specimen: Laboratory) Specimen used for the observation
Observation.device 0..1 Reference(Device | DeviceMetric) Measuring instrument
Observation.referenceRange C 0..* BackboneElement Provides guide for interpretation
Constraints: obs-3
Observation.referenceRange.id 0..1 string Unique id for inter-element referencing
Observation.referenceRange.extension 0..* Extension Additional content defined by implementations
Observation.referenceRange.Slices for modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.referenceRange.Slices for modifierExtension.modifierExtension:lowComparator This element is a modifier element. This element is included in summaries. 0..1 code Observation Reference Range Low Comparator
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-reference-range-low-comparator
Binding: Reference Range Low Comparator (required)
Observation.referenceRange.Slices for modifierExtension.modifierExtension:highComparator This element is a modifier element. This element is included in summaries. 0..1 code Observation Reference Range High Comparator
URL: http://hl7.eu/fhir/laboratory/StructureDefinition/observation-reference-range-high-comparator
Binding: Reference Range High Comparator (required)
Observation.referenceRange.low C 0..1 SimpleQuantity(4.0.1) Low Range, if relevant
Constraints: sqty-1
Observation.referenceRange.high C 0..1 SimpleQuantity(4.0.1) High Range, if relevant
Constraints: sqty-1
Observation.referenceRange.type 0..1 CodeableConcept Reference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.
Observation.referenceRange.appliesTo 0..* CodeableConcept Reference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.
Observation.referenceRange.age 0..1 Range Applicable age range, if relevant
Observation.referenceRange.text 0..1 string Text based reference range in an observation
Observation.hasMember This element is included in summaries. 0..* Reference(Observation Results: laboratory) Related resource that belongs to the Observation group
Observation.derivedFrom This element is included in summaries. 0..* Reference(Observation: Medical Test Result (EU core) | ImagingStudy) Related measurements the observation is made from
Observation.component This element is included in summaries. C 0..* BackboneElement Laboratory result
Constraints: obs-value-2
Observation.component.id 0..1 string Unique id for inter-element referencing
Observation.component.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.component.Slices for extension.extension:value-r5 0..1 (Complex) only for Diagrams or Pictures
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value
Constraints: ext-1
Observation.component.Slices for extension.extension:value-r5.id 0..1 string Unique id for inter-element referencing
Observation.component.Slices for extension.extension:value-r5.extension 0..0 Extension
Slice: Unordered, Open by value:url
Constraints: ext-1

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.component.Slices for extension.extension:value-r5.url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value"
Observation.component.Slices for extension.extension:value-r5.value[x] 0..1 Attachment Actual component result
Observation.component.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Observation.component.code This element is included in summaries. 1..1 CodeableConcept Type of component observation (code / type)
Binding: Laboratory Code (preferred)
Observation.component.Slices for value[x] This element is included in summaries. 0..1 Actual component result
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Observation.component.Slices for value[x].valueQuantity Quantity
Observation.component.Slices for value[x].valueCodeableConcept CodeableConcept
Observation.component.Slices for value[x].valueString string
Observation.component.Slices for value[x].valueBoolean boolean
Observation.component.Slices for value[x].valueInteger integer
Observation.component.Slices for value[x].valueRange Range
Observation.component.Slices for value[x].valueRatio Ratio
Observation.component.Slices for value[x].valueSampledData SampledData
Observation.component.Slices for value[x].valueTime time
Observation.component.Slices for value[x].valueDateTime dateTime
Observation.component.Slices for value[x].valuePeriod Period
Observation.component.Slices for value[x].value[x]:valueQuantity This element is included in summaries. 0..1 QuantityEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueQuantity.id 0..1 string Unique id for inter-element referencing
Observation.component.Slices for value[x].value[x]:valueQuantity.Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Observation.component.Slices for value[x].value[x]:valueQuantity.Slices for extension Content/Rules for all slices
Observation.component.Slices for value[x].value[x]:valueQuantity.Slices for extension.extension:uncertainty 0..1 decimal Standard Deviation (same units as the quantity)
URL: http://hl7.org/fhir/StructureDefinition/iso21090-uncertainty
Observation.component.Slices for value[x].value[x]:valueQuantity.value This element is included in summaries. 0..1 decimal Numerical value (with implicit precision)
Observation.component.Slices for value[x].value[x]:valueQuantity.comparator This element is a modifier element. This element is included in summaries. 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
Observation.component.Slices for value[x].value[x]:valueQuantity.unit This element is included in summaries. 0..1 string Unit representation
Observation.component.Slices for value[x].value[x]:valueQuantity.system This element is included in summaries. C 0..1 uri System that defines coded unit form
Observation.component.Slices for value[x].value[x]:valueQuantity.code This element is included in summaries. 0..1 code Coded form of the unit
Observation.component.Slices for value[x].value[x]:valueString This element is included in summaries. 0..1 string Actual component result
Observation.component.Slices for value[x].value[x]:valueRange This element is included in summaries. 0..1 RangeEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueRatio This element is included in summaries. 0..1 RatioEuLab Actual component result
Observation.component.Slices for value[x].value[x]:valueTime This element is included in summaries. 0..1 time Actual component result
Observation.component.Slices for value[x].value[x]:valueDateTime This element is included in summaries. 0..1 dateTime Actual component result
Observation.component.Slices for value[x].value[x]:valuePeriod This element is included in summaries. 0..1 Period Actual component result
Observation.component.Slices for value[x].value[x]:valueBoolean This element is included in summaries. 0..1 boolean Actual component result
Observation.component.Slices for value[x].value[x]:valueInteger This element is included in summaries. 0..1 integer Actual component result
Observation.component.Slices for value[x].value[x]:valueSampledData This element is included in summaries. 0..1 SampledData Actual component result
Observation.component.Slices for value[x].value[x]:valueCodeableConcept This element is included in summaries. 0..1 CodeableConcept Actual component result
Binding: Results Coded Values Laboratory/Pathology - IPS (preferred)
Observation.component.dataAbsentReason C 0..1 CodeableConcept Why the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
Observation.component.interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
Observation.component.referenceRange 0..* See referenceRange (Observation) Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Observation.extension:triggeredBy.​extension:type.value[x] Base required Cross-version ValueSet R5.TriggeredBytype for use in FHIR R4 📍0.1.0 Extensions for Using Data Elements from FHIR R5 in FHIR R4 v0.1
Observation.status Base required ObservationStatus 📍4.0.1 FHIR Std.
Observation.category Base preferred Observation Category Codes 📍4.0.1 FHIR Std.
Observation.category:laboratory Base preferred Observation Category Codes 📍4.0.1 FHIR Std.
Observation.category:studyType Base required Laboratory Study Types 📦2.1.0 This IG
Observation.category:specialty Base required Laboratory Specialty 📦2.1.0 This IG
Observation.code Base preferred Laboratory Code 📦2.1.0 This IG
Observation.performer.​type Base extensible ResourceType 📍4.0.1 FHIR Std.
Observation.value[x]:valueQuantity.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Observation.value[x]:valueCodeableConcept Base preferred Results Coded Values Laboratory/Pathology - IPS 📦2.0.1 International Patient Summary Implementation Guide v2.0
Observation.dataAbsentReason Base extensible DataAbsentReason 📍4.0.1 FHIR Std.
Observation.interpretation Base extensible Observation Interpretation Codes 📍4.0.1 FHIR Std.
Observation.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.
Observation.method Base preferred Laboratory Techniques 📦2.1.0 This IG
Observation.referenceRange.​type Base preferred Observation Reference Range Meaning Codes 📍4.0.1 FHIR Std.
Observation.referenceRange.​appliesTo Base example Observation Reference Range Applies To Codes 📍4.0.1 FHIR Std.
Observation.component.​code Base preferred Laboratory Code 📦2.1.0 This IG
Observation.component.​value[x]:valueQuantity.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Observation.component.​value[x]:valueCodeableConcept Base preferred Results Coded Values Laboratory/Pathology - IPS 📦2.0.1 International Patient Summary Implementation Guide v2.0
Observation.component.​dataAbsentReason Base extensible DataAbsentReason 📍4.0.1 FHIR Std.
Observation.component.​interpretation Base extensible Observation Interpretation Codes 📍4.0.1 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().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-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())
eu-lab-1 error Observation If observation status is other then "registered" or "cancelled", at least one of these Observation elements shall be provided with an actual value: "value", the R5 "value[x]" extension, "dataAbsentReason", "hasMember" or "component" (status in ('registered'|'cancelled')) or value.hasValue() or value.children().exclude(value.extension).exists() or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value').value.exists() or hasMember.exists() or component.exists() or dataAbsentReason.exists()
eu-lab-2 error Observation If observation status is other then "registered" or "cancelled", every Observation.component shall provide one of these elements with an actual value: "value", the R5 "component.value[x]" extension or "dataAbsentReason" (status in ('registered'|'cancelled')) or component.all(value.hasValue() or value.children().exclude(value.extension).exists() or extension.where(url='http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value').value.exists() or dataAbsentReason.exists())
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.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
obs-value-1 error Observation The elements Observation.extension:value-r5 and Observation.value[x] SHALL not be used simultaneously. value.empty() or extension('http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.value').empty()
obs-value-2 error Observation.component The elements Observation.component.extension:value-r5 and Observation.component.value[x] SHALL not be used simultaneously. value.empty() or extension('http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.component.value').empty()
sqty-1 error Observation.referenceRange.low, Observation.referenceRange.high The comparator is not used on a SimpleQuantity comparator.empty()

This structure is derived from MedicalTestResultEuCore

Summary

Mandatory: 2 elements

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Observation.category

Maturity: 2

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Notes on valueString vs valueCodeableConcept.text

If the result is purely free text without categorical meaning, Observation.valueString SHALL be used.

If the result is conceptually categorical (i.e. it represents a classification, interpretation, or selectable answer option), Observation.valueCodeableConcept SHALL be used.

If no formal coding system is available, the human-readable result SHALL be conveyed in Observation.valueCodeableConcept.text instead of using valueString.

This distinction ensures that categorical results remain semantically identifiable as coded data, even if only a textual representation is available.