Implementation Guide
ePA Medication Service
Version 1.3.5 - release

## Resource Profile: EPAMedicationPharmaceuticalProduct - Mappings

Active as of 2026-03-20

Mappings for the epa-medication-pharmaceutical-product resource profile.

#### Mappings to Structures in this Implementation Guide

No Mappings Found

#### Mappings to other Structures

No Mappings Found

#### Other Mappings

Name | Mapping to NCPDP SCRIPT 10.6 | RIM Mapping | FiveWs Pattern Mapping | HL7 v2 Mapping
--- | --- | --- | --- | ---
Medication | NewRx/MedicationPrescribed -or- RxFill/MedicationDispensed -or- RxHistoryResponse/MedicationDispensed -or- RxHistoryResponse/MedicationPrescribed | ManufacturedProduct[classCode=ADMM] |  |
id |  |  |  |
meta |  |  |  |
id |  | n/a |  |
extension |  | n/a |  |
versionId |  |  |  |
lastUpdated |  |  |  |
source |  |  |  |
profile |  |  |  |
security |  |  |  |
tag |  |  |  |
implicitRules |  |  |  |
language |  |  |  |
text |  | Act.text? |  |
contained |  | N/A |  |
Slices for extension |  |  |  |
extension:rxPrescriptionProcessIdentifier |  |  |  |
extension:isVaccine |  |  |  |
id |  | n/a |  |
extension |  |  |  |
url |  | N/A |  |
value[x] |  | N/A |  |
extension:drugCategory |  |  |  |
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:normSizeCode |  | N/A |  |
id |  | n/a |  |
extension |  | n/a |  |
url |  | N/A |  |
value[x] |  | N/A |  |
extension:packaging |  |  |  |
id |  | n/a |  |
extension |  |  |  |
url |  | N/A |  |
value[x] |  | N/A |  |
extension:manufacturingInstructions |  |  |  |
id |  | n/a |  |
extension |  |  |  |
url |  | N/A |  |
value[x] |  | N/A |  |
extension:type |  |  |  |
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
modifierExtension |  | N/A |  |
Slices for identifier |  | .id | FiveWs.identifier |
identifier:EPAMedicationUniqueIdentifier |  | .id | FiveWs.identifier |
id |  | n/a |  |
extension |  | n/a |  |
use |  | Role.code or implied by context |  | N/A
type |  | Role.code or implied by context |  | CX.5
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
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)
identifier:RxOriginatorProcessIdentifier |  | .id | FiveWs.identifier |
id |  | n/a |  |
extension |  | n/a |  |
use |  | Role.code or implied by context |  | N/A
type |  | Role.code or implied by context |  | CX.5
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
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)
code | coding.code = //element(* MedicationType)/DrugCoded/ProductCode coding.system = //element(* MedicationType)/DrugCoded/ProductCodeQualifier coding.display = //element(* MedicationType)/DrugDescription | .code | FiveWs.class | RXO-1.1-Requested Give Code.code / RXE-2.1-Give Code.code / RXD-2.1-Dispense/Give Code.code / RXG-4.1-Give Code.code /RXA-5.1-Administered Code.code / RXC-2.1 Component Code
id |  | n/a |  |
extension |  | n/a |  |
Slices for coding |  | union(. ./translation) |  | C*E.1-8 C*E.10-22
coding:pzn |  | union(. ./translation) |  | C*E.1-8 C*E.10-22
coding:atc-de |  | 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
coding:ask |  | 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
status |  | .statusCode |  |
manufacturer | no mapping | .player.scopingRole[typeCode=MANU].scoper | FiveWs.actor | RXD-20-Substance Manufacturer Name / RXG-21-Substance Manufacturer Name / RXA-17-Substance Manufacturer Name
id |  | n/a |  |
extension |  | n/a |  |
reference |  | N/A |  |
type |  | N/A |  |
identifier |  | .identifier |  |
display |  | N/A |  |
form | coding.code = //element(* DrugCodedType)/FormCode coding.system = //element(* DrugCodedType)/FormSourceCode | .formCode |  | RXO-5-Requested Dosage Form / RXE-6-Give Dosage Form / RXD-6-Actual Dosage Form / RXG-8-Give Dosage Form / RXA-8-Administered Dosage Form
id |  | n/a |  |
extension |  | n/a |  |
Slices for coding |  | union(. ./translation) |  | C*E.1-8 C*E.10-22
coding:kbvDarreichungsform |  | 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
amount |  | .quantity |  |
id |  | n/a |  |
extension |  | n/a |  |
numerator |  | .numerator |  |
id |  | n/a |  |
Slices for extension |  |  |  |
extension:packagingSize |  |  |  |
id |  | n/a |  |
extension |  |  |  |
url |  | N/A |  |
value[x] |  | N/A |  |
extension:totalQuantity |  |  |  |
id |  | n/a |  |
extension |  |  |  |
url |  | N/A |  |
value[x] |  | 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
denominator |  | .denominator |  |
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
ingredient |  | .scopesRole[typeCode=INGR] |  |
id |  | n/a |  |
Slices for extension |  |  |  |
extension:darreichungsform |  |  |  |
id |  | n/a |  |
extension |  |  |  |
url |  | N/A |  |
value[x] |  | N/A |  |
modifierExtension |  | N/A |  |
Slices for item[x] | coding.code = //element(* MedicationType)/DrugCoded/ProductCode coding.system = //element(* MedicationType)/DrugCoded/ProductCodeQualifier coding.display = //element(* MedicationType)/DrugDescription | .player |  | RXO-1-Requested Give Code / RXE-2-Give Code / RXD-2-Dispense/Give Code / RXG-4-Give Code / RXA-5-Administered Code
item[x]:itemCodeableConcept | coding.code = //element(* MedicationType)/DrugCoded/ProductCode coding.system = //element(* MedicationType)/DrugCoded/ProductCodeQualifier coding.display = //element(* MedicationType)/DrugDescription | .player |  | RXO-1-Requested Give Code / RXE-2-Give Code / RXD-2-Dispense/Give Code / RXG-4-Give Code / RXA-5-Administered Code
id |  | n/a |  |
extension |  | n/a |  |
Slices for coding |  | union(. ./translation) |  | C*E.1-8 C*E.10-22
Slices for coding |  |  |  |
coding:ask |  | 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
coding:atc-de |  | 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
coding:pzn |  | 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
item[x]:itemReference | coding.code = //element(* MedicationType)/DrugCoded/ProductCode coding.system = //element(* MedicationType)/DrugCoded/ProductCodeQualifier coding.display = //element(* MedicationType)/DrugDescription | .player |  | RXO-1-Requested Give Code / RXE-2-Give Code / RXD-2-Dispense/Give Code / RXG-4-Give Code / RXA-5-Administered Code
isActive |  | NA |  |
strength | //element(* DrugCodedType)/Strength | .quantity |  | RXO-2-Requested Give Amount - Minimum & RXO-4-Requested Give Units / RXO-3-Requested Give Amount - Maximum & RXO-4-Requested Give Units / RXO-11-Requested Dispense Amount & RXO-12-Requested Dispense Units / RXE-3-Give Amount - Minimum & RXE-5-Give Units / RXE-4-Give Amount - Maximum & RXE-5-Give Units / RXE-10-Dispense Amount & RXE-10-Dispense Units
id |  | n/a |  |
Slices for extension |  | n/a |  |
extension:amountText |  |  |  |
id |  | n/a |  |
extension |  |  |  |
url |  | N/A |  |
value[x] |  | N/A |  |
numerator |  | .numerator |  |
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
denominator |  | .denominator |  |
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
batch | no mapping | .player[classCode=CONT] |  |
id |  | n/a |  |
extension |  | n/a |  |
modifierExtension |  | N/A |  |
lotNumber | no mapping | .id |  | RXA-15 Substance Lot Number / RXG-19 Substance Lot Number
expirationDate | no mapping | participation[typeCode=CSM].role[classCode=INST].scopedRole.scoper[classCode=MMAT].expirationTime |  | RXA-16 Substance Expiration Date / RXG-20 Substance Expiration Date
Documentation for this format