US Prescription Drug Monitoring Program (PDMP)
1.0.0-ballot - STU1 Ballot United States of America flag

This page is part of the US Prescription Drug Monitoring Program (PDMP) (v1.0.0-ballot: STU1 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. . For a full list of available versions, see the Directory of published versions

Mappings to Related Standards

Other Data Standards Supporting the PDMP Ecosystem

The broad PDMP ecosystem - from writing a prescription to reporting PDMP history, employs a combination of NCPDP, ASAP and PMIX/NIEM standards, as illustrated below:

Figure 1: Standards supporting the PDMP ecosystem

In Figure 8.1, above,

  • prescribers write a prescription and forward it electronically to the pharmacy using NCPDP SCRIPT.
  • upon dispensing or sale of the prescription, the pharmacy reports the dispensation to the appropriate PDMP system(s) using ASAP
  • PDMP systems exchange information between each other using PMIX/NIEM
  • in contrast, getting the PDMP information to providers (prescribers and pharmacists) does not utilize a single, consistent, methodology. Current implementations include
    • all PDMP provide a web portal for provider access
    • some PDMPs support NCPDP SCRIPT RxHistory for PDMP data transmission
    • some PDMPs support ASAP Web Services for PDMP data transmission
    • some PDMPs have other proprietary integration options for PDMP data transmission

The stakeholders that participated in the development of this Implementation Guide agreed that mappings between FHIR, PMIX/NIEM, and NCPDP SCRIPT RxHistory may be beneficial for users of this Implementation Guide.

Mapping

Specific mapping from each FHIR resource in this Implementation Guide to PMIX/NIEM and NCPDP SCRIPT RxHistory is included in the description of each resource. Specific links follow. Generally, On the resource page (e.g., PDMP MedicationDispense), click on the ‘Mappings’ tab and then scroll to the bottom of the page to find the PMIX/NIEM and NCPDP SCRIPT RxHistory mapping.

Links to the mappings

The following tables consolidate the mappings for request and response scenarios.

NCPDP Mappings for Request

This section includes the minimal mapping for the request from an EHR to a state PDMP using NCPDP SCRIPT 2017071 RxHistoryRequest.

Request Data Element NCPDP Data Element FHIR Data Element
Request Requester Prescriber/NonVeterinarian/Name Practitioner.name
Requester Role RequestorRole PractitionerRole.code
Request ID Message/Header/MessageID MessageHeader.id
Request date/ timestamp Message/Header/SentTime MessageHeader.extension (StructureDefinition-header-timestamp-extension)
Requester Identifier NPI Number* Prescriber/NonVeterinarian/Identification/NPI Practitioner.identifier
DEA Number* Prescriber/NonVeterinarian/Identification/DEANumber Practitioner.identifier
Requesting Facility ID DEA Number* Facility/Identification/DEANumber Organization.identifier
NCPDP Number* Facility/Identification/NCPDPID Organization.identifier
NPI* Facility/Identification/NPI Organization.identifier
Requesting Facility Facility Name Facility/FacilityName Organization.name
State code of Requesting Facility Facility/Address/StateProvince Organization.address.state
Patient First Name Patient/HumanPatient/Name/FirstName MedicationDispense.subject(Patient) --> Patient.name.given
Last Name Patient/HumanPatient/Name/LastName MedicationDispense.subject(Patient) --> Patient.name.family
Date of Birth Patient/HumanPatient/DateOfBirth MedicationDispense.subject(Patient) --> Patient.birthdate
Request Prescription Date Range Start Date RequestedDates/StartDate MedicationDispense.authorizingPrescription.dispenseRequest.validityPeriod
End Date RequestedDates/EndDate; MedicationDispense.authorizingPrescription.dispenseRequest.validityPeriod
* Conditionally required data elements have asterisks (*), meaning at least one data element is required within this category. For example, under Requesting Facility ID, one of the three data elements (DEA Number, NCPDP Number or NPI) is required.

NCPDP Mappings for Response

This section includes the minimal mapping for the response from a state to an EHR using NCPDP SCRIPT 2017071 RxHistoryResponse.

</tr>
Response Data Element NCPDP Data Element FHIR Data Element
Routing Information
Response Date/Timestamp Message/Header/SentTime MessageHeader.extension (StructureDefinition-header-timestamp-extension)
Response Prescription Date Range (Start Date) RequestedDates/StartDate MessageHeader.extension (StructureDefinition-response-prescription-period-extension - Period.start)
Response Prescription Date Range (End date) RequestedDates/EndDate MessageHeader.extension (StructureDefinition-response-prescription-period-extension - Period.end)
Request ID Message/Header/RelatesToMessageID MessageHeader.response.identifier
Message Body
Patient Patient First Name Patient/HumanPatient/Name/FirstName Patient.name.given
Patient Last Name Patient/HumanPatient/Name/LastName Patient.name.family
Patient Date of Birth Patient/HumanPatient/DateOfBirth Patient.birthdate
Patient Gender Patient/HumanPatient/Gender Patient.gender
Patient Street Address 1 Patient/HumanPatient/Address/AddressLine1 Patient.address.line[0]
Patient Street Address 2 Patient/HumanPatient/Address/AddressLine2 Patient.address.line[1]
Patient City Address Patient/HumanPatient/Address/City Patient.address.city
Patient State Code Patient/HumanPatient/Address/StateProvince Patient.address.state
Patient Zip Code Patient/HumanPatient/Address/PostalCode Patient.address.postalCode
SSN* Patient/HumanPatient/Identification/SocialSecurity Patient.identifier
Prescription Prescription Filled Date MedicationDispensed/LastFillDate MedicationDispense.whenPrepared
Prescription Written Date MedicationDispensed/WrittenDate MedicationDispense.authorizingPrescription.authoredOn
Prescription Number MedicationDispensed/HistorySource/SourceReference MedicationDispense.Identifier
Drug Name[1] MedicationDispensed/DrugDescription MedicationDispense.medicationReference.text
Drug Strength[1] MedicationDispensed/DrugCoded/Strength MedicationDispense.medicationReference.ingredient.strength
Dosage Form[2] MedicationDispensed/Quantity/QuantityUnitOfMeasure MedicationDispense.medicationReference.form
Drug Quantity MedicationDispensed/Quantity/Value MedicationDispense.quantity
Days of Supply MedicationDispensed/DaysSupply MedicationDispense.daysSupply
Refill Number MedicationDispensed/HistorySource/FillNumber MedicationDispense.type
Refills Authorized not directly represented in RxHistoryResponse MedicationDispense.authorizingPrescription.dispenseRequest.numberOfRepeatsAllowed
Partial Fill Indicator not supported in RxHistoryResponse MedicationDispense.type
Method of Payment MedicationDispensed/HistorySource/PaymentType are we including this in our response? SCRIPT uses code list PaymentType
Drug Product ID Qualifier MedicationDispensed/DrugCoded/ProductCode/Qualifier MedicationDispense.medicationReference.code.coding.system
Product ID MedicationDispensed/DrugCoded/ProductCode/Code MedicationDispense.medicationReference.code.coding.code
Dispenser Organization Dispenser Organization Name (Facility) MedicationDispensed/Pharmacy/BusinessName Organization.name
Dispenser Organization Street Address MedicationDispensed/Pharmacy/Address/AddressLine1
MedicationDispensed/Pharmacy/Address/AddressLine2
Organization.address.line
Dispenser Organization City Address MedicationDispensed/Pharmacy/Address/City Organization.address.city
Dispenser Organization State Code MedicationDispensed/Pharmacy/Address/StateProvince Organization.address.state
Dispenser Organization Zip Code MedicationDispensed/Pharmacy/Address/PostalCode Organization.address.postalCode
Dispenser Organization Phone Number MedicationDispensed/Pharmacy/CommunicationNumbers/PrimaryTelephone Organization.telecom
Dispenser Organization (Pharmacy identifier) DEA Number* MedicationDispensed/Pharmacy/Identification/DEANumber Organization.identifier
NCPDP Number* MedicationDispensed/Pharmacy/Identification/NCPDPID Organization.identifier
NPI Number* MedicationDispensed/Pharmacy/Identification/NPI Organization.identifier
Prescriber Prescriber First Name MedicationDispensed/Prescriber/NonVeterinarian/Name/FirstName Practitioner.name.given
Prescriber Last Name MedicationDispensed/Prescriber/NonVeterinarian/Name/LastName Practitioner.name.family
Prescriber Street Address MedicationDispensed/Prescriber/NonVeterinarian/Address/AddressLine1
MedicationDispensed/Prescriber/NonVeterinarian/Address/AddressLine2
Practitioner.address.line
Prescriber City Address MedicationDispensed/Prescriber/NonVeterinarian/Address/City Practitioner.address.city
Prescriber State Code MedicationDispensed/Prescriber/NonVeterinarian/Address/StateProvince Practitioner.address.state
Prescriber Zip Code MedicationDispensed/Prescriber/NonVeterinarian/Address/PostalCode Practitioner.address.postalCode
Prescriber Identifier DEA Number* MedicationDispensed/Prescriber/NonVeterinarian/Identification/DEANumber Practitioner.identifier
NPI Number* MedicationDispensed/Prescriber/NonVeterinarian/Identification/DEANumb… Practitioner.identifier
State License* Identifier MedicationDispensed/Prescriber/NonVeterinarian/Identification/StateLicenseNumber Practitioner.identifier
State of License* NA Practitioner.identifier
* Conditionally required data elements have asterisks (*), meaning at least one data element is required within this category. For example, under Requesting Facility ID, one of the three data elements (DEA Number, NCPDP Number or NPI) is required.

PMIX Mappings for Request

This section includes the minimal mapping for the request from an EHR to a state using PMIX.

Request Data Element PMIX Data Element FHIR Data Element
Routing Information
Request Requester pmix:Requester Practitioner.name
Requester Role pmix:RequesterRole PractitionerRole.code
Request ID pmix:RequestID MessageHeader.id
Request date/ timestamp n/a MessageHeader.extension (StructureDefinition-header-timestamp-extension)
Requester Identifier NPI Number* nc:IdentificationID Practitioner.identifier
DEA Number* nc:IdentificationID Practitioner.identifier
Requesting Facility ID DEA Number* nc:IdentificationID Organization.identifier
NCPDP Number* nc:IdentificationID Organization.identifier
NPI* nc:IdentificationID Organization.identifier
Requesting Facility Facility Name nc:OrganizationDoingBusinessAsName Organization.name
State code of Requesting Facility nc:LocationStateUSPostalServiceCode Organization.address.state
Message Body
Patient First Name nc:PersonGivenName MedicationDispense.subject(Patient) --> Patient.name.given
Last Name nc:PersonSurName MedicationDispense.subject(Patient) --> Patient.name.family
Date of Birth nc:Date MedicationDispense.subject(Patient) --> Patient.birthdate
Request Prescription Date Range Start Date pmp:RequestPrescriptionDateRangeBegin MedicationDispense.authorizingPrescription.dispenseRequest.validityPeriod
End Date pmp:RequestPrescriptionDateRangeEnd MedicationDispense.authorizingPrescription.dispenseRequest.validityPeriod
* Conditionally required data elements have asterisks (*), meaning at least one data element is required within this category. For example, under Requesting Facility ID, one of the three data elements (DEA Number, NCPDP Number or NPI) is required.

PMIX Mappings for Response

This section includes the minimal mapping for the response from a state to an EHR using PMIX.

Response Data Element PMIX Data Element FHIR Data Element
Routing Information
Response Date/Timestamp pmp:ReportExecutionDate

pmp:ReportExecutionTime
MessageHeader.extension (StructureDefinition-header-timestamp-extension)
Response Prescription Date Range (Start Date) pmp:ReportDateRangeBegin MessageHeader.extension (StructureDefinition-response-prescription-period-extension - Period.start)
Response Prescription Date Range (End date) pmp:ReportDateRangeEnd MessageHeader.extension (StructureDefinition-response-prescription-period-extension - Period.end)
Request ID n/a MessageHeader.response.identifier
Message Body
Patient Patient First Name nc:PersonGivenName Patient.name.given
Patient Last Name nc:PersonSurName Patient.name.family
Patient Date of Birth nc:Date Patient.birthdate
Patient Gender PersonSexCode Patient.gender
Patient Street Address StreetFullText Patient.address.line
Patient City Address nc:LocationCityName Patient.address.city
Patient State Code nc:LocationStateUSPostalServiceCode Patient.address.state
Patient Zip Code nc:LocationPostalExtensionCod Patient.address.postalCode
SSN* nc:IdentificationID Patient.identifier
Prescription Prescription Filled Date pmp:PrescriptionFilledDate MedicationDispense.whenPrepared
Prescription Written Date nc:Date MedicationDispense.authorizingPrescription.authoredOn
Prescription Number pmp:PrescriptionNumberText MedicationDispense.Identifier
Drug Name[1] pmp:DrugProductNameText MedicationDispense.medicationReference.code.coding.code.display
Drug Strength[1] pmp:DrugStrengthText MedicationDispense.medicationReference.ingredient.strength
Dosage Form[2] pmp:DrugUnitOfMeasureText MedicationDispense.medicationReference.form
Drug Quantity pmp:DispensedQuantity MedicationDispense.quantity
Days of Supply pmp:DaysSupplyCount MedicationDispense.daysSupply
Refill Number pmp:DrugRefillNumberCount MedicationDispense.extension - (StructureDefinition-refill-number-extension)
Refills Authorized pmp:RefillsAuthorizedCount MedicationDispense.authorizingPrescription.dispenseRequest.numberOfRepeatsAllowed
Partial Fill Indicator pmp:PartialFillIndicator MedicationDispense.type
Method of Payment pmp:MethodOfPaymentCode MedicationDispense.note
Drug Product ID Qualifier pmp:DrugNDCProductIdentifier MedicationDispense.medicationReference.code.coding.system
Product ID IdentificationID MedicationDispense.medicationReference.code.coding.code
Dispenser Organization Dispenser Organization Name (Facility) nc:OrganizationDoingBusinessAsName Organization.name
Dispenser Organization Street Address nc:StreetFullText Organization.address.line
Dispenser Organization City Address nc:LocationCityName Organization.address.city
Dispenser Organization State Code nc:LocationStateUSPostalServiceCode Organization.address.state
Dispenser Organization Zip Code nc:LocationPostalCode Organization.address.postalCode
Dispenser Organization Phone Number nc:TelephoneNumberFullID Organization.telecom
Dispenser Organization (Pharmacy identifier) DEA Number* nc:IdentificationID Organization.identifier
NCPDP Number* nc:IdentificationID Organization.identifier
NPI Number* nc:IdentificationID Organization.identifier
Prescriber Prescriber First Name nc:PersonGivenName Practitioner.name.given
Prescriber Last Name nc:PersonSurName Practitioner.name.family
Prescriber Street Address nc:StreetFullText Practitioner.address.line
Prescriber City Address nc:LocationCityName Practitioner.address.city
Prescriber State Code nc:LocationStateUSPostalServiceCode Practitioner.address.state
Prescriber Zip Code LocationPostalCode Practitioner.address.postalCode
Prescriber Identifier DEA Number* IdentificationID Practitioner.identifier
NPI Number* IdentificationID Practitioner.identifier
State License* Identifier IdentificationID Practitioner.identifier
State of License* IdentificationID Practitioner.identifier
* Conditionally required data elements have asterisks (*), meaning at least one data element is required within this category. For example, under Requesting Facility ID, one of the three data elements (DEA Number, NCPDP Number or NPI) is required. Similarly for Patient Identifier, either SSN or MedicareNumber should be used as allowed by law. Additional occurrences of Patient Identifier may use PatientAccountNumber of MedicalRecordIdentificationNumberEHR per the NCPDP Script implementation guide.