Implementation Guide
ePA MHD Service
Version 1.0.1-b.1 - ballot

Resource Profile: EPAMHDDocumentReference - Mappings

Draft as of 2025-07-14

Mappings for the epa-mhd-document-reference resource profile.

Mappings to Structures in this Implementation Guide

No Mappings Found

Mappings to other Structures

No Mappings Found

Other Mappings

NameePA XDS.b <-> MHDXDS and MHD MappingWorkflow PatternFHIR CompositionRIM MappingCDA (R2)FiveWs Pattern MappingHL7 v2 MappingXDS metadata equivalentdoco
.. DocumentReference
Inhaltsgleiche Abbildung zum XDS Document Service
Used in the context of the IHE MHD ImplementationGuide
Event
when describing a Composition
Document[classCode="DOC" and moodCode="EVN"]
when describing a CDA
... id
... meta
.... id
n/a
.... extension
n/a
.... versionId
.... lastUpdated
.... source
.... profile
Keine Entsprechung zu XDS.b DocumentEntry
DocumentEntry.limitedMetadata
.... security
.... tag
... implicitRules
... text
Act.text?
... contained
N/A
... extension
N/A
... modifierExtension
... masterIdentifier
DocumentEntry.uniqueId
DocumentEntry.uniqueId
II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
  • CX / EI (occasionally
  • more often EI maps to a resource id or a URL)
... Slices for identifier
DocumentEntry.entryUUID
DocumentEntry.entryUUID
Event.identifier
.id / .setId
FiveWs.identifier
TXA-16?
DocumentEntry.entryUUID
.... identifier:entryUUID
II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
  • CX / EI (occasionally
  • more often EI maps to a resource id or a URL)
