Implementation Guide
ePA Medication Service
Version 1.0.5-ballot.1 - draft

Resource Profile: EPAMedicationRequest - Mappings

Draft as of 2025-02-14

Mappings for the epa-medication-request resource profile.

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

EPAMedicationRequest
MedicationRequestRequest
   identifierRequest.identifier
   identifier (RxPrescriptionProcessIdentifier)Request.identifier
   identifier (RxOriginatorProcessIdentifier)Request.identifier
   statusRequest.status
   statusReasonRequest.statusReason
   intentRequest.intent
   priorityRequest.priority
   medication[x]Request.code
   subjectRequest.subject
   encounterRequest.context
   supportingInformationRequest.supportingInfo
   authoredOnRequest.authoredOn
   requesterRequest.requester
   performerRequest.performer
   performerTypeRequest.performerType
   reasonCodeRequest.reasonCode
   reasonReferenceRequest.reasonReference
   instantiatesCanonicalRequest.instantiates
   basedOnRequest.basedOn
   groupIdentifierRequest.groupIdentifier
   insuranceRequest.insurance
   noteRequest.note
   dosageInstructionRequest.occurrence[x]
   priorPrescriptionRequest.replaces
   eventHistoryRequest.relevantHistory

Mappings for Mapping to NCPDP SCRIPT 10.6 (http://ncpdp.org/SCRIPT10_6)

EPAMedicationRequest
MedicationRequestMessage/Body/NewRx
   identifierMessage/Header/PrescriberOrderNumber
   identifier (RxPrescriptionProcessIdentifier)Message/Header/PrescriberOrderNumber
   identifier (RxOriginatorProcessIdentifier)Message/Header/PrescriberOrderNumber
   statusno mapping
   categoryMessage/Body/NewRx/MedicationPrescribed/Directions or Message/Body/NewRx/MedicationPrescribed/StructuredSIG
   medication[x]Message/Body/NewRx/MedicationPrescribed Medication.code.coding.code = Message/Body/NewRx/MedicationPrescribed/DrugCoded/ProductCode Medication.code.coding.system = Message/Body/NewRx/MedicationPrescribed/DrugCoded/ProductCodeQualifier Medication.code.coding.display = Message/Body/NewRx/MedicationPrescribed/DrugDescription
   subjectMessage/Body/NewRx/Patient (need detail to link to specific patient … Patient.Identification in SCRIPT)
   encounterno mapping
   authoredOnMessage/Body/NewRx/MedicationPrescribed/WrittenDate
   reasonCodeMessage/Body/NewRx/MedicationPrescribed/Diagnosis/Primary/Value
   reasonReferenceno mapping
   noteMessage/Body/NewRx/MedicationPrescribed/Note
   dispenseRequestMessage/Body/NewRx/MedicationPrescribed/ExpirationDate
      validityPeriodMessage/Body/NewRx/MedicationPrescribed/Refills
      numberOfRepeatsAllowedMessage/Body/NewRx/MedicationPrescribed/Quantity
      quantityMessage/Body/NewRx/MedicationPrescribed/DaysSupply
      expectedSupplyDurationMessage/Body/NewRx/MedicationPrescribed/Substitutions
   substitutionspecific values within Message/Body/NewRx/MedicationPrescribed/Substitutions
      allowed[x]specific values within Message/Body/NewRx/MedicationPrescribed/Substitutions
      reasonnot mapped
   priorPrescriptionnot mapped

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

EPAMedicationRequest
MedicationRequestEntity. Role, or Act, CombinedMedicationRequest
   metan/a, N/A
      idn/a
      extensionn/a, N/A
      versionIdn/a
      lastUpdatedn/a
      sourcen/a
      profilen/a
      securityn/a, CV
      tagn/a, CV
   implicitRulesn/a
   languagen/a
   textn/a, N/A, Act.text?
   containedEntity. Role, or Act, N/A
   extensionn/a, N/A
   extension (multiplePrescription)
      idn/a
      extension
      extension (indicator)
         idn/a
         urlN/A
         value[x]n/a, N/A
      extension (counter)
         idn/a
         urlN/A
         value[x]n/a, N/A
            idn/a
            extensionn/a, N/A
            numeratorn/a, PQ, IVL<PQ>, MO, CO, depending on the values, .numerator
               idn/a
               extensionn/a, N/A
               valuen/a, PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
            denominatorn/a, PQ, IVL<PQ>, MO, CO, depending on the values, .denominator
               idn/a
               extensionn/a, N/A
               valuen/a, PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
      extension (period)
         idn/a
         urlN/A
         value[x]n/a, N/A
            idn/a
            extensionn/a, N/A
            startn/a, ./low
            endn/a, ./high
      extension (id)
         idn/a
         urlN/A
         value[x]n/a, N/A
            idn/a
            extensionn/a, N/A
            systemn/a, II.root or Role.id.root
            valuen/a, II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
      urlN/A
   extension (isBvg)
      idn/a
      urlN/A
      value[x]n/a, N/A
   modifierExtensionn/a, N/A
   identifiern/a, II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT], .id
   identifier (RxPrescriptionProcessIdentifier)n/a, II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT], .id
   identifier (RxOriginatorProcessIdentifier)n/a, II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT], .id
   statusn/a, .statusCode
   statusReasonn/a, CD, .inboundRelationship[typeCode=SUBJ].source[classCode=CACT, moodCode=EVN].reasonCOde
   intentn/a, .moodCode (nuances beyond PRP/PLAN/RQO would need to be elsewhere)
   categoryn/a, CD, .inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code="type of medication usage"].value
   priorityn/a, .priorityCode
   doNotPerformn/a, SubstanceAdministration.actionNegationInd
   reported[x]n/a, .participation[typeCode=INF].role
   medication[x]n/a, consumable.administrableMedication
   subjectn/a, The target of a resource reference is a RIM entry point (Act, Role, or Entity), .participation[typeCode=AUT].role
      idn/a
      extensionn/a, N/A
      referencen/a, N/A
      typen/a, N/A
      identifiern/a, II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT], .identifier
      displayn/a, N/A
   encountern/a, The target of a resource reference is a RIM entry point (Act, Role, or Entity), .inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN, code="type of encounter or episode"]
   supportingInformationn/a, The target of a resource reference is a RIM entry point (Act, Role, or Entity), .outboundRelationship[typeCode=PERT].target[A_SupportingClinicalStatement CMET minimal with many different choices of classCodes(ORG, ENC, PROC, SPLY, SBADM, OBS) and each of the act class codes draws from one or more of the following moodCodes (EVN, DEF, INT PRMS, RQO, PRP, APT, ARQ, GOL)]
   authoredOnn/a, author.time
   requestern/a, The target of a resource reference is a RIM entry point (Act, Role, or Entity), .participation[typeCode=AUT].role
   performern/a, The target of a resource reference is a RIM entry point (Act, Role, or Entity), .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]
   performerTypen/a, CD, .participation[typeCode=PRF].role[scoper.determinerCode=KIND].code
   recordern/a, The target of a resource reference is a RIM entry point (Act, Role, or Entity), .participation[typeCode=TRANS].role[classCode=ASSIGNED].code (HealthcareProviderType)
   reasonCoden/a, CD, reason.observation.reasonCode
   reasonReferencen/a, The target of a resource reference is a RIM entry point (Act, Role, or Entity), reason.observation[code=ASSERTION].value
   instantiatesCanonicaln/a, .outboundRelationship[typeCode=DEFN].target
   instantiatesUrin/a, .outboundRelationship[typeCode=DEFN].target
   basedOnn/a, The target of a resource reference is a RIM entry point (Act, Role, or Entity), .outboundRelationship[typeCode=FLFS].target[classCode=SBADM or PROC or PCPR or OBS, moodCode=RQO orPLAN or PRP]
   groupIdentifiern/a, II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT], .outboundRelationship(typeCode=COMP].target[classCode=SBADM, moodCode=INT].id
   courseOfTherapyTypen/a, CD, Act.code where classCode = LIST and moodCode = EVN
   insurancen/a, The target of a resource reference is a RIM entry point (Act, Role, or Entity), .outboundRelationship[typeCode=COVBY].target
   noten/a, Act, .inboundRelationship[typeCode=SUBJ]/source[classCode=OBS,moodCode=EVN,code="annotation"].value
      idn/a
      extensionn/a, N/A
      author[x]n/a, Act.participant[typeCode=AUT].role
      timen/a, Act.effectiveTime
      textn/a, Act.text
   dosageInstructionn/a, .outboundRelationship[typeCode=COMP].target[classCode=SBADM, moodCode=INT], see dosageInstruction mapping
      idn/a
      extensionn/a, N/A
      modifierExtensionn/a, N/A
      sequencen/a, .text
      textn/a, .text
      additionalInstructionn/a, CD, .text
      patientInstructionn/a, .text
      timingn/a, QSET<TS> (GTS), .effectiveTime
      asNeeded[x]n/a, .outboundRelationship[typeCode=PRCN].target[classCode=OBS, moodCode=EVN, code="as needed"].value=boolean or codable concept
      siten/a, CD, .approachSiteCode
      routen/a, CD, .routeCode
      methodn/a, CD, .doseQuantity
      doseAndRaten/a
         idn/a
         extensionn/a, N/A
         typen/a, CD
         dose[x]n/a, .doseQuantity
         rate[x]n/a, .rateQuantity
      maxDosePerPeriodn/a, RTO, .maxDoseQuantity
      maxDosePerAdministrationn/a, PQ, IVL<PQ>, MO, CO, depending on the values, not supported
      maxDosePerLifetimen/a, PQ, IVL<PQ>, MO, CO, depending on the values, not supported
   dispenseRequestn/a, component.supplyEvent
      idn/a
      extensionn/a, N/A
      modifierExtensionn/a, N/A
      initialFilln/a, SubstanceAdministration -> ActRelationship[sequenceNumber = '1'] -> Supply
         idn/a
         extensionn/a, N/A
         modifierExtensionn/a, N/A
         quantityn/a, PQ, IVL<PQ>, MO, CO, depending on the values, Supply.quantity[moodCode=RQO]
         durationn/a, PQ, IVL<PQ>, MO, CO, depending on the values, PQ, IVL<PQ> depending on the values, Supply.effectivetime[moodCode=RQO]
      dispenseIntervaln/a, PQ, IVL<PQ>, MO, CO, depending on the values, PQ, IVL<PQ> depending on the values, Supply.effectivetime[moodCode=RQO]
      validityPeriodn/a, IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"], effectiveTime
      numberOfRepeatsAllowedn/a, repeatNumber
      quantityn/a, PQ, IVL<PQ>, MO, CO, depending on the values, quantity
         idn/a
         extensionn/a, N/A
         valuen/a, PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
         unitn/a, PQ.unit
         systemn/a, CO.codeSystem, PQ.translation.codeSystem
         coden/a, PQ.code, MO.currency, PQ.translation.code
      expectedSupplyDurationn/a, PQ, IVL<PQ>, MO, CO, depending on the values, PQ, IVL<PQ> depending on the values, expectedUseTime
      performern/a, The target of a resource reference is a RIM entry point (Act, Role, or Entity), .outboundRelationship[typeCode=COMP].target[classCode=SPLY, moodCode=RQO] .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]
   substitutionn/a, subjectOf.substitutionPersmission
      idn/a
      extensionn/a, N/A
      modifierExtensionn/a, N/A
      allowed[x]n/a, code
      reasonn/a, CD, reasonCode
   priorPrescriptionn/a, The target of a resource reference is a RIM entry point (Act, Role, or Entity), .outboundRelationship[typeCode=?RPLC or ?SUCC]/target[classCode=SBADM,moodCode=RQO]
   detectedIssuen/a, The target of a resource reference is a RIM entry point (Act, Role, or Entity), .inboundRelationship[typeCode=SUBJ]/source[classCode=ALRT,moodCode=EVN].value
   eventHistoryn/a, The target of a resource reference is a RIM entry point (Act, Role, or Entity), .inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN]

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

