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: SGHIComposition - Mappings

Draft as of 2026-04-27

Mappings for the composition 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 Mapping | RIM Mapping | CDA (R2) | FHIR DocumentReference
--- | --- | --- | --- | --- | ---
Composition | Event | infrastructure.documents | Entity Role or Act Document[classCode="DOC" and moodCode="EVN" and isNormalAct()] | ClinicalDocument | when described by DocumentReference
id |  |  |  |  |
meta |  |  |  |  |
implicitRules |  |  |  |  |
language |  |  |  |  |
text |  |  | Act.text? |  |
contained |  |  | N/A |  |
extension |  |  | N/A |  |
modifierExtension |  |  | N/A |  |
url |  | FiveWs.identifier |  |  |
identifier | Event.identifier | FiveWs.identifier | Document.id / Document.setId | .setId | DocumentReference.identifier
id |  |  | n/a |  |
extension |  |  | n/a |  |
use |  |  | Role.code or implied by context |  |
type |  |  | Role.code or implied by context |  |
system |  |  | II.root or Role.id.root |  |
value |  |  | II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root) |  |
period |  |  | Role.effectiveTime or implied by context |  |
assigner |  |  | II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper |  |
version |  | FiveWs.version |  | .versionNumber | DocumentReference.version
status | Event.status | FiveWs.status | .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" .completionCode="AU" && ./statusCode[isNormalDatatype()]="complete" and ./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseComposition" .completionCode=NI && ./statusCode[isNormalDatatype()]="obsolete" | n/a | DocumentReference.docStatus
type | Event.code | FiveWs.class | ./code | .code | DocumentReference.type
category |  | FiveWs.class | .outboundRelationship[typeCode="COMP].target[classCode="LIST" moodCode="EVN"].code | n/a | DocumenttReference.category
subject | Event.subject | FiveWs.subject[x] | .participation[typeCode="SBJ"].role[typeCode="PAT"] | .recordTarget | DocumentReference.subject
encounter | Event.encounter | FiveWs.context | unique(highest(./outboundRelationship[typeCode="SUBJ" and isNormalActRelationship()] priorityNumber)/target[moodCode="EVN" and classCode=("ENC" "PCPR") and isNormalAct]) | .componentOf.encompassingEncounter | DocumentReference.context
date | Event.occurrence[x] | FiveWs.done[x] | .effectiveTime[type="TS"] | .effectiveTime | DocumentReference.content.attachment.date DocumentReference.date
useContext |  |  |  |  |
author | Event.performer | FiveWs.author | .participation[typeCode="AUT"].role[classCode="ASSIGNED"] | .author.assignedAuthor | DocumentReference.author
name |  |  |  |  |
title |  |  | ./title | .title | DocumentReference.description DocumentReference.content.attachment.title
note |  |  |  |  |
attester |  |  | .participation[typeCode="AUTHEN"].role[classCode="ASSIGNED"] | .authenticator/.legalAuthenticator | DocumentReference.attester
id |  |  | n/a |  |
extension |  |  | n/a |  |
modifierExtension |  |  | N/A |  |
mode |  |  | unique(./modeCode) | implied by .authenticator/.legalAuthenticator | DocumentReference.attester.mode
time |  |  | ./time[type="TS" and isNormalDatatype()] | .authenticator.time | DocumentReference.attester.time
party |  | FiveWs.witness | ./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()] | .authenticator.assignedEnttty | DocumentReference.attester.party
custodian |  |  | .participation[typeCode="RCV"].role[classCode="CUST"].scoper[classCode="ORG" and determinerCode="INST"] | .custodian.assignedCustodian | DocumentReference.custodian
relatesTo |  |  | .outboundRelationship | .relatedDocument | DocumentReference.relatesTo
event |  |  | outboundRelationship[typeCode="SUBJ"].target[classCode<'ACT'] | .documentationOf.serviceEvent |
id |  |  | n/a |  |
extension |  |  | n/a |  |
modifierExtension |  |  | N/A |  |
period |  |  | .effectiveTime | .effectiveTime | DocumentReference.period
detail |  |  | .outboundRelationship[typeCode="SUBJ"].target | n/a | DocumentReference.event
section |  |  | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct] | .component.structuredBody.component.section |
id |  |  | n/a |  |
extension |  |  | n/a |  |
modifierExtension |  |  | N/A |  |
title |  |  | ./title | .title |
code |  |  | ./code | .code |
author |  | FiveWs.author | .participation[typeCode="AUT"].role[classCode="ASSIGNED"] | .author.assignedAuthor |
focus |  |  |  | .subject? (CDA did not differentiate between subject and focus) |
text |  |  | .text | .text |
orderedBy |  |  | .outboundRelationship[typeCode=COMP].sequenceNumber > 1 | n/a |
entry |  |  | .outboundRelationship[typeCode=COMP] or .participation[typeCode=SBJ] | .entry |
emptyReason |  |  | .inboundRelationship[typeCode=SUBJ code<ListEmptyReason].value[type=CD] | n/a |
section |  |  | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[moodCode="EVN" and classCode="DOCSECT" and isNormalAct] | .component.section |
Documentation for this format