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. For a full list of available versions, see the Directory of published versions

D.4.1 StructureDefinition-medicationdispense

The MedicationDispense resource can be used to record a medication that has been dispensed for a named person/patient. For more information about the context and usage, refer to the resource page in the FHIR specification. This profile sets minimum expectations for recording, searching and fetching a patient’s MedicationAdministration resource. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.

Example Usage Scenarios:

The following are example usage scenarios:

  • Query for medications that have been dispensed to a particular patient
Mandatory Data Elements and Terminology

The following data-elements are mandatory (i.e data MUST be present). These are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.

Each MedicationDispense must have:

  1. a status
  2. a medication
  3. a patient
  4. a date or date range

In addition, a system Must Support.

  1. who dispensed
  2. dosage information

Profile specific implementation guidance:

  • None
Examples

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://hl7.org/fhir/us/meds/StructureDefinition/medicationdispense

This profile builds on MedicationDispense.

This profile was published on Tue Mar 07 00:00:00 AEDT 2017 as a draft by Health Level Seven International Pharmacy Work Group.

Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.

Complete Summary of the Mandatory Requirements

  1. One status in MedicationDispense.status which has a required binding to:
  2. One medication via MedicationDispense.medicationCodeableConcept or MedicationDispense.medicationReference
  3. One patient reference in MedicationDispense.subject
  4. One date in MedicationDispense.whenHandedOver