EPAMedicationRequest
MedicationRequest
   identifierFiveWs.identifier
   identifier (RxPrescriptionProcessIdentifier)FiveWs.identifier
   identifier (RxOriginatorProcessIdentifier)FiveWs.identifier
   statusFiveWs.status
   intentFiveWs.class
   categoryFiveWs.class
   priorityFiveWs.grade
   medication[x]FiveWs.what[x]
   subjectFiveWs.subject[x], FiveWs.subject
   encounterFiveWs.context
   supportingInformationFiveWs.context
   authoredOnFiveWs.recorded
   requesterFiveWs.author
   performerFiveWs.actor
   recorderFiveWs.who
   reasonCodeFiveWs.why[x]
   reasonReferenceFiveWs.why[x]
   dispenseRequest
      performerFiveWs.who

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

EPAMedicationRequest
MedicationRequest
   meta
      securityCE/CNE/CWE subset one of the sets of component 1-3 or 4-6
      tagCE/CNE/CWE subset one of the sets of component 1-3 or 4-6
   extension
   extension (multiplePrescription)
      extension
      extension (indicator)
         value[x]
      extension (counter)
         value[x]
            numeratorSN (see also Range) or CQ
               valueSN.2 / CQ - N/A
            denominatorSN (see also Range) or CQ
               valueSN.2 / CQ - N/A
      extension (period)
         value[x]
            startDR.1
            endDR.2
      extension (id)
         value[x]
            systemCX.4 / EI-2-4
            valueCX.1 / EI.1
   identifierCX / EI (occasionally, more often EI maps to a resource id or a URL), ORC-2-Placer Order Number / ORC-3-Filler Order Number
   identifier (RxPrescriptionProcessIdentifier)CX / EI (occasionally, more often EI maps to a resource id or a URL), ORC-2-Placer Order Number / ORC-3-Filler Order Number
   identifier (RxOriginatorProcessIdentifier)CX / EI (occasionally, more often EI maps to a resource id or a URL), ORC-2-Placer Order Number / ORC-3-Filler Order Number
   statusReasonCE/CNE/CWE
   categoryCE/CNE/CWE
   medication[x]RXE-2-Give Code / RXO-1-Requested Give Code / RXC-2-Component Code
   subjectPID-3-Patient ID List
      identifierCX / EI (occasionally, more often EI maps to a resource id or a URL)
   encounterPV1-19-Visit Number
   authoredOnRXE-32-Original Order Date/Time / ORC-9-Date/Time of Transaction
   performerTypeCE/CNE/CWE
   reasonCodeCE/CNE/CWE, ORC-16-Order Control Code Reason /RXE-27-Give Indication/RXO-20-Indication / RXD-21-Indication / RXG-22-Indication / RXA-19-Indication
   groupIdentifierCX / EI (occasionally, more often EI maps to a resource id or a URL)
   courseOfTherapyTypeCE/CNE/CWE
   noteN/A
      author[x]N/A
      timeN/A
      textN/A
   dosageInstruction
      sequenceTQ1-1
      textRXO-6; RXE-21
      additionalInstructionCE/CNE/CWE, RXO-7
      patientInstructionRXO-7
      timingN/A
      asNeeded[x]TQ1-9
      siteCE/CNE/CWE, RXR-2
      routeCE/CNE/CWE, RXR-1
      methodCE/CNE/CWE, RXR-4
      doseAndRateTQ1-2
         typeCE/CNE/CWE, RXO-21; RXE-23
         dose[x]RXO-2, RXE-3
         rate[x]RXE22, RXE23, RXE-24
      maxDosePerPeriodN/A, RXO-23, RXE-19
      maxDosePerAdministrationSN (see also Range) or CQ
      maxDosePerLifetimeSN (see also Range) or CQ
   dispenseRequest
      initialFill
         quantitySN (see also Range) or CQ
         durationSN (see also Range) or CQ
      dispenseIntervalSN (see also Range) or CQ
      validityPeriodDR
      numberOfRepeatsAllowedRXE-12-Number of Refills
      quantitySN (see also Range) or CQ, RXD-4-Actual Dispense Amount / RXD-5.1-Actual Dispense Units.code / RXD-5.3-Actual Dispense Units.name of coding system
         valueSN.2 / CQ - N/A
         unit(see OBX.6 etc.) / CQ.2
         system(see OBX.6 etc.) / CQ.2
         code(see OBX.6 etc.) / CQ.2
      expectedSupplyDurationSN (see also Range) or CQ
   substitution
      allowed[x]RXO-9-Allow Substitutions / RXE-9-Substitution Status
      reasonCE/CNE/CWE, RXE-9 Substition status