OpenELIS GLOBAL2 Implementation Guide
0.1.0 - ci-build

OpenELIS GLOBAL2 Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: OpenELISServiceRequest - Mappings

Draft as of 2024-12-11

Mappings for the openelis-service-request resource profile.

Mappings for OpenELIS Vs FHIR (http://i-tech-uw.github.io/openelis-global-ig/StructureDefinition/open-elis-service-request)

ServiceRequest Mapping shows how attributes of FHIR ServiceRequest Resource maps to and from the attributes of OpenElis SampleItem Object.

OpenELISServiceRequest
ServiceRequestOE ServiceRequest

This profile maps FHIR ServiceRequest to OE DataExchange.

   idAnalysis.fhirUuid
   statusAnalysis.status
   intentAnalysis.intent
   categoryObservationHistory.value
   priorityAnalysis.priority
   code
      coding
         codeAnalysis.test.loinc
         displayAnalysis.test.localizedTestName
   subjectPatient
   requesterProvider
   locationReferenceOrganisation
   specimenSampleItem
   notenote

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

OpenELISServiceRequest
ServiceRequestRequest
   identifierRequest.identifier
   identifier (uuid)Request.identifier
   identifier (labNo)Request.identifier
   instantiatesCanonicalRequest.instantiatesCanonical
   instantiatesUriRequest.instantiatesUri
   basedOnRequest.basedOn
   replacesRequest.replaces
   requisitionRequest.groupIdentifier
   statusRequest.status
   intentRequest.intent
   priorityRequest.priority
   doNotPerformRequest.doNotPerform
   codeRequest.code
   subjectRequest.subject
   encounterRequest.encounter
   occurrence[x]Request.occurrence[x]
   authoredOnRequest.authoredOn
   requesterRequest.requester
   performerTypeRequest.performerType
   performerRequest.performer
   reasonCodeRequest.reasonCode
   reasonReferenceRequest.reasonReference
   insuranceRequest.insurance
   supportingInfoRequest.supportingInfo
   noteRequest.note
   relevantHistoryRequest.relevantHistory

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

OpenELISServiceRequest
ServiceRequestORC
   identifierORC.2, ORC.3, RF1-6 / RF1-11,
   identifier (uuid)ORC.2, ORC.3, RF1-6 / RF1-11,
      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)
   identifier (labNo)ORC.2, ORC.3, RF1-6 / RF1-11,
      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)
   instantiatesCanonicalVaries by domain
   instantiatesUriVaries by domain
   basedOnORC.8 (plus others)
   replacesHandled by message location of ORC (ORC.1=RO or RU)
   requisitionORC.4
   statusORC.5,RF1-1
   intentN/A
   categoryRF1-5
   priorityTQ1.9, RF1-2
   codePR1-3 / OBR-4 (varies by domain)
      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
   orderDetailNTE
   quantity[x]NTE
   subjectPID
   encounterPV1
   occurrence[x]TQ1/TQ2, OBR-7/OBR-8
   authoredOnORC.9, RF1-7 / RF1-9
   requesterORC.12, PRT
   performerTypePRT, RF!-3
   performerPRT, Practitioner: PRD-2/PRD-7 where PRD-3 = RT; Organization: PRD-10 where PRD-3 = RT
   reasonCodeORC.16, RF1-10
   reasonReferenceORC.16
   insuranceIN1/IN2
   supportingInfoAccompanying segments
   specimenSPM
   bodySiteSPM
   noteNTE
   patientInstructionNTE
   relevantHistoryN/A

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

OpenELISServiceRequest
ServiceRequestEntity. Role, or Act, Act[moodCode<=INT]
   textAct.text?
   containedN/A
   extensionN/A
   modifierExtensionN/A
   identifier.identifier
   identifier (uuid).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
   identifier (labNo).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
   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
      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
   orderDetail.code
   quantity[x].quantity
   subject.participation[typeCode=SBJ].role
   encounter.inboundRelationship(typeCode=COMP].source[classCode<=PCPR, moodCode=EVN]
   occurrence[x].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]
   locationCode.participation[typeCode=LOC].role[scoper.determinerCode=KIND].code
   locationReference.participation[typeCode=LOC].role[scoper.determinerCode=INSTANCE]
   reasonCode.reasonCode
   reasonReference.outboundRelationship[typeCode=RSON].target
   insurance.outboundRelationship[typeCode=COVBY].target
   supportingInfo.outboundRelationship[typeCode=PERT].target
   specimen.participation[typeCode=SPC].role
   bodySitetargetSiteCode
   note.inboundRelationship(typeCode=SUBJ].source[classCode=ANNGEN, moodCode=EVN].value[xsi:type=ST]
   patientInstruction.text
   relevantHistory.inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN]

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

OpenELISServiceRequest
ServiceRequest
   identifierFiveWs.identifier
   identifier (uuid)FiveWs.identifier
   identifier (labNo)FiveWs.identifier
   statusFiveWs.status
   intentFiveWs.class
   categoryFiveWs.class
   priorityFiveWs.grade
   codeFiveWs.what[x]
   subjectFiveWs.subject[x], FiveWs.subject
   encounterFiveWs.context
   occurrence[x]FiveWs.planned
   authoredOnFiveWs.recorded
   requesterFiveWs.author
   performerTypeFiveWs.actor
   performerFiveWs.actor
   locationCodeFiveWs.actor
   locationReferenceFiveWs.actor
   reasonCodeFiveWs.why[x]
   reasonReferenceFiveWs.why[x]

Mappings for Quality Improvement and Clinical Knowledge (QUICK) (http://siframework.org/cqf)

OpenELISServiceRequest
ServiceRequest
   identifierClinicalStatement.identifier
   identifier (uuid)ClinicalStatement.identifier
   identifier (labNo)ClinicalStatement.identifier
   statusAction.currentStatus
   codeProcedure.procedureCode
   orderDetailProcedure.procedureCode
   subjectClinicalStatement.subject
   encounterClinicalStatement.encounter
   occurrence[x]Procedure.procedureSchedule
   asNeeded[x]Proposal.prnReason.reason
   authoredOnProposal.proposedAtTime
   requesterClinicalStatement.statementAuthor
   bodySiteProcedure.targetBodySite
   noteClinicalStatement.additionalText