--- type: "mappings" title: "Composition Mappings" resource: "Composition" --- # Composition Mappings - **Composition**: workflow=Event; rim=Document[classCode="DOC" and moodCode="EVN" and isNormalAct()]; cda=ClinicalDocument; fhirdocumentreference=when described by DocumentReference; w5=infrastructure.documents - **Composition.url**: w5=FiveWs.identifier - **Composition.identifier**: workflow=Event.identifier; w5=FiveWs.identifier; rim=Document.id / Document.setId; cda=.setId; fhirdocumentreference=DocumentReference.identifier - **Composition.version**: cda=.versionNumber; w5=FiveWs.version; fhirdocumentreference=DocumentReference.version - **Composition.consent**: cda=.authorization.consent - **Composition.basedOn**: workflow=Event.basedOn; rim=.outboundRelationship[typeCode=FLFS].target; cda=.inFulfillmentOf - **Composition.status**: workflow=Event.status; w5=FiveWs.status; rim=interim: .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", code) and isNormalAct()]); amended: .completionCode="AU" && ./statusCode[isNormalDatatype()]="complete" and ./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseComposition", code) and isNormalAct() and statusCode="completed"]; withdrawn : .completionCode=NI && ./statusCode[isNormalDatatype()]="obsolete"; cda=n/a; fhirdocumentreference=DocumentReference.docStatus - **Composition.type**: workflow=Event.code; w5=FiveWs.class; rim=./code; cda=.code; fhirdocumentreference=DocumentReference.type - **Composition.category**: w5=FiveWs.class; rim=.outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code; cda=n/a; fhirdocumentreference=DocumenttReference.category - **Composition.subject**: w5=FiveWs.subject; rim=.participation[typeCode="SBJ"].role[typeCode="PAT"]; cda=.recordTarget; workflow=Event.subject; fhirdocumentreference=DocumentReference.subject - **Composition.encounter**: workflow=Event.encounter; w5=FiveWs.context; rim=unique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()], priorityNumber)/target[moodCode="EVN" and classCode=("ENC", "PCPR") and isNormalAct]); cda=.componentOf.encompassingEncounter; fhirdocumentreference=DocumentReference.context - **Composition.date**: workflow=Event.occurrence[x]; w5=FiveWs.done[x]; rim=.effectiveTime[type="TS"]; cda=.effectiveTime; fhirdocumentreference=DocumentReference.content.attachment.date, DocumentReference.date - **Composition.author**: workflow=Event.performer; w5=FiveWs.author; rim=.participation[typeCode="AUT"].role[classCode="ASSIGNED"]; cda=.author.assignedAuthor; fhirdocumentreference=DocumentReference.author - **Composition.title**: rim=./title; cda=.title; fhirdocumentreference=DocumentReference.description, DocumentReference.content.attachment.title - **Composition.attester**: rim=.participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]; cda=.authenticator/.legalAuthenticator; fhirdocumentreference=DocumentReference.attester - **Composition.attester.mode**: rim=unique(./modeCode); cda=implied by .authenticator/.legalAuthenticator; fhirdocumentreference=DocumentReference.attester.mode - **Composition.attester.time**: rim=./time[type="TS" and isNormalDatatype()]; cda=.authenticator.time; fhirdocumentreference=DocumentReference.attester.time - **Composition.attester.party**: w5=FiveWs.witness; rim=./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()]; cda=.authenticator.assignedEnttty; fhirdocumentreference=DocumentReference.attester.party - **Composition.custodian**: rim=.participation[typeCode="RCV"].role[classCode="CUST"].scoper[classCode="ORG" and determinerCode="INST"]; cda=.custodian.assignedCustodian; fhirdocumentreference=DocumentReference.custodian - **Composition.relatesTo**: rim=.outboundRelationship; cda=.relatedDocument; fhirdocumentreference=DocumentReference.relatesTo - **Composition.event**: rim=outboundRelationship[typeCode="SUBJ"].target[classCode<'ACT']; cda=.documentationOf.serviceEvent - **Composition.event.period**: rim=.effectiveTime; cda=.effectiveTime; fhirdocumentreference=DocumentReference.period - **Composition.event.detail**: rim=.outboundRelationship[typeCode="SUBJ"].target; cda=n/a; fhirdocumentreference=DocumentReference.event - **Composition.section**: rim=./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]; cda=.component.structuredBody.component.section - **Composition.section.title**: rim=./title; cda=.title - **Composition.section.code**: rim=./code; cda=.code - **Composition.section.author**: w5=FiveWs.author; rim=.participation[typeCode="AUT"].role[classCode="ASSIGNED"]; cda=.author.assignedAuthor - **Composition.section.focus**: cda=.subject? (CDA did not differentiate between subject and focus) - **Composition.section.text**: rim=.text; cda=.text - **Composition.section.orderedBy**: rim=.outboundRelationship[typeCode=COMP].sequenceNumber > 1; cda=n/a - **Composition.section.entry**: rim=.outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]; cda=.entry - **Composition.section.emptyReason**: rim=.inboundRelationship[typeCode=SUBJ,code