HL7 BE Laboratory WG Implementation Guide
1.0.0 - STU

This page is part of the HL7 Belgium FHIR Implementation Guide - Lab related profiles (v1.0.0: Trial Use) based on FHIR R4. This is the current published version. For a full list of available versions, see the Directory of published versions

Resource Profile: BeObservationLaboratory

Official URL: https://www.ehealth.fgov.be/standards/fhir/lab/StructureDefinition/be-observation-laboratory Version: 1.0.0
Draft as of 2021-11-08 Maturity Level: 1 Responsible: eHealth Platform Realm: BE Computable Name: BeObservationLaboratory

Belgian profile for an observation in a laboratory report

Usage:

Formal Views of Profile Content

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

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet / Code
Observation.languagepreferredCommonLanguages
Max Binding: AllLanguages
Observation.text.statusrequiredPattern: empty
Observation.statusrequiredObservationStatus
Observation.categorypreferredObservationCategoryCodes
Observation.codeexampleLOINCCodes
Observation.dataAbsentReasonextensibleDataAbsentReason
Observation.interpretationextensibleObservationInterpretationCodes
Observation.bodySiteexampleSNOMEDCTBodyStructures
Observation.methodexampleObservationMethods
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
Observation.component.codeexampleLOINCCodes
Observation.component.dataAbsentReasonextensibleDataAbsentReason
Observation.component.interpretationextensibleObservationInterpretationCodes
Observation.component:relativeTimeQualifier.codeexampleLOINCCodes
Observation.component:relativeTimeQualifier.dataAbsentReasonextensibleDataAbsentReason
Observation.component:relativeTimeQualifier.interpretationextensibleObservationInterpretationCodes
Observation.component:substanceAmountQualifier.codeexampleLOINCCodes
Observation.component:substanceAmountQualifier.dataAbsentReasonextensibleDataAbsentReason
Observation.component:substanceAmountQualifier.interpretationextensibleObservationInterpretationCodes
Observation.component:productNameQualifier.codeexampleLOINCCodes
Observation.component:productNameQualifier.dataAbsentReasonextensibleDataAbsentReason
Observation.component:productNameQualifier.interpretationextensibleObservationInterpretationCodes

Constraints

IdGradePathDetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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-4errorObservationIf 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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Best PracticeObservationA resource should have narrative for robust management
: text.`div`.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf 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()
ele-1errorObservation.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.text.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.text.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.text.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.text.divAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
txt-1errorObservation.text.divThe narrative SHALL contain only the basic html formatting elements and attributes described in chapters 7-11 (except section 4 of chapter 9) and 15 of the HTML 4.0 standard, <a> elements (either name or href), images and internally contained style attributes
: htmlChecks()
txt-2errorObservation.text.divThe narrative SHALL have some non-whitespace content
: htmlChecks()
ele-1errorObservation.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.basedOnAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.partOfAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.code.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.code.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.coding:LOINCAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.coding:LOINC.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.code.coding:LOINC.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.code.coding:LOINC.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.coding:LOINC.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.coding:LOINC.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.coding:LOINC.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.coding:LOINC.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.coding:SNOMED-CTAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.coding:SNOMED-CT.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.code.coding:SNOMED-CT.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.code.coding:SNOMED-CT.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.coding:SNOMED-CT.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.coding:SNOMED-CT.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.coding:SNOMED-CT.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.coding:SNOMED-CT.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.code.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.focusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.effective[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.issuedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.performerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.dataAbsentReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.interpretationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.bodySiteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.methodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.specimenAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.deviceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.referenceRangeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
obs-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
ele-1errorObservation.referenceRange.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.referenceRange.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.referenceRange.extension:CommentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.referenceRange.extension:CommentMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.referenceRange.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.referenceRange.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.referenceRange.lowAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.referenceRange.highAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.referenceRange.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.referenceRange.appliesToAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.referenceRange.ageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.referenceRange.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.hasMemberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.derivedFromAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.componentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component.dataAbsentReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component.interpretationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component.referenceRangeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:relativeTimeQualifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:relativeTimeQualifier.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component:relativeTimeQualifier.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component:relativeTimeQualifier.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component:relativeTimeQualifier.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component:relativeTimeQualifier.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:relativeTimeQualifier.code.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component:relativeTimeQualifier.code.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component:relativeTimeQualifier.code.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:relativeTimeQualifier.code.coding.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component:relativeTimeQualifier.code.coding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component:relativeTimeQualifier.code.coding.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:relativeTimeQualifier.code.coding.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:relativeTimeQualifier.code.coding.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:relativeTimeQualifier.code.coding.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:relativeTimeQualifier.code.coding.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:relativeTimeQualifier.code.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:relativeTimeQualifier.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:relativeTimeQualifier.dataAbsentReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:relativeTimeQualifier.interpretationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:relativeTimeQualifier.referenceRangeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:substanceAmountQualifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:substanceAmountQualifier.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component:substanceAmountQualifier.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component:substanceAmountQualifier.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component:substanceAmountQualifier.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component:substanceAmountQualifier.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:substanceAmountQualifier.code.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component:substanceAmountQualifier.code.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component:substanceAmountQualifier.code.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:substanceAmountQualifier.code.coding.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component:substanceAmountQualifier.code.coding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component:substanceAmountQualifier.code.coding.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:substanceAmountQualifier.code.coding.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:substanceAmountQualifier.code.coding.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:substanceAmountQualifier.code.coding.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:substanceAmountQualifier.code.coding.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:substanceAmountQualifier.code.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:substanceAmountQualifier.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:substanceAmountQualifier.dataAbsentReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:substanceAmountQualifier.interpretationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:substanceAmountQualifier.referenceRangeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:productNameQualifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:productNameQualifier.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component:productNameQualifier.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component:productNameQualifier.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component:productNameQualifier.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component:productNameQualifier.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:productNameQualifier.code.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component:productNameQualifier.code.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component:productNameQualifier.code.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:productNameQualifier.code.coding.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.component:productNameQualifier.code.coding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorObservation.component:productNameQualifier.code.coding.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:productNameQualifier.code.coding.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:productNameQualifier.code.coding.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:productNameQualifier.code.coding.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:productNameQualifier.code.coding.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:productNameQualifier.code.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:productNameQualifier.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:productNameQualifier.dataAbsentReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:productNameQualifier.interpretationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorObservation.component:productNameQualifier.referenceRangeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())