Implementation Guide (Release 1.2.0)

US_Meds, published by HL7 International - Pharmacy Work Group. This is not an authorized publication; it is the continuous build for version 1.2.0). This version is based on the current content of https://github.com/HL7/FHIR-ONC-Meds/ and changes regularly. See the Directory of published versions

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

Formal Views of Profile Content

Description of Profiles, Differentials, and Snapshots.

The official URL for this profile is: http://hl7.org/fhir/us/meds/StructureDefinition/medicationdispense

Published on Tue Mar 07 00:00:00 UTC 2017 as a active by Health Level Seven International Pharmacy Work Group.

This profile builds on MedicationDispense


NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense 0..*MedicationDispenseDispensing a medication to a named patient
... status S1..1codepreparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Binding: MedicationDispense Status Codes (required)
... medication[x] S1..1What medication was supplied
Binding: US Core Medication Codes (RxNorm) (extensible)
.... medicationCodeableConceptCodeableConcept
.... medicationReferenceReference(US Core Medication Profile)
... subject S1..1Reference(US Core Patient Profile)Who the dispense is for
... performer S0..*BackboneElementWho performed event
.... actor S1..1Reference(US Core Practitioner Profile | US Core Organization Profile)Individual who was performing
... whenHandedOver S1..1dateTimeWhen product was given out
... dosageInstruction S0..1DosageHow the medication is to be used by the patient or administered by the caregiver

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense I0..*MedicationDispenseDispensing a medication to a named patient
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier I0..*IdentifierExternal identifier
... partOf I0..*Reference(Procedure)Event that dispense is part of
... status ?!SΣI1..1codepreparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Binding: MedicationDispense Status Codes (required)
... statusReason[x] I0..1Why a dispense was not performed
Binding: MedicationDispense Status Reason Codes (example)
.... statusReasonCodeableConceptCodeableConcept
.... statusReasonReferenceReference(DetectedIssue)
... category I0..1CodeableConceptType of medication dispense
Binding: MedicationDispense Category Codes (preferred)
... medication[x] SΣI1..1What medication was supplied
Binding: US Core Medication Codes (RxNorm) (extensible)
.... medicationCodeableConceptCodeableConcept
.... medicationReferenceReference(US Core Medication Profile)
... subject SΣI1..1Reference(US Core Patient Profile)Who the dispense is for
... context I0..1Reference(Encounter | EpisodeOfCare)Encounter / Episode associated with event
... supportingInformation I0..*Reference(Resource)Information that supports the dispensing of the medication
... performer SI0..*BackboneElementWho performed event
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function I0..1CodeableConceptWho performed the dispense and what they did
Binding: MedicationDispense Performer Function Codes (example)
.... actor SI1..1Reference(US Core Practitioner Profile | US Core Organization Profile)Individual who was performing
... location I0..1Reference(Location)Where the dispense occurred
... authorizingPrescription I0..*Reference(MedicationRequest)Medication order that authorizes the dispense
... type I0..1CodeableConceptTrial fill, partial fill, emergency fill, etc.
Binding: ActPharmacySupplyType (example)
... quantity I0..1SimpleQuantityAmount dispensed
... daysSupply I0..1SimpleQuantityAmount of medication expressed as a timing amount
... whenPrepared ΣI0..1dateTimeWhen product was packaged and reviewed
... whenHandedOver SI1..1dateTimeWhen product was given out
... destination I0..1Reference(Location)Where the medication was sent
... receiver I0..*Reference(Patient | Practitioner)Who collected the medication
... note I0..*AnnotationInformation about the dispense
... dosageInstruction SI0..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..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... wasSubstituted I1..1booleanWhether a substitution was or was not performed on the dispense
.... type I0..1CodeableConceptCode signifying whether a different drug was dispensed from what was prescribed
Binding: ActSubstanceAdminSubstitutionCode (example)
.... reason I0..*CodeableConceptWhy was substitution made
Binding: SubstanceAdminSubstitutionReason (example)
.... responsibleParty I0..*Reference(Practitioner | PractitionerRole)Who is responsible for the substitution
... detectedIssue I0..*Reference(DetectedIssue)Clinical issue with action
... eventHistory I0..*Reference(Provenance)A list of relevant lifecycle events

