FHIR Clinical Documents
1.0.0-ballot - STU1 Ballot International flag

FHIR Clinical Documents, published by HL7 International / Structured Documents. This guide is not an authorized publication; it is the continuous build for version 1.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-clinical-document/ and changes regularly. See the Directory of published versions

Resource Profile: ClinicalDocumentComposition - Mappings

Draft as of 2024-08-07 Maturity Level: 2

Mappings for the clinical-document-composition resource profile.

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

ClinicalDocumentComposition
CompositionEvent
   identifierEvent.identifier
   statusEvent.status
   typeEvent.code
   categoryEvent.subject
   encounterEvent.context
   dateEvent.occurrence[x]
   authorEvent.performer

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

ClinicalDocumentComposition
CompositionEntity. Role, or Act, Document[classCode="DOC" and moodCode="EVN" and isNormalAct()]
   textAct.text?
   containedN/A
   extension
   extension (R5-Composition-version)n/a, N/A
   extension (data-enterer)
   extension (informant)
   extension (information-recipient)
   extension (participant)
      idn/a
      extension
      extension (type)
         idn/a
         urlN/A
         value[x]N/A
      extension (function)
         idn/a
         urlN/A
         value[x]N/A
      extension (time)
         idn/a
         urlN/A
         value[x]N/A
      extension (party)
         idn/a
         urlN/A
         value[x]N/A
      urlN/A
   identifierDocument.id / Document.setId
   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("ReviseComposition", code) and isNormalAct()]); amended: .completionCode="AU" && ./statusCode[isNormalDatatype()]="complete" and ./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseComposition", code) and isNormalAct() and statusCode="completed"]; withdrawn : .completionCode=NI && ./statusCode[isNormalDatatype()]="obsolete"
   type./code
   category.outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
   subject.participation[typeCode="SBJ"].role[typeCode="PAT"]
   encounterunique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()], priorityNumber)/target[moodCode="EVN" and classCode=("ENC", "PCPR") and isNormalAct])
   date.effectiveTime[type="TS"]
   author.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
   title./title
   confidentiality.confidentialityCode
   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()]
   attester (legal_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()]
   attester (professional_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[x].target[classCode="DOC", moodCode="EVN"].id
      target[x] (targetIdentifier).target[classCode="DOC", moodCode="EVN"].id
         idn/a
         extensionn/a
         useRole.code or implied by context
         typeRole.code or implied by context
         systemII.root or Role.id.root
         valueII.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
         periodRole.effectiveTime or implied by context
         assignerII.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
   relatesTo (replaced_document).outboundRelationship
      idn/a
      extensionn/a
      modifierExtensionN/A
      code.outboundRelationship.typeCode
      target[x] (targetIdentifier).target[classCode="DOC", moodCode="EVN"].id
   relatesTo (appended_document).outboundRelationship
      idn/a
      extensionn/a
      modifierExtensionN/A
      code.outboundRelationship.typeCode
      target[x] (targetIdentifier).target[classCode="DOC", moodCode="EVN"].id
   eventoutboundRelationship[typeCode="SUBJ"].target[classCode<'ACT']
      idn/a
      extensionn/a
      modifierExtensionN/A
      code.code
      period.effectiveTime
      detail.outboundRelationship[typeCode="SUBJ"].target
   section./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]
      idn/a
      extensionn/a
      modifierExtensionN/A
      title./title
      code./code
      author.participation[typeCode="AUT"].role[classCode="ASSIGNED"]
      text.text
      mode.outBoundRelationship[typeCode=COMP].target[classCode=OBS"].value
      orderedBy.outboundRelationship[typeCode=COMP].sequenceNumber > 1
      entry.outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ]
      emptyReason.inboundRelationship[typeCode=SUBJ,code<ListEmptyReason].value[type=CD]
      section./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct]

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