Summary of the Must Support Requirements

  1. One or more references to a patient, practitioner, or related-person in MedicationDispense.performer.actor
  2. Dosage Information in MedicationDispense.dosageInstruction
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense I0..*Dispensing a medication to a named patient
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierExternal identifier
... partOf 0..*Reference(Procedure)Event that dispense is part of
... status ?!SΣ1..1codepreparation | in-progress | on-hold | completed | entered-in-error | stopped
Binding: MedicationDispenseStatus (required)
... category 0..1CodeableConceptType of medication dispense
Binding: MedicationDispenseCategory (preferred)
... medication[x] SΣ1..1CodeableConcept, Reference(US Core Medication Profile)What medication was supplied
Binding: Medication Clinical Drug (RxNorm) (extensible)
... subject SΣ1..1Reference(US Core Patient Profile)Who the dispense is for
... context 0..1Reference(Encounter), Reference(EpisodeOfCare)Encounter / Episode associated with event
... supportingInformation 0..*Reference(Resource)Information that supports the dispensing of the medication
... performer SI0..*BackboneElementWho performed event
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... actor S1..1Reference(http://hl7.org/fhir/us/core/StructureDefinition/us-core-pract), Reference(US Core Organization Core Profile)Individual who was performing
.... onBehalfOf 0..1Reference(Organization)Organization organization was acting for
... authorizingPrescription 0..*Reference(MedicationRequest)Medication order that authorizes the dispense
... type 0..1CodeableConceptTrial fill, partial fill, emergency fill, etc.
Binding: ActPharmacySupplyType (example)
... quantity 0..1SimpleQuantityAmount dispensed
... daysSupply 0..1SimpleQuantityAmount of medication expressed as a timing amount
... whenPrepared Σ0..1dateTimeWhen product was packaged and reviewed
... whenHandedOver S1..1dateTimeWhen product was given out
... destination 0..1Reference(Location)Where the medication was sent
... receiver 0..*Reference(Patient), Reference(Practitioner)Who collected the medication
... note 0..*AnnotationInformation about the dispense
... dosageInstruction S0..1DosageHow the medication is to be used by the patient or administered by the caregiver
... substitution I0..1BackboneElementWhether a substitution was performed on the dispense
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... wasSubstituted 1..1booleanWhether a substitution was or was not performed on the dispense
.... type 0..1CodeableConceptCode signifying whether a different drug was dispensed from what was prescribed
Binding: ActSubstanceAdminSubstitutionCode (example)
.... reason 0..*CodeableConceptWhy was substitution made
Binding: SubstanceAdminSubstitutionReason (example)
.... responsibleParty 0..*Reference(Practitioner)Who is responsible for the substitution
... detectedIssue 0..*Reference(DetectedIssue)Clinical issue with action
... notDone 0..1booleanWhether the dispense was or was not performed
... notDoneReason[x] 0..1CodeableConcept, Reference(DetectedIssue)Why a dispense was not performed
... eventHistory 0..*Reference(Provenance)A list of releveant lifecycle events

doco Documentation for this format

Complete Summary of the Mandatory Requirements

  1. One status in MedicationDispense.status which has a required binding to:
  2. One medication via MedicationDispense.medicationCodeableConcept or MedicationDispense.medicationReference
  3. One patient reference in MedicationDispense.subject
  4. One date in MedicationDispense.whenHandedOver

Summary of the Must Support Requirements

  1. One or more references to a patient, practitioner, or related-person in MedicationDispense.performer.actor
  2. Dosage Information in MedicationDispense.dosageInstruction

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense I0..*Dispensing a medication to a named patient
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierExternal identifier
... partOf 0..*Reference(Procedure)Event that dispense is part of
... status ?!SΣ1..1codepreparation | in-progress | on-hold | completed | entered-in-error | stopped
Binding: MedicationDispenseStatus (required)
... category 0..1CodeableConceptType of medication dispense
Binding: MedicationDispenseCategory (preferred)
... medication[x] SΣ1..1CodeableConcept, Reference(US Core Medication Profile)What medication was supplied
Binding: Medication Clinical Drug (RxNorm) (extensible)
... subject SΣ1..1Reference(US Core Patient Profile)Who the dispense is for
... context 0..1Reference(Encounter), Reference(EpisodeOfCare)Encounter / Episode associated with event
... supportingInformation 0..*Reference(Resource)Information that supports the dispensing of the medication
... performer SI0..*BackboneElementWho performed event
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... actor S1..1Reference(http://hl7.org/fhir/us/core/StructureDefinition/us-core-pract), Reference(US Core Organization Core Profile)Individual who was performing
.... onBehalfOf 0..1Reference(Organization)Organization organization was acting for
... authorizingPrescription 0..*Reference(MedicationRequest)Medication order that authorizes the dispense
... type 0..1CodeableConceptTrial fill, partial fill, emergency fill, etc.
Binding: ActPharmacySupplyType (example)
... quantity 0..1SimpleQuantityAmount dispensed
... daysSupply 0..1SimpleQuantityAmount of medication expressed as a timing amount
... whenPrepared Σ0..1dateTimeWhen product was packaged and reviewed
... whenHandedOver S1..1dateTimeWhen product was given out
... destination 0..1Reference(Location)Where the medication was sent
... receiver 0..*Reference(Patient), Reference(Practitioner)Who collected the medication
... note 0..*AnnotationInformation about the dispense
... dosageInstruction S0..1DosageHow the medication is to be used by the patient or administered by the caregiver
... substitution I0..1BackboneElementWhether a substitution was performed on the dispense
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... wasSubstituted 1..1booleanWhether a substitution was or was not performed on the dispense
.... type 0..1CodeableConceptCode signifying whether a different drug was dispensed from what was prescribed
Binding: ActSubstanceAdminSubstitutionCode (example)
.... reason 0..*CodeableConceptWhy was substitution made
Binding: SubstanceAdminSubstitutionReason (example)
.... responsibleParty 0..*Reference(Practitioner)Who is responsible for the substitution
... detectedIssue 0..*Reference(DetectedIssue)Clinical issue with action
... notDone 0..1booleanWhether the dispense was or was not performed
... notDoneReason[x] 0..1CodeableConcept, Reference(DetectedIssue)Why a dispense was not performed
... eventHistory 0..*Reference(Provenance)A list of releveant lifecycle events

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON, CSV), Schema: XML Schematron

 

D.4.1.2 Quick Start

Below is an overview of the required search and read operations for this profile. See the Conformance requirements for the US Core Server for a complete list of supported RESTful operations and search parameters for this IG.

Summary of Argonaut Search Criteria for StructureDefinition-medicationdispense

GET /MedicationDispense?patient=[id]{&_include=MedicationDispense:medication}

Example:

  • GET /MedicationDispense?patient=14676
  • GET /MedicationDispense?patient=14676&_include=MedicationDispense:medication

Support: Mandatory for server and client to support search by patient. Mandatory for client to support the _include parameter. Optional for server to support the _include parameter.

Implementation Notes: This query searches for all MedicationDispense resources for a patient and returns a Bundle of all MedicationDispense and resources for the specified patient. The server application represents the medication using either an inline code or a contained or external reference to the Medication resource. (how to search by reference), and (how to search by _include).