AU Core Implementation Guide
3.0.0-ballot1 - Ballot

AU Core Implementation Guide - Downloaded Version 3.0.0-ballot1 See the Directory of published versions

## Resource Profile: AU Core MedicationDispense

Official URL: http://hl7.org.au/fhir/core/StructureDefinition/au-core-medicationdispense | Version: 3.0.0-ballot1
Standards status: Trial-use | Maturity Level: 1 | Computable Name: AUCoreMedicationDispense
Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License. HL7 Australia© 2022+; Licensed Under Creative Commons No Rights Reserved.

This profile sets minimum expectations for a MedicationDispense resource to record, search, and fetch information about the dispense of a medication associated with a patient. It is based on the AU Base MedicationDispense profile and identifies the additional mandatory core elements, extensions, vocabularies and value sets that SHALL be present in the MedicationDispense when conforming to this profile. It provides the floor for standards development for specific uses cases in an Australian context.

See Comparison with other national and international IGs for a comparison between AU Core profiles and profiles in other implementation guides.

### Usage Scenarios

The following are supported usage scenarios for this profile:

- Query the supply (dispense) of medications for a patient (current and historical)
- Record or update the supply (dispense) of medications for a patient

### Profile Specific Implementation Guidance

- See the Medicine Information page for guidance on how medicinal product identification can be structured in FHIR conformant to AU Core.
- MedicationDispense resources can represent a medication using either a code as `MedicationDispense.medicationCodeableConcept`, or reference a Medication resource using `MedicationDispense.medicationReference`.
  - Responders are not required to support both a code and a reference, but SHALL support at least one of these methods
  - When referencing a Medication resource, it is preferred the resource is contained but it may be an external resource
  - A requester SHALL support all methods
- When populating `MedicationDispense.medicationCodeableConcept` responders SHALL correctly populate `MedicationDispense.medicationCodeableConcept.coding` with either a code from Australian Medication or PBS Item Codes, or both, if a coded value is known and MAY populate with a code from another code system.
  - Responders MAY populate with only text if no coded value is known.
- The MedicationDispense resource SHALL NOT be used to represent that a patient is not currently taking any medications; implementers SHOULD use the MedicationStatement resource following the profile specific implementation guidance in AU Core MedicationStatement.

Usages:

- Examples for this Profile: MedicationDispense/lipex, MedicationDispense/panadeine-forte and MedicationDispense/reaptan
- CapabilityStatements using this Profile: AU Core Requester CapabilityStatement and AU Core Responder CapabilityStatement

You can also check for usages in the FHIR IG Statistics

Changes since version 2.0.0:

- New Content

