DICOM SR to FHIR Resource Mapping IG
0.1.0 - ci-build International flag

DICOM SR to FHIR Resource Mapping IG, published by HL7 International / Imaging Integration. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/dicom-sr/ and changes regularly. See the Directory of published versions

Resource Profile: ImagingMeasurementProfile - Mappings

Draft as of 2024-04-02

Mappings for the imaging-measurement resource profile.

Mappings for DICOM SR TID 300 Measurement (https://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_A.html#sect_TID_300)

The TID300Measurement can be extracted from TID 300 - Measurement.

ImagingMeasurementProfile
ObservationTID300(Measurement)
   identifier (observationUID)tag(0040,A171) [Observation UID]
   codeTID300.$Measurement.tag(0040,A043) [Concept Name Code Sequence]
   subjecttag(0010,0020) [Patient ID]
   issuedtag(0040,A032) [Observation DateTime]
   value[x] (valueQuantity)TID300.$Measurement.tag(0040,A300) [Measured Value Sequence]
   methodTID1501.EV(370129005, SCT, Measurement Method)
   deviceTID1501.EV(121071, DCM, Finding)

Mappings for DICOM SR TID 1419 Measurement (https://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_A.html#sect_TID_1419)

The TID1419Measurement can be extracted from TID 1419 - ROI Measurements.

ImagingMeasurementProfile
ObservationTID1419(ROIMeasurement)
   identifier (observationUID)tag(0040,A171) [Observation UID]
   codeTID1419.$Measurement.tag(0040,A043) [Concept Name Code Sequence]
   subjecttag(0010,0020) [Patient ID]
   issuedtag(0040,A032) [Observation DateTime]
   value[x] (valueQuantity)TID1419.$Measurement.tag(0040,A300) [Measured Value Sequence]
   methodTID1501.EV(370129005, SCT, Measurement Method)
   deviceTID1501.EV(121071, DCM, Finding)

Mappings for DICOM SR TID 1420 Measurement (https://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_A.html#sect_TID_1420)

The TID1419Measurement can be extracted from TID 1420 - Measurements Derived From Multiple ROI Measurements.

ImagingMeasurementProfile
ObservationTID1420(DerivedMeasurement)
   identifier (observationUID)tag(0040,A171) [Observation UID]
   codeTID1420.CID7465.tag(0040,A043) [Concept Name Code Sequence]
   subjecttag(0010,0020) [Patient ID]
   issuedtag(0040,A032) [Observation DateTime]
   value[x] (valueQuantity)TID1420.CID7465.tag(0040,A300) [Measured Value Sequence]
   methodTID1501.EV(370129005, SCT, Measurement Method)
   deviceTID1501.EV(121071, DCM, Finding)

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

ImagingMeasurementProfile
ObservationEvent
   identifierEvent.identifier
   identifier (observationUID)Event.identifier
   instantiates[x]Event.instantiatesCanonical
   basedOnEvent.basedOn
   basedOn (serviceRequestRef)Event.basedOn
   partOfEvent.partOf
   partOf (imagingStudyRef)Event.partOf
   statusEvent.status
   codeEvent.code
   subjectEvent.subject
   encounterEvent.encounter
   effective[x]Event.occurrence[x]
   performerEvent.performer.actor

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

ImagingMeasurementProfile
Observationclinical.diagnostics
   identifierFiveWs.identifier
   identifier (observationUID)FiveWs.identifier
   statusFiveWs.status
   categoryFiveWs.class
   codeFiveWs.what[x]
   subjectFiveWs.subject[x]
   focusFiveWs.subject[x]
   focus (trackingUidBodyStructure)FiveWs.subject[x]
   encounterFiveWs.context
   effective[x]FiveWs.done[x]
   issuedFiveWs.recorded
   performerFiveWs.actor
   component
      codeFiveWs.what[x]

Mappings for SNOMED CT Concept Domain Binding (http://snomed.info/conceptdomain)

ImagingMeasurementProfile
Observation< 363787002 |Observable entity|
   status< 445584004 |Report by finality status|
   code< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|
   value[x]< 441742003 |Evaluation finding|
   value[x] (valueQuantity)< 441742003 |Evaluation finding|
   interpretation< 260245000 |Findings values|
   bodySite< 123037004 |Body structure|
   specimen< 123038009 |Specimen|
   device< 49062001 |Device|
   referenceRange
      type< 260245000 |Findings values| OR < 365860008 |General clinical state finding| OR < 250171008 |Clinical history or observation findings| OR < 415229000 |Racial group| OR < 365400002 |Finding of puberty stage| OR < 443938003 |Procedure carried out on subject|
      appliesTo< 260245000 |Findings values| OR < 365860008 |General clinical state finding| OR < 250171008 |Clinical history or observation findings| OR < 415229000 |Racial group| OR < 365400002 |Finding of puberty stage| OR < 443938003 |Procedure carried out on subject|
   component
      code< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|
      value[x]363714003 |Interprets| < 441742003 |Evaluation finding|
      interpretation< 260245000 |Findings values|

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

ImagingMeasurementProfile
ObservationOBX
   identifierOBX-21 For OBX segments from systems without OBX-21 support a combination of ORC/OBR and OBX must be negotiated between trading partners to uniquely identify the OBX segment. Depending on how V2 has been implemented each of these may be an option: 1) OBR-3 + OBX-3 + OBX-4 or 2) OBR-3 + OBR-4 + OBX-3 + OBX-4 or 3) some other way to uniquely ID the OBR/ORC + OBX-3 + OBX-4.
   identifier (observationUID)OBX-21 For OBX segments from systems without OBX-21 support a combination of ORC/OBR and OBX must be negotiated between trading partners to uniquely identify the OBX segment. Depending on how V2 has been implemented each of these may be an option: 1) OBR-3 + OBX-3 + OBX-4 or 2) OBR-3 + OBR-4 + OBX-3 + OBX-4 or 3) some other way to uniquely ID the OBR/ORC + OBX-3 + OBX-4.
      useN/A
      typeCX.5
      systemCX.4 / EI-2-4
      valueCX.1 / EI.1
      periodCX.7 + CX.8
      assignerCX.4 / (CX.4,CX.9,CX.10)
   basedOnORC
   basedOn (serviceRequestRef)ORC
      identifier
         useN/A
         typeCX.5
         systemCX.4 / EI-2-4
         valueCX.1 / EI.1
         periodCX.7 + CX.8
         assignerCX.4 / (CX.4,CX.9,CX.10)
   triggeredByORC
   partOfVaries by domain
   partOf (imagingStudyRef)Varies by domain
      identifier
         useN/A
         typeCX.5
         systemCX.4 / EI-2-4
         valueCX.1 / EI.1
         periodCX.7 + CX.8
         assignerCX.4 / (CX.4,CX.9,CX.10)
   statusOBX-11
   codeOBX-3
   subjectPID-3
   focusOBX-3
   focus (trackingUidBodyStructure)OBX-3
      identifier
         useN/A
         typeCX.5
         systemCX.4 / EI-2-4
         valueCX.1 / EI.1
         periodCX.7 + CX.8
         assignerCX.4 / (CX.4,CX.9,CX.10)
   encounterPV1
   effective[x]OBX-14, and/or OBX-19 after v2.4 (depends on who observation made)
   issuedOBR-22 (or MSH-7), or perhaps OBX-19 (depends on who observation made)
   performerOBX-15 / (Practitioner) OBX-16, PRT-5:PRT-4='RO' / (Device) OBX-18 , PRT-10:PRT-4='EQUIP' / (Organization) OBX-23, PRT-8:PRT-4='PO'
   value[x]OBX-2, OBX-5, OBX-6
   value[x] (valueQuantity)OBX-2, OBX-5, OBX-6
   dataAbsentReasonN/A
   interpretationOBX-8
   noteNTE-3 (partner NTE to OBX, or sometimes another (child?) OBX)
   bodySiteOBX-20
   methodOBX-17
   specimenSPM segment
   deviceOBX-17 / PRT -10
   referenceRangeOBX-7
      lowOBX-7
      highOBX-7
      normalValueOBX-7
      typeOBX-10
      appliesToOBX-10
      textOBX-7
   hasMemberRelationships established by OBX-4 usage
   derivedFromRelationships established by OBX-4 usage
   componentcontainment by OBX-4?
      codeOBX-3
      value[x]OBX-2, OBX-5, OBX-6
      dataAbsentReasonN/A
      interpretationOBX-8
      referenceRangeOBX-7

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