ClinicalDocumentComposition
CompositionClinicalDocument
   languagelanguageCode
   extension (R5-Composition-version)versionNumber
   extension (data-enterer)assignedEntity.dataEnterer
   extension (informant)informantChoice.informant
   extension (information-recipient)intendedRecipient.informationRecipient
   extension (participant)associatedEntity.participant
   extension (consent)authorization.Consent
   extension (order)inFulfillmentOf.Order
   identifier.setId
   statusn/a
   type.code
   categoryn/a
   subject.recordTarget
   encounter.componentOf.encompassingEncounter
   date.effectiveTime
   author.author.assignedAuthor, assignedAuthor.author
   title.title
   confidentiality.confidentialityCode
   attester.authenticator/.legalAuthenticator
      modeimplied by .authenticator/.legalAuthenticator
      time.authenticator.time
      party.authenticator.assignedEnttty
   attester (legal_attester).authenticator/.legalAuthenticator, assignedEntity.legalAuthenticator
      modeimplied by .authenticator/.legalAuthenticator
      time.authenticator.time
      party.authenticator.assignedEnttty
   attester (professional_attester).authenticator/.legalAuthenticator, assignedEntity.authenticator
      modeimplied by .authenticator/.legalAuthenticator
      time.authenticator.time
      party.authenticator.assignedEnttty
   custodian.custodian.assignedCustodian, assignedCustodian.custodian
   relatesTo.relatedDocument
      code.relatedDocument.typeCode
      target[x].relatedDocument.id
      target[x] (targetIdentifier).relatedDocument.id
   relatesTo (replaced_document).relatedDocument, parentDocument.relatedDocument
      code.relatedDocument.typeCode
      target[x] (targetIdentifier).relatedDocument.id
   relatesTo (appended_document).relatedDocument
      code.relatedDocument.typeCode
      target[x] (targetIdentifier).relatedDocument.id
   event.documentationOf.serviceEvent
      code.code
      period.effectiveTime
      detailn/a
   section.component.structuredBody.component.section, ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct], bodyChoice.component.NonXMLBody
      title.title
      code.code
      author.author.assignedAuthor
      focus.subject? (CDA did not differentiate between subject and focus)
      text.text
      moden/a
      orderedByn/a
      entry.entry
      emptyReasonn/a
      section.component.section

Mappings for FHIR DocumentReference (http://hl7.org/fhir/documentreference)

ClinicalDocumentComposition
Compositionwhen described by DocumentReference
   identifierDocumentReference.masterIdentifier
   statusDocumentReference.status
   typeDocumentReference.type
   categoryDocumenttReference.category
   subjectDocumentReference.subject
   encounterDocumentReference.context.encounter
   dateDocumentReference.content.attachment.date, DocumentReference.created
   authorDocumentReference.agent
   titleDocumentReference.description, DocumentReference.content.attachment.title
   confidentialityDocumentReference.securityLabel
   attesterDocumentReference.authenticator
   attester (legal_attester)DocumentReference.authenticator
   attester (professional_attester)DocumentReference.authenticator
   custodianDocumentReference.custodian
   relatesToDocumentReference.relatesTo
      codeDocumentReference.relatesTo.code
      target[x]DocumentReference.relatesTo.target
      target[x] (targetIdentifier)DocumentReference.relatesTo.target
   relatesTo (replaced_document)DocumentReference.relatesTo
      codeDocumentReference.relatesTo.code
      target[x] (targetIdentifier)DocumentReference.relatesTo.target
   relatesTo (appended_document)DocumentReference.relatesTo
      codeDocumentReference.relatesTo.code
      target[x] (targetIdentifier)DocumentReference.relatesTo.target
   eventDocumentReference.event
      codeDocumentReference.event.code
      periodDocumentReference.event.period

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

ClinicalDocumentComposition
Composition
   identifierFiveWs.identifier
   statusFiveWs.status
   typeFiveWs.class
   categoryFiveWs.class
   subjectFiveWs.subject[x], FiveWs.subject
   encounterFiveWs.context
   dateFiveWs.done[x]
   authorFiveWs.author
   attester
      partyFiveWs.witness
   attester (legal_attester)
      partyFiveWs.witness
   attester (professional_attester)
      partyFiveWs.witness
   section
      authorFiveWs.author
      modeFiveWs.class