CH ELM (R4)
1.16.0 - ci-build Switzerland flag

CH ELM (R4), published by Federal Office of Public Health FOPH. This guide is not an authorized publication; it is the continuous build for version 1.16.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/ahdis/ch-elm/ and changes regularly. See the Directory of published versions

Resource Profile: CH ELM Composition: Laboratory Report Strict - Mappings

Active as of 2026-10-22

Mappings for the ch-elm-composition-strict resource profile.

Mappings to Structures in this Implementation Guide

No Mappings Found

Mappings to other Structures

No Mappings Found

Other Mappings

NameWorkflow PatternRIM MappingCDA (R2)FHIR DocumentReferenceFiveWs Pattern Mappingdoco
Composition
Event
Document[classCode="DOC" and moodCode="EVN" and isNormalAct()]
ClinicalDocument
when described by DocumentReference
Composition / id
Composition / meta
Composition / implicitRules
Composition / language
Composition / text
Act.text?
Composition / contained
N/A
Composition / Slices for extension
Composition / Slices for extension / extension:information-recipient
Composition / Slices for extension / extension:information-recipient / id
n/a
Composition / Slices for extension / extension:information-recipient / extension
Composition / Slices for extension / extension:information-recipient / url
N/A
Composition / Slices for extension / extension:information-recipient / value[x]
N/A
Composition / Slices for extension / extension:basedOn-order-or-requisition
Composition / Slices for extension / extension:basedOn-order-or-requisition / id
n/a
Composition / Slices for extension / extension:basedOn-order-or-requisition / extension
Composition / Slices for extension / extension:basedOn-order-or-requisition / url
N/A
Composition / Slices for extension / extension:basedOn-order-or-requisition / Slices for value[x]
N/A
Composition / Slices for extension / extension:basedOn-order-or-requisition / Slices for value[x]
Composition / Slices for extension / extension:basedOn-order-or-requisition / Slices for value[x] / value[x]:valueReference
N/A
Composition / Slices for extension / extension:diagnosticReport-reference
Composition / Slices for extension / extension:diagnosticReport-reference / id
n/a
Composition / Slices for extension / extension:diagnosticReport-reference / extension
Composition / Slices for extension / extension:diagnosticReport-reference / url
N/A
Composition / Slices for extension / extension:diagnosticReport-reference / value[x]
N/A
Composition / Slices for extension / extension:diagnosticReport-reference / value[x] / id
n/a
Composition / Slices for extension / extension:diagnosticReport-reference / value[x] / extension
n/a
Composition / Slices for extension / extension:diagnosticReport-reference / value[x] / reference
N/A
Composition / Slices for extension / extension:diagnosticReport-reference / value[x] / type
N/A
Composition / Slices for extension / extension:diagnosticReport-reference / value[x] / identifier
.identifier
Composition / Slices for extension / extension:diagnosticReport-reference / value[x] / display
N/A
Composition / modifierExtension
N/A
Composition / identifier
Event.identifier
Document.id / Document.setId
.setId
DocumentReference.masterIdentifier
FiveWs.identifier
Composition / identifier / id
n/a
Composition / identifier / extension
n/a
Composition / identifier / use
Role.code or implied by context
Composition / identifier / type
Role.code or implied by context
Composition / identifier / system
II.root or Role.id.root
Composition / identifier / value
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
Composition / identifier / period
Role.effectiveTime or implied by context
Composition / identifier / assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
Composition / status
Event.status
  • .completionCode="IN" & ./statusCode[isNormalDatatype()]="active"; final: .completionCode="AU" && ./statusCode[isNormalDatatype()]="complete" and not(./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseComposition"
  • .completionCode="AU" && ./statusCode[isNormalDatatype()]="complete" and ./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseComposition"
  • .completionCode=NI && ./statusCode[isNormalDatatype()]="obsolete"
n/a
DocumentReference.status
FiveWs.status
Composition / type
Event.code
./code
.code
DocumentReference.type
FiveWs.class
Composition / Slices for category
Event.subject
  • .outboundRelationship[typeCode="COMP].target[classCode="LIST"
  • moodCode="EVN"].code
n/a
DocumenttReference.category
FiveWs.class
Composition / Slices for category / category:studyType
Event.subject
  • .outboundRelationship[typeCode="COMP].target[classCode="LIST"
  • moodCode="EVN"].code
n/a
DocumenttReference.category
FiveWs.class
Composition / Slices for category / category:specialty
Event.subject
  • .outboundRelationship[typeCode="COMP].target[classCode="LIST"
  • moodCode="EVN"].code
n/a
DocumenttReference.category
FiveWs.class
Composition / subject
.participation[typeCode="SBJ"].role[typeCode="PAT"]
.recordTarget
DocumentReference.subject
FiveWs.subject
Composition / subject / id
n/a
Composition / subject / extension
n/a
Composition / subject / reference
N/A
Composition / subject / type
N/A
Composition / subject / identifier
.identifier
Composition / subject / display
N/A
Composition / encounter
Event.context
  • unique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]
  • priorityNumber)/target[moodCode="EVN" and classCode=("ENC"
  • "PCPR") and isNormalAct])
