Medication Prescription and Dispense (MPD)
1.0.0-preview - ci-build

Medication Prescription and Dispense (MPD), published by Integrating the Healthcare Enterprise (IHE). This guide is not an authorized publication; it is the continuous build for version 1.0.0-preview built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/IHE/pharm-mpd/tree/92/merge and changes regularly. See the Directory of published versions

## Resource Profile: IHEMedicationOrder - Mappings

Active as of 2025-05-01

Mappings for the IHEMedicationOrder resource profile.

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

IHEMedicationOrder
MedicationRequest | Request
identifier | Request.identifier
basedOn | Request.basedOn
priorPrescription | Request.replaces
groupIdentifier | Request.groupIdentifier
status | Request.status
statusReason | Request.statusReason
intent | Request.intent
priority | Request.priority
medication | Request.code
subject | Request.subject
encounter | Request.encounter
supportingInformation | Request.supportingInfo
authoredOn | Request.authoredOn
requester | Request.requester
performerType | Request.performerType
performer | Request.performer
reason | Request.reason
insurance | Request.insurance
note | Request.note
eventHistory | Request.relevantHistory

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

IHEMedicationOrder
MedicationRequest | Message/Body/NewRx
identifier | Message/Header/PrescriberOrderNumber
priorPrescription | not mapped
status | no mapping
category | Message/Body/NewRx/MedicationPrescribed/Directions or Message/Body/NewRx/MedicationPrescribed/StructuredSIG
medication | 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
subject | Message/Body/NewRx/Patient (need detail to link to specific patient … Patient.Identification in SCRIPT)
encounter | no mapping
authoredOn | Message/Body/NewRx/MedicationPrescribed/WrittenDate
reason | Message/Body/NewRx/MedicationPrescribed/Diagnosis/Primary/Value
note | Message/Body/NewRx/MedicationPrescribed/Note
dispenseRequest | Message/Body/NewRx/MedicationPrescribed/ExpirationDate
validityPeriod | Message/Body/NewRx/MedicationPrescribed/Refills
numberOfRepeatsAllowed | Message/Body/NewRx/MedicationPrescribed/Quantity
quantity | Message/Body/NewRx/MedicationPrescribed/DaysSupply
expectedSupplyDuration | Message/Body/NewRx/MedicationPrescribed/Substitutions
substitution | specific values within Message/Body/NewRx/MedicationPrescribed/Substitutions
allowed[x] | specific values within Message/Body/NewRx/MedicationPrescribed/Substitutions
reason | not mapped

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

IHEMedicationOrder
MedicationRequest | clinical.medication
identifier | FiveWs.identifier
status | FiveWs.status
intent | FiveWs.class
category | FiveWs.class
priority | FiveWs.grade
medication | FiveWs.what[x]
subject | FiveWs.subject[x]
encounter | FiveWs.context
supportingInformation | FiveWs.context
authoredOn | FiveWs.recorded
requester | FiveWs.author
performer | FiveWs.actor
recorder | FiveWs.who
reason | FiveWs.why[x]
dispenseRequest |
dispenser | FiveWs.who

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

