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

US Prescription Drug Monitoring Program (PDMP), published by HL7 International / Pharmacy. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-pdmp/ and changes regularly. See the Directory of published versions

Resource Profile: PdmpMedicationDispense - Mappings

Active as of 2024-04-01

Mappings for the pdmp-medicationdispense resource profile.

Mappings for PMIX/NIEM 4.0 Prescription Report (http://pmixpmp.org/niem/4.0/extension)

PdmpMedicationDispense
MedicationDispense
   extension (rx-fill-number)pmp:DrugRefillNumberCount
   extension (rx-transmission-method)pmp:TransmissionFormOfRxOriginCode
   extension (rx-method-of-payment)pmp:MethodOfPaymentCode
   extension (rx-opioid-treatment-code)pmp:OpioidTreatmentCategoryCode
   identifier
      valuepmp:PrescriptionNumberText
   medication[x]
   medication[x] (medicationCodeableConcept)
      coding
         codepmp:PrescriptionDrug/pmp:DrugNDCProductIdentifier

coding.system='http://hl7.org/fhir/sid/ndc'

      textpmp:PrescriptionDrug/pmp:DrugProductNameText
   typepmp:PartialFillIndicator
   quantitypmp:DispensedQuantity
   daysSupplypmp:DaysSupplyCount
   whenPreparedpmp:PrescriptionFilledDate

Mappings for NCPDP SCRIPT 2017071 RxHistory Response - Dispense (http://ncpdp.org/SCRIPT2017071/RxHistoryResponse)

PdmpMedicationDispense
MedicationDispense
   extension (rx-fill-number)HistorySource/FillNumber
   extension (rx-transmission-method)not supported
   extension (rx-method-of-payment)HistorySource/PaymentType
   extension (rx-opioid-treatment-code)not supported
   identifierHistorySource/SourceReference
   medication[x]
   medication[x] (medicationCodeableConcept)
      coding
         systemDrugCoded/ProductCode/Qualifier = 'ND'
         codeDrugCoded/ProductCode/Code

coding.system='http://hl7.org/fhir/sid/ndc'

      textDrugDescription
   typenot supported in RxHistoryResponse
   quantityQuantity/Value
   daysSupplyDaysSupply
   whenPreparedLastFillDate

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

PdmpMedicationDispense
MedicationDispenseEvent
   identifierEvent.identifier
   partOfEvent.partOf
   statusEvent.status
   statusReason[x]Event.statusReason
   medication[x]Event.code
   medication[x] (medicationCodeableConcept)Event.code
   subjectEvent.subject
   contextEvent.context
   performerEvent.performer
      actorEvent.performer.actor
   authorizingPrescriptionEvent.basedOn
   whenHandedOverEvent.occurrence[x]
   noteEvent.note

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

PdmpMedicationDispense
MedicationDispenseEntity. Role, or Act, Supply[moodCode=EVN]
   textAct.text?
   containedN/A
   modifierExtensionN/A
   identifier.id
      idn/a
      extensionn/a
      useRole.code or implied by context
      typeRole.code or implied by context
      systemII.root or Role.id.root
      valueII.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
      periodRole.effectiveTime or implied by context
      assignerII.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
   partOf.outboundRelationship[typeCode=COMP]/target[classCode=PROC,moodCode=EVN]
   status.statusCode
   statusReason[x].outboundRelationship[typeCode=RSON]/target[classCode=OBS,moodCode=EVN, code="not done reason"].value
   category.inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code="type of medication dispense"].value
   medication[x].participation[typeCode=PRD].role
   medication[x] (medicationCodeableConcept).participation[typeCode=PRD].role
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   subject.participation[typeCode=SBJ].role[classCode=PAT]
   context.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)]
   performer.participation[typeCode=PRF]
      idn/a
      extensionn/a
      modifierExtensionN/A
      functionparticipation[typeCode=PRF].functionCode
      actor.role
         idn/a
         extensionn/a
         referenceN/A
         typeN/A
         identifier.identifier
            idn/a
            extensionn/a
            useRole.code or implied by context
            typeRole.code or implied by context
            systemII.root or Role.id.root
            valueII.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
            periodRole.effectiveTime or implied by context
            assignerII.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
         displayN/A
   location.participation[typeCode=LOC].role
   authorizingPrescription.outboundRelationship[typeCode=FLFS].target[moodCode=RQO]
      idn/a
      extensionn/a
      referenceN/A
      typeN/A
      identifier.identifier
      displayN/A
   type.code
   quantity.quantity
      idn/a
      extensionn/a
      valuePQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
      comparatorIVL properties
      unitPQ.unit
      systemCO.codeSystem, PQ.translation.codeSystem
      codePQ.code, MO.currency, PQ.translation.code
   daysSupplyeffectiveUseTime
      idn/a
      extensionn/a
      valuePQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
      unitPQ.unit
      systemCO.codeSystem, PQ.translation.codeSystem
      codePQ.code, MO.currency, PQ.translation.code
   whenPrepared.effectiveTime[xmi:type=IVL_TS].low
   whenHandedOver.effectiveTime[xmi:type=IVL_TS].high
   destination.participation[typeCode=DST].role
   receiver.participation[typeCode=RCV].role
   note.inboundRelationship[typeCode=SUBJ]/source[classCode=ACT,moodCode=EVN]
   dosageInstruction.outboundRelationship[typeCode=COMP].target[classCode=SBADM, moodCode=INT]
      idn/a
      extensionn/a
      modifierExtensionN/A
      sequence.text
      text.text
      additionalInstruction.text
      patientInstruction.text
      timing.effectiveTime
      asNeeded[x].outboundRelationship[typeCode=PRCN].target[classCode=OBS, moodCode=EVN, code="as needed"].value=boolean or codable concept
      site.approachSiteCode
      route.routeCode
      method.doseQuantity
      doseAndRate
         idn/a
         extensionn/a
         dose[x].doseQuantity
         rate[x].rateQuantity
      maxDosePerPeriod.maxDoseQuantity
      maxDosePerAdministrationnot supported
      maxDosePerLifetimenot supported
   substitution.outboundRelationship[typeCode=COMP].target[classCode=SUBST, moodCode=EVN]
      idn/a
      extensionn/a
      modifierExtensionN/A
      wasSubstituted.actionNegationInd
      type.code
      reason.reasonCode
      responsibleParty.participation[typeCode=PFM].role[classCode=ASSIGN]
   detectedIssue.inboundRelationship[typeCode=SUBJ]/source[classCode=ALRT,moodCode=EVN].value
   eventHistory.inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN]

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

