SPL Mapping FHIR R5 Implementation Guide
0.2.1 - Build CI United States of America flag

SPL Mapping FHIR R5 Implementation Guide, published by HL7 International / Biomedical Research and Regulation. This guide is not an authorized publication; it is the continuous build for version 0.2.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-spl/ and changes regularly. See the Directory of published versions

Resource Profile: SPLDocumentReference - Mappings

Page standards status: Trial-use Maturity Level: 1

Mappings for the SPLDocumentReference resource profile.

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

SPLDocumentReference
DocumentReferenceEvent
   identifierEvent.identifier
   statusEvent.status
   typeEvent.code
   subjectEvent.subject
   contextEvent.encounter
   dateEvent.occurrence[x]
   authorEvent.performer.actor
   attesterEvent.performer.actor
   custodianEvent.performer.actor

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

SPLDocumentReference
DocumentReferenceinfrastructure.documents
   identifierFiveWs.identifier
   versionFiveWs.version
   statusFiveWs.status
   docStatusFiveWs.status
   modalityFiveWs.class
   typeFiveWs.what[x]
   categoryFiveWs.what[x]
   subjectFiveWs.subject[x]
   contextFiveWs.context
   dateFiveWs.recorded
   attester
      partyFiveWs.witness

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

SPLDocumentReference
DocumentReferencewhen describing a Composition
   identifierComposition.identifier
   versionComposition.version
   docStatusComposition.status
   typeComposition.type
   categoryComposition.category
   subjectComposition.subject
   contextComposition.encounter
   eventComposition.event.detail
   facilityTypeusually from a mapping to a local ValueSet
   practiceSettingusually from a mapping to a local ValueSet
   periodComposition.event.period
   dateComposition.date
   authorComposition.author
   attesterComposition.attester
      modeComposition.attester.mode
      timeComposition.attester.time
      partyComposition.attester.party
   custodianComposition.custodian
   relatesToComposition.relatesTo
      codeComposition.relatesTo.type
      targetComposition.relatesTo.resourceReference
   securityLabelBundle.meta.security
   contentBundle(Composition+*)
      attachmentComposition.language, Composition.title, Composition.date
      profileComposition.meta.profile
         value[x]Composition.meta.profile

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

SPLDocumentReference
DocumentReferenceEntity, Role, or Act,Document[classCode="DOC" and moodCode="EVN"]
   textAct.text?
   containedN/A
   modifierExtensionN/A
   identifier.id / .setId
   basedOn.outboundRelationship[typeCode=FLFS].target
   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"
   docStatus.statusCode
   type./code
   category.outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
   subject.participation[typeCode="SBJ"].role[typeCode="PAT"]
   contextunique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()], priorityNumber)/target[moodCode="EVN" and classCode=("ENC", "PCPR") and isNormalAct])
   event.code
   bodySite.targetSiteCode
   facilityType.participation[typeCode="LOC"].role[classCode="DSDLOC"].code
   practiceSetting.participation[typeCode="LOC"].role[classCode="DSDLOC"].code
   period.effectiveTime
   date.availabilityTime[type="TS"]
   author.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
   attester.participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"]
      idn/a
      extensionn/a
      modifierExtensionN/A
      modeunique(./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
      idn/a
      extensionn/a
      modifierExtensionN/A
      code.outboundRelationship.typeCode
      target.target[classCode="DOC", moodCode="EVN"].id
   description.outboundRelationship[typeCode="SUBJ"].target.text
   securityLabel.confidentialityCode
   contentdocument.text
      idn/a
      extensionn/a
      modifierExtensionN/A
      attachmentdocument.text
         idn/a
         extensionn/a
         contentType./mediaType, ./charset
         language./language
         data./data
         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)
         height.outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value
         width.outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value
         frames.outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value
         duration.outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value
      profiledocument.text
         idn/a
         extensionn/a
         modifierExtensionN/A
         value[x]document.text

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

SPLDocumentReference
DocumentReferenceDocumentEntry
   identifierDocumentEntry.entryUUID, DocumentEntry.uniqueId
   basedOnDocumentEntry.referenceIdList
   statusDocumentEntry.availabilityStatus
   typeDocumentEntry.typeCode
   categoryDocumentEntry.classCode
   subjectDocumentEntry.patientId
   eventDocumentEntry.referenceIdList
   facilityTypeDocumentEntry.healthcareFacilityTypeCode
   practiceSettingDocumentEntry.practiceSettingCode
   periodDocumentEntry.serviceStartTime, DocumentEntry.serviceStopTime
   authorDocumentEntry.author
   attesterDocumentEntry.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
      profileDocumentEntry.formatCode
         value[x]DocumentEntry.formatCode

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

SPLDocumentReference
DocumentReferencewhen describing a CDA
   identifierClinicalDocument/id
   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/
   facilityTypeusually a mapping to a local ValueSet. Must be consistent with /clinicalDocument/code
   practiceSettingusually from a mapping to a local ValueSet
   periodClinicalDocument/documentationOf/ serviceEvent/effectiveTime/low/ @value --> ClinicalDocument/documentationOf/ serviceEvent/effectiveTime/high/ @value
   authorClinicalDocument/author
   attester.authenticator/.legalAuthenticator
      modeimplied by .authenticator/.legalAuthenticator
      time.authenticator.time
      party.authenticator.assignedEnttty
   relatesTo
      codeClinicalDocument/relatedDocument/typeCode
      targetClinicalDocument/relatedDocument/parentDocument
   securityLabelClinicalDocument/confidentialityCode/@code
   content
      attachmentClinicalDocument/languageCode, ClinicalDocument/title, ClinicalDocument/date
      profilederived from the IHE Profile or Implementation Guide templateID
         value[x]derived from the IHE Profile or Implementation Guide templateID

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

SPLDocumentReference
DocumentReference
   identifierTXA-12
   statusTXA-19
   docStatusTXA-17
   typeTXA-2
   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)
   attester
      partyTXA-10
   descriptionTXA-25
   securityLabelTXA-18
   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
         dataED.5
         urlRP.1+RP.2 - if they refer to a URL (see v2.6)