Implementation Guide
ePA MHD Service
Version 1.0.0 - release

Resource Profile: EPAMHDDocumentReference - Mappings

Active as of 2025-05-28

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

Mappings for ePA XDS.b <-> MHD (XDS.b)

EPAMHDDocumentReference
DocumentReferenceXDS.b DocumentEntry: Inhaltsgleiche Abbildung zum XDS Document Service
   meta
      profileKeine Entsprechung zu XDS.b DocumentEntry
   masterIdentifierDocumentEntry.uniqueId
   identifierDocumentEntry.entryUUID
   statusDocumentEntry.availabilityStatus
   typeDocumentEntry.typeCode
   categoryDocumentEntry.classCode
   subjectDocumentEntry.patientId
   authorDocumentEntry.author
   authenticatorDocumentEntry.legalAuthenticator
   relatesToKeine Entsprechung zu XDS.b DocumentEntry
   descriptionDocumentEntry.comments
   securityLabelDocumentEntry.confidentialityCode sowie zugewiesene Datenkategorien gemäß Legal Policy
   content
      attachment
         contentTypeDocumentEntry.mimeType
         languageDocumentEntry.languageCode
         urlAbweichend zu MHD V4.2.2 vom Document Responder festgelegter Speicherort des Documents
         sizeDocumentEntry.size
         hashDocumentEntry.hash
         titleDocumentEntry.title
         creationDocumentEntry.creationTime
      formatDocumentEntry.formatCode
   context
      eventDocumentEntry.eventCodeList
      period
         startDocumetEntry.serviceStartTime
         endDocumentEntry.serviceStopTime
      facilityTypeDocumentEntry.healthcareFacilityTypeCode
      practiceSettingDocumentEntry.practiceSettingCode
      sourcePatientInfo
         referenceDocumentEntry.sourcePatientInfo
         identifierDocumentEntry.sourcePatientId
      relatedDocumentEntry.referenceIdList

Mappings for XDS and MHD Mapping (XDS)

EPAMHDDocumentReference
DocumentReferenceXDS DocumentEntry: Used in the context of the IHE MHD ImplementationGuide
   meta
      profileDocumentEntry.limitedMetadata
   masterIdentifierDocumentEntry.uniqueId
   identifierDocumentEntry.entryUUID
   statusDocumentEntry.availabilityStatus
   typeDocumentEntry.typeCode
   categoryDocumentEntry.classCode
   subjectDocumentEntry.patientId
   authorDocumentEntry.author
   authenticatorDocumentEntry.legalAuthenticator
   relatesToDocumentEntry Associations
      codeDocumentEntry Associations.type
      targetDocumentEntry Associations.reference
   descriptionDocumentEntry.comments
   securityLabelDocumentEntry.confidentialityCode
   content
      attachment
         contentTypeDocumentEntry.mimeType
         languageDocumentEntry.languageCode
         urlDocumentEntry.repositoryUniqueId or DocuemntEntry.URI
         sizeDocumentEntry.size
         hashDocumentEntry.hash
         titleDocumentEntry.title
         creationDocumentEntry.creationTime
      formatDocumentEntry.formatCode
   context
      eventDocumentEntry.eventCodeList
      period
         startDocumetEntry.serviceStartTime
         endDocumentEntry.serviceStopTime
      facilityTypeDocumentEntry.healthcareFacilityTypeCode
      practiceSettingDocumentEntry.practiceSettingCode
      sourcePatientInfo
         referenceDocumentEntry.sourcePatientInfo
         identifierDocumentEntry.sourcePatientId
      relatedDocumentEntry.referenceIdList using CXi encoding for type when possible

