Composition-eu-lab

Summary

The Composition resource defines the clinical purpose and type of a document Bundle (for example, a laboratory test report document). It provides a human‑readable structure that acts as a table of contents and establishes a predictable, well‑defined hierarchy that receiving systems can use to reliably interpret and process the document.

The resource profile is derived from Composition-eu-lab, as described in the HL7 Europe Laboratory Report FHIR Implementation Guide . Links to the base FHIR R4 Composition resource and the current UK Core Composition profile are provided below for additional context.

Profile Views

Refer to Profile Descriptions for a definition of the different profile view formats.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
versionNumberC0..1Extension(string)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueIdentifierIdentifier
valueReference0..1Reference(ServiceRequestLabEu)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueReferenceReference(PatientEuLab | PractitionerEu | PractitionerRoleEu | Device | Organization | RelatedPerson)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
modifierExtension?! C0..*Extension
identifierΣ0..1Identifier
statusΣ ?!1..1codeBinding
typeΣ1..1CodeableConceptIPSBinding
studyTypeΣ0..*CodeableConceptBinding
specialtyΣ0..*CodeableConceptBinding
subjectΣ C1..1Reference(PatientAnimalEu | PatientEuLab | Device | Group | Location)
encounterΣ C0..1Reference(Encounter)
dateΣ1..1dateTime
authorΣ C1..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
titleΣ1..1string
confidentialityΣ0..1codeBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
mode1..1codeBinding
time0..1dateTime
partyC0..1Reference(Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
custodianΣ C0..1Reference(Organization)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
code1..1codeBinding
targetIdentifierIdentifier
targetReferenceReference(Composition)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
codeΣ0..*CodeableConcept
periodΣ C0..1Period
detailΣ C0..*Reference(Resource)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConceptIPS
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC0..*Reference(Resource)
emptyReasonC0..1CodeableConceptBinding
sectionC0..*see (section)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConcept | CodeableConceptIPSBinding
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC1..*Reference(ObservationResultsLaboratoryEu)
emptyReasonC0..1CodeableConceptBinding
sectionC0..0see (section)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConcept | CodeableConceptIPSBinding
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC0..0Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC0..0Reference(Resource)
emptyReasonC0..1CodeableConceptBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConceptIPSBinding
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC1..*Reference(ObservationResultsLaboratoryEu)
emptyReasonC0..1CodeableConceptBinding
sectionC0..0see (section)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConcept | CodeableConceptIPSPattern
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC1..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC0..0Reference(Resource)
emptyReasonC0..1CodeableConceptBinding
sectionC0..0see (section)
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
versionNumberC0..1Extension(string)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueIdentifierIdentifier
valueReference0..1Reference(ServiceRequestLabEu)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueReferenceReference(PatientEuLab | PractitionerEu | PractitionerRoleEu | Device | Organization | RelatedPerson)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
modifierExtension?! C0..*Extension
identifierΣ0..1Identifier
statusΣ ?!1..1codeBinding
typeΣ1..1CodeableConceptIPSBinding
studyTypeΣ0..*CodeableConceptBinding
specialtyΣ0..*CodeableConceptBinding
subjectΣ C1..1Reference(PatientAnimalEu | PatientEuLab | Device | Group | Location)
encounterΣ C0..1Reference(Encounter)
dateΣ1..1dateTime
authorΣ C1..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
titleΣ1..1string
confidentialityΣ0..1codeBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
mode1..1codeBinding
time0..1dateTime
partyC0..1Reference(Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
custodianΣ C0..1Reference(Organization)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
code1..1codeBinding
targetIdentifierIdentifier
targetReferenceReference(Composition)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
codeΣ0..*CodeableConcept
periodΣ C0..1Period
detailΣ C0..*Reference(Resource)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConceptIPS
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC0..*Reference(Resource)
emptyReasonC0..1CodeableConceptBinding
sectionC0..*see (section)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConcept | CodeableConceptIPSBinding
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC1..*Reference(ObservationResultsLaboratoryEu)
emptyReasonC0..1CodeableConceptBinding
sectionC0..0see (section)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConcept | CodeableConceptIPSBinding
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC0..0Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC0..0Reference(Resource)
emptyReasonC0..1CodeableConceptBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConceptIPSBinding
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC1..*Reference(ObservationResultsLaboratoryEu)
emptyReasonC0..1CodeableConceptBinding
sectionC0..0see (section)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConcept | CodeableConceptIPSPattern
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC1..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC0..0Reference(Resource)
emptyReasonC0..1CodeableConceptBinding
sectionC0..0see (section)
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
versionNumberC0..1Extension(string)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueIdentifierIdentifier
valueReference0..1Reference(ServiceRequestLabEu)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
valueReferenceReference(PatientEuLab | PractitionerEu | PractitionerRoleEu | Device | Organization | RelatedPerson)
id0..1string
extensionC0..0Extension
url1..1uriFixed Value
id0..1string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
modifierExtension?! C0..*Extension
identifierΣ0..1Identifier
statusΣ ?!1..1codeBinding
typeΣ1..1CodeableConceptIPSBinding
studyTypeΣ0..*CodeableConceptBinding
specialtyΣ0..*CodeableConceptBinding
subjectΣ C1..1Reference(PatientAnimalEu | PatientEuLab | Device | Group | Location)
encounterΣ C0..1Reference(Encounter)
dateΣ1..1dateTime
authorΣ C1..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
titleΣ1..1string
confidentialityΣ0..1codeBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
mode1..1codeBinding
time0..1dateTime
partyC0..1Reference(Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
custodianΣ C0..1Reference(Organization)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
code1..1codeBinding
targetIdentifierIdentifier
targetReferenceReference(Composition)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
codeΣ0..*CodeableConcept
periodΣ C0..1Period
detailΣ C0..*Reference(Resource)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConceptIPS
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC0..*Reference(Resource)
emptyReasonC0..1CodeableConceptBinding
sectionC0..*see (section)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConcept | CodeableConceptIPSBinding
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC1..*Reference(ObservationResultsLaboratoryEu)
emptyReasonC0..1CodeableConceptBinding
sectionC0..0see (section)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConcept | CodeableConceptIPSBinding
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC0..0Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC0..0Reference(Resource)
emptyReasonC0..1CodeableConceptBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConceptIPSBinding
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC0..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC1..*Reference(ObservationResultsLaboratoryEu)
emptyReasonC0..1CodeableConceptBinding
sectionC0..0see (section)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
title1..1string
code1..1CodeableConcept | CodeableConceptIPSPattern
authorC0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
focusC0..1Reference(Resource)
textC1..1Narrative
mode0..1codeBinding
orderedBy0..1CodeableConceptBinding
entryC0..0Reference(Resource)
emptyReasonC0..1CodeableConceptBinding
sectionC0..0see (section)

Additional Guidance

The diagram below illustrates how the values in the Composition are derived from the other resources contained within the Bundle.
The lab-nosubsection profile is used when an Observation is referenced directly from the Composition.
The lab-subsection profile is used when referencing a panel (grouper/organizer); in this case, the Composition includes nested section elements to represent each Observation that belongs to that panel.



EUComposition.drawio



Extension:Composition.basedOn-order-or-requisition

This references the ServiceRequest.


Extension:Composition.diagnosticReport-reference

This references the DiagnosticReport.


Composition.status

A value from CompositionStatus SHALL be used.


Composition.type

This is the high-level categorisation of the set of resources.

It is expected that the values will be taken from DiagnosticReport.code.


Composition.category

This is the specific category of the set of resources.

A value from LabSpecialtyEuVs SHALL be used.

For pathology it is expected to use:

  • system = "http://snomed.info/sct"
  • code = "394915009"
  • display = "General pathology (specialty)"

Composition.subject

This element references the Patient.


Composition.author

This element references the performing laboratory.


Composition.title

This SHALL be Laboratory Report.


Composition.section

The following rules describe how Observation resources should be referenced within the Composition:

  • Each Composition.section SHALL contain both a title and a code.

  • When the referenced Observation represents a grouper (sometimes called an organizer or test group), only the grouper Observation is listed in the section. Child Observation resources SHALL NOT be referenced directly within the same section, as they are already linked through the grouper’s hasMember relationships.

  • When the referenced resource is a single (non‑grouper) Observation, that Observation SHALL be referenced directly within the section.

  • There is no requirement that all sections use the same type. Different sections (e.g., section[0], section[1], etc.) may reference different types of Observations, as long as the rules for groupers and single Observations are followed within each section.


Composition.section.title

It is expected that the values will be taken from Observation.code.coding.display. If there are multiple codings use the PaLM coding display.


Composition.section.code

It is expected that the values will be taken from Observation.code.coding. If there are multiple codings use the PaLM coding display.


Composition.section.entry

This references the Observation resource.