.componentOf.encompassingEncounter
DocumentReference.context.encounter
FiveWs.context
Composition / date
Event.occurrence[x]
.effectiveTime[type="TS"]
.effectiveTime
  • DocumentReference.content.attachment.date
  • DocumentReference.created
FiveWs.done[x]
Composition / author
Event.performer
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
DocumentReference.agent
FiveWs.author
Composition / author / id
n/a
Composition / author / extension
n/a
Composition / author / reference
N/A
Composition / author / type
N/A
Composition / author / identifier
.identifier
Composition / author / display
N/A
Composition / title
./title
.title
  • DocumentReference.description
  • DocumentReference.content.attachment.title
Composition / confidentiality
.confidentialityCode
.confidentialityCode
DocumentReference.securityLabel
Composition / attester
.participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
.authenticator/.legalAuthenticator
DocumentReference.authenticator
Composition / attester / id
n/a
Composition / attester / extension
n/a
Composition / attester / modifierExtension
N/A
Composition / attester / mode
unique(./modeCode)
implied by .authenticator/.legalAuthenticator
Composition / attester / time
./time[type="TS" and isNormalDatatype()]
.authenticator.time
Composition / attester / party
  • ./role[classCode="ASSIGNED" and isNormalRole]/player[determinerCode="INST" and classCode=("DEV"
  • "PSN") and isNormalEntity()] or ./role[classCode="ASSIGNED" and isNormalRole and not(player)]/scoper[determinerCode="INST" and classCode="ORG" and isNormalEntity()]