PdmpMedicationDispense
MedicationDispense
   identifierFiveWs.identifier
   statusFiveWs.status
   medication[x]FiveWs.what[x]
   medication[x] (medicationCodeableConcept)FiveWs.what[x]
   subjectFiveWs.subject[x], FiveWs.subject
   supportingInformationFiveWs.context

Mappings for V3 Pharmacy Dispense RMIM (http://www.hl7.org/v3/PORX_RM020070UV)

PdmpMedicationDispense
MedicationDispense
   identifierCombinedMedicationDispense.id
   statusCombinedMedicationDispense.SupplyEvent.statusCode
   medication[x]CombinedMedicationRequest.component1.AdministrationRequest.consumable
   medication[x] (medicationCodeableConcept)CombinedMedicationRequest.component1.AdministrationRequest.consumable
   authorizingPrescriptionCombinedMedicationDispense.inFulfillmentOf
   typeCombinedMedicationDispense.SupplyEvent.code
   quantityCombinedMedicationDispense.SupplyEvent.quantity
   whenPreparedCombinedMedicationDispense.SupplyEvent.effectiveTime
   whenHandedOverCombinedMedicationDispense.SupplyEvent.effectiveTime
   destinationCombinedMedicationDispense.SupplyEvent.destination
   receiverCombinedMedicationDispense.SupplyEvent.receiver
   substitutionCombinedMedicationDispense.substitutionMade
      typeCombinedMedicationDispense.substitutionMade.code
      reasonCombinedMedicationDispense.substitutionMade.reasonCode
      responsiblePartyCombinedMedicationDispense.substitutionMade.ResponsibleParty

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

PdmpMedicationDispense
MedicationDispense
   identifier
      useN/A
      typeCX.5
      systemCX.4 / EI-2-4
      valueCX.1 / EI.1
      periodCX.7 + CX.8
      assignerCX.4 / (CX.4,CX.9,CX.10)
   medication[x]RXD-2-Dispense/Give Code
   medication[x] (medicationCodeableConcept)RXD-2-Dispense/Give Code
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   subjectPID-3-Patient ID List
   performer
      actor
         identifier
            useN/A
            typeCX.5
            systemCX.4 / EI-2-4
            valueCX.1 / EI.1
            periodCX.7 + CX.8
            assignerCX.4 / (CX.4,CX.9,CX.10)
   authorizingPrescriptionORC-2 Placer Order Number
   typeRXD-33-Dispense Type
   quantityRXD-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
      comparatorSN.1 / CQ.1
      unit(see OBX.6 etc.) / CQ.2
      system(see OBX.6 etc.) / CQ.2
      code(see OBX.6 etc.) / CQ.2
   daysSupplyTQ1.6 Timing/Quantity Segment Service Duration. Prior to v2.5, ORC.7.3 Common Order Segment / Quantity/Timing / Duration component. This is a formatted string, first character for the time unit (e.g., D=days), followed by the value. For example, “D14” represents “14 days supply” From v2.5 on, TQ1.6 Timing/Quantity Segment / Service Duration. This is a CQ data type (<Quantity (NM)> ^ <Units (CWE)>), thus for days supply, assuming the unit of measure is “days”, the numeric value is TQ1.6.1 (…|14^ For backwards compatibility, ORC.7 was permitted through v2.6. Both forms (field and segment) may be present in v2.5, v2.5.1, and v2.6
      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
   whenPreparedRXD-3-Date/Time Dispensed
   whenHandedOverRXD-3-Date/Time Dispensed
   destinationRXD-13 Dispense-to Location; RXD-30 Dispense to Pharmacy; RXD-31 Dispense to Pharmacy Address
   noteRXD-9 Dispense Notes
   dosageInstruction
      sequenceTQ1-1
      textRXO-6; RXE-21
      additionalInstructionRXO-7
      patientInstructionRXO-7
      asNeeded[x]TQ1-9
      siteRXR-2
      routeRXR-1
      methodRXR-4
      doseAndRateTQ1-2
         typeRXO-21; RXE-23
         dose[x]RXO-2, RXE-3
         rate[x]RXE22, RXE23, RXE-24
      maxDosePerPeriodRXO-23, RXE-19
   substitution
      typeRXO-9-Allow Substitutions / RXE-9-Substitution Status