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 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: BeLaboratoryreportComposition

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

Belgian profile for a composition - to use when a laboratory report is sent as FHIR Document

Usage:

  • This Resource Profile is not used by any profiles in this Implementation Guide

Formal Views of Profile Content

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

This structure is derived from Composition

NameFlagsCard.TypeDescription & Constraintsdoco
.. Composition 0..*CompositionA set of resources composed into a single coherent clinical statement with clinical attestation
... text
.... status 1..1codegenerated | extensions | additional | empty
Required Pattern: empty
... identifier S1..1IdentifierVersion-independent identifier for the Composition
... status S1..1codepreliminary | final | amended | entered-in-error
... subject S1..1Reference(Resource | BePatient)Who and/or what the composition is about
... date S1..1dateTimeComposition editing time
... author S1..*Reference(Device | RelatedPerson | BePractitioner | BePractitionerRole | BePatient | BeOrganization)Who and/or what authored the composition
... title S1..1stringHuman Readable name/title
... relatesTo S0..*BackboneElementRelationships to other compositions/documents
... section S1..1BackboneElementComposition is broken into sections
.... entry S1..1Reference(BeLaboratoryReport)A reference to data that supports this section

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Composition 0..*CompositionA set of resources composed into a single coherent clinical statement with clinical attestation
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... status 1..1codegenerated | extensions | additional | empty
Binding: NarrativeStatus (required): The status of a resource narrative.


Required Pattern: empty
.... div I1..1xhtmlLimited xhtml content
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣ1..1IdentifierVersion-independent identifier for the Composition
... status ?!SΣ1..1codepreliminary | final | amended | entered-in-error
Binding: CompositionStatus (required): The workflow/clinical status of the composition.

... type SΣ1..1CodeableConceptKind of composition (LOINC if possible)
Binding: FHIRDocumentTypeCodes (preferred): Type of a composition.

... category Σ0..*CodeableConceptCategorization of Composition
Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.


... subject SΣ1..1Reference(Resource | BePatient)Who and/or what the composition is about
... encounter Σ0..1Reference(Encounter)Context of the Composition
... date SΣ1..1dateTimeComposition editing time
... author SΣ1..*Reference(Device | RelatedPerson | BePractitioner | BePractitionerRole | BePatient | BeOrganization)Who and/or what authored the composition
... title SΣ1..1stringHuman Readable name/title
... confidentiality Σ0..1codeAs defined by affinity domain
Binding: v3.ConfidentialityClassification (2014-03-26) (required): Codes specifying the level of confidentiality of the composition.

... attester 0..*BackboneElementAttests to accuracy of composition
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... mode 1..1codepersonal | professional | legal | official
Binding: CompositionAttestationMode (required): The way in which a person authenticated a composition.

.... time 0..1dateTimeWhen the composition was attested
.... party 0..1Reference(Patient | RelatedPerson | Practitioner | PractitionerRole | Organization)Who attested the composition
... custodian Σ0..1Reference(Organization)Organization which maintains the composition
... relatesTo S0..*BackboneElementRelationships to other compositions/documents
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code 1..1codereplaces | transforms | signs | appends
Binding: DocumentRelationshipType (required): The type of relationship between documents.

.... target[x] 1..1Target of the relationship
..... targetIdentifierIdentifier
..... targetReferenceReference(Composition)
... event Σ0..*BackboneElementThe clinical service(s) being documented
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ0..*CodeableConceptCode(s) that apply to the event being documented
Binding: v3 Code System ActCode (example): This list of codes represents the main clinical acts being documented.


.... period Σ0..1PeriodThe period covered by the documentation
.... detail Σ0..*Reference(Resource)The event(s) being documented
... section SI1..1BackboneElementComposition is broken into sections
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... title 0..1stringLabel for section (e.g. for ToC)
.... code 0..1CodeableConceptClassification of section (recommended)
Binding: DocumentSectionCodes (example): Classification of a section of a composition/document.

.... author 0..*Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)Who and/or what authored the section
.... focus 0..1Reference(Resource)Who/what the section is about, when it is not about the subject of composition
.... text I0..1NarrativeText summary of the section, for human interpretation
.... mode 0..1codeworking | snapshot | changes
Binding: ListMode (required): The processing mode that applies to this section.

