Mappings for the clinical-document-composition resource profile.
| ClinicalDocumentComposition |
| Composition | Entity. Role, or Act, Document[classCode="DOC" and moodCode="EVN" and isNormalAct()] |
| text | Act.text? |
| contained | N/A |
| extension | |
| extension (R5-Composition-version) | n/a, N/A |
| extension (data-enterer) | |
| extension (informant) | |
| extension (information-recipient) | |
| extension (participant) | |
| id | n/a |
| extension | |
| extension (type) | |
| id | n/a |
| url | N/A |
| value[x] | N/A |
| extension (function) | |
| id | n/a |
| url | N/A |
| value[x] | N/A |
| extension (time) | |
| id | n/a |
| url | N/A |
| value[x] | N/A |
| extension (party) | |
| id | n/a |
| url | N/A |
| value[x] | N/A |
| url | N/A |
| identifier | Document.id / Document.setId |
| status | 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" |
| type | ./code |
| category | .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code |
| subject | .participation[typeCode="SBJ"].role[typeCode="PAT"] |
| encounter | unique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()], priorityNumber)/target[moodCode="EVN" and classCode=("ENC", "PCPR") and isNormalAct]) |
| date | .effectiveTime[type="TS"] |
| author | .participation[typeCode="AUT"].role[classCode="ASSIGNED"] |
| title | ./title |
| confidentiality | .confidentialityCode |
| attester | .participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"] |
| id | n/a |
| extension | n/a |
| modifierExtension | N/A |
| mode | unique(./modeCode) |
| time | ./time[type="TS" and isNormalDatatype()] |
| 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()] |
| attester (legal_attester) | .participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"] |
| id | n/a |
| extension | n/a |
| modifierExtension | N/A |
| mode | unique(./modeCode) |
| time | ./time[type="TS" and isNormalDatatype()] |
| 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()] |
| attester (professional_attester) | .participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"] |
| id | n/a |
| extension | n/a |
| modifierExtension | N/A |
| mode | unique(./modeCode) |
| time | ./time[type="TS" and isNormalDatatype()] |
| 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()] |
| custodian | .participation[typeCode="RCV"].role[classCode="CUST"].scoper[classCode="ORG" and determinerCode="INST"] |
| relatesTo | .outboundRelationship |
| id | n/a |
| extension | n/a |
| modifierExtension | N/A |
| code | .outboundRelationship.typeCode |
| target[x] | .target[classCode="DOC", moodCode="EVN"].id |
| target[x] (targetIdentifier) | .target[classCode="DOC", moodCode="EVN"].id |
| 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 (replaced_document) | .outboundRelationship |
| id | n/a |
| extension | n/a |
| modifierExtension | N/A |
| code | .outboundRelationship.typeCode |
| target[x] (targetIdentifier) | .target[classCode="DOC", moodCode="EVN"].id |
| relatesTo (appended_document) | .outboundRelationship |
| id | n/a |
| extension | n/a |
| modifierExtension | N/A |
| code | .outboundRelationship.typeCode |
| target[x] (targetIdentifier) | .target[classCode="DOC", moodCode="EVN"].id |
| event | outboundRelationship[typeCode="SUBJ"].target[classCode<'ACT'] |
| id | n/a |
| extension | n/a |
| modifierExtension | N/A |
| code | .code |
| period | .effectiveTime |
| detail | .outboundRelationship[typeCode="SUBJ"].target |
| section | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct] |
| id | n/a |
| extension | n/a |
| modifierExtension | N/A |
| title | ./title |
| code | ./code |
| author | .participation[typeCode="AUT"].role[classCode="ASSIGNED"] |
| text | .text |
| mode | .outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value |
| orderedBy | .outboundRelationship[typeCode=COMP].sequenceNumber > 1 |
| entry | .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ] |
| emptyReason | .inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD] |
| section | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct] |
| ClinicalDocumentComposition |
| Composition | ClinicalDocument |
| language | languageCode |
| extension (R5-Composition-version) | versionNumber |
| extension (data-enterer) | assignedEntity.dataEnterer |
| extension (informant) | informantChoice.informant |
| extension (information-recipient) | intendedRecipient.informationRecipient |
| extension (participant) | associatedEntity.participant |
| extension (consent) | authorization.Consent |
| extension (order) | inFulfillmentOf.Order |
| identifier | .setId |
| status | n/a |
| type | .code |
| category | n/a |
| subject | .recordTarget |
| encounter | .componentOf.encompassingEncounter |
| date | .effectiveTime |
| author | .author.assignedAuthor, assignedAuthor.author |
| title | .title |
| confidentiality | .confidentialityCode |
| attester | .authenticator/.legalAuthenticator |
| mode | implied by .authenticator/.legalAuthenticator |
| time | .authenticator.time |
| party | .authenticator.assignedEnttty |
| attester (legal_attester) | .authenticator/.legalAuthenticator, assignedEntity.legalAuthenticator |
| mode | implied by .authenticator/.legalAuthenticator |
| time | .authenticator.time |
| party | .authenticator.assignedEnttty |
| attester (professional_attester) | .authenticator/.legalAuthenticator, assignedEntity.authenticator |
| mode | implied by .authenticator/.legalAuthenticator |
| time | .authenticator.time |
| party | .authenticator.assignedEnttty |
| custodian | .custodian.assignedCustodian, assignedCustodian.custodian |
| relatesTo | .relatedDocument |
| code | .relatedDocument.typeCode |
| target[x] | .relatedDocument.id |
| target[x] (targetIdentifier) | .relatedDocument.id |
| relatesTo (replaced_document) | .relatedDocument, parentDocument.relatedDocument |
| code | .relatedDocument.typeCode |
| target[x] (targetIdentifier) | .relatedDocument.id |
| relatesTo (appended_document) | .relatedDocument |
| code | .relatedDocument.typeCode |
| target[x] (targetIdentifier) | .relatedDocument.id |
| event | .documentationOf.serviceEvent |
| code | .code |
| period | .effectiveTime |
| detail | n/a |
| section | .component.structuredBody.component.section, ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct], bodyChoice.component.NonXMLBody |
| title | .title |
| code | .code |
| author | .author.assignedAuthor |
| focus | .subject? (CDA did not differentiate between subject and focus) |
| text | .text |
| mode | n/a |
| orderedBy | n/a |
| entry | .entry |
| emptyReason | n/a |
| section | .component.section |
| ClinicalDocumentComposition |
| Composition | when described by DocumentReference |
| identifier | DocumentReference.masterIdentifier |
| status | DocumentReference.status |
| type | DocumentReference.type |
| category | DocumenttReference.category |
| subject | DocumentReference.subject |
| encounter | DocumentReference.context.encounter |
| date | DocumentReference.content.attachment.date, DocumentReference.created |
| author | DocumentReference.agent |
| title | DocumentReference.description, DocumentReference.content.attachment.title |
| confidentiality | DocumentReference.securityLabel |
| attester | DocumentReference.authenticator |
| attester (legal_attester) | DocumentReference.authenticator |
| attester (professional_attester) | DocumentReference.authenticator |
| custodian | DocumentReference.custodian |
| relatesTo | DocumentReference.relatesTo |
| code | DocumentReference.relatesTo.code |
| target[x] | DocumentReference.relatesTo.target |
| target[x] (targetIdentifier) | DocumentReference.relatesTo.target |
| relatesTo (replaced_document) | DocumentReference.relatesTo |
| code | DocumentReference.relatesTo.code |
| target[x] (targetIdentifier) | DocumentReference.relatesTo.target |
| relatesTo (appended_document) | DocumentReference.relatesTo |
| code | DocumentReference.relatesTo.code |
| target[x] (targetIdentifier) | DocumentReference.relatesTo.target |
| event | DocumentReference.event |
| code | DocumentReference.event.code |
| period | DocumentReference.event.period |