FHIR Clinical Documents
1.0.0 - STU 1 International flag

This page is part of the FHIR Clinical Documents (v1.0.0: STU1) based on FHIR (HL7® FHIR® Standard) 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: ClinicalDocumentComposition - Mappings

Page standards status: Trial-use Maturity Level: 2

Mappings for the clinical-document-composition 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
... id
... meta
... implicitRules
... text
Act.text?
... contained
N/A
... Slices for extension
.... extension:R5-Composition-version
N/A
versionNumber
.... extension:data-enterer
assignedEntity.dataEnterer
.... extension:informant
informantChoice.informant
.... extension:information-recipient
intendedRecipient.informationRecipient
.... extension:participant
associatedEntity.participant
.... extension:consent
authorization.Consent
.... extension:basedOn
Event.basedOn
.outboundRelationship[typeCode=FLFS].target
inFulfillmentOf.basedOn
.... extension:change-made
... Slices for modifierExtension
.... modifierExtension:R5-Composition-status
... identifier
Event.identifier
Document.id / Document.setId
.setId
DocumentReference.masterIdentifier
FiveWs.identifier
... 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
... type
Event.code
./code
.code
DocumentReference.type
FiveWs.class
... Slices for category
Event.subject
  • .outboundRelationship[typeCode="COMP].target[classCode="LIST"
  • moodCode="EVN"].code
n/a
DocumenttReference.category
FiveWs.class
.... category:clinicalnotecategory
Event.subject
  • .outboundRelationship[typeCode="COMP].target[classCode="LIST"
  • moodCode="EVN"].code
n/a
DocumenttReference.category
FiveWs.class
... subject
.participation[typeCode="SBJ"].role[typeCode="PAT"]
.recordTarget
DocumentReference.subject
FiveWs.subject
... 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
... date
Event.occurrence[x]
.effectiveTime[type="TS"]
.effectiveTime
  • DocumentReference.content.attachment.date
  • DocumentReference.created
FiveWs.done[x]
... author
Event.performer
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
DocumentReference.agent
FiveWs.author
... title
./title
.title
  • DocumentReference.description
  • DocumentReference.content.attachment.title
... confidentiality
.confidentialityCode
.confidentialityCode
DocumentReference.securityLabel
... Slices for attester
.participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
.authenticator/.legalAuthenticator
DocumentReference.authenticator
.... attester:All Slices
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... mode
unique(./modeCode)
implied by .authenticator/.legalAuthenticator
..... time
./time[type="TS" and isNormalDatatype()]
.authenticator.time
..... 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
.... attester:legal_attester
.participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
.authenticator/.legalAuthenticator
DocumentReference.authenticator
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... mode
unique(./modeCode)
implied by .authenticator/.legalAuthenticator
..... time
./time[type="TS" and isNormalDatatype()]
.authenticator.time
..... 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
.... attester:professional_attester
.participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
.authenticator/.legalAuthenticator
DocumentReference.authenticator
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... mode
unique(./modeCode)
implied by .authenticator/.legalAuthenticator
..... time
./time[type="TS" and isNormalDatatype()]
.authenticator.time
..... 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
... custodian
.participation[typeCode="RCV"].role[classCode="CUST"].scoper[classCode="ORG" and determinerCode="INST"]
.custodian.assignedCustodian
DocumentReference.custodian
... Slices for relatesTo
.outboundRelationship
.relatedDocument
DocumentReference.relatesTo
.... relatesTo:All Slices
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... code
.outboundRelationship.typeCode
.relatedDocument.typeCode
DocumentReference.relatesTo.code
..... Slices for target[x]
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
...... target[x]:targetIdentifier
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
.... relatesTo:replaced_document
.outboundRelationship
.relatedDocument
DocumentReference.relatesTo
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... code
.outboundRelationship.typeCode
.relatedDocument.typeCode
DocumentReference.relatesTo.code
..... Slices for target[x]
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
...... target[x]:targetIdentifier
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
....... id
n/a
....... extension
n/a
....... use
Role.code or implied by context
....... type
Role.code or implied by context
....... system
II.root or Role.id.root
....... value
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
....... period
Role.effectiveTime or implied by context
....... assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
.... relatesTo:appended_document
.outboundRelationship
.relatedDocument
DocumentReference.relatesTo
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... code
.outboundRelationship.typeCode
.relatedDocument.typeCode
DocumentReference.relatesTo.code
..... Slices for target[x]
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
...... target[x]:targetIdentifier
  • .target[classCode="DOC"
  • moodCode="EVN"].id
.relatedDocument.id
DocumentReference.relatesTo.target
....... id
n/a
....... extension
n/a
....... use
Role.code or implied by context
....... type
Role.code or implied by context
....... system
II.root or Role.id.root
....... value
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
....... period
Role.effectiveTime or implied by context
....... assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
... event
outboundRelationship[typeCode="SUBJ"].target[classCode<'ACT']
.documentationOf.serviceEvent
DocumentReference.event
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... code
.code
.code
DocumentReference.event.code
.... period
.effectiveTime
.effectiveTime
DocumentReference.event.period
.... detail
.outboundRelationship[typeCode="SUBJ"].target
n/a
... section
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.structuredBody.component.section
.... id
n/a
.... Slices for extension
..... extension:change-made
.... modifierExtension
N/A
.... title
./title
.title
.... code
./code
.code
.... author
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
.author.assignedAuthor
FiveWs.author
.... focus
.subject? (CDA did not differentiate between subject and focus)
.... text
.text
.text
.... mode
.outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
n/a
FiveWs.class
.... orderedBy
.outboundRelationship[typeCode=COMP].sequenceNumber > 1
n/a
.... entry
.outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
.entry
.... emptyReason
  • .inboundRelationship[typeCode=SUBJ
  • code<ListEmptyReason].value[type=CD]
n/a
.... section
./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
.component.section

doco Documentation for this format