HL7 FHIR Implementation Guide: Rwanda HIV, published by Jembi Health Systems. 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/openhie/Rwanda-HIV/ and changes regularly. See the Directory of published versions
Mappings for the HIV-lab-order resource profile.
HIVServiceRequest |
ServiceRequest | ORC |
identifier | ORC-2, ORC-3, RF1-6 / RF1-11, |
identifier (PLAC) | ORC-2, ORC-3, RF1-6 / RF1-11, |
use | N/A |
type | CX.5 |
coding | C*E.1-8, C*E.10-22 |
system | C*E.3 |
version | C*E.7 |
code | C*E.1 |
display | C*E.2 - but note this is not well followed |
userSelected | Sometimes implied by being first |
text | C*E.9. But note many systems use C*E.2 for this |
system | CX.4 / EI-2-4 |
value | CX.1 / EI.1 |
period | CX.7 + CX.8 |
assigner | CX.4 / (CX.4,CX.9,CX.10) |
instantiatesCanonical | Varies by domain |
instantiatesUri | Varies by domain |
basedOn | ORC-8 (plus others) |
replaces | Handled by message location of ORC (ORC-1=RO or RU) |
requisition | ORC-4 |
status | ORC-5,RF1-1 |
intent | N/A |
category | RF1-5 |
priority | TQ1.9, RF1-2 |
code | PR1-3 / OBR-4 (varies by domain) |
concept | |
coding | C*E.1-8, C*E.10-22 |
text | C*E.9. But note many systems use C*E.2 for this |
orderDetail | NTE |
quantity[x] | NTE |
subject | PID |
encounter | PV1 |
occurrence[x] | TQ1/TQ2, OBR-7/OBR-8 |
occurrence[x] (occurrenceDateTime) | TQ1/TQ2, OBR-7/OBR-8 |
authoredOn | ORC-9, RF1-7 / RF1-9 |
requester | ORC-12, PRT |
performerType | PRT, RF1-3 |
performer | PRT, Practitioner: PRD-2/PRD-7 where PRD-3 = RT; Organization: PRD-10 where PRD-3 = RT |
reason | ORC-16, RF1-10 |
insurance | IN1/IN2 |
supportingInfo | Accompanying segments |
specimen | SPM |
bodySite | SPM |
bodyStructure | SPM |
note | NTE |
patientInstruction | NTE |
instruction[x] | NTE |
relevantHistory | N/A |
HIVServiceRequest |
ServiceRequest | Entity, Role, or Act,Act[moodCode<=INT] |
text | Act.text? |
contained | N/A |
extension | N/A |
modifierExtension | N/A |
identifier | .identifier |
identifier (PLAC) | .identifier |
id | n/a |
extension | n/a |
use | Role.code or implied by context |
type | Role.code or implied by context |
id | n/a |
extension | n/a |
coding | union(., ./translation) |
id | n/a |
extension | n/a |
system | ./codeSystem |
version | ./codeSystemVersion |
code | ./code |
display | CV.displayName |
userSelected | CD.codingRationale |
text | ./originalText[mediaType/code="text/plain"]/data |
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 |
instantiatesCanonical | .outboundRelationship[typeCode=DEFN].target |
instantiatesUri | .outboundRelationship[typeCode=DEFN].target |
basedOn | .outboundRelationship[typeCode=FLFS].target |
replaces | .outboundRelationship[typeCode=RPLC].target |
requisition | .inboundRelationship(typeCode=COMP].source[moodCode=INT].identifier |
status | .status |
intent | .moodCode (nuances beyond PRP/PLAN/RQO would need to be elsewhere) |
category | .outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="INT"].code |
priority | .priorityCode |
doNotPerform | .actionNegationInd |
code | .code |
id | n/a |
extension | n/a |
concept | N/A |
id | n/a |
extension | n/a |
coding | union(., ./translation) |
text | ./originalText[mediaType/code="text/plain"]/data |
reference | N/A |
orderDetail | |
id | n/a |
extension | n/a |
modifierExtension | N/A |
parameter | |
id | n/a |
extension | n/a |
modifierExtension | N/A |
quantity[x] | .quantity |
subject | .participation[typeCode=SBJ].role |
focus | participation[typeCode=SBJ] |
encounter | .inboundRelationship(typeCode=COMP].source[classCode<=PCPR, moodCode=EVN] |
occurrence[x] | .effectiveTime |
occurrence[x] (occurrenceDateTime) | .effectiveTime |
asNeeded[x] | boolean: precondition.negationInd (inversed - so negationInd = true means asNeeded=false CodeableConcept: precondition.observationEventCriterion[code="Assertion"].value |
authoredOn | .participation[typeCode=AUT].time |
requester | .participation[typeCode=AUT].role |
performerType | .participation[typeCode=PRF].role[scoper.determinerCode=KIND].code |
performer | .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE] |
location | .participation[typeCode=LOC].role[scoper.determinerCode=KIND].code |
reason | .reasonCode |
insurance | .outboundRelationship[typeCode=COVBY].target |
supportingInfo | .outboundRelationship[typeCode=PERT].target |
specimen | .participation[typeCode=SPC].role |
bodySite | targetSiteCode |
bodyStructure | targetSiteCode |
note | .inboundRelationship(typeCode=SUBJ].source[classCode=ANNGEN, moodCode=EVN].value[xsi:type=ST] |
patientInstruction | .text |
id | n/a |
extension | n/a |
modifierExtension | N/A |
instruction[x] | .text |
relevantHistory | .inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN] |
HIVServiceRequest |
ServiceRequest | |
identifier | ClinicalStatement.identifier |
identifier (PLAC) | ClinicalStatement.identifier |
status | Action.currentStatus |
code | Procedure.procedureCode |
subject | ClinicalStatement.subject |
encounter | ClinicalStatement.encounter |
occurrence[x] | Procedure.procedureSchedule |
occurrence[x] (occurrenceDateTime) | Procedure.procedureSchedule |
asNeeded[x] | Proposal.prnReason.reason |
authoredOn | Proposal.proposedAtTime |
requester | ClinicalStatement.statementAuthor |
bodySite | Procedure.targetBodySite |
bodyStructure | Procedure.targetBodyStructure |
note | ClinicalStatement.additionalText |