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: RatioEuLab - Detailed Descriptions

Draft as of 2026-03-27

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

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

0. Ratio
Definition

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


A relationship of two Quantity values - expressed as a numerator and a denominator.

ShortA measured ratio using UCUMA ratio of two Quantity values - a numerator and a denominator
Comments

The Ratio datatype should only be used to express a relationship of two numbers if the relationship cannot be suitably expressed using a Quantity and a common unit. Where the denominator value is known to be fixed to "1", Quantity should be used instead of Ratio.

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()))
rat-1: Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present ((numerator.empty() xor denominator.exists()) and (numerator.exists() or extension.exists()))
rat-1: Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present ((numerator.empty() xor denominator.exists()) and (numerator.exists() or extension.exists()))
2. Ratio.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. Ratio.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. Ratio
Definition

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

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

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

0. Ratio
Definition

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

ShortA measured ratio using UCUM
Comments

The Ratio datatype should only be used to express a relationship of two numbers if the relationship cannot be suitably expressed using a Quantity and a common unit. Where the denominator value is known to be fixed to "1", Quantity should be used instead of Ratio.

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()))
rat-1: Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present ((numerator.empty() xor denominator.exists()) and (numerator.exists() or extension.exists()))
2. Ratio.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. Ratio.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 Ratio.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 6. Ratio.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. Ratio.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. Ratio.numerator
    Definition

    The value of the numerator.

    ShortNumerator value
    Control0..1
    TypeQuantity
    Is Modifierfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    12. Ratio.numerator.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. Ratio.numerator.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 Ratio.numerator.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
    • value @ url
    • 16. Ratio.numerator.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. Ratio.numerator.comparator
      Definition

      How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is "<" , then the real value is < stated value.

      Short< | <= | >= | > - how to understand the value
      Control0..1
      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. Ratio.numerator.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. Ratio.numerator.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. Ratio.numerator.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. Ratio.denominator
      Definition

      The value of the denominator.

      ShortDenominator value
      Control0..1
      TypeQuantity
      Is Modifierfalse
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      28. Ratio.denominator.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. Ratio.denominator.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 Ratio.denominator.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
      • value @ url
      • 32. Ratio.denominator.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. Ratio.denominator.comparator
        Definition

        How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is "<" , then the real value is < stated value.

        Short< | <= | >= | > - how to understand the value
        Control0..1
        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. Ratio.denominator.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. Ratio.denominator.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. Ratio.denominator.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()))