doco Documentation for this format

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense 0..*MedicationDispenseDispensing a medication to a named patient
... status S1..1codepreparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Binding: MedicationDispense Status Codes (required)
... medication[x] S1..1What medication was supplied
Binding: US Core Medication Codes (RxNorm) (extensible)
.... medicationCodeableConceptCodeableConcept
.... medicationReferenceReference(US Core Medication Profile)
... subject S1..1Reference(US Core Patient Profile)Who the dispense is for
... performer S0..*BackboneElementWho performed event
.... actor S1..1Reference(US Core Practitioner Profile | US Core Organization Profile)Individual who was performing
... whenHandedOver S1..1dateTimeWhen product was given out
... dosageInstruction S0..1DosageHow the medication is to be used by the patient or administered by the caregiver

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense I0..*MedicationDispenseDispensing a medication to a named patient
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier I0..*IdentifierExternal identifier
... partOf I0..*Reference(Procedure)Event that dispense is part of
... status ?!SΣI1..1codepreparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Binding: MedicationDispense Status Codes (required)
... statusReason[x] I0..1Why a dispense was not performed
Binding: MedicationDispense Status Reason Codes (example)
.... statusReasonCodeableConceptCodeableConcept
.... statusReasonReferenceReference(DetectedIssue)
... category I0..1CodeableConceptType of medication dispense
Binding: MedicationDispense Category Codes (preferred)
... medication[x] SΣI1..1What medication was supplied
Binding: US Core Medication Codes (RxNorm) (extensible)
.... medicationCodeableConceptCodeableConcept
.... medicationReferenceReference(US Core Medication Profile)
... subject SΣI1..1Reference(US Core Patient Profile)Who the dispense is for
... context I0..1Reference(Encounter | EpisodeOfCare)Encounter / Episode associated with event
... supportingInformation I0..*Reference(Resource)Information that supports the dispensing of the medication
... performer SI0..*BackboneElementWho performed event
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function I0..1CodeableConceptWho performed the dispense and what they did
Binding: MedicationDispense Performer Function Codes (example)
.... actor SI1..1Reference(US Core Practitioner Profile | US Core Organization Profile)Individual who was performing
... location I0..1Reference(Location)Where the dispense occurred
... authorizingPrescription I0..*Reference(MedicationRequest)Medication order that authorizes the dispense
... type I0..1CodeableConceptTrial fill, partial fill, emergency fill, etc.
Binding: ActPharmacySupplyType (example)
... quantity I0..1SimpleQuantityAmount dispensed
... daysSupply I0..1SimpleQuantityAmount of medication expressed as a timing amount
... whenPrepared ΣI0..1dateTimeWhen product was packaged and reviewed
... whenHandedOver SI1..1dateTimeWhen product was given out
... destination I0..1Reference(Location)Where the medication was sent
... receiver I0..*Reference(Patient | Practitioner)Who collected the medication
... note I0..*AnnotationInformation about the dispense
... dosageInstruction SI0..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..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... wasSubstituted I1..1booleanWhether a substitution was or was not performed on the dispense
.... type I0..1CodeableConceptCode signifying whether a different drug was dispensed from what was prescribed
Binding: ActSubstanceAdminSubstitutionCode (example)
.... reason I0..*CodeableConceptWhy was substitution made
Binding: SubstanceAdminSubstitutionReason (example)
.... responsibleParty I0..*Reference(Practitioner | PractitionerRole)Who is responsible for the substitution
... detectedIssue I0..*Reference(DetectedIssue)Clinical issue with action
... eventHistory I0..*Reference(Provenance)A list of relevant lifecycle events

doco Documentation for this format

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


Quick Start

Below is an overview of the required set of RESTful FHIR interactions - for example, search and read operations - for this profile. See the Conformance requirements for a complete list of supported RESTful interactions for this IG.

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).