SGHI FHIR Profile Implementation Guide
0.1.0 - ci-build

SGHI FHIR Profile Implementation Guide, published by Kathurima Kimathi. 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/savannahghi/sil_fhir_profile_ig/ and changes regularly. See the Directory of published versions

Resource Profile: SGHIProcedure - Mappings

Draft as of 2026-10-06

Mappings for the procedure resource profile.

Mappings to Structures in this Implementation Guide

No Mappings Found

Mappings to other Structures

No Mappings Found

Other Mappings

Name​Workflow Pattern​FiveWs Pattern MappingRIM MappingHL7 V2 Mappingdoco
.. Procedure
Event
clinical.general
  • Entity
  • Role
  • or Act
  • Procedure[moodCode=EVN]
... id
... meta
... implicitRules
... language
... text
Act.text?
... contained
N/A
... extension
N/A
... modifierExtension
N/A
... identifier
Event.identifier
FiveWs.identifier
.id
PR1-19
.... id
n/a
.... extension
n/a
.... use
Role.code or implied by context
N/A
.... type
Role.code or implied by context
CX.5
.... system
II.root or Role.id.root
CX.4 / EI-2-4
.... value
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
CX.1 / EI.1
.... period
Role.effectiveTime or implied by context
CX.7 + CX.8
.... assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • CX.4 / (CX.4
  • CX.9
  • CX.10)
... instantiatesCanonical
Event.instantiatesCanonical
.outboundRelationship[typeCode=DEFN].target
... instantiatesUri
Event.instantiatesUri
.outboundRelationship[typeCode=DEFN].target
... basedOn
Event.basedOn
  • .outboundRelationship[typeCode=FLFS].target[classCode=(various e.g. PROC
  • OBS
  • PCPR
  • ACT
  • moodCode=RQO].code
... partOf
Event.partOf
  • .inboundRelationship[typeCode=COMP].source[classCode=SBADM or PROC or OBS
  • moodCode=EVN]
PR1-25
... status
Event.status
FiveWs.status
statusCode
... statusReason
Event.statusReason
.reason.Observation.value
... category
FiveWs.class
  • .outboundRelationship[typeCode="COMP].target[classCode="LIST"
  • moodCode="EVN"].code
PR1-6
... code
Event.code
FiveWs.what[x]
.code
PR1-3
.... id
n/a
.... extension
n/a
.... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
..... id
n/a
..... extension
n/a
..... system
./codeSystem
C*E.3
..... version
./codeSystemVersion
C*E.7
..... code
./code
C*E.1
..... display
CV.displayName
C*E.2 - but note this is not well followed
..... userSelected
CD.codingRationale
Sometimes implied by being first
.... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
... subject
Event.subject
FiveWs.subject[x]
.participation[typeCode=SBJ].role
PID-3
... focus
FiveWs.subject[x]
... encounter
Event.encounter
FiveWs.context
  • .inboundRelationship[typeCode=COMP].source[classCode=ENC
  • moodCode=EVN]
PV1-19
... Slices for occurrence[x]
Event.occurrence[x]
FiveWs.done[x]
.effectiveTime
PR1-5 - occurrencePeriod.end can be inferred when both PR1-5 (Procedure Date/Time) and PR1-7 (Procedure Minutes) are populated
.... occurrence[x]:occurrenceDateTime
Event.occurrence[x]
FiveWs.done[x]
.effectiveTime
PR1-5 - occurrencePeriod.end can be inferred when both PR1-5 (Procedure Date/Time) and PR1-7 (Procedure Minutes) are populated
... recorded
Event.recorded
FiveWs.recorded
.participation[typeCode=AUT].time
... recorder
FiveWs.author
.participation[typeCode=AUT].role
... reported[x]
Event.reported[x]
FiveWs.source
.participation[typeCode=RPT].role
... performer
Event.performer
.participation[typeCode=PRF]
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... function
Event.performer.function
.functionCode
Some combination of STF-18 / PRA-3 / PRT-4 / ROL-3 / ORC-12 / OBR-16 / PV1-7 / PV1-8 / PV1-9 / PV1-17 / OBX-25
.... actor
Event.performer.actor
FiveWs.actor
.role
  • PR1-8 (Anesthesiologist)
  • PR1-11 (Surgeon)
  • PR1-12 (Procedure Practitioner) --> Procedure.performer.actor where Procedure.performer.function is also populated
.... onBehalfOf
.scoper
.... period
... location
FiveWs.where[x]
.participation[typeCode=LOC].role[classCode=SDLOC]
PR1-23
... reason
Event.reason
FiveWs.why[x]
.reasonCode
PR1-15
... bodySite
.targetSiteCode
OBX-20
... outcome
.outboundRelationship[typeCode=OUT].target.text
... report
  • .inboundRelationship[typeCode=SUBJ].source[classCode=OBS
  • moodCode=EVN]
... complication
  • .outboundRelationship[typeCode=OUTC].target[classCode=OBS
  • code="complication"
  • moodCode=EVN].value
... followUp
  • .outboundRelationship[typeCode=COMP].target[classCode=ACT
  • moodCode=INT].code
... note
Event.note
  • .inboundRelationship[typeCode=SUBJ].source[classCode=OBS
  • moodCode=EVN
  • code="annotation"].value
NTE
... focalDevice
.participation[typeCode=DEV].role[classCode=MANU]
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... action
  • .inboundRelationship[typeCode=SUBJ].source[classCode=OBS
  • moodCode=EVN
  • procedure device action codes
.... manipulated
.participation[typeCode=DEV].role[classCode=SDLOC]
... used
participation[typeCode=Dev].role[classCode=MANU]
... supportingInfo
.outboundRelationship[typeCode=PERT].target

doco Documentation for this format