Implementation Guide
23.1.0 - R4 APIs

Publish Box goes here

Resource Profile: AthenaDiagnosticReport - Mappings

Active as of 2022-03-01

Mappings for the athena-diagnosticreport-profile resource profile.

Mappings for athenaFlow (http://unknown.org/athenaFlow)

AthenaDiagnosticReport
DiagnosticReportFHIRR4_DIAGNOSTICREPORTVIEW
   idMakeId(%RESOURCEID%)
   meta
      lastUpdated%WHENUPDATED%
      profile (us-core-diagnosticreport)IfEqual(%CATEGORY%,"LAB").Then("http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab")
      profile (us-core-diagnosticreport)IfNotEqual(%CATEGORY%,"LAB").Then("http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note")
      security
      security (SENSITIVECHART)CheckSensitive(%SENSITIVECHART%)
      security (CONFABBR)
         systemgetSiteCodeSystem("ConfidentialDocument")
         code%CONFABBR%
      tagMakeChangeTagList(%CHANGE%)
   basedOnMakeReference("ORDERS",%ORDERID%,"ServiceRequest")
   statusMapCode(%DRSTATUS%,"DIAGNOSTICREPORTSTATUS")
   categoryMapConcept(%CATEGORY%,"DIAGNOSTICREPORTCATEGORY")
   code
      coding (other)IfNotEqual(%CATEGORY%,"LAB").Then(MapCodingList(%TYPE%,"DOCUMENTTYPE"))
      coding (lab)IfEqual( %CATEGORY%,"LAB").Then(MakeCodingForObsList(%OBSLIST%, "http://loinc.org"))
      text%SUMMARY%
   subjectMakeReference("PERSON",%PID%,"Patient")
   encounterMakeReference("DOCUMENT",%RESOURCEID%,"Encounter")
   effective[x]MakeEMRPeriod(%STARTDATE%)
   issued%WHENCREATED%
   performerMakeReference("USR",%CREATOR%,"Practitioner")
   resultMakeReferenceList("OBS",%OBSLIST%,"Observation")
   presentedForm (InternalAttachment)MakeDiagReportContentComponentForBinary(%INTREFERENCE%, %INTREFERENCEFORMAT%,"urn:ihe:iti:xds:2017:mimeTypeSufficient","urn:oid:1.3.6.1.4.1.19376.1.2.3","MimeType Sufficient")
   presentedForm (InternalAttachment2)MakeDiagReportContentComponentForBinary(%INTREFERENCE2%, %INTREFERENCEFORMAT2%,"urn:oid:1.3.6.1.4.1.19376.1.2.3","urn:hl7-org:sdwg:ccda-structuredBody:2.1","Documents following C-CDA constraints using a structured body")

Mappings for athenaPractice (http://unknown.org/athenaPractice)

AthenaDiagnosticReport
DiagnosticReportFHIRR4_DIAGNOSTICREPORTVIEW
   idMakeId(%RESOURCEID%)
   meta
      lastUpdated%WHENUPDATED%
      profile (us-core-diagnosticreport)IfEqual(%CATEGORY%,"LAB").Then("http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab")
      profile (us-core-diagnosticreport)IfNotEqual(%CATEGORY%,"LAB").Then("http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note")
      security
      security (SENSITIVECHART)CheckSensitive(%SENSITIVECHART%)
      security (CONFABBR)
         systemgetSiteCodeSystem("ConfidentialDocument")
         code%CONFABBR%
      tagMakeChangeTagList(%CHANGE%)
   basedOnMakeReference("ORDERS",%ORDERID%,"ServiceRequest")
   statusMapCode(%DRSTATUS%,"DIAGNOSTICREPORTSTATUS")
   categoryMapConcept(%CATEGORY%,"DIAGNOSTICREPORTCATEGORY")
   code
      coding (other)IfNotEqual(%CATEGORY%,"LAB").Then(MapCodingList(%TYPE%,"DOCUMENTTYPE"))
      coding (lab)IfEqual( %CATEGORY%,"LAB").Then(MakeCodingForObsList(%OBSLIST%, "http://loinc.org"))
      text%SUMMARY%
   subjectMakeReference("PATIENTPROFILE",%PID%,"Patient")
   encounterMakeReference("DOCUMENT",%RESOURCEID%,"Encounter")
   effective[x]MakeEMRPeriod(%STARTDATE%)
   issued%WHENCREATED%
   performerMakeReference("USR",%CREATOR%,"Practitioner")
   resultMakeReferenceList("OBS",%OBSLIST%,"Observation")
   presentedForm (InternalAttachment)MakeDiagReportContentComponentForBinary(%INTREFERENCE%, %INTREFERENCEFORMAT%,"urn:ihe:iti:xds:2017:mimeTypeSufficient","urn:oid:1.3.6.1.4.1.19376.1.2.3","MimeType Sufficient")
   presentedForm (InternalAttachment2)MakeDiagReportContentComponentForBinary(%INTREFERENCE2%, %INTREFERENCEFORMAT2%,"urn:oid:1.3.6.1.4.1.19376.1.2.3","urn:hl7-org:sdwg:ccda-structuredBody:2.1","Documents following C-CDA constraints using a structured body")

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

AthenaDiagnosticReport
DiagnosticReportEvent
   identifierEvent.identifier
   basedOnEvent.basedOn
   statusEvent.status
   codeEvent.code
   subjectEvent.subject
   encounterEvent.encounter
   effective[x]Event.occurrence[x]
   performerEvent.performer.actor
   resultsInterpreterEvent.performer.actor

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

AthenaDiagnosticReport
DiagnosticReportORU -> OBR
   meta
      security
      security (SENSITIVECHART)
      security (CONFABBR)
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
   identifierOBR-51/ for globally unique filler ID - OBR-3 , For non-globally unique filler-id the flller/placer number must be combined with the universal service Id - OBR-2(if present)+OBR-3+OBR-4
   basedOnORC? OBR-2/3?
   statusOBR-25 (not 1:1 mapping)
   categoryOBR-24
   codeOBR-4 (HL7 v2 doesn't provide an easy way to indicate both the ordered test and the performed panel)
      codingC*E.1-8, C*E.10-22
      coding (other)C*E.1-8, C*E.10-22
      coding (lab)C*E.1-8, C*E.10-22
      textC*E.9. But note many systems use C*E.2 for this
   subjectPID-3 (no HL7 v2 mapping for Group or Device)
   encounterPV1-19
   effective[x]OBR-7
   issuedOBR-22
   performerPRT-8 (where this PRT-4-Participation = "PO")
   resultsInterpreterOBR-32, PRT-8 (where this PRT-4-Participation = "PI")
   specimenSPM
   resultOBXs
   mediaOBX?
   conclusionOBX
   conclusionCodeOBX
   presentedFormOBX
   presentedForm (InternalAttachment)OBX
   presentedForm (InternalAttachment2)OBX

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

AthenaDiagnosticReport
DiagnosticReportEntity. Role, or Act, Observation[classCode=OBS, moodCode=EVN]
   meta
      idn/a
      extensionn/a
      security
      security (SENSITIVECHART)
      security (CONFABBR)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
   textAct.text?
   containedN/A
   extensionN/A
   modifierExtensionN/A
   identifierid
   basedOnoutboundRelationship[typeCode=FLFS].target
   statusstatusCode Note: final and amended are distinguished by whether observation is the subject of a ControlAct event of type "revise"
   categoryinboundRelationship[typeCode=COMP].source[classCode=LIST, moodCode=EVN, code < LabService].code
   codecode
      idn/a
      extensionn/a
      codingunion(., ./translation)
      coding (other)union(., ./translation)
      coding (lab)union(., ./translation)
      text./originalText[mediaType/code="text/plain"]/data
   subjectparticipation[typeCode=SBJ]
   encounterinboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]
   effective[x]effectiveTime
   issuedparticipation[typeCode=VRF or AUT].time
   performer.participation[typeCode=PRF]
   resultsInterpreter.participation[typeCode=PRF]
   specimenparticipation[typeCode=SBJ]
   resultoutboundRelationship[typeCode=COMP].target
   imagingStudyoutboundRelationship[typeCode=COMP].target[classsCode=DGIMG, moodCode=EVN]
   mediaoutboundRelationship[typeCode=COMP].target
      idn/a
      extensionn/a
      modifierExtensionN/A
      comment.inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code="annotation"].value
      link.value.reference
   conclusioninboundRelationship[typeCode="SPRT"].source[classCode=OBS, moodCode=EVN, code=LOINC:48767-8].value (type=ST)
   conclusionCodeinboundRelationship[typeCode=SPRT].source[classCode=OBS, moodCode=EVN, code=LOINC:54531-9].value (type=CD)
   presentedFormtext (type=ED)
   presentedForm (InternalAttachment)text (type=ED)
   presentedForm (InternalAttachment2)text (type=ED)

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

AthenaDiagnosticReport
DiagnosticReport
   identifierFiveWs.identifier
   statusFiveWs.status
   categoryFiveWs.class
   codeFiveWs.what[x]
   subjectFiveWs.subject[x], FiveWs.subject
   encounterFiveWs.context
   effective[x]FiveWs.done[x]
   issuedFiveWs.recorded
   performerFiveWs.actor
   resultsInterpreterFiveWs.actor