HL7 FHIR Implementation Guide: Transversal Clinical Core
1.0.1 - STU1

HL7 FHIR Implementation Guide: Transversal Clinical Core, published by eHealth Platform. This guide is not an authorized publication; it is the continuous build for version 1.0.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7-be/core-clinical/ and changes regularly. See the Directory of published versions

## Logical Model: BeObservation Model

Official URL: https://www.ehealth.fgov.be/standards/fhir/core-clinical/StructureDefinition/be-model-observation | Version: 1.0.1
Active as of 2025-10-16 | Computable Name: BeModelObservation

Observation logical model

Usages:

- This Logical Model is not used by any profiles in this Implementation Guide

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

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

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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
be-model-observation |  | 0..* | Base | BeObservation Model
identifier |  | 1..* | Identifier | Unique identifier for the observation
recordedDate |  | 1..1 | dateTime | Date when the observation was recorded
observationDate[x] |  | 1..1 |  | Date or period of the observation
observationDateDateTime |  |  | dateTime |
observationDatePeriod |  |  | Period |
recorder |  | 1..1 | Reference() | Person, organisation or device that recorded the observation
performer |  | 0..1 | Reference() | The professional that performed the observation
patient |  | 1..1 | Reference() | The patient that this observation is about
request |  | 0..1 | Reference() | The request that this observation is fulfilling
partOfProcedure |  | 0..* | Reference() | Part of referenced procedure
specimen |  | 0..1 | Reference() | The specimen that was used when this observation was made
device |  | 0..1 | Reference() | The device used to generate the observation data
category |  | 0..* | CodeableConcept | A code that classifies the general type of observation being made
code |  | 1..1 | CodeableConcept | Describes what was observed. Sometimes this is called the observation 'name'
value[x] |  | 0..1 |  | The value of the observation - typically a code, an amount or a date
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
component |  | 0..* | BackboneElement | Some observations have multiple component observations
@id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code |  | 1..1 | CodeableConcept | Describes what was observed.
value[x] |  | 0..1 |  | The value of the component observation - typically a code, an amount or a date
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
status |  | 1..1 | code | The status of the result value.
interpretation |  | 0..* | CodeableConcept | A categorical assessment of an observation value
referenceRange |  | 0..* | BackboneElement | Guidance on how to interpret the value by comparison to a normal or recommended range
@id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
low |  | 0..1 | Quantity | Low Range, if relevant
high |  | 0..1 | Quantity | High Range, if relevant
bodySite |  | 0..1 | be-model-bodysite | The site on the subject's body where the observation was made (i.e. the target site)
certainty |  | 0..1 | CodeableConcept | A subjective assessment of the quality of the observation
note |  | 0..* | Annotation | Comments about the observation or the results
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Base

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
be-model-observation |  | 0..* | Base | BeObservation Model
identifier |  | 1..* | Identifier | Unique identifier for the observation
recordedDate |  | 1..1 | dateTime | Date when the observation was recorded
observationDate[x] |  | 1..1 |  | Date or period of the observation
observationDateDateTime |  |  | dateTime |
observationDatePeriod |  |  | Period |
recorder |  | 1..1 | Reference() | Person, organisation or device that recorded the observation
performer |  | 0..1 | Reference() | The professional that performed the observation
patient |  | 1..1 | Reference() | The patient that this observation is about
request |  | 0..1 | Reference() | The request that this observation is fulfilling
partOfProcedure |  | 0..* | Reference() | Part of referenced procedure
specimen |  | 0..1 | Reference() | The specimen that was used when this observation was made
device |  | 0..1 | Reference() | The device used to generate the observation data
category |  | 0..* | CodeableConcept | A code that classifies the general type of observation being made
code |  | 1..1 | CodeableConcept | Describes what was observed. Sometimes this is called the observation 'name'
value[x] |  | 0..1 |  | The value of the observation - typically a code, an amount or a date
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
component |  | 0..* | BackboneElement | Some observations have multiple component observations
code |  | 1..1 | CodeableConcept | Describes what was observed.
value[x] |  | 0..1 |  | The value of the component observation - typically a code, an amount or a date
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
status |  | 1..1 | code | The status of the result value.
interpretation |  | 0..* | CodeableConcept | A categorical assessment of an observation value
referenceRange |  | 0..* | BackboneElement | Guidance on how to interpret the value by comparison to a normal or recommended range
low |  | 0..1 | Quantity | Low Range, if relevant
high |  | 0..1 | Quantity | High Range, if relevant
bodySite |  | 0..1 | be-model-bodysite | The site on the subject's body where the observation was made (i.e. the target site)
certainty |  | 0..1 | CodeableConcept | A subjective assessment of the quality of the observation
note |  | 0..* | Annotation | Comments about the observation or the results
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
be-model-observation |  | 0..* | Base | BeObservation Model
identifier |  | 1..* | Identifier | Unique identifier for the observation
recordedDate |  | 1..1 | dateTime | Date when the observation was recorded
observationDate[x] |  | 1..1 |  | Date or period of the observation
observationDateDateTime |  |  | dateTime |
observationDatePeriod |  |  | Period |
recorder |  | 1..1 | Reference() | Person, organisation or device that recorded the observation
performer |  | 0..1 | Reference() | The professional that performed the observation
patient |  | 1..1 | Reference() | The patient that this observation is about
request |  | 0..1 | Reference() | The request that this observation is fulfilling
partOfProcedure |  | 0..* | Reference() | Part of referenced procedure
specimen |  | 0..1 | Reference() | The specimen that was used when this observation was made
device |  | 0..1 | Reference() | The device used to generate the observation data
category |  | 0..* | CodeableConcept | A code that classifies the general type of observation being made
code |  | 1..1 | CodeableConcept | Describes what was observed. Sometimes this is called the observation 'name'
value[x] |  | 0..1 |  | The value of the observation - typically a code, an amount or a date
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
component |  | 0..* | BackboneElement | Some observations have multiple component observations
@id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code |  | 1..1 | CodeableConcept | Describes what was observed.
value[x] |  | 0..1 |  | The value of the component observation - typically a code, an amount or a date
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
status |  | 1..1 | code | The status of the result value.
interpretation |  | 0..* | CodeableConcept | A categorical assessment of an observation value
referenceRange |  | 0..* | BackboneElement | Guidance on how to interpret the value by comparison to a normal or recommended range
@id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
low |  | 0..1 | Quantity | Low Range, if relevant
high |  | 0..1 | Quantity | High Range, if relevant
bodySite |  | 0..1 | be-model-bodysite | The site on the subject's body where the observation was made (i.e. the target site)
certainty |  | 0..1 | CodeableConcept | A subjective assessment of the quality of the observation
note |  | 0..* | Annotation | Comments about the observation or the results
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Base