### Formal Views of Profile Content

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

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationDispense | C | 0..* | AUBaseMedicationDispense | A dispense record for a medication for a patient in an Australian healthcare context Constraints: mdd-1
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:subsidisedConcurrentSupply |  | 0..1 | Coding | Grounds for concurrent supply of medication URL: http://hl7.org.au/fhir/StructureDefinition/subsidised-concurrent-supply Binding: Concurrent Supply Grounds (required)
extension:dispenseNumber |  | 0..1 | integer | Number of this dispense URL: http://hl7.org.au/fhir/StructureDefinition/dispense-number
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!SO Σ | 1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for medication[x] | SO Σ | 1..1 |  | What medication was supplied Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medicationCodeableConcept |  |  | CodeableConcept |
medicationReference |  |  | Reference(Medication) |
medication[x]:medicationCodeableConcept | SO Σ | 0..1 | CodeableConcept | Coded Dispensed Medication Binding: SNOMEDCTMedicationCodes (example)
Additional Bindings | Purpose
Australian Medication | Preferred
PBS Item Codes | Preferred
MIMS | Preferred
GTIN | Preferred
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
coding:All Slices |  |  |  | Content/Rules for all slices
Slices for extension |  |  |  | Content/Rules for all slices
extension:medicationClass |  | 0..1 | Coding | Medication type URL: http://hl7.org.au/fhir/StructureDefinition/medication-type Binding: Medication Type (required)
Slices for coding |  |  |  | Content/Rules for all slices
coding:pbs | SO Σ | 0..* | Coding | Code defined by a terminology system Binding: PBS Item Codes (required)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for extension |  |  |  | Content/Rules for all slices
extension:medicationClass |  | 0..1 | Coding | Medication type URL: http://hl7.org.au/fhir/StructureDefinition/medication-type Binding: Medication Type (required)
coding:amt | SO Σ | 0..* | Coding | Code defined by a terminology system Binding: Australian Medication (required)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for extension |  |  |  | Content/Rules for all slices
extension:medicationClass |  | 0..1 | Coding | Medication type URL: http://hl7.org.au/fhir/StructureDefinition/medication-type Binding: Medication Type (required)
medication[x]:medicationReference | SO Σ | 0..1 | Reference(AU Core Medication) | Dispensed Medication
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | Who the dispense is for
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
performer | SO | 0..* | BackboneElement | Who performed event
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
actor | SO | 1..1 | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | AU Core Patient | Device | AU Core RelatedPerson) | Individual who was performing
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
authorizingPrescription | SO | 0..* | Reference(AU Core MedicationRequest) | Medication order that authorizes the dispense
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
quantity | SO | 0..1 | SimpleQuantity(4.0.1) | Amount dispensed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
whenPrepared | SO Σ | 0..1 | dateTime | When product was packaged and reviewed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
note | SO | 0..* | Annotation | Information about the dispense
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosageInstruction | SO | 0..* | AUBaseDosage | How the medication is to be used by the patient or administered by the caregiver
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
text | SO Σ | 0..1 | string | Free text dosage instructions e.g. SIG
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x]:medicationCodeableConcept | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x]:medicationCodeableConcept.​coding:pbs | Base | required | PBS Item Codes | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
MedicationDispense.medication[x]:medicationCodeableConcept.​coding:amt | Base | required | Australian Medication | ⏿1.0.2 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | MedicationDispense | 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 | `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-4 | error | MedicationDispense | If 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-5 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | MedicationDispense | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared | `whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared`

This structure is derived from AUBaseMedicationDispense

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationDispense |  | 0..* | AUBaseMedicationDispense | A dispense record for a medication for a patient in an Australian healthcare context
status | SO | 1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for medication[x] | SO | 1..1 | CodeableConcept, Reference(Medication) | What medication was supplied Slice: Unordered, Closed by type:$this
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medication[x]:medicationCodeableConcept | SO | 0..1 | CodeableConcept | Coded Dispensed Medication
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for coding |  | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
Slices for coding |  |  |  | Content/Rules for all slices
coding:pbs | SO | 0..* | Coding | Code defined by a terminology system Binding: PBS Item Codes (required)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
coding:amt | SO | 0..* | Coding | Code defined by a terminology system Binding: Australian Medication (required)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medication[x]:medicationReference | SO | 0..1 | Reference(AU Core Medication) | Dispensed Medication
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO | 1..1 | Reference(AU Core Patient) | Who the dispense is for
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
performer | SO | 0..* | BackboneElement | Who performed event
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
actor | SO | 1..1 | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | AU Core Patient | Device | AU Core RelatedPerson) | Individual who was performing
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
authorizingPrescription | SO | 0..* | Reference(AU Core MedicationRequest) | Medication order that authorizes the dispense
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
quantity | SO | 0..1 | SimpleQuantity(4.0.1) | Amount dispensed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
whenPrepared | SO | 0..1 | dateTime | When product was packaged and reviewed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
note | SO | 0..* | Annotation | Information about the dispense
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosageInstruction | SO | 0..* | AUBaseDosage | How the medication is to be used by the patient or administered by the caregiver
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
text | SO | 0..1 | string | Free text dosage instructions e.g. SIG
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
MedicationDispense.medication[x]:medicationCodeableConcept.​coding:pbs | Base | required | PBS Item Codes | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
MedicationDispense.medication[x]:medicationCodeableConcept.​coding:amt | Base | required | Australian Medication | ⏿1.0.2 | tx.hl7.org.au

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationDispense | C | 0..* | AUBaseMedicationDispense | A dispense record for a medication for a patient in an Australian healthcare context Constraints: mdd-1
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:subsidisedConcurrentSupply |  | 0..1 | Coding | Grounds for concurrent supply of medication URL: http://hl7.org.au/fhir/StructureDefinition/subsidised-concurrent-supply Binding: Concurrent Supply Grounds (required)
extension:dispenseNumber |  | 0..1 | integer | Number of this dispense URL: http://hl7.org.au/fhir/StructureDefinition/dispense-number
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier |  | 0..* | Identifier, AULocalDispenseIdentifier | External identifier
partOf |  | 0..* | Reference(Procedure) | Event that dispense is part of
status | ?!SO Σ | 1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
statusReason[x] |  | 0..1 |  | Why a dispense was not performed Binding: MedicationDispense Status Reason Codes (example): A code describing why a dispense was not performed.
statusReasonCodeableConcept |  |  | CodeableConcept |
statusReasonReference |  |  | Reference(DetectedIssue) |
category |  | 0..1 | CodeableConcept | Type of medication dispense Binding: MedicationDispense Category Codes (preferred): A code describing where the dispensed medication is expected to be consumed or administered.
Slices for medication[x] | SO Σ | 1..1 |  | What medication was supplied Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medicationCodeableConcept |  |  | CodeableConcept |
medicationReference |  |  | Reference(Medication) |
medication[x]:medicationCodeableConcept | SO Σ | 0..1 | CodeableConcept | Coded Dispensed Medication Binding: SNOMEDCTMedicationCodes (example)
Additional Bindings | Purpose
Australian Medication | Preferred
PBS Item Codes | Preferred
MIMS | Preferred
GTIN | Preferred
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
coding:All Slices |  |  |  | Content/Rules for all slices
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
Slices for extension |  |  |  | Content/Rules for all slices
extension:medicationClass |  | 0..1 | Coding | Medication type URL: http://hl7.org.au/fhir/StructureDefinition/medication-type Binding: Medication Type (required)
system | Σ | 0..1 | uri | Identity of the terminology system
version | Σ | 0..1 | string | Version of the system - if relevant
code | Σ | 0..1 | code | Symbol in syntax defined by the system
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
Slices for coding |  |  |  | Content/Rules for all slices
coding:pbs | SO Σ | 0..* | Coding | Code defined by a terminology system Binding: PBS Item Codes (required)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
Slices for extension |  |  |  | Content/Rules for all slices
extension:medicationClass |  | 0..1 | Coding | Medication type URL: http://hl7.org.au/fhir/StructureDefinition/medication-type Binding: Medication Type (required)
system | Σ | 0..1 | uri | Identity of the terminology system
version | Σ | 0..1 | string | Version of the system - if relevant
code | Σ | 0..1 | code | Symbol in syntax defined by the system
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
coding:amt | SO Σ | 0..* | Coding | Code defined by a terminology system Binding: Australian Medication (required)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
Slices for extension |  |  |  | Content/Rules for all slices
extension:medicationClass |  | 0..1 | Coding | Medication type URL: http://hl7.org.au/fhir/StructureDefinition/medication-type Binding: Medication Type (required)
system | Σ | 0..1 | uri | Identity of the terminology system
version | Σ | 0..1 | string | Version of the system - if relevant
code | Σ | 0..1 | code | Symbol in syntax defined by the system
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
text | Σ | 0..1 | string | Medication primary text
medication[x]:medicationReference | SO Σ | 0..1 | Reference(AU Core Medication) | Dispensed Medication
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | Who the dispense is for
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
context |  | 0..1 | Reference(Encounter | EpisodeOfCare) | Encounter / Episode associated with event
supportingInformation |  | 0..* | Reference(Resource) | Information that supports the dispensing of the medication
performer | SO | 0..* | BackboneElement | Who performed event
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
function |  | 0..1 | CodeableConcept | Who performed the dispense and what they did Binding: MedicationDispense Performer Function Codes (example): A code describing the role an individual played in dispensing a medication.
actor | SO | 1..1 | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | AU Core Patient | Device | AU Core RelatedPerson) | Individual who was performing
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
location |  | 0..1 | Reference(Location) | Where the dispense occurred
authorizingPrescription | SO | 0..* | Reference(AU Core MedicationRequest) | Medication order that authorizes the dispense
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
type |  | 0..1 | CodeableConcept | Trial fill, partial fill, emergency fill, etc. Binding: ActPharmacySupplyType (example): Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.
quantity | SO | 0..1 | SimpleQuantity(4.0.1) | Amount dispensed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
daysSupply |  | 0..1 | SimpleQuantity(4.0.1) | Amount of medication expressed as a timing amount
whenPrepared | SO Σ | 0..1 | dateTime | When product was packaged and reviewed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
whenHandedOver |  | 0..1 | dateTime | When product was given out
destination |  | 0..1 | Reference(Location) | Where the medication was sent
receiver |  | 0..* | Reference(Patient | Practitioner) | Who collected the medication
note | SO | 0..* | Annotation | Information about the dispense
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosageInstruction | SO | 0..* | AUBaseDosage | How the medication is to be used by the patient or administered by the caregiver
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
sequence | Σ | 0..1 | integer | The order of the dosage instructions
text | SO Σ | 0..1 | string | Free text dosage instructions e.g. SIG
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
additionalInstruction | Σ | 0..* | CodeableConcept | Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness" Binding: SNOMEDCTAdditionalDosageInstructions (preferred)
patientInstruction | Σ | 0..1 | string | Patient or consumer oriented instructions
timing | Σ | 0..1 | Timing | When medication should be administered
asNeeded[x] | Σ | 0..1 |  | Take "as needed" (for x) Binding: Clinical Finding (preferred)
asNeededBoolean |  |  | boolean |
asNeededCodeableConcept |  |  | CodeableConcept |
site | Σ | 0..1 | CodeableConcept | Body site to administer to Binding: Body Site (preferred)
route | Σ | 0..1 | CodeableConcept | How drug should enter body Binding: Route of Administration (preferred)
method | Σ | 0..1 | CodeableConcept | Technique for administering medication Binding: SNOMEDCTAdministrationMethodCodes (preferred)
doseAndRate | Σ | 0..* | Element | Amount of medication administered
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
type | Σ | 0..1 | CodeableConcept | The kind of dose or rate specified Binding: DoseAndRateType (example): The kind of dose or rate specified.
dose[x] | Σ | 0..1 |  | Amount of medication per dose
doseRange |  |  | Range |
doseQuantity |  |  | Quantity(SimpleQuantity) |
rate[x] | Σ | 0..1 |  | Amount of medication per unit of time
rateRatio |  |  | Ratio |
rateRange |  |  | Range |
rateQuantity |  |  | Quantity(SimpleQuantity) |
maxDosePerPeriod | Σ | 0..1 | Ratio | Upper limit on medication per unit of time
maxDosePerAdministration | Σ | 0..1 | SimpleQuantity(4.0.1) | Upper limit on medication per administration
maxDosePerLifetime | Σ | 0..1 | SimpleQuantity(4.0.1) | Upper limit on medication per lifetime of the patient
substitution |  | 0..1 | BackboneElement | Whether a substitution was performed on the dispense
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
wasSubstituted |  | 1..1 | boolean | Whether a substitution was or was not performed on the dispense
type |  | 0..1 | CodeableConcept | Code signifying whether a different drug was dispensed from what was prescribed Binding: ActSubstanceAdminSubstitutionCode (example): A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription.
reason |  | 0..1 | CodeableConcept | Why was substitution made Binding: Medicine Substitution Reason (preferred)
responsibleParty |  | 0..* | Reference(Practitioner | PractitionerRole) | Who is responsible for the substitution
detectedIssue |  | 0..* | Reference(DetectedIssue) | Clinical issue with action
eventHistory |  | 0..* | Reference(Provenance) | A list of relevant lifecycle events
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
MedicationDispense.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std.
MedicationDispense.statusReason[x] | Base | example | Medication dispense status reason codes | 📍4.0.1 | FHIR Std.
MedicationDispense.category | Base | preferred | Medication dispense category codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x]:medicationCodeableConcept | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x]:medicationCodeableConcept.​coding:pbs | Base | required | PBS Item Codes | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
MedicationDispense.medication[x]:medicationCodeableConcept.​coding:amt | Base | required | Australian Medication | ⏿1.0.2 | tx.hl7.org.au
MedicationDispense.performer.​function | Base | example | Medication dispense performer function codes | 📍4.0.1 | FHIR Std.
MedicationDispense.type | Base | example | ActPharmacySupplyType | 📦3.0.0 | THO v7.3
MedicationDispense.dosageInstruction.​additionalInstruction | Base | preferred | SNOMED CT Additional Dosage Instructions | 📦4.0.1 | FHIR Std.
MedicationDispense.dosageInstruction.​asNeeded[x] | Base | preferred | Clinical Finding | ⏿1.0.2 | tx.hl7.org.au
MedicationDispense.dosageInstruction.​site | Base | preferred | Body Site | ⏿1.0.2 | tx.hl7.org.au
MedicationDispense.dosageInstruction.​route | Base | preferred | Route of Administration | ⏿1.0.2 | tx.hl7.org.au
MedicationDispense.dosageInstruction.​method | Base | preferred | SNOMED CT Administration Method Codes | 📦4.0.1 | FHIR Std.
MedicationDispense.dosageInstruction.​doseAndRate.type | Base | example | DoseAndRateType | 📍4.0.1 | FHIR Std.
MedicationDispense.substitution.​type | Base | example | ActSubstanceAdminSubstitutionCode | 📦3.0.0 | THO v7.3
MedicationDispense.substitution.​reason | Base | preferred | Medicine Substitution Reason | ⏿1.0.1 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | MedicationDispense | 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 | `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-4 | error | MedicationDispense | If 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-5 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | MedicationDispense | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared | `whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared`

