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

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 EST 2017 as a active by Health Level Seven International Pharmacy Work Group.

This profile builds on MedicationDispense


Summary

Mandatory: 0 element (3 nested mandatory elements)
Must-Support: 7 elements

Structures

This structure refers to these other structures:

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)
Max Binding: All Languages
... 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: (unbound) (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 | 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(US Core Practitioner | US Core Organization 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 | 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

Summary

Mandatory: 0 element (3 nested mandatory elements)
Must-Support: 7 elements

Structures

This structure refers to these other structures:

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)
Max Binding: All Languages
... 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: (unbound) (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 | 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(US Core Practitioner | US Core Organization 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 | 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), 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).