This page will be used to capture discussion around how to query for medication lists for a patient using FHIR Resources.
Document guidance on how to retrieve a medication list. This guidance would cover lists like:
- active medication list - as represented by the patient
- active medication list - as represented by a healthcare organization
- dispense related medication lists
- administration related medication lists
- Medication to be administered
- Medication that has been administered
- Medication that has been "reported" to be administrated
- Medication history lists - based on MedicationUsage resource
There may be other lists of medications - EHRs or ePrescribing systems sometimes present to their users, list of active medication orders, orders on hold, orders that have run to completion, orders that are not filtered by any status, whether active or in another state e.g. hold, completed, entered in error, etc.
to do: define what "active", "current", "regular", chronic
to do: define what it means when the patient states "I am currently taking a medication"
to do: what it means when we document what a patient "should be taking" and how to represent that in FHIR
In US-Meds IG (STU3), the active medication list was retrieved by querying MedicationRequest exclusively where intent = order or plan (i.e. derived from Statement).
In STU3, MedicationStatement had two elements for taken (Boolean) and status.
Taken was used to represent the medication usage (in the past)
Status was used to infer whether the medication should be on the “active meds list” (i.e. whether the patient should be taking the medication going forward)
In R4, MedicationStatement added not-taken into the status value set (and removed the taken Boolean).
In R4, MedicationRequest was enhanced to add a new reported[x] element that indicates whether the MedicationRequest was reported (insert definition).
Using MedicationStatement exclusively in R4 doesn’t work since we lost the ability to use MedicationStatement.status to convey whether a not-taken medication is active or not. Some not-taken medications are associated with active orders/prescriptions while other not-taken statements are associated with old orders/prescriptions that have since been completed or stopped.
Using MedicationRequest exclusively in R4 doesn’t work since it is still not scoped to handle patient statements about their over-the-counter (OTC) medication usage that don’t have an underlying prescription or request.
Using both MedicationStatement and MedicationRequest introduces patient safety risk if an application made a false assumption that all active medications were returned from a single resource.
Furthermore, the boundaries between MedicationStatement and a reported MedicationRequest present a challenge for systems that don’t make that fine distinction. For example, the following use cases are often handled in the same way:
* Patient conveys to provider A that another provider B prescribed a given medication (this is debatable whether it is a MedicationStatement or a recorded MedicationRequest)
* Patient conveys they took an OTC medication (this is a MedicationStatement – since the patient isn’t requesting a new prescription)
* The system programmatically learns of an existing medication and makes a non-authoritative copy (this is a recorded MedicationRequest)
Most systems CAN differentiate between:
* What the patient said about their medication usage (taken vs not taken)
* Whether the provider wants to keep the recorded MedicationRequest or MedicationStatement on the active medication list
In summary, we have a bit of a catch 22 where:
* We can’t use MedicationStatement exclusively (when status = not-taken), nor can we use MedicationStatement to convey status of what was ordered (when usage differs from what was ordered).
* We can’t use MedicationRequest exclusively (when scope excludes patient statements about OTC medications)
* Systems often don’t differentiate between reported MedicationRequests vs MedicationStatements, so the boundaries are challenging to honor.
R4 Next Steps
Base specification allows the active med list to use MedicationRequest or MedicationStatement
Argonaut / US-Core IGs proposal to use MedicationRequest exclusively
R5 Next Steps
Clarify boundaries between reported MedicationRequest and MedicationUsage (and confirm that systems can honor those proposed boundaries)
MedicationUsage.status value set reviewed and updated to support: Completed, Entered in Error, Unknown and removed all other status values.
MedicationUsage was enhanced to add a new Adherence element that indicates whether the patient has Taken, Taken as Directed, Not Taken as Directed a medication.
- Should pull requirements together and include the context on the medication lists and their use
- New Zealand - strongly view that MedicationStatement - patient's lists of medications drawn from multiple sources - national repositories, pharmacies, prescribing systems
- need to consider how to get this done in light of updates to US Core