Summary

Mandatory: 0 element(8 nested mandatory elements)

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
be-model-observation |  | 0..* | Base | BeObservation Model
identifier |  | 1..* | Identifier | Unique identifier for the observation
recordedDate |  | 1..1 | dateTime | Date when the observation was recorded
observationDate[x] |  | 1..1 |  | Date or period of the observation
observationDateDateTime |  |  | dateTime |
observationDatePeriod |  |  | Period |
recorder |  | 1..1 | Reference() | Person, organisation or device that recorded the observation
performer |  | 0..1 | Reference() | The professional that performed the observation
patient |  | 1..1 | Reference() | The patient that this observation is about
request |  | 0..1 | Reference() | The request that this observation is fulfilling
partOfProcedure |  | 0..* | Reference() | Part of referenced procedure
specimen |  | 0..1 | Reference() | The specimen that was used when this observation was made
device |  | 0..1 | Reference() | The device used to generate the observation data
category |  | 0..* | CodeableConcept | A code that classifies the general type of observation being made
code |  | 1..1 | CodeableConcept | Describes what was observed. Sometimes this is called the observation 'name'
value[x] |  | 0..1 |  | The value of the observation - typically a code, an amount or a date
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
component |  | 0..* | BackboneElement | Some observations have multiple component observations
@id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code |  | 1..1 | CodeableConcept | Describes what was observed.
value[x] |  | 0..1 |  | The value of the component observation - typically a code, an amount or a date
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
status |  | 1..1 | code | The status of the result value.
interpretation |  | 0..* | CodeableConcept | A categorical assessment of an observation value
referenceRange |  | 0..* | BackboneElement | Guidance on how to interpret the value by comparison to a normal or recommended range
@id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
low |  | 0..1 | Quantity | Low Range, if relevant
high |  | 0..1 | Quantity | High Range, if relevant
bodySite |  | 0..1 | be-model-bodysite | The site on the subject's body where the observation was made (i.e. the target site)
certainty |  | 0..1 | CodeableConcept | A subjective assessment of the quality of the observation
note |  | 0..* | Annotation | Comments about the observation or the results
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