IHEMedicationOrder
MedicationRequest | Entity, Role, or Act,CombinedMedicationRequest
text | Act.text?
contained | N/A
modifierExtension | N/A
identifier | .id
basedOn | .outboundRelationship[typeCode=FLFS].target[classCode=SBADM or PROC or PCPR or OBS, moodCode=RQO orPLAN or PRP]
priorPrescription | .outboundRelationship[typeCode=?RPLC or ?SUCC]/target[classCode=SBADM,moodCode=RQO]
groupIdentifier | .outboundRelationship(typeCode=COMP].target[classCode=SBADM, moodCode=INT].id
status | .statusCode
statusReason | .inboundRelationship[typeCode=SUBJ].source[classCode=CACT, moodCode=EVN].reasonCOde
statusChanged | subjectOf Observation[code = statusChange].value = date
intent | .moodCode (nuances beyond PRP/PLAN/RQO would need to be elsewhere)
category | .inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code="type of medication usage"].value
priority | .priorityCode
doNotPerform | SubstanceAdministration.actionNegationInd
medication | consumable.administrableMedication
subject | .participation[typeCode=AUT].role
informationSource | .participation[typeCode=INF].role[classCode=PAT, or codes for Practitioner or Related Person or Practitioner Role or Organization
encounter | .inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN, code="type of encounter or episode"]
supportingInformation | .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)]
authoredOn | author.time
requester | .participation[typeCode=AUT].role
reported | .participation[typeCode=INF].role
performerType | .participation[typeCode=PRF].role[scoper.determinerCode=KIND].code
performer | .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]
device | .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]
recorder | .participation[typeCode=TRANS].role[classCode=ASSIGNED].code (HealthcareProviderType)
reason | reason.observation.reasonCode | reason.observation[code=ASSERTION].value
courseOfTherapyType | Act.code where classCode = LIST and moodCode = EVN
insurance | .outboundRelationship[typeCode=COVBY].target
note | .inboundRelationship[typeCode=SUBJ]/source[classCode=OBS,moodCode=EVN,code="annotation"].value
renderedDosageInstruction | SubstanceAdministration.text
effectiveDosePeriod | substanceAdministration.effectiveTime
dosageInstruction | see dosageInstruction mapping
id | n/a
extension | n/a
modifierExtension | N/A
sequence | .text
text | .text
additionalInstruction | .text
patientInstruction | .text
timing | .effectiveTime
id | n/a
extension | n/a
modifierExtension | N/A
event | QLIST<TS>
repeat | Implies PIVL or EIVL
id | n/a
extension | n/a
bounds[x] | IVL(TS) used in a QSI
count | PIVL.count
countMax | PIVL.count
duration | PIVL.phase
durationMax | PIVL.phase
durationUnit | PIVL.phase.unit
frequency | PIVL.phase
frequencyMax | PIVL.phase
period | PIVL.phase
periodMax | PIVL.phase
periodUnit | PIVL.phase.unit
dayOfWeek | n/a
timeOfDay | n/a
when | EIVL.event
offset | EIVL.offset
code | QSC.code
asNeeded | .outboundRelationship[typeCode=PRCN].target[classCode=OBS, moodCode=EVN, code="as needed"].value=boolean or codable concept
asNeededFor | .outboundRelationship[typeCode=PRCN].target[classCode=OBS, moodCode=EVN, code="as needed"].value=boolean or codable concept
site | .approachSiteCode
route | .routeCode
method | SubstanceAdministration.methodCode
doseAndRate | SubstanceAdministration.doseQuantity; SubstanceAdministration.RateQuantity
id | n/a
extension | n/a
dose[x] | .doseQuantity
dose[x] (doseQuantity) | .doseQuantity
rate[x] | .rateQuantity
maxDosePerPeriod | .maxDoseQuantity
maxDosePerAdministration | not supported
maxDosePerLifetime | not supported
dispenseRequest | component.supplyEvent
id | n/a
modifierExtension | N/A
initialFill | SubstanceAdministration -> ActRelationship[sequenceNumber = '1'] -> Supply
id | n/a
extension | n/a
modifierExtension | N/A
quantity | Supply.quantity[moodCode=RQO]
duration | Supply.effectivetime[moodCode=RQO]
dispenseInterval | Supply.effectivetime[moodCode=RQO]
validityPeriod | effectiveTime
numberOfRepeatsAllowed | repeatNumber
quantity | quantity
expectedSupplyDuration | expectedUseTime
dispenser | .outboundRelationship[typeCode=COMP].target[classCode=SPLY, moodCode=RQO] .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]
dispenserInstruction | Supply.text
doseAdministrationAid | Supply.administerableMedication.product.asContent.container.code
substitution | subjectOf.substitutionPersmission
id | n/a
extension | n/a
modifierExtension | N/A
allowed[x] | code
reason | reasonCode
eventHistory | .inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN]

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

IHEMedicationOrder
MedicationRequest |
identifier | ORC-2-Placer Order Number / ORC-3-Filler Order Number
medication | RXE-2-Give Code / RXO-1 Requested Give Code / RXC-2 Component Code
subject | PID-3 Patient ID List
encounter | PV1-19 Visit Number
authoredOn | RXE-32 Original Order Date/Time / ORC-9-Date Time of Transaction
reason | ORC-16 Order Control Code Reason /RXE-27 Give Indication/RXO-20-Indication / RXD-21 Indication / RXG-22 Indication / RXA-19 Indication
dosageInstruction |
sequence | TQ1-1
text | RXO-6; RXE-21
additionalInstruction | RXO-7
patientInstruction | RXO-7
asNeeded | TQ1-9
asNeededFor | TQ1-9
site | RXR-2
route | RXR-1
method | RXR-4
doseAndRate | TQ1-2
type | RXO-21; RXE-23
dose[x] | RXO-2, RXE-3
dose[x] (doseQuantity) | RXO-2, RXE-3
rate[x] | RXE22, RXE23, RXE-24
maxDosePerPeriod | RXO-23, RXE-19
dispenseRequest |
numberOfRepeatsAllowed | RXE-12 Number of Refills
quantity | RXD-4 Actual Dispense Amount / RXD-5.1 Actual Dispense Units.code / RXD-5.3 Actual Dispense Units.name of coding system
substitution |
allowed[x] | RXO-9 Allow Substitutions / RXE-9 Substitution Status
reason | RXE-9 Substition status