... status
DocumentEntry.availabilityStatus
DocumentEntry.availabilityStatus
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("ReviseDocument"
  • .completionCode="AU" && ./statusCode[isNormalDatatype()]="complete" and ./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseDocument"
  • .completionCode=NI && ./statusCode[isNormalDatatype()]="obsolete"
FiveWs.status
TXA-19
DocumentEntry.availabilityStatus
... docStatus
Composition.status
.statusCode
FiveWs.status
TXA-17
... type
DocumentEntry.typeCode
DocumentEntry.typeCode
Event.code
Composition.type
./code
  • 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.
FiveWs.class
TXA-2
DocumentEntry.type
.... id
n/a
.... extension
n/a
.... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
..... id
n/a
..... extension
n/a
..... system
./codeSystem
C*E.3
..... version
./codeSystemVersion
C*E.7
..... code
./code
C*E.1
..... display
CV.displayName
C*E.2 - but note this is not well followed
..... userSelected
CD.codingRationale
Sometimes implied by being first
.... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
... category
DocumentEntry.classCode
DocumentEntry.classCode
Composition.class
  • .outboundRelationship[typeCode="COMP].target[classCode="LIST"
  • moodCode="EVN"].code
  • 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
FiveWs.class
DocumentEntry.class
.... id
n/a
.... extension
n/a
.... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
..... id
n/a
..... extension
n/a
..... system
./codeSystem
C*E.3
..... version
./codeSystemVersion
C*E.7
..... code
./code
C*E.1
..... display
CV.displayName
C*E.2 - but note this is not well followed
..... userSelected
CD.codingRationale
Sometimes implied by being first
.... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
... subject
DocumentEntry.patientId
DocumentEntry.patientId
Event.subject
Composition.subject
.participation[typeCode="SBJ"].role[typeCode="PAT"]
ClinicalDocument/recordTarget/
FiveWs.subject
PID-3 (No standard way to define a Practitioner or Group subject in HL7 v2 MDM message)
DocumentEntry.patientId
.... id
n/a
.... extension
n/a
.... reference
N/A
.... type
N/A
.... identifier
.identifier
.... display
N/A
... date
Event.occurrence[x]
Composition.date
.availabilityTime[type="TS"]
FiveWs.recorded
... author
DocumentEntry.author
DocumentEntry.author
Event.performer.actor
Composition.author
.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
ClinicalDocument/author
TXA-9 (No standard way to indicate a Device in HL7 v2 MDM message)
DocumentEntry.author
.... id
n/a
.... extension
n/a
.... reference
N/A
.... type
N/A
.... identifier
.identifier
.... display
N/A
... authenticator
DocumentEntry.legalAuthenticator
DocumentEntry.legalAuthenticator
Event.performer.actor
Composition.attester
.participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
ClinicalDocument/legalAuthenticator
FiveWs.witness
TXA-10
DocumentEntry.legalAuthenticator
.... id
n/a
.... extension
n/a
.... reference
N/A
.... type
N/A
.... identifier
.identifier
.... display
N/A
... custodian
Keine Entsprechung zu XDS.b DocumentEntry
not mapped
Event.performer.actor
Composition.custodian
.participation[typeCode="RCV"].role[classCode="CUST"].scoper[classCode="ORG" and determinerCode="INST"]
... relatesTo
Keine Entsprechung zu XDS.b DocumentEntry
DocumentEntry Associations
Composition.relatesTo
.outboundRelationship
DocumentEntry Associations
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... code
DocumentEntry Associations.type
Composition.relatesTo.code
.outboundRelationship.typeCode
DocumentEntry Associations type
.... target
DocumentEntry Associations.reference
Composition.relatesTo.target
  • .target[classCode="DOC"
  • moodCode="EVN"].id
DocumentEntry Associations reference
... description
DocumentEntry.comments
DocumentEntry.comments
.outboundRelationship[typeCode="SUBJ"].target.text
TXA-25
DocumentEntry.comments
... securityLabel
DocumentEntry.confidentialityCode sowie zugewiesene Datenkategorien gemäß Legal Policy
DocumentEntry.confidentialityCode
  • Composition.confidentiality
  • Composition.meta.security
.confidentialityCode
ClinicalDocument/confidentialityCode/@code
TXA-18
DocumentEntry.confidentialityCode
.... id
n/a
.... extension
n/a
.... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
..... id
n/a
..... extension
n/a
..... system
./codeSystem
C*E.3
..... version
./codeSystemVersion
C*E.7
..... code
./code
C*E.1
..... display
CV.displayName
C*E.2 - but note this is not well followed
..... userSelected
CD.codingRationale
Sometimes implied by being first
.... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
... content
Bundle(Composition+*)
document.text
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... attachment
  • Composition.language
  • Composition.title
  • Composition.date
document.text
  • ClinicalDocument/languageCode
  • ClinicalDocument/title
  • ClinicalDocument/date
TXA-3 for mime type
  • DocumentEntry.mimeType
  • DocumentEntry.languageCode
  • DocumentEntry.URI
  • DocumentEntry.size
  • DocumentEntry.hash
  • DocumentEntry.title
  • DocumentEntry.creationTime
..... id
n/a
..... extension
n/a
..... contentType
DocumentEntry.mimeType
DocumentEntry.mimeType
  • ./mediaType
  • ./charset
ED.2+ED.3/RP.2+RP.3. Note conversion may be needed if old style values are being used
..... language
DocumentEntry.languageCode
DocumentEntry.languageCode
./language
..... data
./data
ED.5
..... url
Abweichend zu MHD V4.2.2 vom Document Responder festgelegter Speicherort des Documents
DocumentEntry.repositoryUniqueId or DocuemntEntry.URI
./reference/literal
RP.1+RP.2 - if they refer to a URL (see v2.6)
..... size
DocumentEntry.size
DocumentEntry.size
N/A (needs data type R3 proposal)
..... hash
DocumentEntry.hash
DocumentEntry.hash
:ED/integrityCheckAlgorithm="SHA-1"]
..... title
DocumentEntry.title
DocumentEntry.title
./title/data
..... creation
DocumentEntry.creationTime
DocumentEntry.creationTime
N/A (needs data type R3 proposal)
.... format
DocumentEntry.formatCode
DocumentEntry.formatCode
Composition.meta.profile
document.text
derived from the IHE Profile or Implementation Guide templateID
DocumentEntry.formatCode
... context
outboundRelationship[typeCode="SUBJ"].target[classCode<'ACT']
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... encounter
Keine Entsprechung zu XDS.b DocumentEntry
ihe:iti:xds:2015:encounterId
Event.context
Composition.encounter
  • unique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]
  • priorityNumber)/target[moodCode="EVN" and classCode=("ENC"
  • "PCPR") and isNormalAct])