.... orderedBy 0..1CodeableConceptOrder of section entries
Binding: ListOrderCodes (preferred): What order applies to the items in the entry.

.... entry SI1..1Reference(BeLaboratoryReport)A reference to data that supports this section
.... emptyReason I0..1CodeableConceptWhy the section is empty
Binding: ListEmptyReasons (preferred): If a section is empty, why it is empty.

.... section I0..*See section (Composition)Nested Section

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Composition 0..*CompositionA set of resources composed into a single coherent clinical statement with clinical attestation
... identifier Σ1..1IdentifierVersion-independent identifier for the Composition
... status ?!Σ1..1codepreliminary | final | amended | entered-in-error
Binding: CompositionStatus (required): The workflow/clinical status of the composition.

... type Σ1..1CodeableConceptKind of composition (LOINC if possible)
Binding: FHIRDocumentTypeCodes (preferred): Type of a composition.

... date Σ1..1dateTimeComposition editing time
... author Σ1..*Reference(Device | RelatedPerson | BePractitioner | BePractitionerRole | BePatient | BeOrganization)Who and/or what authored the composition
... title Σ1..1stringHuman Readable name/title
... relatesTo 0..*BackboneElementRelationships to other compositions/documents
... section I1..1BackboneElementComposition is broken into sections
.... entry I1..1Reference(BeLaboratoryReport)A reference to data that supports this section

doco Documentation for this format

Differential View

This structure is derived from Composition

NameFlagsCard.TypeDescription & Constraintsdoco
.. Composition 0..*CompositionA set of resources composed into a single coherent clinical statement with clinical attestation
... text
.... status 1..1codegenerated | extensions | additional | empty
Required Pattern: empty
... identifier S1..1IdentifierVersion-independent identifier for the Composition
... status S1..1codepreliminary | final | amended | entered-in-error
... subject S1..1Reference(Resource | BePatient)Who and/or what the composition is about
... date S1..1dateTimeComposition editing time
... author S1..*Reference(Device | RelatedPerson | BePractitioner | BePractitionerRole | BePatient | BeOrganization)Who and/or what authored the composition
... title S1..1stringHuman Readable name/title
... relatesTo S0..*BackboneElementRelationships to other compositions/documents
... section S1..1BackboneElementComposition is broken into sections
.... entry S1..1Reference(BeLaboratoryReport)A reference to data that supports this section

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Composition 0..*CompositionA set of resources composed into a single coherent clinical statement with clinical attestation
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... status 1..1codegenerated | extensions | additional | empty
Binding: NarrativeStatus (required): The status of a resource narrative.


Required Pattern: empty
.... div I1..1xhtmlLimited xhtml content
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣ1..1IdentifierVersion-independent identifier for the Composition
... status ?!SΣ1..1codepreliminary | final | amended | entered-in-error
Binding: CompositionStatus (required): The workflow/clinical status of the composition.

... type SΣ1..1CodeableConceptKind of composition (LOINC if possible)
Binding: FHIRDocumentTypeCodes (preferred): Type of a composition.

... category Σ0..*CodeableConceptCategorization of Composition
Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.


... subject SΣ1..1Reference(Resource | BePatient)Who and/or what the composition is about
... encounter Σ0..1Reference(Encounter)Context of the Composition
... date SΣ1..1dateTimeComposition editing time
... author SΣ1..*Reference(Device | RelatedPerson | BePractitioner | BePractitionerRole | BePatient | BeOrganization)Who and/or what authored the composition
... title SΣ1..1stringHuman Readable name/title
... confidentiality Σ0..1codeAs defined by affinity domain
Binding: v3.ConfidentialityClassification (2014-03-26) (required): Codes specifying the level of confidentiality of the composition.

... attester 0..*BackboneElementAttests to accuracy of composition
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... mode 1..1codepersonal | professional | legal | official
Binding: CompositionAttestationMode (required): The way in which a person authenticated a composition.

