This page is part of the US-Medication FHIR IG (v1.0.0: STU 1) based on FHIR R3. The current version which supercedes this version is 1.2.0. For a full list of available versions, see the Directory of published versions
This section outlines the definitions and interpretations and specific guidance for the US-Meds IG use cases The conformance verbs used are defined in FHIR Conformance Rules. The general guidance used in the US-Core IG apply to this guide as well.
The 5 FHIR pharmacy resources concerned with the ordering, dispensing, administration and recording of medications are:
Details about each resource can be found in the FHIR specification. A general discussion regarding the interaction between these resources is described in the FHIR Medications Module and the Guide to Resources Sections.
This IG focuses on access and updates to a patient’s medications and the interaction between the medication order/prescription (MedicationRequest) and the medication record (MedicationStatement). It is therefore important to understand the relationships between these resources. Figure 1 illustrates the workflow relationship between the medication order and the fulfillment as represented by the FHIR medication resources. Note that in the outpatient setting the patient does the administration.
MedicationStatement Provenance
Several sources may be used to create a MedicationStatement as is shown in Figure 2 below. The information may come from a patient, a related person (such as a family member), a provider, or a system’s medication orders. A patient or related person may directly report the information or provide some type of record including other FHIR resources. The information from an ordering system may also be used to create a MedicationRequest resource. Any combination of these sources may be used. For example, oftentimes the patient is the only source of information when the patient reports an OTC medication. Alternatively, when the patient reports actual medication usage for a known prescription, then the MedicationStatement is a combination of the order and patient stated compliance or usage. If the patient or provider provided no information, the entire MedicationStatement is derived from the order.
Various Ways to Represent the Medication
The pharmacy FHIR resources can represent a medication using either a code or a reference to a Medication resource. Typically, a code will be used to represent either a branded (for example, Crestor 10mg tablet) or a generic (for example, Rosuvastatin 10mg tablet) medication. When using a code, the code SHALL be extensibly bound to RxNorm - i.e. unless the concept is not covered by RxNorm, the RxNorm code SHALL be used. More information about using codes can be found in US Core General Guidance Section and the FHIR Specification. A medication resource is typically used when information that is not included as part of the RxNorm code is required. For example, the Medication resource is the only way to correctly represent compounded or extemporaneously prepared medication. When referencing the Medication resource, the resource may be a contained or an external resource. These options are shown in figure 3 below. The server application MAY choose any combination of these methods, but if an external reference to Medication is used, the server SHALL support the include parameter for searching this element. The client application MUST support all methods. The US Core IG provides examples that show these different methods. Additional guidance is provided below and in the CapabilityStatement section.
The guidance below addresses how a patient or a provider can access a patients’ active, historical and future (planned) medications list. This use case adopts the use cases defined as part of the Argonaut Project and US Core, specifically within the scope of accessing medication information as prescribed in Meaningful Use 2015 §?170.302(d) - Maintain active medication list. Enable a user to record, change, and access a patient’s active medication list as well as medication history: (i) Ambulatory setting. Over multiple encounters; or (ii) Inpatient setting. For the duration of an entire hospitalization.
Definitions
Requirements
MedicationStatement.derivedFrom
element SHALL reference the systems MedicationRequest resource for that order.
derivedFrom
reference.intent
of ‘order’ and any status in status
will be accessible through MedicationStatement (i.e., MedicationStatement will not be derived from an order-instance, draft or proposed order).MedicationStatement.informationSource
SHALL reference the individual providing the additional information.MedicationStatement.effectiveDate
or effectivePeriod
SHOULD be derived from an actual date if available. For example, if the medication was administered during a patient visit. If the actual administration date(s) are unknown the orders authoring date MAY be used as an approximate date. However, in this case, the .taken
element SHOULD be unk
(Unknown).category
and context
elements MAY be used together to get the intersection of medications for a given encounter (i.e., the context) that were administered during as an inpatient (i.e., the category).Deduplication of Data
Medications may be duplicated in a medication list when multiple sources of data are used to generate the list. To provide a list of a patients’ medications, it may be necessary to “de-duplicate” the medications on the list. The deduplication activity MAY be provided by the server but SHOULD be provided by the client.
“Not Taken” Medications
For specific guidance on how to determine if the patient has taken the medication, see the MedicationStatement Resource Notes section in the FHIR Specification. To illustrate this scenario, the examples listed below contain an instance in which the patient has not taken a medication.
Below is an overview of the required search and read operations for this use case. See the Conformance requirements for a complete list of supported RESTful operations and search parameters for this IG.
Get “all medications” for a patient by querying MedicationStatement using the patient
search parameter. This query is identical to that defined in the US Core Implementation Guide. See that IG for further details.
Example: Get All Medications
Get “all active medications” for a patient by querying MedicationStatement using the patient
and status
=’active’ search parameters. This search returns a Bundle of all active MedicationStatements and if the _include parameter is used, Medication resources for the specified patient.
GET /MedicationStatement?patient=[id]&status=active{&_include=MedicationStatement:medication}
Support: Mandatory for server and client to support search by patient and status parameter. Mandatory for client to support the _include parameter. Optional for server to support the _include parameter.
Example: Get All Active Medications
Get “all medications” for an encounter by querying MedicationStatement using the patient and encounter search parameters. This search returns a Bundle of MedicationStatements for an encounter and if the _include parameter is used, Medication resources for the specified patient.
GET /MedicationStatement?patient=[id]&context=[id]{&_include=MedicationStatement:medication}
Support: Mandatory for server and client to support search by patient and encounter parameter. Mandatory for client to support the _include parameter. Optional for server to support the _include parameter.
Example: Get All Medications for an Encounter
Definitions
Requirements
Below is an overview of the required search and read operations for this use case. See the Conformance requirements for a complete list of supported RESTful operations and search parameters for this IG.
Using the patient
and status
=’active’ search parameters. This search returns a Bundle of all a patient’s active MedicationRequests and, if the _include parameter is used by the server, Medication resources.
GET /MedicationRequest?patient=[id]&status=active{&_include=MedicationRequest:medication}
Support: Mandatory for server and client to support search by patient and status parameter. Mandatory for client to support the _include parameter. Optional for server to support the _include parameter.
Example: Get All Active Medication Orders
This use case adopts the use cases for the Argonaut Project and US Core specifically within the scope of recording and changing medications as prescribed in Meaningful Use 2015 §?170.302(d) - Maintain active medication list. Enable a user to record, change, and access a patient’s active medication list as well as medication history: (i) Ambulatory setting. Over multiple encounters; or (ii) Inpatient setting. For the duration of an entire hospitalization. The updates include both the creation of new MedicationStatement resources and changes to existing MedicationStatement resources. These interactions require “write access” to the EHR systems. Refer to the US Core Implementation Guide’s page for a discussion of the security and authorization requirements.
This Use Case will be the focus of future versions of this IG.
This use case involves the provider creating a new outpatient prescription using the MedicationRequest resource. Subsequent workflow steps depend on specific pattern agreed upon by business partners. See a list of possible scenarios in the FHIR workflow sections in the FHIR specification.
At the time of this publication, the US implementers have not used the MedicationRequest resource sufficiently to provide meaningful feedback on best practices and guidance. This Use Case will be the focus of future versions of this IG.
Background: Community pharmacies in the US are mandated to use NCPDP Script standard to send dispensed medications for adjudication and hospital pharmacies are typically using HL7 V2 RXD messaging. Possible scenarios where this resource could be used for interchange of dispensing data include:
At the time of this publication, the US implementers have not used the MedicationDispense resource sufficiently to provide meaningful feedback on best practices and guidance. This Use Case will be the focus of future versions of this IG.