C-CDA on FHIR
1.2.0 - STU 1 United States of America flag

This page is part of the C-CDA on FHIR Implementation Guide (v1.2.0: STU 1) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: DiagnosticImagingReport - Mappings

Active as of 2024-03-12

Mappings for the Diagnostic-Imaging-Report resource profile.

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

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

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

DiagnosticImagingReport
CompositionEntity. Role, or Act, Document[classCode="DOC" and moodCode="EVN" and isNormalAct()]
   textAct.text?
   containedN/A
   modifierExtensionN/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
   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()]
   attester (personal_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
   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]
   section (findings_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]
      entry (findings_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]
   section (dicom_object_catalog_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]
      entry (dicom_object_catalog_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]
   section (history_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]
   section (request_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]
   section (current_procedure_descriptions_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]
   section (prior_procedure_descriptions_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]
   section (previous_findings_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]
   section (impressions_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]
   section (recommendations_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]
   section (conclusions_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)

DiagnosticImagingReport
CompositionClinicalDocument
   identifier.setId
   statusn/a
   type.code
   categoryn/a
   subject.recordTarget
   encounter.componentOf.encompassingEncounter
   date.effectiveTime
   author.author.assignedAuthor
   title.title
   attester.authenticator/.legalAuthenticator
      modeimplied by .authenticator/.legalAuthenticator
      time.authenticator.time
      party.authenticator.assignedEnttty
   attester (legal_attester).authenticator/.legalAuthenticator
      modeimplied by .authenticator/.legalAuthenticator
      time.authenticator.time
      party.authenticator.assignedEnttty
   attester (professional_attester).authenticator/.legalAuthenticator
      modeimplied by .authenticator/.legalAuthenticator
      time.authenticator.time
      party.authenticator.assignedEnttty
   attester (personal_attester).authenticator/.legalAuthenticator
      modeimplied by .authenticator/.legalAuthenticator
      time.authenticator.time
      party.authenticator.assignedEnttty
   custodian.custodian.assignedCustodian
   relatesTo.relatedDocument
      code.relatedDocument.typeCode
      target[x].relatedDocument.id
   event.documentationOf.serviceEvent
      code.code
      period.effectiveTime
      detailn/a
   section.component.structuredBody.component.section
      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
   section (findings_section).component.structuredBody.component.section
      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
      entry (findings_entry).entry
      emptyReasonn/a
      section.component.section
   section (dicom_object_catalog_section).component.structuredBody.component.section
      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
      entry (dicom_object_catalog_entry).entry
      emptyReasonn/a
      section.component.section
   section (history_section).component.structuredBody.component.section
      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
   section (request_section).component.structuredBody.component.section
      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
   section (current_procedure_descriptions_section).component.structuredBody.component.section
      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
   section (prior_procedure_descriptions_section).component.structuredBody.component.section
      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
   section (previous_findings_section).component.structuredBody.component.section
      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
   section (impressions_section).component.structuredBody.component.section
      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
   section (recommendations_section).component.structuredBody.component.section
      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
   section (conclusions_section).component.structuredBody.component.section
      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)

DiagnosticImagingReport
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
   attesterDocumentReference.authenticator
   attester (legal_attester)DocumentReference.authenticator
   attester (professional_attester)DocumentReference.authenticator
   attester (personal_attester)DocumentReference.authenticator
   custodianDocumentReference.custodian
   relatesToDocumentReference.relatesTo
      codeDocumentReference.relatesTo.code
      target[x]DocumentReference.relatesTo.target
   eventDocumentReference.event
      codeDocumentReference.event.code
      periodDocumentReference.event.period

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

DiagnosticImagingReport
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
   attester (personal_attester)
      partyFiveWs.witness
   section
      authorFiveWs.author
      modeFiveWs.class
   section (findings_section)
      authorFiveWs.author
      modeFiveWs.class
   section (dicom_object_catalog_section)
      authorFiveWs.author
      modeFiveWs.class
   section (history_section)
      authorFiveWs.author
      modeFiveWs.class
   section (request_section)
      authorFiveWs.author
      modeFiveWs.class
   section (current_procedure_descriptions_section)
      authorFiveWs.author
      modeFiveWs.class
   section (prior_procedure_descriptions_section)
      authorFiveWs.author
      modeFiveWs.class
   section (previous_findings_section)
      authorFiveWs.author
      modeFiveWs.class
   section (impressions_section)
      authorFiveWs.author
      modeFiveWs.class
   section (recommendations_section)
      authorFiveWs.author
      modeFiveWs.class
   section (conclusions_section)
      authorFiveWs.author
      modeFiveWs.class