.... time 0..1dateTimeWhen the composition was attested
.... party 0..1Reference(Patient | RelatedPerson | Practitioner | PractitionerRole | Organization)Who attested the composition
... custodian Σ0..1Reference(Organization)Organization which maintains the composition
... relatesTo S0..*BackboneElementRelationships to other compositions/documents
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code 1..1codereplaces | transforms | signs | appends
Binding: DocumentRelationshipType (required): The type of relationship between documents.

.... target[x] 1..1Target of the relationship
..... targetIdentifierIdentifier
..... targetReferenceReference(Composition)
... event Σ0..*BackboneElementThe clinical service(s) being documented
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ0..*CodeableConceptCode(s) that apply to the event being documented
Binding: v3 Code System ActCode (example): This list of codes represents the main clinical acts being documented.


.... period Σ0..1PeriodThe period covered by the documentation
.... detail Σ0..*Reference(Resource)The event(s) being documented
... section SI1..1BackboneElementComposition is broken into sections
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... title 0..1stringLabel for section (e.g. for ToC)
.... code 0..1CodeableConceptClassification of section (recommended)
Binding: DocumentSectionCodes (example): Classification of a section of a composition/document.

.... author 0..*Reference(Practitioner | PractitionerRole | Device | Patient | RelatedPerson | Organization)Who and/or what authored the section
.... focus 0..1Reference(Resource)Who/what the section is about, when it is not about the subject of composition
.... text I0..1NarrativeText summary of the section, for human interpretation
.... mode 0..1codeworking | snapshot | changes
Binding: ListMode (required): The processing mode that applies to this section.

.... orderedBy 0..1CodeableConceptOrder of section entries
Binding: ListOrderCodes (preferred): What order applies to the items in the entry.

.... entry SI1..1Reference(BeLaboratoryReport)A reference to data that supports this section
.... emptyReason I0..1CodeableConceptWhy the section is empty
Binding: ListEmptyReasons (preferred): If a section is empty, why it is empty.

.... section I0..*See section (Composition)Nested Section

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet / Code
Composition.languagepreferredCommonLanguages
Max Binding: AllLanguages
Composition.text.statusrequiredPattern: empty
Composition.statusrequiredCompositionStatus
Composition.typepreferredFHIRDocumentTypeCodes
Composition.categoryexampleDocumentClassValueSet
Composition.confidentialityrequiredv3.ConfidentialityClassification
Composition.attester.moderequiredCompositionAttestationMode
Composition.relatesTo.coderequiredDocumentRelationshipType
Composition.event.codeexampleActCode
Composition.section.codeexampleDocumentSectionCodes
Composition.section.moderequiredListMode
Composition.section.orderedBypreferredListOrderCodes
Composition.section.emptyReasonpreferredListEmptyReasons

Constraints

IdGradePathDetailsRequirements
dom-2errorCompositionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCompositionIf 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-4errorCompositionIf 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-5errorCompositionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Best PracticeCompositionA resource should have narrative for robust management
: text.`div`.exists()
ele-1errorComposition.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.text.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorComposition.text.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorComposition.text.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.text.divAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
txt-1errorComposition.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-2errorComposition.text.divThe narrative SHALL have some non-whitespace content
: htmlChecks()
ele-1errorComposition.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorComposition.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorComposition.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorComposition.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorComposition.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.dateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.authorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.titleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.confidentialityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.attesterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.attester.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorComposition.attester.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorComposition.attester.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorComposition.attester.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorComposition.attester.modeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.attester.timeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.attester.partyAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.custodianAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.relatesToAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.relatesTo.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorComposition.relatesTo.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorComposition.relatesTo.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorComposition.relatesTo.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorComposition.relatesTo.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.relatesTo.target[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.eventAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.event.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorComposition.event.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorComposition.event.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorComposition.event.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorComposition.event.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.event.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.event.detailAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
cmp-1errorComposition.sectionA section must contain at least one of text, entries, or sub-sections
: text.exists() or entry.exists() or section.exists()
cmp-2errorComposition.sectionA section can only have an emptyReason if it is empty
: emptyReason.empty() or entry.empty()
ele-1errorComposition.sectionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.section.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorComposition.section.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorComposition.section.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorComposition.section.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorComposition.section.titleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.section.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.section.authorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.section.focusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.section.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.section.modeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.section.orderedByAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.section.entryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.section.emptyReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorComposition.section.sectionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())