.authenticator.assignedEnttty
FiveWs.witness
Composition / attester / party / id
n/a
Composition / attester / party / extension
n/a
Composition / attester / party / reference
N/A
Composition / attester / party / type
N/A
Composition / attester / party / identifier
.identifier
Composition / attester / party / display
N/A
Composition / custodian
.participation[typeCode="RCV"].role[classCode="CUST"].scoper[classCode="ORG" and determinerCode="INST"]
.custodian.assignedCustodian
DocumentReference.custodian
Composition / custodian / id
n/a
Composition / custodian / extension
n/a
Composition / custodian / reference
N/A
Composition / custodian / type
N/A
Composition / custodian / identifier
.identifier
Composition / custodian / display
N/A
Composition / relatesTo
.outboundRelationship
.relatedDocument
DocumentReference.relatesTo
Composition / relatesTo / id
n/a
Composition / relatesTo / extension
n/a
Composition / relatesTo / modifierExtension
N/A
Composition / relatesTo / code
.outboundRelationship.typeCode
.relatedDocument.typeCode
DocumentReference.relatesTo.code
Composition / relatesTo / target[x]
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
Composition / event
outboundRelationship[typeCode="SUBJ"].target[classCode<'ACT']
.documentationOf.serviceEvent
DocumentReference.event
Composition / event / id
n/a
Composition / event / extension
n/a
Composition / event / modifierExtension
N/A
Composition / event / code
.code
.code
DocumentReference.event.code
Composition / event / period
.effectiveTime
.effectiveTime
DocumentReference.event.period
Composition / event / detail
.outboundRelationship[typeCode="SUBJ"].target
n/a
Composition / Slices for section
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.structuredBody.component.section
Composition / Slices for section / section:All Slices
Composition / Slices for section / section:All Slices / id
n/a
Composition / Slices for section / section:All Slices / extension
n/a
Composition / Slices for section / section:All Slices / modifierExtension
N/A
Composition / Slices for section / section:All Slices / title
./title
.title
Composition / Slices for section / section:All Slices / code
./code
.code
Composition / Slices for section / section:All Slices / author
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
FiveWs.author
Composition / Slices for section / section:All Slices / focus
.subject? (CDA did not differentiate between subject and focus)
Composition / Slices for section / section:All Slices / text
.text
.text
Composition / Slices for section / section:All Slices / mode
.outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
n/a
FiveWs.class
Composition / Slices for section / section:All Slices / orderedBy
.outboundRelationship[typeCode=COMP].sequenceNumber > 1
n/a
Composition / Slices for section / section:All Slices / entry
.outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
.entry
Composition / Slices for section / section:All Slices / emptyReason
  • .inboundRelationship[typeCode=SUBJ
  • code<ListEmptyReason].value[type=CD]
n/a
Composition / Slices for section / section:All Slices / section
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.section
Composition / Slices for section / section:lab-no-subsections
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.structuredBody.component.section
Composition / Slices for section / section:lab-no-subsections / id
n/a
Composition / Slices for section / section:lab-no-subsections / extension
n/a
Composition / Slices for section / section:lab-no-subsections / modifierExtension
N/A
Composition / Slices for section / section:lab-no-subsections / title
./title
.title
Composition / Slices for section / section:lab-no-subsections / code
./code
.code
Composition / Slices for section / section:lab-no-subsections / author
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
FiveWs.author
Composition / Slices for section / section:lab-no-subsections / focus
.subject? (CDA did not differentiate between subject and focus)
Composition / Slices for section / section:lab-no-subsections / text
.text
.text
Composition / Slices for section / section:lab-no-subsections / mode
.outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
n/a
FiveWs.class
Composition / Slices for section / section:lab-no-subsections / orderedBy
.outboundRelationship[typeCode=COMP].sequenceNumber > 1
n/a
Composition / Slices for section / section:lab-no-subsections / entry
.outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
.entry
Composition / Slices for section / section:lab-no-subsections / emptyReason
  • .inboundRelationship[typeCode=SUBJ
  • code<ListEmptyReason].value[type=CD]
n/a
Composition / Slices for section / section:lab-no-subsections / section
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.section
Composition / Slices for section / section:lab-subsections
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.structuredBody.component.section
Composition / Slices for section / section:annotations
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.structuredBody.component.section
Composition / Slices for section / section:annotations / id
n/a
Composition / Slices for section / section:annotations / extension
n/a
Composition / Slices for section / section:annotations / modifierExtension
N/A
Composition / Slices for section / section:annotations / title
./title
.title
Composition / Slices for section / section:annotations / code
./code
.code
Composition / Slices for section / section:annotations / author
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
FiveWs.author
Composition / Slices for section / section:annotations / focus
.subject? (CDA did not differentiate between subject and focus)
Composition / Slices for section / section:annotations / text
.text
.text
Composition / Slices for section / section:annotations / mode
.outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
n/a
FiveWs.class
Composition / Slices for section / section:annotations / orderedBy
.outboundRelationship[typeCode=COMP].sequenceNumber > 1
n/a
Composition / Slices for section / section:annotations / entry
.outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
.entry
Composition / Slices for section / section:annotations / emptyReason
  • .inboundRelationship[typeCode=SUBJ
  • code<ListEmptyReason].value[type=CD]
