QI-Core Implementation Guide
7.0.0 - STU7 United States of America flag

QI-Core Implementation Guide, published by HL7 International / Clinical Quality Information. This guide is not an authorized publication; it is the continuous build for version 7.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-qi-core/ and changes regularly. See the Directory of published versions

Resource Profile: QICore MedicationDispense Declined

Official URL: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationdispensedeclined Version: 7.0.0
Active as of 2018-08-22 Computable Name: QICoreMedicationDispenseDeclined

Negation profile of MedicationDispense for decision support/quality metrics. Indicates that a medication dispense was declined for a reason.

"Must Have", "QI Elements" and "primary code path" are defined in the QI-Core Must Support section.
Must Have:
  • status: (QI) declined
  • medication[x]: (QI) What medication was supplied
  • subject: (QI) Who the dispense is for
  • performer.actor: Individual who was performing
QI Elements:
  • extension(recorded): (QI) Extension
  • extension(recorded): (QI) Extension
  • statusReason[x]: (QI) Why a dispense was not performed
  • medication[x].extension(codeOptions): (QI) Url of a value set of candidate medications
  • authorizingPrescription: (QI) Medication order that authorizes the dispense
  • type: (QI) Trial fill, partial fill, emergency fill, etc.
  • quantity: (QI) Amount dispensed
  • daysSupply: (QI) Amount of medication expressed as a timing amount
  • whenPrepared: (QI) When product was packaged and reviewed
  • whenHandedOver: (QI) When product was given out or mailed
  • dosageInstruction: (QI) How the medication is to be used by the patient or administered by the caregiver
  • dosageInstruction.text: (QI) Free text dosage instructions e.g. SIG
  • dosageInstruction.timing: (QI) When medication should be administered
  • dosageInstruction.doseAndRate: (QI) Amount of medication administered
  • dosageInstruction.doseAndRate.dose[x]: (QI) Amount of medication per dose
Primary code path: medication
(PCPath) This element is the primary code path for this resource CQL Retrieve


NOTE TO BALLOT REVIEWERS:
  • US Core 7.0, and thus QI-Core 7.0, has a new approach to USCDI requirements.
    • As noted in the US Core 7.0 Must Support section, US Core 7.0 no longer highlights mandatory (cardinality 1..* or 1..1) and Must Support elements with a (USCDI) indicator as such items must be supported for interoperability.
    • Those USCDI elements that are not mandatory or Must Support now include an indicator (ADDITIONAL USCDI) in US Core. QI-Core 7.0 does not reference USCDI elements; rather, users should access US Core 7.0 to understand its implementation of USCDI version 4.
  • We invite comments about the approach and suggestions for other options that would also avoid unnecessary noise or reading load to the QI-Core profile representation.
  • Further, QI-Core 7.0 does not discuss USCDI+Quality because at the time of ballot preparation, no published version of USCDI+Quality is available. We seek reviewer advice regarding how QI-Core might address future USCDI+Quality.

Usage

The MedicationDispense profile defines the conformance expectations for a MedicationDispense event, regardless of whether it is a positive or negative statement. The MedicationDispenseDone and MedicationDispenseDeclined profiles represent the positive and negative statements for a MedicationDispense event.

To create an expression indicating existence of a MedicationDispense event, use the profile QICoreMedicationDispenseDone; to specifically request information that a MedicationDispense intentionally did not occur for a medical, patient or system reason, use the profile QICoreMedicationDispenseDeclined.

The following example illustrates the use of the MedicationDispenseDeclined profile:

define "Dementia Medication Not Dispensed":
  ["MedicationDispenseNotDone": "Dementia Medications"] MedicationDispense
    where MedicationDispense.statusReason in "Medical Reason"
      or MedicationDispense.statusReason in "Patient Refusal"

For a more complete discussion of representation of negation within QI-Core and quality improvement artifacts, see the Negation in QI-Core topic.

See the patterns page for implementation and usage patterns.

Examples

Negation Example with valuesetOpthalmic Antihistamines not indicated; indicates that none of the drugs in the given `codeOptions` value set were dispensed.
Negation Example with codeAlcaftadine 2.5 MG/ML Opthalmic Solution not indicated; indicates that the specific drug was not dispensed.

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense C 0..* QICoreMedicationDispense Dispensing a medication to a named patient
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
mdd-1: whenHandedOver cannot be before whenPrepared
us-core-20: whenHandedOver SHALL be present if the status is "completed"
mdp-1: To indicate what medication, either a reference to a Medication, or at least one coding in the medication or a codeOptions extension shall be provided
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... recorded 1..1 dateTime (QI) Extension
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.recorded
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... statusReason[x] 1..1 CodeableConcept (QI) Why a dispense was not performed
Binding: QICore Negation Reason Codes (extensible): The reason the event did not occur or was not performed


