--- type: "mappings" title: "DocumentReference Mappings" resource: "DocumentReference" --- # DocumentReference Mappings - **DocumentReference**: workflow=Event; fhircomposition=when describing a Composition; rim=Document[classCode="DOC" and moodCode="EVN"]; cda=when describing a CDA; w5=infrastructure.documents; xds=DocumentEntry - **DocumentReference.identifier**: workflow=Event.identifier; w5=FiveWs.identifier; fhircomposition=Composition.identifier; v2=TXA-12; rim=.id / .setId; xds=DocumentEntry.entryUUID, DocumentEntry.uniqueId; cda=ClinicalDocument/id - **DocumentReference.version**: fhircomposition=Composition.version; w5=FiveWs.version - **DocumentReference.basedOn**: workflow=Event.basedOn; rim=.outboundRelationship[typeCode=FLFS].target; xds=DocumentEntry.referenceIdList - **DocumentReference.status**: workflow=Event.status; w5=FiveWs.status; v2=TXA-19; 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("ReviseDocument", code) and isNormalAct()]); amended: .completionCode="AU" && ./statusCode[isNormalDatatype()]="complete" and ./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseDocument", code) and isNormalAct() and statusCode="completed"]; withdrawn : .completionCode=NI && ./statusCode[isNormalDatatype()]="obsolete"; xds=DocumentEntry.availabilityStatus - **DocumentReference.docStatus**: w5=FiveWs.status; fhircomposition=Composition.status; v2=TXA-17; rim=.statusCode - **DocumentReference.modality**: w5=FiveWs.class - **DocumentReference.type**: workflow=Event.code; w5=FiveWs.what[x]; fhircomposition=Composition.type; v2=TXA-2; rim=./code; xds=DocumentEntry.typeCode; cda=ClinicalDocument/code/@code The typeCode should be mapped from the ClinicalDocument/code element to a set of document type codes configured in the affinity domain. One suggested coding system to use for typeCode is LOINC, in which case the mapping step can be omitted. - **DocumentReference.category**: workflow=Event.category; w5=FiveWs.what[x]; fhircomposition=Composition.category; rim=.outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code; xds=DocumentEntry.classCode; cda=Derived from a mapping of /ClinicalDocument/code/@code to an Affinity Domain specified coded value to use and coding system. Affinity Domains are encouraged to use the appropriate value for Type of Service, based on the LOINC Type of Service (see Page 53 of the LOINC User's Manual). Must be consistent with /ClinicalDocument/code/@code - **DocumentReference.subject**: workflow=Event.subject; w5=FiveWs.subject; fhircomposition=Composition.subject; v2=PID-3 (No standard way to define a Practitioner or Group subject in HL7 V2 MDM message); rim=.participation[typeCode="SBJ"].role[typeCode="PAT"]; xds=DocumentEntry.patientId; cda=ClinicalDocument/recordTarget/ - **DocumentReference.context**: workflow=Event.encounter; w5=FiveWs.context; fhircomposition=Composition.encounter; rim=unique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()], priorityNumber)/target[moodCode="EVN" and classCode=("ENC", "PCPR") and isNormalAct]) - **DocumentReference.event**: fhircomposition=Composition.event.detail; rim=.code; xds=DocumentEntry.eventCodeList - **DocumentReference.related**: fhircomposition=Composition.event.detail; rim=./outboundRelationship[typeCode="PERT" and isNormalActRelationship()] / target[isNormalAct]; xds=DocumentEntry.referenceIdList - **DocumentReference.bodyStructure**: rim=.targetSiteCode - **DocumentReference.facilityType**: fhircomposition=usually from a mapping to a local ValueSet; rim=.participation[typeCode="LOC"].role[classCode="DSDLOC"].code; xds=DocumentEntry.healthcareFacilityTypeCode; cda=usually a mapping to a local ValueSet. Must be consistent with /clinicalDocument/code - **DocumentReference.practiceSetting**: fhircomposition=usually from a mapping to a local ValueSet; rim=.participation[typeCode="LOC"].role[classCode="DSDLOC"].code; xds=DocumentEntry.practiceSettingCode; cda=usually from a mapping to a local ValueSet - **DocumentReference.period**: workflow=Event.occurrence[x]; w5=FiveWs.done[x]; fhircomposition=Composition.event.period; rim=.effectiveTime; xds=DocumentEntry.serviceStartTime, DocumentEntry.serviceStopTime; cda=ClinicalDocument/documentationOf/ serviceEvent/effectiveTime/low/ @value --> ClinicalDocument/documentationOf/ serviceEvent/effectiveTime/high/ @value - **DocumentReference.date**: workflow=Event.recorded; w5=FiveWs.recorded; fhircomposition=Composition.date; rim=.availabilityTime[type="TS"] - **DocumentReference.author**: workflow=Event.performer.actor; w5=FiveWs.author; fhircomposition=Composition.author; v2=TXA-9 (No standard way to indicate a Device in HL7 V2 MDM message); rim=.participation[typeCode="AUT"].role[classCode="ASSIGNED"]; xds=DocumentEntry.author; cda=ClinicalDocument/author - **DocumentReference.attester**: workflow=Event.performer; fhircomposition=Composition.attester; rim=.participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]; xds=DocumentEntry.legalAuthenticator; cda=.authenticator/.legalAuthenticator - **DocumentReference.attester.mode**: workflow=Event.performer.function; fhircomposition=Composition.attester.mode; rim=unique(./modeCode); cda=implied by .authenticator/.legalAuthenticator - **DocumentReference.attester.time**: fhircomposition=Composition.attester.time; rim=./time[type="TS" and isNormalDatatype()]; cda=.authenticator.time - **DocumentReference.attester.party**: workflow=Event.performer.actor; w5=FiveWs.witness; fhircomposition=Composition.attester.party; v2=TXA-10; 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 - **DocumentReference.custodian**: fhircomposition=Composition.custodian; rim=.participation[typeCode="RCV"].role[classCode="CUST"].scoper[classCode="ORG" and determinerCode="INST"] - **DocumentReference.relatesTo**: fhircomposition=Composition.relatesTo; rim=.outboundRelationship; xds=DocumentEntry Associations - **DocumentReference.relatesTo.code**: fhircomposition=Composition.relatesTo.type; rim=.outboundRelationship.typeCode; xds=DocumentEntry Associations type; cda=ClinicalDocument/relatedDocument/typeCode - **DocumentReference.relatesTo.target**: fhircomposition=Composition.relatesTo.targetReference; rim=.target[classCode="DOC", moodCode="EVN"].id; xds=DocumentEntry Associations reference; cda=ClinicalDocument/relatedDocument/parentDocument - **DocumentReference.description**: v2=TXA-25; rim=.outboundRelationship[typeCode="SUBJ"].target.text; xds=DocumentEntry.comments - **DocumentReference.securityLabel**: fhircomposition=Bundle.meta.security; v2=TXA-18; rim=.confidentialityCode; xds=DocumentEntry.confidentialityCode; cda=ClinicalDocument/confidentialityCode/@code - **DocumentReference.content**: fhircomposition=Bundle(Composition+*); rim=document.text - **DocumentReference.content.attachment**: fhircomposition=Composition.language, Composition.title, Composition.date; v2=TXA-3 for mime type; rim=document.text; xds=DocumentEntry.mimeType, DocumentEntry.languageCode, DocumentEntry.repositoryUniqueId, DocumentEntry.URI, DocumentEntry.size, DocumentEntry.hash, DocumentEntry.title, DocumentEntry.creationTime; cda=ClinicalDocument/languageCode, ClinicalDocument/title, ClinicalDocument/date - **DocumentReference.content.profile**: fhircomposition=Composition.meta.profile; rim=document.text; xds=DocumentEntry.formatCode; cda=derived from the IHE Profile or Implementation Guide templateID - **DocumentReference.content.profile.value[x]**: fhircomposition=Composition.meta.profile; rim=document.text; xds=DocumentEntry.formatCode; cda=derived from the IHE Profile or Implementation Guide templateID