This structure is derived from AUBaseMedicationDispense

Summary

Mandatory: 1 element
Must-Support: 15 elements

Structures

This structure refers to these other structures:

- AU Core Medication (http://hl7.org.au/fhir/core/StructureDefinition/au-core-medication)
- AU Core Patient (http://hl7.org.au/fhir/core/StructureDefinition/au-core-patient)
- AU Core Practitioner (http://hl7.org.au/fhir/core/StructureDefinition/au-core-practitioner)
- AU Core PractitionerRole (http://hl7.org.au/fhir/core/StructureDefinition/au-core-practitionerrole)
- AU Core Organization (http://hl7.org.au/fhir/core/StructureDefinition/au-core-organization)
- AU Core RelatedPerson (http://hl7.org.au/fhir/core/StructureDefinition/au-core-relatedperson)
- AU Core MedicationRequest (http://hl7.org.au/fhir/core/StructureDefinition/au-core-medicationrequest)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of MedicationDispense.medication[x] (Closed)
- The element 1 is sliced based on the value of MedicationDispense.medication[x].coding

Maturity: 1

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationDispense | C | 0..* | AUBaseMedicationDispense | A dispense record for a medication for a patient in an Australian healthcare context Constraints: mdd-1
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:subsidisedConcurrentSupply |  | 0..1 | Coding | Grounds for concurrent supply of medication URL: http://hl7.org.au/fhir/StructureDefinition/subsidised-concurrent-supply Binding: Concurrent Supply Grounds (required)
extension:dispenseNumber |  | 0..1 | integer | Number of this dispense URL: http://hl7.org.au/fhir/StructureDefinition/dispense-number
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!SO Σ | 1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for medication[x] | SO Σ | 1..1 |  | What medication was supplied Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medicationCodeableConcept |  |  | CodeableConcept |
medicationReference |  |  | Reference(Medication) |
medication[x]:medicationCodeableConcept | SO Σ | 0..1 | CodeableConcept | Coded Dispensed Medication Binding: SNOMEDCTMedicationCodes (example)
Additional Bindings | Purpose
Australian Medication | Preferred
PBS Item Codes | Preferred
MIMS | Preferred
GTIN | Preferred
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
coding:All Slices |  |  |  | Content/Rules for all slices
Slices for extension |  |  |  | Content/Rules for all slices
extension:medicationClass |  | 0..1 | Coding | Medication type URL: http://hl7.org.au/fhir/StructureDefinition/medication-type Binding: Medication Type (required)
Slices for coding |  |  |  | Content/Rules for all slices
coding:pbs | SO Σ | 0..* | Coding | Code defined by a terminology system Binding: PBS Item Codes (required)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for extension |  |  |  | Content/Rules for all slices
extension:medicationClass |  | 0..1 | Coding | Medication type URL: http://hl7.org.au/fhir/StructureDefinition/medication-type Binding: Medication Type (required)
coding:amt | SO Σ | 0..* | Coding | Code defined by a terminology system Binding: Australian Medication (required)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for extension |  |  |  | Content/Rules for all slices
extension:medicationClass |  | 0..1 | Coding | Medication type URL: http://hl7.org.au/fhir/StructureDefinition/medication-type Binding: Medication Type (required)
medication[x]:medicationReference | SO Σ | 0..1 | Reference(AU Core Medication) | Dispensed Medication
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | Who the dispense is for
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
performer | SO | 0..* | BackboneElement | Who performed event
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
actor | SO | 1..1 | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | AU Core Patient | Device | AU Core RelatedPerson) | Individual who was performing
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
authorizingPrescription | SO | 0..* | Reference(AU Core MedicationRequest) | Medication order that authorizes the dispense
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
quantity | SO | 0..1 | SimpleQuantity(4.0.1) | Amount dispensed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
whenPrepared | SO Σ | 0..1 | dateTime | When product was packaged and reviewed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
note | SO | 0..* | Annotation | Information about the dispense
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosageInstruction | SO | 0..* | AUBaseDosage | How the medication is to be used by the patient or administered by the caregiver
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
text | SO Σ | 0..1 | string | Free text dosage instructions e.g. SIG
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x]:medicationCodeableConcept | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x]:medicationCodeableConcept.​coding:pbs | Base | required | PBS Item Codes | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
MedicationDispense.medication[x]:medicationCodeableConcept.​coding:amt | Base | required | Australian Medication | ⏿1.0.2 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | MedicationDispense | 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 | `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-4 | error | MedicationDispense | If 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-5 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | MedicationDispense | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared | `whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared`

Differential View

This structure is derived from AUBaseMedicationDispense

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationDispense |  | 0..* | AUBaseMedicationDispense | A dispense record for a medication for a patient in an Australian healthcare context
status | SO | 1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for medication[x] | SO | 1..1 | CodeableConcept, Reference(Medication) | What medication was supplied Slice: Unordered, Closed by type:$this
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medication[x]:medicationCodeableConcept | SO | 0..1 | CodeableConcept | Coded Dispensed Medication
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for coding |  | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
Slices for coding |  |  |  | Content/Rules for all slices
coding:pbs | SO | 0..* | Coding | Code defined by a terminology system Binding: PBS Item Codes (required)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
coding:amt | SO | 0..* | Coding | Code defined by a terminology system Binding: Australian Medication (required)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medication[x]:medicationReference | SO | 0..1 | Reference(AU Core Medication) | Dispensed Medication
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO | 1..1 | Reference(AU Core Patient) | Who the dispense is for
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
performer | SO | 0..* | BackboneElement | Who performed event
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
actor | SO | 1..1 | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | AU Core Patient | Device | AU Core RelatedPerson) | Individual who was performing
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
authorizingPrescription | SO | 0..* | Reference(AU Core MedicationRequest) | Medication order that authorizes the dispense
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
quantity | SO | 0..1 | SimpleQuantity(4.0.1) | Amount dispensed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
whenPrepared | SO | 0..1 | dateTime | When product was packaged and reviewed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
note | SO | 0..* | Annotation | Information about the dispense
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosageInstruction | SO | 0..* | AUBaseDosage | How the medication is to be used by the patient or administered by the caregiver
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
text | SO | 0..1 | string | Free text dosage instructions e.g. SIG
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
MedicationDispense.medication[x]:medicationCodeableConcept.​coding:pbs | Base | required | PBS Item Codes | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
MedicationDispense.medication[x]:medicationCodeableConcept.​coding:amt | Base | required | Australian Medication | ⏿1.0.2 | tx.hl7.org.au

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationDispense | C | 0..* | AUBaseMedicationDispense | A dispense record for a medication for a patient in an Australian healthcare context Constraints: mdd-1
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:subsidisedConcurrentSupply |  | 0..1 | Coding | Grounds for concurrent supply of medication URL: http://hl7.org.au/fhir/StructureDefinition/subsidised-concurrent-supply Binding: Concurrent Supply Grounds (required)
extension:dispenseNumber |  | 0..1 | integer | Number of this dispense URL: http://hl7.org.au/fhir/StructureDefinition/dispense-number
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier |  | 0..* | Identifier, AULocalDispenseIdentifier | External identifier
partOf |  | 0..* | Reference(Procedure) | Event that dispense is part of
status | ?!SO Σ | 1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
statusReason[x] |  | 0..1 |  | Why a dispense was not performed Binding: MedicationDispense Status Reason Codes (example): A code describing why a dispense was not performed.
statusReasonCodeableConcept |  |  | CodeableConcept |
statusReasonReference |  |  | Reference(DetectedIssue) |
category |  | 0..1 | CodeableConcept | Type of medication dispense Binding: MedicationDispense Category Codes (preferred): A code describing where the dispensed medication is expected to be consumed or administered.
Slices for medication[x] | SO Σ | 1..1 |  | What medication was supplied Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medicationCodeableConcept |  |  | CodeableConcept |
medicationReference |  |  | Reference(Medication) |
medication[x]:medicationCodeableConcept | SO Σ | 0..1 | CodeableConcept | Coded Dispensed Medication Binding: SNOMEDCTMedicationCodes (example)
Additional Bindings | Purpose
Australian Medication | Preferred
PBS Item Codes | Preferred
MIMS | Preferred
GTIN | Preferred
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
coding:All Slices |  |  |  | Content/Rules for all slices
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
Slices for extension |  |  |  | Content/Rules for all slices
extension:medicationClass |  | 0..1 | Coding | Medication type URL: http://hl7.org.au/fhir/StructureDefinition/medication-type Binding: Medication Type (required)
system | Σ | 0..1 | uri | Identity of the terminology system
version | Σ | 0..1 | string | Version of the system - if relevant
code | Σ | 0..1 | code | Symbol in syntax defined by the system
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
Slices for coding |  |  |  | Content/Rules for all slices
coding:pbs | SO Σ | 0..* | Coding | Code defined by a terminology system Binding: PBS Item Codes (required)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
Slices for extension |  |  |  | Content/Rules for all slices
extension:medicationClass |  | 0..1 | Coding | Medication type URL: http://hl7.org.au/fhir/StructureDefinition/medication-type Binding: Medication Type (required)
system | Σ | 0..1 | uri | Identity of the terminology system
version | Σ | 0..1 | string | Version of the system - if relevant
code | Σ | 0..1 | code | Symbol in syntax defined by the system
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
coding:amt | SO Σ | 0..* | Coding | Code defined by a terminology system Binding: Australian Medication (required)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
Slices for extension |  |  |  | Content/Rules for all slices
extension:medicationClass |  | 0..1 | Coding | Medication type URL: http://hl7.org.au/fhir/StructureDefinition/medication-type Binding: Medication Type (required)
system | Σ | 0..1 | uri | Identity of the terminology system
version | Σ | 0..1 | string | Version of the system - if relevant
code | Σ | 0..1 | code | Symbol in syntax defined by the system
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
text | Σ | 0..1 | string | Medication primary text
medication[x]:medicationReference | SO Σ | 0..1 | Reference(AU Core Medication) | Dispensed Medication
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | Who the dispense is for
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
context |  | 0..1 | Reference(Encounter | EpisodeOfCare) | Encounter / Episode associated with event
supportingInformation |  | 0..* | Reference(Resource) | Information that supports the dispensing of the medication
performer | SO | 0..* | BackboneElement | Who performed event
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
function |  | 0..1 | CodeableConcept | Who performed the dispense and what they did Binding: MedicationDispense Performer Function Codes (example): A code describing the role an individual played in dispensing a medication.
actor | SO | 1..1 | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | AU Core Patient | Device | AU Core RelatedPerson) | Individual who was performing
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
location |  | 0..1 | Reference(Location) | Where the dispense occurred
authorizingPrescription | SO | 0..* | Reference(AU Core MedicationRequest) | Medication order that authorizes the dispense
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
type |  | 0..1 | CodeableConcept | Trial fill, partial fill, emergency fill, etc. Binding: ActPharmacySupplyType (example): Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.
quantity | SO | 0..1 | SimpleQuantity(4.0.1) | Amount dispensed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
daysSupply |  | 0..1 | SimpleQuantity(4.0.1) | Amount of medication expressed as a timing amount
whenPrepared | SO Σ | 0..1 | dateTime | When product was packaged and reviewed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
whenHandedOver |  | 0..1 | dateTime | When product was given out
destination |  | 0..1 | Reference(Location) | Where the medication was sent
receiver |  | 0..* | Reference(Patient | Practitioner) | Who collected the medication
note | SO | 0..* | Annotation | Information about the dispense
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosageInstruction | SO | 0..* | AUBaseDosage | How the medication is to be used by the patient or administered by the caregiver
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
sequence | Σ | 0..1 | integer | The order of the dosage instructions
text | SO Σ | 0..1 | string | Free text dosage instructions e.g. SIG
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
additionalInstruction | Σ | 0..* | CodeableConcept | Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness" Binding: SNOMEDCTAdditionalDosageInstructions (preferred)
patientInstruction | Σ | 0..1 | string | Patient or consumer oriented instructions
timing | Σ | 0..1 | Timing | When medication should be administered
asNeeded[x] | Σ | 0..1 |  | Take "as needed" (for x) Binding: Clinical Finding (preferred)
asNeededBoolean |  |  | boolean |
asNeededCodeableConcept |  |  | CodeableConcept |
site | Σ | 0..1 | CodeableConcept | Body site to administer to Binding: Body Site (preferred)
route | Σ | 0..1 | CodeableConcept | How drug should enter body Binding: Route of Administration (preferred)
method | Σ | 0..1 | CodeableConcept | Technique for administering medication Binding: SNOMEDCTAdministrationMethodCodes (preferred)
doseAndRate | Σ | 0..* | Element | Amount of medication administered
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
type | Σ | 0..1 | CodeableConcept | The kind of dose or rate specified Binding: DoseAndRateType (example): The kind of dose or rate specified.
dose[x] | Σ | 0..1 |  | Amount of medication per dose
doseRange |  |  | Range |
doseQuantity |  |  | Quantity(SimpleQuantity) |
rate[x] | Σ | 0..1 |  | Amount of medication per unit of time
rateRatio |  |  | Ratio |
rateRange |  |  | Range |
rateQuantity |  |  | Quantity(SimpleQuantity) |
maxDosePerPeriod | Σ | 0..1 | Ratio | Upper limit on medication per unit of time
maxDosePerAdministration | Σ | 0..1 | SimpleQuantity(4.0.1) | Upper limit on medication per administration
maxDosePerLifetime | Σ | 0..1 | SimpleQuantity(4.0.1) | Upper limit on medication per lifetime of the patient
substitution |  | 0..1 | BackboneElement | Whether a substitution was performed on the dispense
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
wasSubstituted |  | 1..1 | boolean | Whether a substitution was or was not performed on the dispense
type |  | 0..1 | CodeableConcept | Code signifying whether a different drug was dispensed from what was prescribed Binding: ActSubstanceAdminSubstitutionCode (example): A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription.
reason |  | 0..1 | CodeableConcept | Why was substitution made Binding: Medicine Substitution Reason (preferred)
responsibleParty |  | 0..* | Reference(Practitioner | PractitionerRole) | Who is responsible for the substitution
detectedIssue |  | 0..* | Reference(DetectedIssue) | Clinical issue with action
eventHistory |  | 0..* | Reference(Provenance) | A list of relevant lifecycle events
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
MedicationDispense.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std.
MedicationDispense.statusReason[x] | Base | example | Medication dispense status reason codes | 📍4.0.1 | FHIR Std.
MedicationDispense.category | Base | preferred | Medication dispense category codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x]:medicationCodeableConcept | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x]:medicationCodeableConcept.​coding:pbs | Base | required | PBS Item Codes | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
MedicationDispense.medication[x]:medicationCodeableConcept.​coding:amt | Base | required | Australian Medication | ⏿1.0.2 | tx.hl7.org.au
MedicationDispense.performer.​function | Base | example | Medication dispense performer function codes | 📍4.0.1 | FHIR Std.
MedicationDispense.type | Base | example | ActPharmacySupplyType | 📦3.0.0 | THO v7.3
MedicationDispense.dosageInstruction.​additionalInstruction | Base | preferred | SNOMED CT Additional Dosage Instructions | 📦4.0.1 | FHIR Std.
MedicationDispense.dosageInstruction.​asNeeded[x] | Base | preferred | Clinical Finding | ⏿1.0.2 | tx.hl7.org.au
MedicationDispense.dosageInstruction.​site | Base | preferred | Body Site | ⏿1.0.2 | tx.hl7.org.au
MedicationDispense.dosageInstruction.​route | Base | preferred | Route of Administration | ⏿1.0.2 | tx.hl7.org.au
MedicationDispense.dosageInstruction.​method | Base | preferred | SNOMED CT Administration Method Codes | 📦4.0.1 | FHIR Std.
MedicationDispense.dosageInstruction.​doseAndRate.type | Base | example | DoseAndRateType | 📍4.0.1 | FHIR Std.
MedicationDispense.substitution.​type | Base | example | ActSubstanceAdminSubstitutionCode | 📦3.0.0 | THO v7.3
MedicationDispense.substitution.​reason | Base | preferred | Medicine Substitution Reason | ⏿1.0.1 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | MedicationDispense | 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 | `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-4 | error | MedicationDispense | If 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-5 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | MedicationDispense | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared | `whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared`

This structure is derived from AUBaseMedicationDispense

Summary

Mandatory: 1 element
Must-Support: 15 elements

Structures

This structure refers to these other structures:

- AU Core Medication (http://hl7.org.au/fhir/core/StructureDefinition/au-core-medication)
- AU Core Patient (http://hl7.org.au/fhir/core/StructureDefinition/au-core-patient)
- AU Core Practitioner (http://hl7.org.au/fhir/core/StructureDefinition/au-core-practitioner)
- AU Core PractitionerRole (http://hl7.org.au/fhir/core/StructureDefinition/au-core-practitionerrole)
- AU Core Organization (http://hl7.org.au/fhir/core/StructureDefinition/au-core-organization)
- AU Core RelatedPerson (http://hl7.org.au/fhir/core/StructureDefinition/au-core-relatedperson)
- AU Core MedicationRequest (http://hl7.org.au/fhir/core/StructureDefinition/au-core-medicationrequest)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of MedicationDispense.medication[x] (Closed)
- The element 1 is sliced based on the value of MedicationDispense.medication[x].coding

Maturity: 1

Other representations of profile: CSV, Excel, Schematron

### Notes:

Below is an overview of the mandatory and optional search parameters and combined search parameters. See the AU Core CapabilityStatements for a complete list of supported RESTful interactions for this IG.

FHIR search operations are described here and the syntax used to describe AU Core interactions is defined here.

Any search parameter defined in FHIR may be 'allowed' by the system unless explicitly marked as "SHALL NOT". A few items are marked as MAY in this implementation guide to highlight their potential relevance.

Parameter(s) | Conformance | Type(s) | Requirements (when used alone or in combination)
--- | --- | --- | ---
patient | SHALL | `reference` | The requester SHALL provide at least an id value and MAY provide both the Type and id values. The responder SHALL support both. The requester SHOULD support chained search patient.identifier using IHI, Medicare Number, and DVA Number identifiers as defined in the AU Core Patient profile. The responder SHOULD support chained search patient.identifier using IHI, Medicare Number, and DVA Number identifiers as defined in the AU Core Patient profile.
patient+status | SHOULD | `reference`+`token` |
status | MAY | `token` | The requester SHALL provide at least a code value and MAY provide both the system and code values. The responder SHALL support both. The requester SHALL support `multipleOr`. The responder SHALL support `multipleOr`.
prescription | MAY | `reference` |

#### Mandatory Search Parameters

The following search parameters and search parameter combinations SHALL be supported:

1. SHALL support searching using the `patient` search parameter:
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)

   `GET [base]/MedicationDispense?patient={Type/}[id]` or optionally `GET [base]/MedicationDispense?patient.identifier=[system|][code]`

   Example:

   1. GET [base]/MedicationDispense?patient=5678
   2. GET [base]/MedicationDispense?patient.identifier=http://ns.electronichealth.net.au/id/medicare-number|32788511952
   3. GET [base]/MedicationDispense?patient.identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608833357361

   Implementation Notes: Fetches a bundle of all MedicationDispense resources for the specified patient (how to search by reference and how to search by token)

#### Optional Search Parameters

The following search parameters and search parameter combinations SHOULD be supported:

1. SHOULD support searching using the combination of the `patient` and `status` search parameters:
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)
   - SHALL support multipleOr search on `status` (e.g. `status={system|}[code],{system|}[code],...`)

   `GET [base]/MedicationDispense?patient={Type/}[id]&status={system|}[code]{,{system|}[code],...}`

   Example:

   1. GET [base]/MedicationDispense?patient=5678&status=completed

   Implementation Notes: Fetches a bundle of all MedicationDispense resources for the specified patient and status (how to search by reference and how to search by token)