HL7 Europe Laboratory Report
0.2.0-ci - ci-build 150

HL7 Europe Laboratory Report, published by HL7 Europe. This guide is not an authorized publication; it is the continuous build for version 0.2.0-ci built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7-eu/laboratory/ and changes regularly. See the Directory of published versions

Data Type Profile: RangeEuLab - Detailed Descriptions

Draft as of 2026-03-27

Definitions for the Range-eu-lab data type profile.

Guidance on how to interpret the contents of this table can be foundhere

0. Range
Definition

A measured range (or a range that can potentially be measured) and uncertainty of the measurement. This profile imposes that the code system for units be UCUM.


A set of ordered Quantities defined by a low and high limit.

ShortA measured range using UCUMSet of values bounded by low and high
Comments

The stated low and high value are assumed to have arbitrarily high precision when it comes to determining which values are in the range. I.e. 1.99 is not in the range 2 -> 3.

Control0..*
This element is affected by the following invariants: ele-1
Is Modifierfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
rng-2: If present, low SHALL have a lower value than high (low.empty() or high.empty() or (low <= high))
rng-2: If present, low SHALL have a lower value than high (low.empty() or high.empty() or (low <= high))
2. Range.extension:uncertainty
Slice Nameuncertainty
Definition

The primary measure of variance/uncertainty of the value (the square root of the sum of the squares of the differences between all data points and the mean).

ShortStandard Deviation (same units as the quantity)
Comments

standardDeviation has the same units as the quantity. It is used to normalize the data for computing the distribution function. Applications that cannot deal with probability distributions can still get an idea about the confidence level by looking at standardDeviation.

Control0..1
TypeExtension(Uncertainty) (Extension Type: decimal)
Is Modifierfalse
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
4. Range.extension:uncertaintyType
Slice NameuncertaintyType
Definition

A code specifying the type of probability distribution for the uncertainty.

ShortProbability Distribution Type for uncertainty
Comments

This is only meaningful if there is also an uncertainty extension. If there is an uncertainty extension with no type, this means that the probability distribution type is unknown. In that case, the uncertainty has the meaning of an informal guess.

Control0..1
TypeExtension(Uncertainty type) (Extension Type: code)
Is Modifierfalse
Summaryfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())

Guidance on how to interpret the contents of this table can be foundhere

0. Range
Definition

A measured range (or a range that can potentially be measured) and uncertainty of the measurement. This profile imposes that the code system for units be UCUM.

ShortA measured range using UCUM
2. Range.extension:uncertainty
Slice Nameuncertainty
Control0..1
TypeExtension(Uncertainty) (Extension Type: decimal)
4. Range.extension:uncertaintyType
Slice NameuncertaintyType
Control0..1
TypeExtension(Uncertainty type) (Extension Type: code)
6. Range.low
8. Range.low.system
Control1..?
Pattern Valuehttp://unitsofmeasure.org
10. Range.low.code
Control1..?
12. Range.high
14. Range.high.system
Control1..?
Pattern Valuehttp://unitsofmeasure.org
16. Range.high.code
Control1..?

Guidance on how to interpret the contents of this table can be foundhere

0. Range
Definition

A measured range (or a range that can potentially be measured) and uncertainty of the measurement. This profile imposes that the code system for units be UCUM.

ShortA measured range using UCUM
Comments

The stated low and high value are assumed to have arbitrarily high precision when it comes to determining which values are in the range. I.e. 1.99 is not in the range 2 -> 3.

Control0..*
This element is affected by the following invariants: ele-1
Is Modifierfalse
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
rng-2: If present, low SHALL have a lower value than high (low.empty() or high.empty() or (low <= high))
2. Range.id
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

ShortUnique id for inter-element referencing
Control0..1
Typestring
Is Modifierfalse
XML FormatIn the XML format, this property is represented as an attribute.
Summaryfalse
4. Range.extension
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