ele-1: All FHIR elements must have a @value or children
... medication[x] SΣ 1..1 (QI) What medication was supplied
Binding: Medication Clinical Drug . (extensible): The set of RxNorm codes to represent medications


ele-1: All FHIR elements must have a @value or children
.... medication[x]All Types Content/Rules for all Types
..... Slices for extension Content/Rules for all slices
...... codeOptions 0..1 canonical(ValueSet) (QI) Url of a value set of candidate medications
URL: http://hl7.org/fhir/StructureDefinition/codeOptions
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... medicationCodeableConcept CodeableConcept
.... medicationReference Reference(QICore Medication)
... subject SΣ 1..1 Reference(QICore Patient) (QI) Who the dispense is for
ele-1: All FHIR elements must have a @value or children
... context S 0..1 Reference(US Core Encounter Profile) Encounter associated with MedicationDispense
ele-1: All FHIR elements must have a @value or children
... performer S 0..* BackboneElement Who performed event
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... actor S 1..1 Reference(US Core Practitioner Profile | US Core Organization Profile) Individual who was performing
ele-1: All FHIR elements must have a @value or children
... authorizingPrescription S 0..* Reference(QICore MedicationRequest) (QI) Medication order that authorizes the dispense
ele-1: All FHIR elements must have a @value or children
... type S 0..1 CodeableConcept (QI) Trial fill, partial fill, emergency fill, etc.
Binding: ActPharmacySupplyType (extensible)
ele-1: All FHIR elements must have a @value or children
... quantity S 0..1 SimpleQuantity (QI) Amount dispensed
Binding: Common UCUM units (preferred)
Additional BindingsPurpose
UCUMCodes Max Binding

ele-1: All FHIR elements must have a @value or children
... whenHandedOver SC 0..1 dateTime (QI) When product was given out or mailed
ele-1: All FHIR elements must have a @value or children
... dosageInstruction S 0..* Dosage (QI) How the medication is to be used by the patient or administered by the caregiver
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... text SΣ 0..1 string (QI) Free text dosage instructions e.g. SIG
ele-1: All FHIR elements must have a @value or children
.... timing SΣ 0..1 Timing (QI) When medication should be administered
ele-1: All FHIR elements must have a @value or children
.... doseAndRate SΣ 0..* Element (QI) Amount of medication administered
ele-1: All FHIR elements must have a @value or children
..... dose[x] SΣ 0..1 (QI) Amount of medication per dose
Binding: Common UCUM units (preferred)
Additional BindingsPurpose
UCUMCodes Max Binding

ele-1: All FHIR elements must have a @value or children
...... doseQuantity Quantity(SimpleQuantity)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
MedicationDispense.statusrequiredFixed Value: declined
http://hl7.org/fhir/ValueSet/medicationdispense-status|4.0.1
from the FHIR Standard
MedicationDispense.statusReason[x]extensibleNegationReasonCodes
http://hl7.org/fhir/us/qicore/ValueSet/qicore-negation-reason
from this IG
MedicationDispense.medication[x]extensibleMedicationClinicalDrug .
http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1010.4
MedicationDispense.typeextensibleActPharmacySupplyType
http://terminology.hl7.org/ValueSet/v3-ActPharmacySupplyType
MedicationDispense.quantitypreferredCommon UCUM units
http://hl7.org/fhir/ValueSet/ucum-common
from the FHIR Standard
Additional Bindings Purpose
UCUMCodes Max Binding
MedicationDispense.dosageInstruction.doseAndRate.dose[x]preferredCommon UCUM units
http://hl7.org/fhir/ValueSet/ucum-common
from the FHIR Standard
Additional Bindings Purpose
UCUMCodes Max Binding

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationDispenseIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationDispenseIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorMedicationDispenseIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorMedicationDispenseIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationDispenseA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
mdp-1errorMedicationDispenseTo indicate what medication, either a reference to a Medication, or at least one coding in the medication or a codeOptions extension shall be provided
: (medication is Reference).not() implies medication.extension('http://hl7.org/fhir/StructureDefinition/codeOptions').exists() xor medication.coding.exists()
mdd-1errorMedicationDispensewhenHandedOver cannot be before whenPrepared
: whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared
us-core-20errorMedicationDispensewhenHandedOver SHALL be present if the status is "completed"
: status='completed' implies whenHandedOver.exists()

 

Other representations of profile: CSV, Excel, Schematron