The HL7 FHIR Connectathon Medication Track
HL7’s Fast Healthcare Interoperability Resources (FHIR®) standard has four key resources related to medication:
What’s tricky is that there is an implied workflow and hierarchy. The medication track discussion I participated in included Eric Haas, Melva Peters, Jenni Syed, Danielle Friend, and Brett Marquard. Our goal was to come to a simplified understanding.
The first three resources fit pretty nicely in a work flow:
Step 1. Someone orders medication for a patient (MedicationRequest)
Step 2. A pharmacy dispenses the medication to the patient (MedicationDispense)
Step 3. Someone (or the patient themselves) administers or takes the medication (MedicationAdministration)
So where does MedicationStatement fit into this? It is similar to a summary/consolidation of these three resources and represents the entire list of medications ever ordered/dispensed/administered for a specific patient.
However, most electronic health records (EHRs) don’t store a patient’s medication history this way.
Typically, EHRs create an order for the medication, and as that medication gets dispensed and administered, the EHR updates the medication order to record the events and any changes. An EHR will also maintain a medication list for the patient, which is the complete list of medication a patient is currently taking.
Some of the medications in the medication list are self-reported by the patient (to record those, the EHR still creates them as an order, but designates in the order that it was self-reported by the patient).
Assuming this is similar to how your EHR records medication data, how do you share them using HL7 FHIR?
Two Common Use Cases
Let’s look at two common use cases:
First Use Case: How to share a patient’s current medication list
You can pull this data directly from your EHR’s medication list (or pull all medication orders for a patient for medications the patient is currently taking). You can then use the MedicationStatement resource to share this list.
Here are a few attributes to pay attention to:
- Status = active
- BasedOn – references to other FHIR resources which contributed the information in this MedicationStatement
- DerivedFrom – references to actual EHR or pharmacy records from which this MedicationStatement is derived (for auditing purposes)
API call will look like this:
GET MedicationStatement?patient=<patient FHIR id>&status=active
Second Use Case: How to share all medications related to a patient encounter
This will include all medication orders from your EHR related to a particular encounter. You can share these as an individual MedicationRequest resource, paying attention to the following attribute:
- Context – should refer to FHIR encounter resource representing the encounter
API call will look like this:
GET MedicationOrder?patient=<patient FHIR id>&encounter=<encounter reference>
What Happens if Medications Are Dispensed by a Pharmacy Outside the Provider Institution?
Also, if medications are dispensed by a pharmacy outside of the provider institution (for example, a UCSF specialist may prescribe a medication to a patient that is filled at Walgreens or CVS), then the EHR only knows about the MedicationRequest. The EHR does not have the information about dispense and administration.
As such, it may be desirable to get a data feed from the pharmacy, or from the healthcare payer since their claims data feed will also include any pharmacy benefits that will include the data on the medications dispensed by the pharmacy.
I’m not sure how easy it is to accomplish this, but with folks like SureScripts on their way to open up their APIs, it seems like a reasonable route to explore.
Melva Peters, one of the track leaders who hails from Canada, provided an interesting perspective on how this process works for a centralized (at least at the province-level) healthcare system. Pharmacies are required to provide a feed of their prescription-filling activities using HL7 Version 3. Any EHR in the province can subscribe to this feed so that providers may see all the prescription orders for their patients.
My recommendation is to follow a crawl-walk-run approach to see if you can make a patient’s current medication list visible using the MedicationStatement resource.
In the United States, the next step would be to use MedicationStatement resource that pulls data from multiple EHRs and then makes use of intelligence matching logic to create a unified MedicationStatement. This MedicationStatement would be accessible to providers across multiple organizations.
This sort of service will enable a specialist to see a patient’s up-to-date medication list from their primary care provider, as well as any other provider the patient may have visited.