PDMP FHIR Implementation Guide
PDMP%20FHIR%20Implementation%20Guide
User Manual:
Open the PDF directly: View PDF .
Page Count: 8
4/13/2019 US Meds
hl7.org/fhir/us/meds/2018May/pdmp.html 1/8
(http://hl7.org/fhir) (http://www.hl7.org)
US Meds Implementation Guide STU2 Ballot
(version 1.1.0)
Contents
Introduction
Scope
AbstractModel,Actorsand
Definitions
PDMPDataAccessusingFHIR
UsingFHIRSearchAPIs
UsingFHIRMessaging
APIs
FinalApproachforUS
MedsPDMPFHIRIG
SecurityConsiderations
PDMPDataElementsand
Mappings
PMIXMappingsforPDMP
Request
PMIXMappingsforPDMP
Response
FHIRprofiles
CapabilityStatements
Conformancerequirements
forthePDMPResponder
Behavior
ProfileInteractions:
Security:
Search:
Conformancerequirements
forthePDMPRequestor
Behavior
ProfileInteractions:
Security:
Search:
PatientMatchingConsiderations
DeploymentArchitecture
DeploymentOption1:
DeploymentOption2:
DeploymentOption3:
USMedicationFHIRIG(v1.1.0:STU(https://confluence.hl7.org/display/HL7/HL7+Balloting)2Ballot1).Thecurrentversionis1.0.0(http://hl7.org/fhir/us/meds)basedonFHIR
R3(http://hl7.org/fhir/STU3).SeetheDirectoryofpublishedversions(http://hl7.org/fhir/us/meds/history.cfml)
US Meds Prescription Drug Monitoring Program (PDMP) FHIR Implementation Guide
Introduction
IntheUnitedStates,everystateisdeployingaPrescriptionDrugMonitoringProgram(PDMP)whichtrackcontrolledsubstanceprescriptionswithinthe
state.Overtime,thesePDMPdatabasesstarttoproviderichinformationonproviderandpatientbehaviorswithrespecttoprescribinganduseofcontrolled
substances.EnablingaProvidertoaccessaPatient’sPDMPdataduringcaredeliverywillhelpinavoidingpotentialdrugmisuse,abuseanddiversionalso
commonlyknownasOpioidabuse.Inordertoreduceopioidabuse,somestateshaveimplementedpoliciesmandatingProviderstocheckthestatePDMP
forthePatient’scontrolledsubstancehistorybeforeprescribinganycontrolledsubstances.Tofurtheraddressopioidabusewhichisacurrentnational
priority,theUSMedsPrescriptionDrugMonitoringProgramFHIRImplementationGuide(USMedsPDMPFHIRIG)outlineshowsystemscanaccessPDMP
dataforapatientfromthestatePDMPsystemsusingtheHL7FHIRstandard.ForgeneralbackgroundonstatePDMPs,seetheCentersforDiseaseControl
andPreventionwhatstatesneedtoknowaboutPDMPs(https://www.cdc.gov/drugoverdose/pdmp/states.html).
Scope
ThissectionoutlinesthetransactionswhichareinscopeandnotinscopefortheUSMedsPDMPFHIRIG.AsshownintheFigure1below,thePDMPeco
systemcanbesimplifiedforthepurposeofthisprojecttoconsistofEHRsorClinicalSystems,PharmaciesandtheStatePDMPsystems.
TheUSMedsPDMPFHIRIGdefineshowanEHRoranApporotherClinicalSystemscanaccessaPatient’scontrolledsubstanceprescriptionhistoryfrom
theStatePDMPsystems.ThisisidentifiedbyInteraction3inthediagram.AllotherinteractionssuchasInteraction1and2inthediagrambeloware
importantfortheoverallPDMPecosystem,theyarenotinscopeforthisprojectandIG.
Figure 1: Simplified View of PDMP eco-system interactions.
Abstract Model, Actors and Definitions
Thissectiondefinestheabstractmodelwhichisusedtoidentifythespecificactorsandinteractionsthatareinscopefortheproject.TheabstractmodelisasshowninFigure2
belowwhichconsistsoftwoactorsnamelythePDMPRequestorandthePDMPResponder.
PDMPRequestor:PDMPRequestorisahealthITsystemthatisrequestingaPatient’scontrolledsubstancehistory.RealworldexamplesofsuchhealthITsystemsincludeEHRs,
SMARTonFHIRAppsandotherClinicalSystemsusedforcaredelivery.
PDMPResponder:PDMPResponderisahealthITsystemthatacceptsarequestfromaPDMPRequestorandrespondstotherequestwithacontrolledsubstancehistoryforthe
patient.RealworldexamplesofsuchhealthITsystemsincludeintermediarygatewayssuchasAppriss,RxCheck,StateHIEsandStatePDMPsystems.
Note:PDMPResponderswhichareactingasintermediariesprovideadditionalvalueaddservicessuchbeingabletoquerymultipleStatePDMPsystems,analyticswhichprovide
additionalinformationfortheProviderrequestingtheinformation.ThefactthataPDMPResponderisanintermediaryorifitistheactualStatePDMPsystemistransparenttothe
PDMPRequestorandismoreofadeploymentarchitecture.
Figure 2: PDMP Abstract Model and Actors.
PDMP Data Access using FHIR
TheabstractmodelinteractionscanbeimplementedusingFHIRinmultiplewaysnamely
UsingFHIRSearchAPIs
4/13/2019 US Meds
hl7.org/fhir/us/meds/2018May/pdmp.html 2/8
UsingFHIRMessagingAPIs
TheseAPIsarediscussedfurtherinthenextfewsubsections.
Using FHIR Search APIs
TheFHIRstandardprovidesarichsetofsearchmechanisms(http://hl7.org/fhir/search.html)bywhichspecificFHIRresourcescanbeaccessedfromaFHIRserver.Typicallythe
searchparametersarespecifiedintheRESTfulURLandaccessedusingtheHTTPGEToperation.
ThefollowingisanexampleofhowsearchparameterswillbeusedbyaPDMPRequestortoretrievePDMPdatafromaPDMPResponder.
GET [base]/MedicationDispense?subject:Patient.name.given=peter&subject:Patient.name.family=jacobs&subject:Patient.birthdate=eq1973-11-25&authorizingPrescription.dispenseRequest.v
TheaboveAPIwillfetchallMedicationDispenseresourcesforPatientwithagivennameof“peter”andfamilynameof“jacobs”withabirthdateof“19731125”withaprescription
thatfallswithinina5yearwindowstartingfromJanuary1st2010toDecember31st2015andaspartofthereturnedinformationwillincludeMedicationDispense,
MedicationRequest,Practitioner,Organization,PatientandMedicationinformationaspartofthereturnedbundle.
AlsoaspartoftheSearchAPIonecanspecifytotheservertoincludeadditionalinformationsuchastheprescriberinformation,patientinformation.Thecombinationsthatneedto
beimplementedbytheUSMedsPDMPFHIRIGactorswillbedescribedindetailaspartoftheCapabilityStatements.
Using FHIR Messaging APIs
TheFHIRstandardalsoprovidesAPIsthatresemblemessagingparadigmsimilartoHL7v2.ThesearepartoftheFHIRMessagingAPIs(http://hl7.org/fhir/messaging.html).A
PDMPRequestorcanrequestprescriptionhistoryforapatientbyinvokingthe$processmessage(http://hl7.org/fhir/messageheaderoperations.html)onthebaseURLasfollows:
POST [base-url]/$process-message
NOTE:FHIRMessagingAPIswillrequiretheuseofthePOSToperationeventoaccessdata.
ThebodyofthemessagewillbeaFHIRBundlethatcontainsaMessageHeaderresourceasthefirstentrywiththefollowingminimumdetails:
MessageHeaderResource
MessageHeader.id
MessageHeader.event(AneweventtypeforretrievingPDMPdataneedstobeaddedtothevalueset)
MessageHeader.timestamp
MessageHeader.responsiblecontainingareferencetoPractitionerresourcerequestingtheinformation.
MessageHeader.focuscontainingareferencetothePatientresourceforwhomtheprescriptionhistoryisrequired.
MessageHeader.datacontainingareferencetoParametersresourcetospecifyadditionalparameterssuchasthedaterange.
IncludethePractitionerandPatientResourcesasentriesinthebundle.
IncludetheParametersresourcewiththeparametersofstartDateandendDatewithvaluesfordaterange.
ThePDMPResponderhastobeabletoprocessthismessageandreturnbackaBundlewhichcontainsalltheMedicationDispenseresourcesalongwithPractitioner,Organizationand
Patientresourcesrelatedtothedataset.IncaseoferrorsOperationOutcomewouldbereturnedsimilartoanyregularFHIRAPI.
NOTE:FHIRMessagingoperationscanonlybeinvokedonFHIRServerswhichconformtotheFHIRMessagingoperationsintheircapabilitystatementsandnotonregularFHIR
serversimplementingRESTfulSearchAPIs.
Final Approach for US Meds PDMP FHIR IG
ForthepurposesoftheUSMedsPDMPFHIRIG,theFHIRSearchAPIswillbeusedandwillbespecifiedindetailintheCapabilityStatementsfortheactors.WhileboththeSearch
andMessagingAPIshavetheirownstrengthsandweaknesses,thedecisiontouseFHIRSearchAPIsisbasedonthefollowingfactors
ArgonautprogramhasembracedtheFHIRSearchAPIsforconformingtotheONC2015EditionfortheCommonClinicalDataSet
USCoreandUSMedsImplementationGuidesspecifythesearchAPIsasbasiccapabilitiesforFHIRserversprovidingaccesstodata.
SearchAPIswillberelativelyeasiertobuildonexistingFHIRinfrastructuredevelopedbyvendorcommunity.
SearchAPIsarelimitedtosynchronousoperationsonlyandavoidthecomplexityofthevariousMessageExchangepatternsthatneedtobeaccountedforinaMessaging
system.
Security Considerations
AllimplementersofFHIRserversandclientsshouldpayattentiontoFHIRSecurity(http://hl7.org/fhir/security.html)considerations.InadditiontotheFHIRSecurity
(http://hl7.org/fhir/security.html)considerations,thePDMPrequestsneedtocontainspecificinformationaboutRequestorIdentityandRequestorFacilityinformation.Providingthis
informationusingFHIRSearchAPIsisverycumbersomeandisnotnecessary.ThiskindofinformationcanbecollectedbythePDMPResponder’sAuthorizationServerduring
applicationregistrationandavoidrepeatingtheinformationoneachrequest.ThesemechanismsareoutlinedingreatdetailintheSMARTBackendServicesAuthorizationGuide
(http://docs.smarthealthit.org/authorization/backendservices/).TheUSMedsPDMPFHIRIGwillusetheSMARTBackendServicesAuthorizationGuidetocollectthenecessary
requestorinformationappropriatetomakingthePDMPdatarequest.InadditiontheauthenticationandauthorizationmechanismswillbeusedaspartofrequestingthePDMPdata
usingtheFHIRSearchAPIs.
PDMP Data Elements and Mappings
ThissectiondescribesidentifiesdataelementsthatareusedcommonlyinthePDMPdatarequestsandresponsesandprovidesmappingsofthesedataelementstoFHIR.Basedon
environmentalscansandpriorperformedbyONCacrossaspectrumofPDMPimplementationsthefollowingdatawascollected:
MostoftheexistingEHRimplementationsuseNCPDPscript10.6orASAPwebservicestorequestandreceivePDMPdatafromPDMPResponders(IntermediariesorStatePDMP
systems).
MostoftheStatePDMPsystemsareimplementedusingdataelementsspecifiedbytheNIEMstandardandexposethesedataelementsusingPMIXAPIs.
MostoftheEHRsuseintermediariestorequestdatafromoneormoreStatePDMPsystemsandsendNCPDPbasedrequestsandreceiveresponsesinNCPDPformat.
Basedontheabovefindings,NCPDPRequestandResponsedataelementshavebeenusedasastartingpointtospecifytheFHIRAPIs.Sincethecommunityunderstandsthese
NCPDPdataelements,amappingofNCPDPRequestandResponsedataelementstoFHIRResourceshasbeencreatedandspecifiedbelow.Thisallowsorganizationsalreadyfamiliar
withNCPDPtousethemappingprovidedtodeveloptheirFHIRResourcesandAPIs.SimilarlymappingfromPMIX/NIEMdataelementstoFHIRisalsoprovidedforsystemsusing
PMIX/NIEMtomaptheirdatatoFHIRandexposethemthroughappropriateAPIs.
NCPDP Mappings for PDMP Request
ThissectionincludestheminimalmappingforthePDMPrequestfromanEHRtoastatePDMPusingNCPDP.
PDMPRequestDataElement NCPDPDataElement FHIRDataElement
RoutingInformation
Request
Requestor <LastName><FirstName> Practitioner.name
RequestorRole <Qualifer> PractitionerRole.code
RequestID <MessageID> MessageHeader.id
Requestdate/timestamp <SentTime> MessageHeader.timestamp
Requestor
Identifier
NPINumber* <NPI> Practitioner.identifier
DEANumber* <DEANumber> Practitioner.identifier
Requesting
FacilityID
DEANumber* <DEANumber> Organization.identifier
NCPDPNumber* <NCPDPID> Organization.identifier
NPI* <NPI> Organization.identifier
Requesting
Faciltiy
FacilityName <StoreName><ClinicName> Organization.name
StatecodeofRequestingFacility <State> Organization.address
MessageBody
4/13/2019 US Meds
hl7.org/fhir/us/meds/2018May/pdmp.html 3/8
Patient
FirstName <FirstName> MedicationDispense.subject(Patient)>Patient.name.given
LastName <LastName> MedicationDispense.subject(Patient)>Patient.name.family
DateofBirth <DateofBirth> MedicationDispense.subject(Patient)>Patient.birthdate
Request
PrescriptionDate
Range
StartDate <EffectiveDate> MedicationDispense.authorizingPrescription.dispenseRequest.validityPeriod
EndDate <ExpirationDate> MedicationDispense.authorizingPrescription.dispenseRequest.validityPeriod
Conditionallyrequireddataelementshave.maptable1terisks(*),meaningatleastonedataelement.maptable1requiredwithinitscategory.For
example,underRequestingFacilityID,oneofthethreedataelements(DEANumber,NCPDPNumberorNPI).maptable1required.
NCPDP Mappings for PDMP Response
ThissectionincludestheminimalmappingforthePDMPresponsefromastatePDMPtoanEHRusingNCPDP.
PDMPResponseData
Element NCPDPDataElement FHIRDataElement
RoutingInformation
ResponseDate/Timestamp <SentTime> MessageHeader.timestamp
ResponsePrescriptionDate
Range(StartDate) <EffectiveDate> MessageHeader
ResponsePrescriptionDate
Range(Enddate) <ExpirationDate> MessageHeader
RequestID <RelatesToMessageID> MessageHeader.response.identifier
MessageBody
Patient
PatientFirstName <FirstName> Patient.name.given
PatientLastName <LastName> Patient.name.family
PatientDateofBirth <DateOfBirth> Patient.birthdate
PatientGender <Gender> Patient.gender
PatientStreetAddress
<AddressLine>
<AddressLine2> Patient.address.line
PatientCityAddress <City> Patient.address.city
PatientStateCode <State> Patient.address.state
PatientZipCode <ZipCode> Patient.address.potalCode
PatientIdentifier SSN* <SocialSecurity> Patient.identifier
Prescription
PrescriptionFilledDate <LastFillDate> MedicationDispense.whenPrepared
PrescriptionWrittenDate <WrittenDate> MedicationDispense.authorizingPrescription.authoredOn
PrescriptionNumber <SourceReference> MedicationDispense.Identifier
DrugName[1] <DrugDescription> MedicationDispense.medication[x]
DrugStrength[1]
<StrengthValue,Code>
fields Medication.ingredient.itemReference
DosageForm[2] <FormCode> Medication.form
DrugQuantity <Quantity> MedicationDispense.quantity
DaysofSupply <DaysSupply> MedicationDispense.daysSupply
RefillNumber <FillNumber> Medication.requestextension
RefillsAuthorized <Refills> MedicationDispense.authorizingPrescription.dispenseRequest.numberOfRepeatsAllowed
PartialFillIndicator gap MedicationDispense.type
MethodofPayment <Note> MedicationDispense.note
Drug
ProductIDQualifier <CodeListQualifier> MedicationDipense.medicationCodeableConcept.code.system
ProductID <ProductCode> MedicationDispense.medicationCodeableConcept.code.value
Dispenser
Organization
DispenserOrganization
Name(Facility) <StoreName> Organization.name
DispenserOrganization
StreetAddress
<AddressLine>
<AddressLine2> Organization.address.line
DispenserOrganizationCity
Address <City> Organization.address.city
DispenserOrganization
StateCode <State> Organization.address.state
DispenserOrganizationZip
Code <ZipCode> Organization.address.potalCode
DispenserOrganization
PhoneNumber <CommunicationNumber> Organization.telecom
Dispenser
Organization
(Pharmacy
identifier)
DEANumber* <DEANumber> Organization.identifier
NCPDPNumber* <NCPDPID> Organization.identifier
NPINumber* <NPI> Organization.identifier
Prescriber
PrescriberFirstName <FirstName> Practitioner.name.given
PrescriberLastName <LastName> Practitioner.name.family
PrescriberStreetAddress
<AddressLine>
<AddressLine2> Practitioner.address.line
PrescriberCityAddress <City> Practitioner.address.city
PrescriberStateCode <State> Practitioner.address.state
PrescriberZipCode <ZipCode> Practitioner.address.potalCode
Prescriber
Identifier
DEANumber* <DEANumber> Practitioner.identifier
NPINumber* <NPI> Practitioner.identifier
StateLicense*Identifier NA Practitioner.identifier
StateofLicense* NA Practitioner.identifier
*Conditionallyrequireddataelementshave.maptable2terisks(*),meaningatleastonedataelement.maptable2requiredwithinitscategory.For
example,underRequestingFacilityID,oneofthethreedataelements(DEANumber,NCPDPNumberorNPI).maptable2required.
PMIX Mappings for PDMP Request
ThissectionincludestheminimalmappingforthePDMPrequestfromanEHRtoastatePDMPusingPMIX.
4/13/2019 US Meds
hl7.org/fhir/us/meds/2018May/pdmp.html 4/8
PDMPRequestData
Element PMIXDataElement FHIRDataElement
RoutingInformation
Request
Requestor <pmix:Requestor> Practitioner.name
RequestorRole <pmix:RequestorRole> PractitionerRole.code
RequestID <pmix:RequestID> MessageHeader.id
Requestdate/timestamp n/a MessageHeader.timestamp
Requestor
Identifier
NPINumber* <nc:IdentificationID> Practitioner.identifier
DEANumber* <nc:IdentificationID> Practitioner.identifier
Requesting
FacilityID
DEANumber* <nc:IdentificationID> Organization.identifier
NCPDPNumber* <nc:IdentificationID> Organization.identifier
NPI* <nc:IdentificationID> Organization.identifier
Requesting
Faciltiy
FacilityName <nc:OrganizationDoingBusinessAsName> Organization.name
StatecodeofRequesting
Facility <nc:LocationStateUSPostalServiceCode> Organization.address
MessageBody
Patient
FirstName <nc:PersonGivenName> MedicationDispense.subject(Patient)>Patient.name.given
LastName <nc:PersonSurName> MedicationDispense.subject(Patient)>Patient.name.family
DateofBirth <nc:Date> MedicationDispense.subject(Patient)>Patient.birthdate
Request
Prescription
DateRange
StartDate <pmp:RequestPrescriptionDateRangeBegin> MedicationDispense.authorizingPrescription.dispenseRequest.validityPeriod
EndDate <pmp:RequestPrescriptionDateRangeEnd> MedicationDispense.authorizingPrescription.dispenseRequest.validityPeriod
Conditionallyrequireddataelementshave.maptable1terisks(*),meaningatleastonedataelement.maptable1requiredwithinitscategory.For
example,underRequestingFacilityID,oneofthethreedataelements(DEANumber,NCPDPNumberorNPI).maptable1required.
PMIX Mappings for PDMP Response
ThissectionincludestheminimalmappingforthePDMPresponsefromastatePDMPtoanEHRusingPMIX.
PDMP
Response
Data
Element
NCPDPDataElement FHIRDataElement
Routing
Information
Response
Date/
Timestamp
<pmp:ReportExecutionDate><pmp:ReportExecutionTime> MessageHeader.timestamp
Response
Prescription
DateRange
(StartDate)
<pmp:ReportDateRangeBegin> MessageHeader
Response
Prescription
DateRange
(Enddate)
<pmp:ReportDateRangeEnd> MessageHeader
RequestID n/a MessageHeader.response.identifier
Message
Body
Patient
PatientFirst
Name <nc:PersonGivenName> Patient.name.given
PatientLast
Name <nc:PersonSurName> Patient.name.family
PatientDate
ofBirth <nc:Date> Patient.birthdate
Patient
Gender <PersonSexCode> Patient.gender
Patient
Street
Address
<StreetFullText> Patient.address.line
PatientCity
Address <nc:LocationCityName> Patient.address.city
PatientState
Code <nc:LocationStateUSPostalServiceCode> Patient.address.state
PatientZip
Code <nc:LocationPostalExtensionCod> Patient.address.potalCode
Patient
Identifier SSN* <nc:IdentificationID> Patient.identifier
Prescription Prescription
FilledDate <pmp:ReportDateRangeBegin><pmp:ReportDateRangeEnd> MedicationDispense.whenPrepared
Prescription
WrittenDate <nc:Date> MedicationDispense.authorizingPrescription.authoredOn
Prescription
Number <pmp:PrescriptionNumberText> MedicationDispense.Identifier
Drug
Name[1] <pmp:DrugProductNameText> MedicationDispense.medication[x]
Drug
Strength[1] <pmp:DrugStrengthText> Medication.ingredient.itemReference
Dosage
Form[2] <pmp:DrugUnitOfMeasureText> Medication.form
Drug
Quantity <pmp:DispensedQuantity> MedicationDispense.quantity
4/13/2019 US Meds
hl7.org/fhir/us/meds/2018May/pdmp.html 5/8
Daysof
Supply <pmp:DaysSupplyCount> MedicationDispense.daysSupply
Refill
Number <pmp:DrugRefillNumberCount> Medication.requestextension
Refills
Authorized <pmp:RefillsAuthorizedCount> MedicationDispense.authorizingPrescription.dispenseRequest.numberOfRepeatsAllowed
PartialFill
Indicator <pmp:PartialFillIndicator> MedicationDispense.type
Methodof
Payment <pmp:MethodOfPaymentCode> MedicationDispense.note
Drug ProductID
Qualifier
<pmp:DrugCPDProductIdentifier>
<pmp:DrugDINProductIdentifier></br>
<pmp:DrugHRIProductIdentifier>
<pmp:pmp:DrugNDCProductIdentifier></br>
<pmp:DrugUPCProductIdentifie>
<pmp:DrugUPNProductIdentifier>
MedicationDispense.medicationCodeableConcept.code.system
ProductID <IdentificationID> MedicationDispense.medicationCodeableConcept.code.value
Dispenser
Organization
Dispenser
Organization
Name
(Facility)
<nc:OrganizationDoingBusinessAsName> Organization.name
Dispenser
Organization
Street
Address
<nc:StreetFullText> Organization.address.line
Dispenser
Organization
CityAddress
<nc:LocationCityName> Organization.address.city
Dispenser
Organization
StateCode
<nc:LocationStateUSPostalServiceCode> Organization.address.state
Dispenser
Organization
ZipCode
<nc:LocationPostalCode> Organization.address.potalCode
Dispenser
Organization
Phone
Number
<nc:TelephoneNumberFullID> Organization.telecom
Dispenser
Organization
(Pharmacy
identifier)
DEA
Number* <nc:IdentificationIDgt; Organization.identifier
NCPDP
Number* <nc:IdentificationID> Organization.identifier
NPI
Number* <nc:IdentificationID> Organization.identifier
Prescriber
Prescriber
FirstName <nc:PersonGivenName> Practitioner.name.given
Prescriber
LastName <nc:PersonSurName> Practitioner.name.family
Prescriber
Street
Address
<nc:StreetFullText> Practitioner.address.line
Prescriber
CityAddress <nc:LocationCityName> Practitioner.address.city
Prescriber
StateCode <nc:LocationStateUSPostalServiceCode> Practitioner.address.state
Prescriber
ZipCode <LocationPostalCode> Practitioner.address.potalCode
Prescriber
Identifier
DEA
Number* <IdentificationID> Practitioner.identifier
NPI
Number* <IdentificationID> Practitioner.identifier
State
License*
Identifier
IdentificationID Practitioner.identifier
Stateof
License* IdentificationID Practitioner.identifier
*Conditionallyrequireddataelementshave.maptable2terisks(*),meaningatleastonedataelement.maptable2requiredwithinitscategory.Forexample,under
RequestingFacilityID,oneofthethreedataelements(DEANumber,NCPDPNumberorNPI).maptable2required.
FHIR profiles
Thisprojectdoesnotcreateanynewprofiles,butwillreusetheUSCoreprofilesandtheUSMedsprofilestorequestandreceivePDMPdatausingFHIRresources.
Capability Statements
ThissectionidentifiestheCapabilityStatementsdefinedforthisimplementationguide.ThesectionoutlinesconformancerequirementsforeachoftheUSMedsPDMPFHIRIGactors
whichincludesthespecificprofiles,operations,securitymechanismsandsearchparametersthatneedtobesupported.
Note:Theindividualprofilesidentifythestructuralconstraints,terminologybindingsandinvariants.
Conformance requirements for the PDMP Responder
ThesectiondescribestheexpectedcapabilitiesofthePDMPResponderactorwhichisresponsibleforprovidingresponsestothequeriessubmittedbythePDMPRequestor
applications.
Behavior
ThePDMPResponderSHALL:
4/13/2019 US Meds
hl7.org/fhir/us/meds/2018May/pdmp.html 6/8
SupporttheUSCorePatient,USCorePractitioner,USCoreOrganizationresourceprofiles.
SupporttheUSMedsMedicationRequestandMedicationDispenseProfile.
ImplementtheRESTfulbehavioraccordingtotheFHIRspecification.
whichincludesreturningthefollowingresponseclasses:
(Status200):successfuloperation
(Status400):invalidparameter
(Status401/4xx):unauthorizedrequest
(Status403):insufficientscope
(Status404):unknownresource
(Status410):deletedresource.
SupportjsonresourceformatsforallPDMPinteractions.
DeclareaCapabilityStatementidentifyingthelistofprofiles,operations,andsearchparameterssupported.
ThePDMPResponderSHOULD:
SupportthefollowingUSCoreandUSMedsresourceprofiles:
USCoreMedication
USMedsMedicationAdministration
SupportxmlresourceformatsforallUSMedsinteractions.
IdentifytheUSCoreprofile(s)andUSMedsprofilessupportedaspartoftheFHIRmeta.profileattributeforeachinstance.
ThePDMPResponderMAY:
SupportotherUSCoreandUSMedsresourceprofile
Profile Interactions:
ThePDMPResponderSHALLsupporttheFHIRSearchinteractionforMedicationDispenseprofile.
ThePDMPResponderSHOULDsupporttheFHIRReadprofileinteractionMedicationDispenseprofile.
ThePDMPResponderMAYsupportotherFHIRprofileinteractions.
Security:
ThePDMPResponderSHALLsupporttheSMARTBackendServicesAuthorizationGuideforverifyingauthenticationandprovidingauthorizationtoPDMPRequestors.
ThePDMPResponderSHALLsupporttheHTTPHeaderparameterXRequestIDforrequestcoorelationbetweenthePDMPRequesterandPDMPResponder.
Search:
ThePDMPResponderSHALLsupportthefollowingsearchparametersandcombinationfortheMedicationDispenseresource
ChainedSearchparameters
subject:Patient.name.givenPatient’sfirstname
subject:Patient.name.familyPatient’sfamilyname
subject:Patient.birthdatePatient’sbirthdate
authorizingPrescription.dispenseRequest.validityPeriodTospecifythedaterangeforthePDMPdataretrieval
ThePDMPResponderSHALLsupportthefollowing_includeparametersfortheMedicationDispenseSearchoperations
_include=MedicationDispense:subjectReturnsthePatientResourceinformation
_include:recurse=MedicationDispense:authorizingPrescriptionReturnstheMedicationRequest,PractitionerResourceinformationandOrganizationinformation
_include=MedicationDispense:medicationReturnstheMedicationResourceinformation
Thefollowingisanexampleofthequery.
GET [base]/MedicationDispense?subject:Patient.name.given=peter&subject:Patient.name.family=jacobs&subject:Patient.birthdate=eq1973-11-25&authorizingPrescription.dispenseRequest.v
TheaboveAPIwillfetchallMedicationDispenseresourcesforPatientwithagivennameof“peter”andfamilynameof“jacobs”withabirthdateof“19731125”withaprescription
thatfallswithinina5yearwindowstartingfromJanuary1st2010toDecember31st2015andaspartofthereturnedinformationwillincludeMedicationDispense,
MedicationRequest,Practitioner,Organization,PatientandMedicationinformationaspartofthereturnedbundle.
AllotherinformationrequiredtoauthenticateandauthorizeaPDMPRequestoriscapturedaspartofregisteringthePDMPRequestorfollowingtheSMARTBackendServices
AuthorizationGuide.
Conformance requirements for the PDMP Requestor
ThesectiondescribestheexpectedcapabilitiesofthePDMPRequestoractorwhichisresponsibleforprovidingresponsestothequeriessubmittedbythePDMPRequestor
applications.
Behavior
ThePDMPRequestorSHALL:
SupporttheUSCorePatient,USCorePractitioner,USCoreOrganizationresourceprofiles.
SupporttheUSMedsMedicationRequestandMedicationDispenseProfile.
ConsumetheRESTfulresponsesaccordingtotheFHIRspecification.
whichincludesreturningthefollowingresponseclasses:
(Status200):successfuloperation
(Status400):invalidparameter
(Status401/4xx):unauthorizedrequest
(Status403):insufficientscope
(Status404):unknownresource
(Status410):deletedresource.
SupportjsonresourceformatsforallPDMPinteractions.
ThePDMPRequestorSHOULD:
SupportthefollowingUSCoreandUSMedsresourceprofiles:
USCoreMedication
USMedsMedicationAdministration
SupportxmlresourceformatsforallPDMPinteractions.
Profile Interactions:
ThePDMPRequestorSHALLsupporttheFHIRSearchinteractionforMedicationDispenseprofile.
ThePDMPRequestorSHOULDsupporttheFHIRReadprofileinteractionforMedicationDispenseprofile.
ThePDMPRequestorMAYsupportotherFHIRprofileinteractions.
Security:
4/13/2019 US Meds
hl7.org/fhir/us/meds/2018May/pdmp.html 7/8
ThePDMPRequestorSHALLsupporttheSMARTBackendServicesAuthorizationGuideapplicabletoclients.
ThePDMPRequestorSHALLaddtheHTTPHeaderparameterXRequestIDaspartoftheSearchrequestforrequestcoorelationbetweenthePDMPRequesterandPDMP
Responder.
Search:
ThePDMPRequestorSHALLinvoketheSearchoperationonthePDMPResponderincludingthefollowingsearchand_includeparameterswhenrequestingPDMPdatausingthe
MedicationDispenseresource
ChainedSearchparameters
subject:Patient.name.givenPatient’sfirstname
subject:Patient.name.familyPatient’sfamilyname
subject:Patient.birthdatePatient’sbirthdate
authorizingPrescription.dispenseRequest.validityPeriodTospecifythedaterangeforthePDMPdataretrieval
ThePDMPRequestorSHALLincludethefollowing_includeparametersfortheMedicationDispenseSearchoperations
_include=MedicationDispense:subjectReturnsthePatientResourceinformation
_include:recurse=MedicationDispense:authorizingPrescriptionReturnstheMedicationRequest,PractitionerResourceinformationandOrganizationinformation
_include=MedicationDispense:medicationReturnstheMedicationResourceinformation
Thefollowingisanexampleofthequery.
GET [base]/MedicationDispense?subject:Patient.name.given=peter&subject:Patient.name.family=jacobs&subject:Patient.birthdate=eq1973-11-25&authorizingPrescription.dispenseRequest.v
TheaboveAPIwillfetchallMedicationDispenseresourcesforPatientwithagivennameof“peter”andfamilynameof“jacobs”withabirthdateof“19731125”withaprescription
thatfallswithinina5yearwindowstartingfromJanuary1st2010toDecember31st2015andaspartofthereturnedinformationwillincludeMedicationDispense,
MedicationRequest,Practitioner,Organization,PatientandMedicationinformationaspartofthereturnedbundle.
Patient Matching Considerations
TheUSMedsPDMPFHIRIGdoesnotaddanypatientmatchingrequirementstothePDMPactors,butreliesonexistingpracticesusedforpatientmatchingbasedonthefirstname,
lastnameanddateofbirthprovidedthroughtherequest.
Deployment Architecture
ThefollowingaredeploymentoptionsshowinghowtheUSMedsPDMPFHIRIGcanbeusedtoimplementthevariousactors.
Deployment Option 1:
Inthisdeploymentoption,theEHRs,AppsandClinicalSystemsactasthePDMPRequestorsandinteractwithIntermediaryGatewayssuchasAppriss,RxCheckwhichactasthe
PDMPResponders.ThecommunicationisperformedusingFHIRAPIs.InthiscasethePDMPRequestorsareisolatedfromtheStatePDMPSystemsandtheprotocolstheysupport.
TheIntermediariesmaytranslatetheincomingFHIRrequestfordatatoaPMIX/NIEMrequesttocomplywithexistingstateinterfacesormayuseothermethodstogetthedata
fromtheStatePDMPsystems.AlloftheseinteractionsareisolatedfromthePDMPRequestor.TheIntermediariesmayalsoretrievedatafrommultipleStatePDMPsystems
simultaneously.
Figure 3: Deployment Option using Intermediaries and PMIX/NIEM.
Deployment Option 2:
Inthisdeploymentoption,theEHRs,AppsandClinicalSystemsactasthePDMPRequestorsandinteractwithIntermediaryGatewayssuchasAppriss,RxCheckwhichactasthe
PDMPResponders.ThecommunicationisperformedusingFHIRAPIs.InthiscasethePDMPRequestorsareisolatedfromtheStatePDMPSystemsandtheprotocolstheysupport.
TheIntermediariesinthiscasewilluseFHIRAPIstorequestdatafromoneormoreStatePDMPSystems.Theadvantagehereitisthesamestandardendtoendhoweveran
Intermediarycanprovidevalueaddedinformationsuchasanalytics,abilitytointegratedatafrommultiplestates.
TheIntermediaryplaystheroleofPDMPResponderforTransactions1and2butplaystheroleofPDMPRequestorforTransactions1aand1bwheretheStatePDMPSystemsplay
thePDMPResponderrole.
Figure 4: Deployment Option using Intermediaries and only FHIR.
4/13/2019 US Meds
hl7.org/fhir/us/meds/2018May/pdmp.html 8/8
Deployment Option 3:
Inthisdeploymentoption,theEHRs,AppsandClinicalSystemsactasthePDMPRequestorsandinteractwiththeStatePDMPSystemswhichactasthePDMPRespondersusingthe
FHIRAPIs
TherearenointermediariesbeingusedinthisdeploymentandStatePDMPSystemshavetosupportthenecessaryFHIRAPIsandSMARTBackendAuthorizationprotocols.
Figure 5: Deployment Option using FHIR and no Intermediaries.
USMedsVersion:1.1.0®©FHIRVersion:3.0.1(http://hl7.org/fhir/STU3)(IGPublisherv3.0.111917)generatedonThu,Apr5,201806:10+1000.|
(http://hl7.org/fhir/STU3/license.html)