Mappings for Workflow Pattern (http://hl7.org/fhir/workflow)

EPAMHDDocumentReference
DocumentReferenceEvent
   identifierEvent.identifier
   statusEvent.status
   typeEvent.code
   subjectEvent.subject
   dateEvent.occurrence[x]
   authorEvent.performer.actor
   authenticatorEvent.performer.actor
   context

Mappings for FHIR Composition (http://hl7.org/fhir/composition)

EPAMHDDocumentReference
DocumentReferencewhen describing a Composition
   typeComposition.type
   categoryComposition.class
   subjectComposition.subject
   dateComposition.date
   authorComposition.author
   authenticatorComposition.attester
   relatesToComposition.relatesTo
      codeComposition.relatesTo.code
      targetComposition.relatesTo.target
   securityLabelComposition.confidentiality, Composition.meta.security
   contentBundle(Composition+*)
      attachmentComposition.language, Composition.title, Composition.date
      formatComposition.meta.profile
   context
      eventComposition.event.code
      periodComposition.event.period
      facilityTypeusually from a mapping to a local ValueSet
      practiceSettingusually from a mapping to a local ValueSet
      sourcePatientInfoComposition.subject
      relatedComposition.event.detail

Mappings for RIM Mapping (http://hl7.org/v3)

EPAMHDDocumentReference
DocumentReferenceEntity. Role, or Act, Document[classCode="DOC" and moodCode="EVN"]
   meta
      idn/a
      extensionn/a
   textAct.text?
   containedN/A
   extensionN/A
   masterIdentifiern/a, 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]
   identifier.id / .setId
   identifier (entryUUID)n/a, 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]
   statusinterim: .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"
   type./code
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   category.outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   subject.participation[typeCode="SBJ"].role[typeCode="PAT"]
      idn/a
      extensionn/a
      referenceN/A
      typeN/A
      identifier.identifier
      displayN/A
   date.availabilityTime[type="TS"]
   author.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
      idn/a
      extensionn/a
      referenceN/A
      typeN/A
      identifier.identifier
      displayN/A
   authenticator.participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
      idn/a
      extensionn/a
      referenceN/A
      typeN/A
      identifier.identifier
      displayN/A
   relatesTo.outboundRelationship
      idn/a
      extensionn/a
      modifierExtensionN/A
      code.outboundRelationship.typeCode
      target.target[classCode="DOC", moodCode="EVN"].id
   description.outboundRelationship[typeCode="SUBJ"].target.text
   securityLabel.confidentialityCode
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   contentdocument.text
      idn/a
      extensionn/a
      modifierExtensionN/A
      attachmentdocument.text
         idn/a
         extensionn/a
         contentType./mediaType, ./charset
         language./language
         url./reference/literal
         sizeN/A (needs data type R3 proposal)
         hash.integrityCheck[parent::ED/integrityCheckAlgorithm="SHA-1"]
         title./title/data
         creationN/A (needs data type R3 proposal)
      formatdocument.text
   contextoutboundRelationship[typeCode="SUBJ"].target[classCode<'ACT']
      idn/a
      extensionn/a
      modifierExtensionN/A
      event.code
         idn/a
         extensionn/a
         codingunion(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      period.effectiveTime
         idn/a
         extensionn/a
         start./low
         end./high
      facilityType.participation[typeCode="LOC"].role[classCode="DSDLOC"].code
         idn/a
         extensionn/a
         codingunion(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      practiceSetting.participation[typeCode="LOC"].role[classCode="DSDLOC"].code
         idn/a
         extensionn/a
         codingunion(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      sourcePatientInfo.participation[typeCode="SBJ"].role[typeCode="PAT"]
         idn/a
         extensionn/a
         referenceN/A
         typeN/A
         identifier.identifier
         displayN/A
      related./outboundRelationship[typeCode="PERT" and isNormalActRelationship()] / target[isNormalAct]

Mappings for CDA (R2) (http://hl7.org/v3/cda)

EPAMHDDocumentReference
DocumentReferencewhen describing a CDA
   typeClinicalDocument/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.
   categoryDerived 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
   subjectClinicalDocument/recordTarget/
   authorClinicalDocument/author
   authenticatorClinicalDocument/legalAuthenticator
   securityLabelClinicalDocument/confidentialityCode/@code
   content
      attachmentClinicalDocument/languageCode, ClinicalDocument/title, ClinicalDocument/date
      formatderived from the IHE Profile or Implementation Guide templateID
   context
      periodClinicalDocument/documentationOf/ serviceEvent/effectiveTime/low/ @value --> ClinicalDocument/documentationOf/ serviceEvent/effectiveTime/high/ @value
      facilityTypeusually a mapping to a local ValueSet. Must be consistent with /clinicalDocument/code
      practiceSettingusually from a mapping to a local ValueSet
      sourcePatientInfoClinicalDocument/recordTarget/
      relatedClinicalDocument/relatedDocument

Mappings for FiveWs Pattern Mapping (http://hl7.org/fhir/fivews)

EPAMHDDocumentReference
DocumentReference
   identifierFiveWs.identifier
   statusFiveWs.status
   typeFiveWs.class
   categoryFiveWs.class
   subjectFiveWs.subject[x], FiveWs.subject
   dateFiveWs.recorded
   authenticatorFiveWs.witness
   context

Mappings for HL7 v2 Mapping (http://hl7.org/v2)

EPAMHDDocumentReference
DocumentReference
   masterIdentifierCX / EI (occasionally, more often EI maps to a resource id or a URL)
   identifierTXA-16?
   identifier (entryUUID)CX / EI (occasionally, more often EI maps to a resource id or a URL)
   statusTXA-19
   typeTXA-2
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   category
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   subjectPID-3 (No standard way to define a Practitioner or Group subject in HL7 v2 MDM message)
   authorTXA-9 (No standard way to indicate a Device in HL7 v2 MDM message)
   authenticatorTXA-10
   descriptionTXA-25
   securityLabelTXA-18
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   content
      attachmentTXA-3 for mime type
         contentTypeED.2+ED.3/RP.2+RP.3. Note conversion may be needed if old style values are being used
         urlRP.1+RP.2 - if they refer to a URL (see v2.6)
   context
      event
         codingC*E.1-8, C*E.10-22
            systemC*E.3
            versionC*E.7
            codeC*E.1
            displayC*E.2 - but note this is not well followed
            userSelectedSometimes implied by being first
         textC*E.9. But note many systems use C*E.2 for this
      period
         startDR.1
         endDR.2
      facilityType
         codingC*E.1-8, C*E.10-22
            systemC*E.3
            versionC*E.7
            codeC*E.1
            displayC*E.2 - but note this is not well followed
            userSelectedSometimes implied by being first
         textC*E.9. But note many systems use C*E.2 for this
      practiceSetting
         codingC*E.1-8, C*E.10-22
            systemC*E.3
            versionC*E.7
            codeC*E.1
            displayC*E.2 - but note this is not well followed
            userSelectedSometimes implied by being first
         textC*E.9. But note many systems use C*E.2 for this

Mappings for XDS metadata equivalent (http://ihe.net/xds)

EPAMHDDocumentReference
DocumentReference
   identifierDocumentEntry.entryUUID
   statusDocumentEntry.availabilityStatus
   typeDocumentEntry.type
   categoryDocumentEntry.class
   subjectDocumentEntry.patientId
   authorDocumentEntry.author
   authenticatorDocumentEntry.legalAuthenticator
   relatesToDocumentEntry Associations
      codeDocumentEntry Associations type
      targetDocumentEntry Associations reference
   descriptionDocumentEntry.comments
   securityLabelDocumentEntry.confidentialityCode
   content
      attachmentDocumentEntry.mimeType, DocumentEntry.languageCode, DocumentEntry.URI, DocumentEntry.size, DocumentEntry.hash, DocumentEntry.title, DocumentEntry.creationTime
      formatDocumentEntry.formatCode
   context
      eventDocumentEntry.eventCodeList
      periodDocumentEntry.serviceStartTime, DocumentEntry.serviceStopTime
      facilityTypeDocumentEntry.healthcareFacilityTypeCode
      practiceSettingDocumentEntry.practiceSettingCode
      sourcePatientInfoDocumentEntry.sourcePatientInfo, DocumentEntry.sourcePatientId
      relatedDocumentEntry.referenceIdList