FiveWs.context
.... event
DocumentEntry.eventCodeList
DocumentEntry.eventCodeList
Composition.event.code
.code
DocumentEntry.eventCodeList
..... id
n/a
..... extension
n/a
..... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
...... id
n/a
...... extension
n/a
...... system
./codeSystem
C*E.3
...... version
./codeSystemVersion
C*E.7
...... code
./code
C*E.1
...... display
CV.displayName
C*E.2 - but note this is not well followed
...... userSelected
CD.codingRationale
Sometimes implied by being first
..... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
.... period
Composition.event.period
.effectiveTime
ClinicalDocument/documentationOf/ serviceEvent/effectiveTime/low/ @value --> ClinicalDocument/documentationOf/ serviceEvent/effectiveTime/high/ @value
  • DocumentEntry.serviceStartTime
  • DocumentEntry.serviceStopTime
..... id
n/a
..... extension
n/a
..... start
DocumetEntry.serviceStartTime
DocumetEntry.serviceStartTime
./low
DR.1
..... end
DocumentEntry.serviceStopTime
DocumentEntry.serviceStopTime
./high
DR.2
.... facilityType
DocumentEntry.healthcareFacilityTypeCode
DocumentEntry.healthcareFacilityTypeCode
usually from a mapping to a local ValueSet
.participation[typeCode="LOC"].role[classCode="DSDLOC"].code
usually a mapping to a local ValueSet. Must be consistent with /clinicalDocument/code
DocumentEntry.healthcareFacilityTypeCode
..... id
n/a
..... extension
n/a
..... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
...... id
n/a
...... extension
n/a
...... system
./codeSystem
C*E.3
...... version
./codeSystemVersion
C*E.7
...... code
./code
C*E.1
...... display
CV.displayName
C*E.2 - but note this is not well followed
...... userSelected
CD.codingRationale
Sometimes implied by being first
..... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
.... practiceSetting
DocumentEntry.practiceSettingCode
DocumentEntry.practiceSettingCode
usually from a mapping to a local ValueSet
.participation[typeCode="LOC"].role[classCode="DSDLOC"].code
usually from a mapping to a local ValueSet
DocumentEntry.practiceSettingCode
..... id
n/a
..... extension
n/a
..... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
...... id
n/a
...... extension
n/a
...... system
./codeSystem
C*E.3
...... version
./codeSystemVersion
C*E.7
...... code
./code
C*E.1
...... display
CV.displayName
C*E.2 - but note this is not well followed
...... userSelected
CD.codingRationale
Sometimes implied by being first
..... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
.... sourcePatientInfo
Composition.subject
.participation[typeCode="SBJ"].role[typeCode="PAT"]
ClinicalDocument/recordTarget/
  • DocumentEntry.sourcePatientInfo
  • DocumentEntry.sourcePatientId
..... id
n/a
..... extension
n/a
..... reference
DocumentEntry.sourcePatientInfo
DocumentEntry.sourcePatientInfo
N/A
..... type
N/A
..... identifier
DocumentEntry.sourcePatientId
DocumentEntry.sourcePatientId
.identifier
..... display
N/A
.... related
DocumentEntry.referenceIdList
DocumentEntry.referenceIdList using CXi encoding for type when possible
Composition.event.detail
./outboundRelationship[typeCode="PERT" and isNormalActRelationship()] / target[isNormalAct]
ClinicalDocument/relatedDocument
DocumentEntry.referenceIdList

doco Documentation for this format