n/a
Composition / Slices for section / section:annotations / section
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.section
Composition / Slices for section / section:lab-mst
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.structuredBody.component.section
Composition / Slices for section / section:lab-mst / id
n/a
Composition / Slices for section / section:lab-mst / extension
n/a
Composition / Slices for section / section:lab-mst / modifierExtension
N/A
Composition / Slices for section / section:lab-mst / title
./title
.title
Composition / Slices for section / section:lab-mst / code
./code
.code
Composition / Slices for section / section:lab-mst / author
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
FiveWs.author
Composition / Slices for section / section:lab-mst / focus
.subject? (CDA did not differentiate between subject and focus)
Composition / Slices for section / section:lab-mst / text
.text
.text
Composition / Slices for section / section:lab-mst / mode
.outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
n/a
FiveWs.class
Composition / Slices for section / section:lab-mst / orderedBy
.outboundRelationship[typeCode=COMP].sequenceNumber > 1
n/a
Composition / Slices for section / section:lab-mst / entry
.outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
.entry
Composition / Slices for section / section:lab-mst / emptyReason
  • .inboundRelationship[typeCode=SUBJ
  • code<ListEmptyReason].value[type=CD]
n/a
Composition / Slices for section / section:lab-mst / section
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.section
Composition / Slices for section / section:lab-gt
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.structuredBody.component.section
Composition / Slices for section / section:lab-gt / id
n/a
Composition / Slices for section / section:lab-gt / extension
n/a
Composition / Slices for section / section:lab-gt / modifierExtension
N/A
Composition / Slices for section / section:lab-gt / title
./title
.title
Composition / Slices for section / section:lab-gt / code
./code
.code
Composition / Slices for section / section:lab-gt / author
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
FiveWs.author
Composition / Slices for section / section:lab-gt / focus
.subject? (CDA did not differentiate between subject and focus)
Composition / Slices for section / section:lab-gt / text
.text
.text
Composition / Slices for section / section:lab-gt / mode
.outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
n/a
FiveWs.class
Composition / Slices for section / section:lab-gt / orderedBy
.outboundRelationship[typeCode=COMP].sequenceNumber > 1
n/a
Composition / Slices for section / section:lab-gt / entry
.outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
.entry
Composition / Slices for section / section:lab-gt / emptyReason
  • .inboundRelationship[typeCode=SUBJ
  • code<ListEmptyReason].value[type=CD]
n/a
Composition / Slices for section / section:lab-gt / section
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.section
Composition / Slices for section / section:lab-sero
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.structuredBody.component.section
Composition / Slices for section / section:lab-sero / id
n/a
Composition / Slices for section / section:lab-sero / extension
n/a
Composition / Slices for section / section:lab-sero / modifierExtension
N/A
Composition / Slices for section / section:lab-sero / title
./title
.title
Composition / Slices for section / section:lab-sero / code
./code
.code
Composition / Slices for section / section:lab-sero / author
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
FiveWs.author
Composition / Slices for section / section:lab-sero / focus
.subject? (CDA did not differentiate between subject and focus)
Composition / Slices for section / section:lab-sero / text
.text
.text
Composition / Slices for section / section:lab-sero / mode
.outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
n/a
FiveWs.class
Composition / Slices for section / section:lab-sero / orderedBy
.outboundRelationship[typeCode=COMP].sequenceNumber > 1
n/a
Composition / Slices for section / section:lab-sero / entry
.outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
.entry
Composition / Slices for section / section:lab-sero / emptyReason
  • .inboundRelationship[typeCode=SUBJ
  • code<ListEmptyReason].value[type=CD]
n/a
Composition / Slices for section / section:lab-sero / section
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.section

doco Documentation for this format