US Meds Implementation Guide (Release 1.2.0)

This page is part of the US-Medication FHIR IG (v1.2.0: STU 2) based on FHIR R3. This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Conformance requirements for the US Meds Server

  • FHIR Version: 3.0.0
  • Supported formats: xml, json
  • Published: 2017-03-08
  • Published by: Health Level Seven International Pharmacy Work Group

The section describes the expected capabilities of the US Meds Server actor which is responsible for providing responses to the queries submitted by the US Med Client applications. It is expected that this CapabilityStatement will be used with the US Core CapabilityStatement. Together they describe the complete list of FHIR profiles, RESTful operations, and search parameters supported by US Meds Servers. US Meds Clients have the option of choosing from this list to access necessary data based on their local use cases and other contextual requirements.

Behavior

Description: The US Meds Server SHALL:

  • Support the US Core Patient resource profile.
  • At a minimum, support the US Core MedicationStatement Profile.
  • Implement the RESTful behavior according to the FHIR specification.
  • Return the following response classes:
    • (Status 200): successful operation
    • (Status 400): invalid parameter
    • (Status 401/4xx): unauthorized request
    • (Status 403): insufficient scope
    • (Status 404): unknown resource
    • (Status 410): deleted resource.
  • Support json resource formats for all US Meds interactions.
  • Declare a CapabilityStatement identifying the list of profiles, operations, and search parameters supported.

The US Meds Server SHOULD:

  • Support the following US Core and US Meds resource profiles:
    • US Core Medication
    • US Meds MedicationAdministration
    • US Meds MedicationDispense
    • US Core MedicationRequest
  • Support xml resource formats for all US Meds interactions.
  • Identify the US Core profile(s) and US Meds profiles supported as part of the FHIR meta.profile attribute for each instance.

The US Meds Server MAY:

  • Support other US Core and US Meds resource profile

Security:

US Meds Servers SHALL:

  • Implement the security requirements documented in the US-Core IG.
  • A server has ensured that every API request includes a valid Authorization token, supplied via: Authorization: Bearer {server-specific-token-here}
  • A server has rejected any unauthorized requests by returning an HTTP 401 Unauthorized response code.

Profile Interaction Summary:

  • All servers SHALL make available the read and search interactions for the Profiles the server chooses to support.
  • All servers SHOULD make available the vread and history-instance interactions for the Profiles the server chooses to support.

Summary of US Meds search criteria

Specific server search capabilities are described in detail below in each of the resource sections. The MedicationAdministration, MedicationDispense, MedicationStatement and MedicationRequest resources can represent a medication using either a code or refer to the Medication resource. When referencing a Medication resource, the resource may be contained or an external resource. The server application can choose any one way or more than one method, but if the 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.

Resource Type Supported Profiles Supported Searches Supported _includes
Medication US Core Medication Profile
MedicationAdministration US Meds MedicationAdministration Profile patient MedicationAdministration:medication
MedicationDispense US Meds MedicationDispense Profile patient MedicationDispense:medication
MedicationRequest US Core MedicationRequest Profile patient, status, patient + status MedicationRequest:medication
MedicationStatement US Core MedicationStatement Profile patient, status, context, patient + status, patient + context MedicationStatement:medication

Resource Details:

1. Medication

Supported Profiles: US Core Medication Profile

2. MedicationAdministration

Supported Profiles: US Meds MedicationAdministration Profile

Search Criteria:

A server SHALL be capable of fetching a patient’s administered medications using one of or both:

  • GET /MedicationAdministration?patient=[id]
  • GET /MedicationAdministration?patient=[id]&_include=MedicationAdministration:medication

Search Parameters:

Conformance Parameter Type _include (see documentation) Modifiers
SHALL patient reference MedicationAdministration:medication
3. MedicationDispense

Supported Profiles: US Meds MedicationDispense Profile

Search Criteria:

A server SHALL be capable of returning a patient’s dispensed medications using one of or both:

  • GET /MedicationDispense?patient=[id]
  • GET /MedicationDispense?patient=[id]&_include=MedicationDispense:medication
Conformance Parameter Type _include (see documentation) Modifiers
SHALL patient reference MedicationDispense:medication
4. MedicationRequest

Supported Profiles: US Core MedicationRequest Profile

Search Criteria:

A server SHALL be capable of returning a patient’s active medications orders using one of or both:

  • GET /MedicationRequest?patient=[id]
  • GET /MedicationRequest?patient=[id]&_include=MedicationRequest:medication

Search Parameters:

Conformance Parameter Type _include (see documentation) Modifiers
SHALL status + status reference + token MedicationRequest:medication
5. MedicationStatement

Supported Profiles: US Core MedicationStatement Profile

Search Criteria:

A server SHALL be capable of returning all medications for a patient using one of or both:

  • GET /MedicationStatement?patient=[id]
  • GET /MedicationStatement?patient=[id]&_include=MedicationStatement:medication

A server SHALL be capable of returning all active medications for a patient using:

  • GET /MedicationStatement?patient=[id]&status=active
  • GET /MedicationStatement?patient=[id]&status=active&_include=MedicationStatement:medication

A server SHALL be capable of returning all medications for a patient for an encounter using:

  • GET /MedicationStatement?patient=[id]&context=[id]
  • GET /MedicationStatement?patient=[id]&context=[id]&_include=MedicationStatement:medication

Search Parameters:

Conformance Parameter Type _include (see documentation) Modifiers
SHALL patient reference MedicationStatement:medication
SHALL patient + status reference + token MedicationStatement:medication
SHALL patient + context reference MedicationStatement:medication