ImagingMeasurementProfile
ObservationEntity, Role, or Act,Observation[classCode=OBS, moodCode=EVN]
   textAct.text?
   containedN/A
   extensionN/A
   modifierExtensionN/A
   identifierid
   identifier (observationUID)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
   instantiates[x].outboundRelationship[typeCode=DEFN].target
   basedOn.inboundRelationship[typeCode=COMP].source[moodCode=EVN]
   basedOn (serviceRequestRef).inboundRelationship[typeCode=COMP].source[moodCode=EVN]
      idn/a
      extensionn/a
      referenceN/A
      typeN/A
      identifier.identifier
         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
      displayN/A
   triggeredBy.inboundRelationship[typeCode=COMP].source[moodCode=EVN]
      idn/a
      extensionn/a
      modifierExtensionN/A
      observationoutBoundRelationship
      typecode
      reasonannotation
   partOf.outboundRelationship[typeCode=FLFS].target
   partOf (imagingStudyRef).outboundRelationship[typeCode=FLFS].target
      idn/a
      extensionn/a
      referenceN/A
      typeN/A
      identifier.identifier
         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
      displayN/A
   statusstatus Amended & Final are differentiated by whether it is the subject of a ControlAct event with a type of "revise"
   category.outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
   codecode
   subjectparticipation[typeCode=RTGT]
   focusparticipation[typeCode=SBJ]
   focus (trackingUidBodyStructure)participation[typeCode=SBJ]
      idn/a
      extensionn/a
      referenceN/A
      typeN/A
      identifier.identifier
         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
      displayN/A
   encounterinboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]
   effective[x]effectiveTime
   issuedparticipation[typeCode=AUT].time
   performerparticipation[typeCode=PRF]
   value[x]value
   value[x] (valueQuantity)value
   dataAbsentReasonvalue.nullFlavor
   interpretationinterpretationCode
   notesubjectOf.observationEvent[code="annotation"].value
   bodySitetargetSiteCode
   bodyStructuretargetSiteCode
   methodmethodCode
   specimenparticipation[typeCode=SPC].specimen
   deviceparticipation[typeCode=DEV]
   referenceRangeoutboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]
      idn/a
      extensionn/a
      modifierExtensionN/A
      lowvalue:IVL_PQ.low
      highvalue:IVL_PQ.high
      normalValuevalue:IVL_PQ.normal
      typeinterpretationCode
      appliesTointerpretationCode
      ageoutboundRelationship[typeCode=PRCN].targetObservationCriterion[code="age"].value
      textvalue:ST
   hasMemberoutBoundRelationship
   derivedFrom.targetObservation
   componentoutBoundRelationship[typeCode=COMP]
      idn/a
      extensionn/a
      modifierExtensionN/A
      codecode
      value[x]value
      dataAbsentReasonvalue.nullFlavor
      interpretationinterpretationCode
      referenceRangeoutboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]

Mappings for SNOMED CT Attribute Binding (http://snomed.org/attributebinding)

ImagingMeasurementProfile
Observation
   code116680003 |Is a|
   value[x]363714003 |Interprets|
   value[x] (valueQuantity)363714003 |Interprets|
   interpretation363713009 |Has interpretation|
   bodySite718497002 |Inherent location|
   specimen704319004 |Inherent in|
   device424226004 |Using device|
   component
      value[x]363714003 |Interprets|
      interpretation363713009 |Has interpretation|