GDHCN Trust Network - Personal Health Wallet
0.1.0 - ci-build International flag

GDHCN Trust Network - Personal Health Wallet, published by WHO. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-trust-phw/ and changes regularly. See the Directory of published versions

Resource Profile: DVCSDComposition - Mappings

Draft as of 2026-10-23

Mappings for the DVCSDComposition resource profile.

Mappings to Structures in this Implementation Guide

No Mappings Found

Mappings to other Structures

No Mappings Found

Other Mappings

NameWorkflow PatternFiveWs Pattern MappingRIM MappingCDA (R2)FHIR DocumentReferencedoco
Composition
Event
infrastructure.documents
  • Entity
  • Role
  • or Act
  • 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 / text / id
n/a
Composition / text / Slices for extension
n/a
Composition / text / Slices for extension / extension:SelectiveDisclosure
Composition / text / status
N/A
Composition / text / div
N/A
Composition / contained
N/A
Composition / Slices for extension
Composition / Slices for extension / extension:SelectiveDisclosure
Composition / modifierExtension
N/A
Composition / url
FiveWs.identifier
Composition / identifier
Event.identifier
FiveWs.identifier
Document.id / Document.setId
.setId
DocumentReference.identifier
Composition / version
FiveWs.version
.versionNumber
DocumentReference.version
Composition / status
Event.status
FiveWs.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.docStatus
Composition / type
Event.code
FiveWs.class
  • ./code
  • n/a
  • CD
.code
DocumentReference.type
Composition / category
FiveWs.class
  • .outboundRelationship[typeCode="COMP].target[classCode="LIST"
  • moodCode="EVN"].code
n/a
DocumenttReference.category
Composition / subject
Event.subject
FiveWs.subject[x]
.participation[typeCode="SBJ"].role[typeCode="PAT"]
.recordTarget
DocumentReference.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.encounter
FiveWs.context
  • unique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]
  • priorityNumber)/target[moodCode="EVN" and classCode=("ENC"
  • "PCPR") and isNormalAct])
.componentOf.encompassingEncounter
DocumentReference.context
Composition / date
Event.occurrence[x]
FiveWs.done[x]
.effectiveTime[type="TS"]
.effectiveTime
  • DocumentReference.content.attachment.date
  • DocumentReference.date
Composition / useContext
Composition / author
Event.performer
FiveWs.author
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
DocumentReference.author
Composition / name
Composition / title
./title
.title
  • DocumentReference.description
  • DocumentReference.content.attachment.title
Composition / note
Composition / attester
.participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
.authenticator/.legalAuthenticator
DocumentReference.attester
Composition / attester / id
n/a
Composition / attester / extension
n/a
Composition / attester / modifierExtension
N/A
Composition / attester / mode
unique(./modeCode)
implied by .authenticator/.legalAuthenticator
DocumentReference.attester.mode
Composition / attester / time
./time[type="TS" and isNormalDatatype()]
.authenticator.time
DocumentReference.attester.time
Composition / attester / party
FiveWs.witness
  • ./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
DocumentReference.attester.party
Composition / custodian
.participation[typeCode="RCV"].role[classCode="CUST"].scoper[classCode="ORG" and determinerCode="INST"]
.custodian.assignedCustodian
DocumentReference.custodian
Composition / relatesTo
.outboundRelationship
.relatedDocument
DocumentReference.relatesTo
Composition / event
outboundRelationship[typeCode="SUBJ"].target[classCode<'ACT']
.documentationOf.serviceEvent
Composition / event / id
n/a
Composition / event / extension
n/a
Composition / event / modifierExtension
N/A
Composition / event / period
.effectiveTime
.effectiveTime
DocumentReference.period
Composition / event / period / id
n/a
Composition / event / period / extension
n/a
Composition / event / period / start
./low
Composition / event / period / end
./high
Composition / event / detail
.outboundRelationship[typeCode="SUBJ"].target
n/a
DocumentReference.event
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
FiveWs.author
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
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 / 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:demographic
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.structuredBody.component.section
Composition / Slices for section / section:demographic / id
n/a
Composition / Slices for section / section:demographic / extension
n/a
Composition / Slices for section / section:demographic / modifierExtension
N/A
Composition / Slices for section / section:demographic / title
./title
.title
Composition / Slices for section / section:demographic / code
./code
.code
Composition / Slices for section / section:demographic / author
FiveWs.author
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
Composition / Slices for section / section:demographic / focus
.subject? (CDA did not differentiate between subject and focus)
Composition / Slices for section / section:demographic / text
.text
.text
Composition / Slices for section / section:demographic / orderedBy
.outboundRelationship[typeCode=COMP].sequenceNumber > 1
n/a
Composition / Slices for section / section:demographic / entry
.outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
.entry
Composition / Slices for section / section:demographic / emptyReason
  • .inboundRelationship[typeCode=SUBJ
  • code<ListEmptyReason].value[type=CD]
n/a
Composition / Slices for section / section:demographic / section
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.section
Composition / Slices for section / section:vaccination
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.structuredBody.component.section
Composition / Slices for section / section:vaccination / id
n/a
Composition / Slices for section / section:vaccination / extension
n/a
Composition / Slices for section / section:vaccination / modifierExtension
N/A
Composition / Slices for section / section:vaccination / title
./title
.title
Composition / Slices for section / section:vaccination / code
./code
.code
Composition / Slices for section / section:vaccination / author
FiveWs.author
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
Composition / Slices for section / section:vaccination / focus
.subject? (CDA did not differentiate between subject and focus)
Composition / Slices for section / section:vaccination / text
.text
.text
Composition / Slices for section / section:vaccination / orderedBy
.outboundRelationship[typeCode=COMP].sequenceNumber > 1
n/a
Composition / Slices for section / section:vaccination / entry
.outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
.entry
Composition / Slices for section / section:vaccination / emptyReason
  • .inboundRelationship[typeCode=SUBJ
  • code<ListEmptyReason].value[type=CD]
n/a
Composition / Slices for section / section:vaccination / section
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.section

doco Documentation for this format