ShortAdditional content defined by implementations
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Range.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 6. Range.extension:uncertainty
    Slice Nameuncertainty
    Definition

    The primary measure of variance/uncertainty of the value (the square root of the sum of the squares of the differences between all data points and the mean).

    ShortStandard Deviation (same units as the quantity)
    Comments

    standardDeviation has the same units as the quantity. It is used to normalize the data for computing the distribution function. Applications that cannot deal with probability distributions can still get an idea about the confidence level by looking at standardDeviation.

    Control0..1
    TypeExtension(Uncertainty) (Extension Type: decimal)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    8. Range.extension:uncertaintyType
    Slice NameuncertaintyType
    Definition

    A code specifying the type of probability distribution for the uncertainty.

    ShortProbability Distribution Type for uncertainty
    Comments

    This is only meaningful if there is also an uncertainty extension. If there is an uncertainty extension with no type, this means that the probability distribution type is unknown. In that case, the uncertainty has the meaning of an informal guess.

    Control0..1
    TypeExtension(Uncertainty type) (Extension Type: code)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    10. Range.low
    Definition

    The low limit. The boundary is inclusive.

    ShortLow limit
    Comments

    If the low element is missing, the low boundary is not known.

    Control0..1
    TypeQuantity(SimpleQuantity)
    Is Modifierfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    12. Range.low.id
    Definition

    Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

    ShortUnique id for inter-element referencing
    Control0..1
    Typestring
    Is Modifierfalse
    XML FormatIn the XML format, this property is represented as an attribute.
    Summaryfalse
    14. Range.low.extension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

    ShortAdditional content defined by implementations
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifierfalse
    Summaryfalse
    Alternate Namesextensions, user content
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    SlicingThis element introduces a set of slices on Range.low.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
    • value @ url
    • 16. Range.low.value
      Definition

      The value of the measured amount. The value includes an implicit precision in the presentation of the value.

      ShortNumerical value (with implicit precision)
      Comments

      The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).

      Control0..1
      Typedecimal
      Is Modifierfalse
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summarytrue
      Requirements

      Precision is handled implicitly in almost all cases of measurement.

      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      18. Range.low.comparator
      Definition

      Not allowed to be used in this context

      Short< | <= | >= | > - how to understand the value
      Control0..0
      BindingThe codes SHALL be taken from QuantityComparator
      (required to http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1)

      How the Quantity should be understood and represented.

      Typecode
      Is Modifiertrue because This is labeled as "Is Modifier" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summarytrue
      Requirements

      Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

      Meaning if MissingIf there is no comparator, then there is no modification of the value
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      20. Range.low.unit
      Definition

      A human-readable form of the unit.

      ShortUnit representation
      Control0..1
      Typestring
      Is Modifierfalse
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summarytrue
      Requirements

      There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      22. Range.low.system
      Definition

      The identification of the system that provides the coded form of the unit.

      ShortSystem that defines coded unit form
      Control1..1
      This element is affected by the following invariants: qty-3
      Typeuri
      Is Modifierfalse
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summarytrue
      Requirements

      Need to know the system that defines the coded form of the unit.

      Pattern Valuehttp://unitsofmeasure.org
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      24. Range.low.code
      Definition

      A computer processable form of the unit in some unit representation system.

      ShortCoded form of the unit
      Comments

      The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.

      Control1..1
      Typecode
      Is Modifierfalse
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      Summarytrue
      Requirements

      Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.

      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      26. Range.high
      Definition

      The high limit. The boundary is inclusive.

      ShortHigh limit
      Comments

      If the high element is missing, the high boundary is not known.

      Control0..1
      TypeQuantity(SimpleQuantity)
      Is Modifierfalse
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      28. Range.high.id
      Definition

      Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

      ShortUnique id for inter-element referencing
      Control0..1
      Typestring
      Is Modifierfalse
      XML FormatIn the XML format, this property is represented as an attribute.
      Summaryfalse
      30. Range.high.extension
      Definition

      May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

      ShortAdditional content defined by implementations
      Comments

      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

      Control0..*
      TypeExtension
      Is Modifierfalse
      Summaryfalse
      Alternate Namesextensions, user content
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      SlicingThis element introduces a set of slices on Range.high.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
      • value @ url
      • 32. Range.high.value
        Definition

        The value of the measured amount. The value includes an implicit precision in the presentation of the value.

        ShortNumerical value (with implicit precision)
        Comments

        The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).

        Control0..1
        Typedecimal
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summarytrue
        Requirements

        Precision is handled implicitly in almost all cases of measurement.

        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        34. Range.high.comparator
        Definition

        Not allowed to be used in this context

        Short< | <= | >= | > - how to understand the value
        Control0..0
        BindingThe codes SHALL be taken from QuantityComparator
        (required to http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1)

        How the Quantity should be understood and represented.

        Typecode
        Is Modifiertrue because This is labeled as "Is Modifier" because the comparator modifies the interpretation of the value significantly. If there is no comparator, then there is no modification of the value
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summarytrue
        Requirements

        Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

        Meaning if MissingIf there is no comparator, then there is no modification of the value
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        36. Range.high.unit
        Definition

        A human-readable form of the unit.

        ShortUnit representation
        Control0..1
        Typestring
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summarytrue
        Requirements

        There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        38. Range.high.system
        Definition

        The identification of the system that provides the coded form of the unit.

        ShortSystem that defines coded unit form
        Control1..1
        This element is affected by the following invariants: qty-3
        Typeuri
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summarytrue
        Requirements

        Need to know the system that defines the coded form of the unit.

        Pattern Valuehttp://unitsofmeasure.org
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        40. Range.high.code
        Definition

        A computer processable form of the unit in some unit representation system.

        ShortCoded form of the unit
        Comments

        The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.

        Control1..1
        Typecode
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summarytrue
        Requirements

        Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.

        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))