US Veterans Health Administration FHIR Map Set Implementation Guide
1.6.0 - 250701 United States of America flag

Publication Build: This will be filled in by the publication tooling

Resource Profile: MedicationRequestOutpatient - Mappings

Active as of 2025-06-20

Mappings for the MedicationRequestOutpatient resource profile.

Scroll down for the Raw FHIR, CDW & SDA mappings (if any).

Note that the CDW, SDA and VPR XML mappings are derived from a look-up based on the VistA source.

Mapping Sources

Use Case: MedicationRequest: Outpatient (Source)Use Case: MedicationRequest: Outpatient (Source)DRUG (50)20NATIONAL DRUG FILE ENTRY22PSNDF VA PRODUCT NAME ENTRYPRESCRIPTION (52).001IEN.01RX #1ISSUE DATE2PATIENT4PROVIDER6DRUG7QTY8DAYS SUPPLY91.OF REFILLS10SIG11MAIL/WINDOW/PARK26EXPIRATION DATE26.1CANCEL DATE100STATUS113MEDICATION INSTRUCTIONS114PATIENT INSTRUCTIONS128INDICATION FOR USE129INDICATION FOR USE FLAGVA PRODUCT (50.68)5VA PRINT NAMEVA GENERIC (50.6)5CODING SYSTEMCODING SYSTEM (50.65).02CODEMEDICATION INSTRUCTIONS (52.0113).01DOSAGE ORDERED2UNITS6ROUTE[number][not a number]

Raw Mappings

