Implementation Guide
ePA MHD Service
Version 1.1.1 - release

## Resource Profile: EPAMHDDocumentReference - Mappings

Active as of 2026-03-20

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

### Mapping

Hinweis: Für die Spezifikation des ePA MHD Service ist ausschließlich das ePA-Mapping “ePA XDS.b <-> MHD” im Abschnitt “Other Mappings” relevant. Weitere dargestellte Mappings sind rein informativ.

#### Mappings to Structures in this Implementation Guide

No Mappings Found

#### Mappings to other Structures

No Mappings Found

#### Other Mappings

Name | ePA XDS.b <-> MHD | XDS and MHD Mapping | Workflow Pattern | FHIR Composition | RIM Mapping | CDA (R2) | FiveWs Pattern Mapping | HL7 v2 Mapping | XDS metadata equivalent
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
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 |  |  |  |  |  |  |  |  |
language |  |  |  |  |  |  |  |  |
text |  |  |  |  | Act.text? |  |  |  |
contained |  |  |  |  | N/A |  |  |  |
extension |  |  |  |  | N/A |  |  |  |
modifierExtension |  |  |  |  |  |  |  |  |
masterIdentifier | DocumentEntry.uniqueId | DocumentEntry.uniqueId | Event.identifier | Composition.identifier | .id | ClinicalDocument/id | FiveWs.identifier | TXA-12 | DocumentEntry.uniqueId
Slices for identifier | DocumentEntry.entryUUID und DocumentEntry.uniqueId | DocumentEntry.entryUUID | Event.identifier |  | .id / .setId |  | FiveWs.identifier | TXA-16? | DocumentEntry.entryUUID
identifier:entryUUID |  |  | Event.identifier |  | .id / .setId |  | FiveWs.identifier | TXA-16? | DocumentEntry.entryUUID
identifier:uniqueId |  | DocumentEntry.entryUUID | Event.identifier |  | .id / .setId |  | FiveWs.identifier | TXA-16? | DocumentEntry.entryUUID
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.3 vom Document Responder festgelegter Speicherort des Documents | DocumentEntry.repositoryUniqueId+DocumentEntry.uniqueId or DocumentEntry.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 | DocumentEntry.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
Documentation for this format