FHIR Implementation Guide for NDHM CI Build v2.0
banner

NDHM (R4), Published and maintained by NRCeS for NHA.
This version is based on the NDHM Health Data Interchange Specifications 1.0 and updated periodically.

Mappings for the StructureDefinition-Procedure Profile.

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

Procedure
ProcedureEvent
   identifierEvent.identifier
   instantiatesCanonicalEvent.instantiatesCanonical
   instantiatesUriEvent.instantiatesUri
   basedOnEvent.basedOn
   partOfEvent.partOf
   statusEvent.status
   statusReasonEvent.statusReason
   codeEvent.code
   subjectEvent.subject
   encounterEvent.context
   performed[x]Event.occurrence[x]
   performerEvent.performer
      functionEvent.performer.function
      actorEvent.performer.actor
   reasonCodeEvent.reasonCode
   reasonReferenceEvent.reasonReference
   noteEvent.note

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

Procedure
ProcedureEntity. Role, or Act, Procedure[moodCode=EVN]
   textAct.text?
   containedN/A
   extensionN/A
   modifierExtensionN/A
   identifier.id
   instantiatesCanonical.outboundRelationship[typeCode=DEFN].target
   instantiatesUri.outboundRelationship[typeCode=DEFN].target
   basedOn.outboundRelationship[typeCode=FLFS].target[classCode=(various e.g. PROC, OBS, PCPR, ACT, moodCode=RQO].code
   partOf.inboundRelationship[typeCode=COMP].source[classCode=SBADM or PROC or OBS, moodCode=EVN]
   statusstatusCode
   statusReason.reason.Observation.value
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   category.outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   code.code
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   subject.participation[typeCode=SBJ].role
   encounter.inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]
   performed[x].effectiveTime
   recorder.participation[typeCode=AUT].role
   asserter.participation[typeCode=INF].role
   performer.participation[typeCode=PRF]
      idn/a
      extensionn/a
      modifierExtensionN/A
      function.functionCode
         idn/a
         extensionn/a
         codingunion(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      actor.role
      onBehalfOf.scoper
   location.participation[typeCode=LOC].role[classCode=SDLOC]
   reasonCode.reasonCode
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   reasonReference.reasonCode
   bodySite.targetSiteCode
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   outcome.outboundRelationship[typeCode=OUT].target.text
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   report.inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN]
   complication.outboundRelationship[typeCode=OUTC].target[classCode=OBS, code="complication", moodCode=EVN].value
   complicationDetail.outboundRelationship[typeCode=OUTC].target[classCode=OBS, code="complication", moodCode=EVN].value
   followUp.outboundRelationship[typeCode=COMP].target[classCode=ACT, moodCode=INT].code
   note.inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code="annotation"].value
   focalDevice.participation[typeCode=DEV].role[classCode=MANU]
      idn/a
      extensionn/a
      modifierExtensionN/A
      action.inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code="procedure device action"].value=:procedure device action codes
      manipulated.participation[typeCode=DEV].role[classCode=SDLOC]
   usedReference.participation[typeCode=DEV].role[classCode=MANU] or .participation[typeCode=CSM].role[classCode=ADMM] (for Medication or Substance)
   usedCodeparticipation[typeCode=Dev].role[classCode=MANU]
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data

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

Procedure
Procedure
   identifierFiveWs.identifier
   statusFiveWs.status
   categoryFiveWs.class
   codeFiveWs.what[x]
   subjectFiveWs.subject[x], FiveWs.subject
   encounterFiveWs.context
   performed[x]FiveWs.done[x]
   recorderFiveWs.author
   asserterFiveWs.source
   performer
      actorFiveWs.actor
   locationFiveWs.where[x]
   reasonCodeFiveWs.why[x]
   reasonReferenceFiveWs.why[x]

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

Procedure
Procedure
   identifierSome combination of ORC-2 / ORC-3 / OBR-2 / OBR-3 / IPC-1 / IPC-2 / IPC-3 / IPC-4
   statusReason
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   category
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   codeOBR-44/OBR-45
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   subjectPID-3
   encounterPV1-19
   performed[x]OBR-7
   performer
      functionSome combination of STF-18 / PRA-3 / PRT-4 / ROL-3 / ORC-12 / OBR-16 / PV1-7 / PV1-8 / PV1-9 / PV1-17 / OBX-25
         codingC*E.1-8, C*E.10-22
            systemC*E.3
            versionC*E.7
            codeC*E.1
            displayC*E.2 - but note this is not well followed
            userSelectedSometimes implied by being first
         textC*E.9. But note many systems use C*E.2 for this
      actorORC-19/PRT-5
   reasonCode
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   bodySiteOBX-20
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   outcome
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   noteNTE
   usedCode
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this