This structure is derived from Base

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
be-model-observation |  | 0..* | Base | BeObservation Model
identifier |  | 1..* | Identifier | Unique identifier for the observation
recordedDate |  | 1..1 | dateTime | Date when the observation was recorded
observationDate[x] |  | 1..1 |  | Date or period of the observation
observationDateDateTime |  |  | dateTime |
observationDatePeriod |  |  | Period |
recorder |  | 1..1 | Reference() | Person, organisation or device that recorded the observation
performer |  | 0..1 | Reference() | The professional that performed the observation
patient |  | 1..1 | Reference() | The patient that this observation is about
request |  | 0..1 | Reference() | The request that this observation is fulfilling
partOfProcedure |  | 0..* | Reference() | Part of referenced procedure
specimen |  | 0..1 | Reference() | The specimen that was used when this observation was made
device |  | 0..1 | Reference() | The device used to generate the observation data
category |  | 0..* | CodeableConcept | A code that classifies the general type of observation being made
code |  | 1..1 | CodeableConcept | Describes what was observed. Sometimes this is called the observation 'name'
value[x] |  | 0..1 |  | The value of the observation - typically a code, an amount or a date
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
component |  | 0..* | BackboneElement | Some observations have multiple component observations
code |  | 1..1 | CodeableConcept | Describes what was observed.
value[x] |  | 0..1 |  | The value of the component observation - typically a code, an amount or a date
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
status |  | 1..1 | code | The status of the result value.
interpretation |  | 0..* | CodeableConcept | A categorical assessment of an observation value
referenceRange |  | 0..* | BackboneElement | Guidance on how to interpret the value by comparison to a normal or recommended range
low |  | 0..1 | Quantity | Low Range, if relevant
high |  | 0..1 | Quantity | High Range, if relevant
bodySite |  | 0..1 | be-model-bodysite | The site on the subject's body where the observation was made (i.e. the target site)
certainty |  | 0..1 | CodeableConcept | A subjective assessment of the quality of the observation
note |  | 0..* | Annotation | Comments about the observation or the results
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
be-model-observation |  | 0..* | Base | BeObservation Model
identifier |  | 1..* | Identifier | Unique identifier for the observation
recordedDate |  | 1..1 | dateTime | Date when the observation was recorded
observationDate[x] |  | 1..1 |  | Date or period of the observation
observationDateDateTime |  |  | dateTime |
observationDatePeriod |  |  | Period |
recorder |  | 1..1 | Reference() | Person, organisation or device that recorded the observation
performer |  | 0..1 | Reference() | The professional that performed the observation
patient |  | 1..1 | Reference() | The patient that this observation is about
request |  | 0..1 | Reference() | The request that this observation is fulfilling
partOfProcedure |  | 0..* | Reference() | Part of referenced procedure
specimen |  | 0..1 | Reference() | The specimen that was used when this observation was made
device |  | 0..1 | Reference() | The device used to generate the observation data
category |  | 0..* | CodeableConcept | A code that classifies the general type of observation being made
code |  | 1..1 | CodeableConcept | Describes what was observed. Sometimes this is called the observation 'name'
value[x] |  | 0..1 |  | The value of the observation - typically a code, an amount or a date
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
component |  | 0..* | BackboneElement | Some observations have multiple component observations
@id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
code |  | 1..1 | CodeableConcept | Describes what was observed.
value[x] |  | 0..1 |  | The value of the component observation - typically a code, an amount or a date
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
status |  | 1..1 | code | The status of the result value.
interpretation |  | 0..* | CodeableConcept | A categorical assessment of an observation value
referenceRange |  | 0..* | BackboneElement | Guidance on how to interpret the value by comparison to a normal or recommended range
@id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
low |  | 0..1 | Quantity | Low Range, if relevant
high |  | 0..1 | Quantity | High Range, if relevant
bodySite |  | 0..1 | be-model-bodysite | The site on the subject's body where the observation was made (i.e. the target site)
certainty |  | 0..1 | CodeableConcept | A subjective assessment of the quality of the observation
note |  | 0..* | Annotation | Comments about the observation or the results
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Base

Summary

Mandatory: 0 element(8 nested mandatory elements)

Other representations of profile: CSV, Excel