key status direction source mapApproach mapCase FHIR Path subPath mapValue mapParameter mapComment FHIR URL | Ver
798 for review V2F PRESCRIPTION - IEN (52-.001) transform MedicationRequest.id ID_generation() http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
799 for review V2F PRESCRIPTION - STATUS (52-100) terminologyMaps MedicationRequest.status VF_OutMedRequestStatus http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
800 for review V2F PRESCRIPTION - STATUS (52-100) source value MedicationRequest.extension[http://va.gov/fhir/StructureDefinition/medicationrequest-pharmacyOrderStatus] .valueCoding.code .valueCoding.system = http://va.gov/terminology/vistaDefinedTerms/52-100 http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
801 for review V2F fixed value MedicationRequest.intent #order All records from file 52 are orders http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
803 for review V2F PRESCRIPTION - DRUG > DRUG - PSNDF VA PRODUCT NAME ENTRY > VA PRODUCT - VA PRINT NAME (52-6 > 50-22 > 50.68-5) source value MedicationRequest.medicationCodeableConcept .text http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
805 for review V2F PRESCRIPTION - DRUG > DRUG - NATIONAL DRUG FILE ENTRY > VA GENERIC - CODING SYSTEM > CODING SYSTEM - CODE (52-6 > 50-20 > 50.6-5 > 50.65-.02) transform MedicationRequest.medicationCodeableConcept.coding .code .system = http://www.nlm.nih.gov/research/umls/rxnorm Could add NDC as well, but usually not captured http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
806 for review V2F PRESCRIPTION - PATIENT (52-2) reference MedicationRequest.subject /Patient http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
807 for review V2F PRESCRIPTION - ISSUE DATE (52-1) source value MedicationRequest.authoredOn We are using Issue Date for MedicationRequest.authoredOn. SDA records Login Date (52-21) as Entered On because Entered On cannot be null. It records Issue Date (52-1) in an extension, VAStartDate. This may not be an issue for CDA because Login Date (first fill) should be on or shortly after Issue date. It could be an issue for interfaces striving for a finer level of granularity. http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
808 for review V2F PRESCRIPTION - PROVIDER (52-4) reference MedicationRequest.requester /Practitioner retrieve via order http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
809 for review V2F PRESCRIPTION - SIG (52-10) source value MedicationRequest.dosageInstruction .text http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
810 for review V2F PRESCRIPTION - PATIENT INSTRUCTIONS (52-114) source value MedicationRequest.dosageInstruction .patientInstruction http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
811 for review V2F PRESCRIPTION - MEDICATION INSTRUCTIONS > MEDICATION INSTRUCTIONS - DOSAGE ORDERED (52-113 > 52.0113-.01) source value number MedicationRequest.dosageInstruction .doseAndRate.doseQuantity.value http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
812 for review V2F PRESCRIPTION - MEDICATION INSTRUCTIONS > MEDICATION INSTRUCTIONS - UNITS (52-113 > 52.0113-2) source value MedicationRequest.dosageInstruction .doseAndRate.doseQuantity.unit http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
815 for review V2F PRESCRIPTION - EXPIRATION DATE (52-26) source value MedicationRequest.dispenseRequest .validityPeriod.end confirm http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
1704 for review V2F PRESCRIPTION - CANCEL DATE (52-26.1) source value MedicationRequest.extension[http://va.gov/fhir/StructureDefinition/medicationrequest-cancelDate] .valueDateTime http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
816 for review V2F PRESCRIPTION - # OF REFILLS (52-9) source value MedicationRequest.dispenseRequest .numberOfRepeatsAllowed confirm http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
1669 for review V2F PRESCRIPTION - QTY (52-7) source value MedicationRequest.dispenseRequest .quantity.value http://hl7.org/fhir/StructureDefinition/MedicationRequest | 4.0.1
1670 for review V2F PRESCRIPTION - DAYS SUPPLY (52-8) source value MedicationRequest.dispenseRequest .expectedSupplyDuration http://hl7.org/fhir/StructureDefinition/MedicationRequest | 4.0.1
841 for review V2F PRESCRIPTION - MEDICATION INSTRUCTIONS > MEDICATION INSTRUCTIONS - DOSAGE ORDERED (52-113 > 52.0113-.01) source value not a number MedicationRequest.dosageInstruction.doseAndRate .extension[http://hl7.org/fhir/StructureDefinition/originalText].valueString http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
1664 for review V2F PRESCRIPTION - RX # (52-.01) source value MedicationRequest.identifier .value .type=http://terminology.hl7.org/CodeSystem/v2-0203#FILL http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
1665 for review V2F PRESCRIPTION - MEDICATION INSTRUCTIONS > MEDICATION INSTRUCTIONS - ROUTE (52-113 > 52.0113-6) source value MedicationRequest.dosageInstruction.route.coding .code .system=http://va.gov/terminology/vistaDefinedTerms/53.1-3 http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
1666 for review V2F fixed value MedicationRequest.category http://terminology.hl7.org/CodeSystem/medicationrequest-category#outpatient http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
1705 for review V2F PRESCRIPTION - INDICATION FOR USE (52-128) source value MedicationRequest.reasonCode .text http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
1706 for review V2F PRESCRIPTION - INDICATION FOR USE FLAG (52-129) transform MedicationRequest.extension[http://va.gov/fhir/StructureDefinition/medicationrequest-includeIndicationInSig] .valueBoolean VF_Boolean http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
1746 for review V2F PRESCRIPTION - MAIL/WINDOW/PARK (52-11) fixed value P MedicationRequest.extension[http://va.gov/fhir/StructureDefinition/medicationrequest-pharmacyOrderStatus] .valueCoding.code #active-parked .valueCoding.system = http://va.gov/terminology/vistaDefinedTerms/52-100 This value is consistent with Active. Add a second value, or overwrite Active with Parked? http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1
1853 for review V2F MedicationRequest.extension[http://va.gov/fhir/StructureDefinition/medicationrequest-remainingRefillCount].valueInteger A value calculated by subtracting first fill (based on Released) and refills (52.1) from total fills (52-9 # OF REFILLS + 1) http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest | 5.0.1

Mappings to Structures in this Implementation Guide

No Mappings Found

Mappings to other Structures

No Mappings Found

Other Mappings

NameWorkflow PatternMapping to NCPDP SCRIPT 10.6RIM MappingFiveWs Pattern MappingHL7 v2 Mappingdoco
.. MedicationRequest
Request
Message/Body/NewRx
CombinedMedicationRequest
... id
... meta
... implicitRules
... language
... text
Act.text?
... contained
N/A
... Slices for extension
.... extension:medicationrequest-pharmacyOrderStatus
..... id
n/a
..... extension
..... url
N/A
..... value[x]
N/A
...... id
n/a
...... extension
n/a
...... system
./codeSystem
C*E.3
...... version
./codeSystemVersion
C*E.7
...... code
./code
C*E.1
...... display
CV.displayName
C*E.2 - but note this is not well followed
...... userSelected
CD.codingRationale
Sometimes implied by being first
.... extension:medicationrequest-cancelDate
..... id
n/a
..... extension
..... url
N/A
..... value[x]
N/A
.... extension:medicationrequest-includeIndicationInSig
..... id
n/a
..... extension
..... url
N/A
..... value[x]
N/A
.... extension:medicationrequest-remainingRefillCount
..... id
n/a
..... extension
..... url
N/A
..... value[x]
N/A
... modifierExtension
N/A
... identifier
Request.identifier
Message/Header/PrescriberOrderNumber
.id
FiveWs.identifier
ORC-2-Placer Order Number / ORC-3-Filler Order Number
.... id
n/a
.... extension
n/a
.... use
Role.code or implied by context
N/A
.... type
Role.code or implied by context
CX.5
.... system
II.root or Role.id.root
CX.4 / EI-2-4
.... value
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
CX.1 / EI.1
.... period
Role.effectiveTime or implied by context
CX.7 + CX.8
.... assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • CX.4 / (CX.4
  • CX.9
  • CX.10)
... status
Request.status
no mapping
.statusCode
FiveWs.status
... statusReason
Request.statusReason
  • .inboundRelationship[typeCode=SUBJ].source[classCode=CACT
  • moodCode=EVN].reasonCOde
... intent
Request.intent
.moodCode (nuances beyond PRP/PLAN/RQO would need to be elsewhere)
FiveWs.class
... Slices for category
Message/Body/NewRx/MedicationPrescribed/Directions or Message/Body/NewRx/MedicationPrescribed/StructuredSIG
  • .inboundRelationship[typeCode=COMP].source[classCode=OBS
  • moodCode=EVN
  • code="type of medication usage"].value
FiveWs.class
.... category:us-core
Message/Body/NewRx/MedicationPrescribed/Directions or Message/Body/NewRx/MedicationPrescribed/StructuredSIG
  • .inboundRelationship[typeCode=COMP].source[classCode=OBS
  • moodCode=EVN
  • code="type of medication usage"].value
FiveWs.class
... priority
Request.priority
.priorityCode
FiveWs.grade
... doNotPerform
SubstanceAdministration.actionNegationInd
... reported[x]
.participation[typeCode=INF].role
... Slices for medication[x]
Request.code
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
consumable.administrableMedication
FiveWs.what[x]
RXE-2-Give Code / RXO-1-Requested Give Code / RXC-2-Component Code
.... medication[x]:medicationCodeableConcept
Request.code
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
consumable.administrableMedication
FiveWs.what[x]
RXE-2-Give Code / RXO-1-Requested Give Code / RXC-2-Component Code
..... id
n/a
..... extension
n/a
..... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
...... id
n/a
...... extension
n/a
...... system
./codeSystem
C*E.3
...... version
./codeSystemVersion
C*E.7
...... code
./code
C*E.1
...... display
CV.displayName
C*E.2 - but note this is not well followed
...... userSelected
CD.codingRationale
Sometimes implied by being first
..... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
... subject
Request.subject
Message/Body/NewRx/Patient (need detail to link to specific patient … Patient.Identification in SCRIPT)
.participation[typeCode=AUT].role
FiveWs.subject
PID-3-Patient ID List
... encounter
Request.context
no mapping
  • .inboundRelationship[typeCode=COMP].source[classCode=ENC
  • moodCode=EVN
  • code="type of encounter or episode"]
FiveWs.context
PV1-19-Visit Number
... supportingInformation
Request.supportingInfo
  • .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)]
FiveWs.context
... authoredOn
Request.authoredOn
Message/Body/NewRx/MedicationPrescribed/WrittenDate
author.time
FiveWs.recorded
RXE-32-Original Order Date/Time / ORC-9-Date/Time of Transaction
... requester
Request.requester
.participation[typeCode=AUT].role
FiveWs.author
... performer
Request.performer
.participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]
FiveWs.actor
... performerType
Request.performerType
.participation[typeCode=PRF].role[scoper.determinerCode=KIND].code
... recorder
.participation[typeCode=TRANS].role[classCode=ASSIGNED].code (HealthcareProviderType)
FiveWs.who
... reasonCode
Request.reasonCode
Message/Body/NewRx/MedicationPrescribed/Diagnosis/Primary/Value
reason.observation.reasonCode
FiveWs.why[x]
ORC-16-Order Control Code Reason /RXE-27-Give Indication/RXO-20-Indication / RXD-21-Indication / RXG-22-Indication / RXA-19-Indication
.... id
n/a
.... extension
n/a
.... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
.... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
... reasonReference
Request.reasonReference
no mapping
reason.observation[code=ASSERTION].value
FiveWs.why[x]
... instantiatesCanonical
Request.instantiates
.outboundRelationship[typeCode=DEFN].target
... instantiatesUri
.outboundRelationship[typeCode=DEFN].target
... basedOn
Request.basedOn
  • .outboundRelationship[typeCode=FLFS].target[classCode=SBADM or PROC or PCPR or OBS
  • moodCode=RQO orPLAN or PRP]
... groupIdentifier
Request.groupIdentifier
  • .outboundRelationship(typeCode=COMP].target[classCode=SBADM
  • moodCode=INT].id
... courseOfTherapyType
Act.code where classCode = LIST and moodCode = EVN
... insurance
Request.insurance
.outboundRelationship[typeCode=COVBY].target
... note
Request.note
Message/Body/NewRx/MedicationPrescribed/Note
  • .inboundRelationship[typeCode=SUBJ]/source[classCode=OBS
  • moodCode=EVN
  • code="annotation"].value
... dosageInstruction
Request.occurrence[x]
see dosageInstruction mapping
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... sequence
.text
TQ1-1
.... text
.text
RXO-6; RXE-21
.... additionalInstruction
.text
RXO-7
.... patientInstruction
.text
RXO-7
.... timing
.effectiveTime
.... asNeeded[x]
  • .outboundRelationship[typeCode=PRCN].target[classCode=OBS
  • moodCode=EVN
  • code="as needed"].value=boolean or codable concept
TQ1-9
.... site
.approachSiteCode
RXR-2
.... route
.routeCode
RXR-1
..... id
n/a
..... extension
n/a
..... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
...... id
n/a
...... extension
n/a
...... system
./codeSystem
C*E.3
...... version
./codeSystemVersion
C*E.7
...... code
./code
C*E.1
...... display
CV.displayName
C*E.2 - but note this is not well followed
...... userSelected
CD.codingRationale
Sometimes implied by being first
..... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
.... method
.doseQuantity
RXR-4
.... doseAndRate
TQ1-2
..... id
n/a
..... Slices for extension
n/a
...... extension:originalText
....... id
n/a
....... extension
....... url
N/A
....... value[x]
N/A
..... type
RXO-21; RXE-23
..... Slices for dose[x]
.doseQuantity
  • RXO-2
  • RXE-3
...... dose[x]:doseQuantity
.doseQuantity
  • RXO-2
  • RXE-3
....... id
n/a
....... extension
n/a
....... value
  • PQ.value
  • CO.value
  • MO.value
  • IVL.high or IVL.low depending on the value
SN.2 / CQ - N/A
....... comparator
IVL properties
SN.1 / CQ.1
....... unit
PQ.unit
(see OBX.6 etc.) / CQ.2
....... system
  • CO.codeSystem
  • PQ.translation.codeSystem
(see OBX.6 etc.) / CQ.2
....... code
  • PQ.code
  • MO.currency
  • PQ.translation.code
(see OBX.6 etc.) / CQ.2
..... rate[x]
.rateQuantity
  • RXE22
  • RXE23
  • RXE-24
.... maxDosePerPeriod
.maxDoseQuantity
  • RXO-23
  • RXE-19
.... maxDosePerAdministration
not supported
.... maxDosePerLifetime
not supported
... dispenseRequest
Message/Body/NewRx/MedicationPrescribed/ExpirationDate
component.supplyEvent
.... id
n/a
.... extension
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
Message/Body/NewRx/MedicationPrescribed/Refills
effectiveTime
..... id
n/a
..... extension
n/a
..... start
./low
DR.1
..... end
./high
DR.2
.... numberOfRepeatsAllowed
Message/Body/NewRx/MedicationPrescribed/Quantity
repeatNumber
RXE-12-Number of Refills
.... quantity
Message/Body/NewRx/MedicationPrescribed/DaysSupply
quantity
RXD-4-Actual Dispense Amount / RXD-5.1-Actual Dispense Units.code / RXD-5.3-Actual Dispense Units.name of coding system
..... id
n/a
..... extension
n/a
..... value
  • PQ.value
  • CO.value
  • MO.value
  • IVL.high or IVL.low depending on the value
SN.2 / CQ - N/A
..... comparator
IVL properties
SN.1 / CQ.1
..... unit
PQ.unit
(see OBX.6 etc.) / CQ.2
..... system
  • CO.codeSystem
  • PQ.translation.codeSystem
(see OBX.6 etc.) / CQ.2
..... code
  • PQ.code
  • MO.currency
  • PQ.translation.code
(see OBX.6 etc.) / CQ.2
.... expectedSupplyDuration
Message/Body/NewRx/MedicationPrescribed/Substitutions
expectedUseTime
.... performer
  • .outboundRelationship[typeCode=COMP].target[classCode=SPLY
  • moodCode=RQO] .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]
FiveWs.who
... substitution
specific values within Message/Body/NewRx/MedicationPrescribed/Substitutions
subjectOf.substitutionPersmission
.... id
n/a
.... extension
n/a
.... modifierExtension
N/A
.... allowed[x]
specific values within Message/Body/NewRx/MedicationPrescribed/Substitutions
code
RXO-9-Allow Substitutions / RXE-9-Substitution Status
.... reason
not mapped
reasonCode
RXE-9 Substition status
... priorPrescription
Request.replaces
not mapped
  • .outboundRelationship[typeCode=?RPLC or ?SUCC]/target[classCode=SBADM
  • moodCode=RQO]
... detectedIssue
  • .inboundRelationship[typeCode=SUBJ]/source[classCode=ALRT
  • moodCode=EVN].value
... eventHistory
Request.relevantHistory
  • .inboundRelationship(typeCode=SUBJ].source[classCode=CACT
  • moodCode=EVN]

doco Documentation for this format