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 MedicationRequest

Official URL: http://hl7.org.au/fhir/core/StructureDefinition/au-core-medicationrequest | Version: 3.0.0-ballot1
Standards status: Trial-use | Maturity Level: 2 | Computable Name: AUCoreMedicationRequest
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 MedicationRequest resource to record, search, and fetch medication orders and requests (i.e. prescriptions) associated with a patient. It is based on the AU Base MedicationRequest profile and identifies the additional mandatory core elements, extensions, vocabularies and value sets that SHALL be present in the MedicationRequest 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 medication orders or prescriptions for a patient (current and historical)
- Record or update medication orders or prescriptions 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.
- When recording "self-prescribed" medication, `MedicationRequest.requester` references the Patient or RelatedPerson as the prescriber.
- MedicationRequest resources can represent a medication using either a code as `MedicationRequest.medicationCodeableConcept`, or reference a Medication resource using `MedicationRequest.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
  - If an external reference to a Medication resource is used, the responder SHALL support the `_include` parameter for searching this element
  - A requester SHALL support all methods
- When populating `MedicationRequest.medicationCodeableConcept` responders SHALL correctly populate `MedicationRequest.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 MedicationRequest resource can represent the clinical indication as a code with `MedicationRequest.reasonCode`, or a reference with `MedicationRequest.reasonReference` to a Condition or other resource.
  - Although both are marked as Must Support, responders are not required to support both a code and a reference, but they SHALL support at least one of these elements
  - A requester SHALL support both elements
- The MedicationRequest 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:

- Refer to this Profile: AU Core MedicationDispense
- Examples for this Profile: MedicationRequest/paracetamol-codeine, MedicationRequest/reaptan and MedicationRequest/simvastatin
- 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:

- The resource metadata has changed (description)

### 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
--- | --- | --- | --- | ---
MedicationRequest |  | 0..* | AUBaseMedicationRequest | A request for a medication for a patient in an Australian healthcare context
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:sexParameterForClinicalUse |  | 0..* | (Complex) | A context-specific sex parameter for clinical use URL: http://hl7.org/fhir/StructureDefinition/patient-sexParameterForClinicalUse
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)
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!SO Σ | 1..1 | code | active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown Binding: medicationrequest Status (required): A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
intent | ?!SO Σ | 1..1 | code | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option Binding: medicationRequest Intent (required): The kind of medication order.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
doNotPerform | ?!Σ | 0..1 | boolean | True if request is prohibiting action
Slices for medication[x] | SO Σ | 1..1 |  | Medication to be taken Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying substance or product that can be ordered.
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 Prescribed 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) | Prescribed 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 or group medication request is for
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
encounter | SO | 0..1 | Reference(AU Core Encounter) | Encounter created as part of encounter/admission/stay
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for supportingInformation |  | 0..* | Reference(Resource) | Information to support ordering of the medication Slice: Unordered, Open by profile:resolve()
supportingInformation:bodyHeight |  | 0..1 | Reference(Observation Body Height Profile) | Observation of Body Height
supportingInformation:bodyWeight |  | 0..1 | Reference(Observation Body Weight Profile) | Observation of Body Weight
authoredOn | SO Σ C | 1..1 | dateTime | Created date Constraints: au-core-medreq-01
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
requester | SO Σ | 1..1 | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | AU Core Patient | AU Core RelatedPerson) | Who/What requested the Request
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonCode | SO | 0..* | CodeableConcept | Reason or indication for ordering or not ordering the medication Binding: Reason for Request (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonReference | SO | 0..* | Reference(AU Core Condition | Observation) | Condition or observation that supports why the prescription is being written
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosageInstruction | SO | 0..* | AUBaseDosage | How the medication should be taken
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
MedicationRequest.status | Base | required | Medicationrequest status | 📍4.0.1 | FHIR Std.
MedicationRequest.intent | Base | required | Medication request intent | 📍4.0.1 | FHIR Std.
MedicationRequest.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationRequest.medication[x]:medicationCodeableConcept | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationRequest.medication[x]:medicationCodeableConcept.​coding:pbs | Base | required | PBS Item Codes | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
MedicationRequest.medication[x]:medicationCodeableConcept.​coding:amt | Base | required | Australian Medication | ⏿1.0.2 | tx.hl7.org.au
MedicationRequest.reasonCode | Base | preferred | Reason for Request | ⏿1.0.1 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
au-core-medreq-01 | error | MedicationRequest.authoredOn | Date shall be precise to the day or, if not available, the Data Absent Reason extension shall be present | `$this.hasValue() implies (extension('http://hl7.org/fhir/StructureDefinition/data-absent-reason').value.exists().not() and $this.toString().length() >= 10)`
dom-2 | error | MedicationRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | MedicationRequest | 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 | MedicationRequest | 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 | MedicationRequest | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | MedicationRequest | 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()`

This structure is derived from AUBaseMedicationRequest

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationRequest |  | 0..* | AUBaseMedicationRequest | A request for a medication for a patient in an Australian healthcare context
status | SO | 1..1 | code | active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
intent | SO | 1..1 | code | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
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) | Medication to be taken 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 Prescribed 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) | Prescribed 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 or group medication request is for
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
encounter | SO | 0..1 | Reference(AU Core Encounter) | Encounter created as part of encounter/admission/stay
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
authoredOn | SO C | 1..1 | dateTime | Created date Constraints: au-core-medreq-01
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
requester | SO | 1..1 | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | AU Core Patient | AU Core RelatedPerson) | Who/What requested the Request
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonCode | SO | 0..* | CodeableConcept | Reason or indication for ordering or not ordering the medication
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonReference | SO | 0..* | Reference(AU Core Condition | Observation) | Condition or observation that supports why the prescription is being written
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosageInstruction | SO | 0..* | AUBaseDosage | How the medication should be taken
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
MedicationRequest.medication[x]:medicationCodeableConcept.​coding:pbs | Base | required | PBS Item Codes | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
MedicationRequest.medication[x]:medicationCodeableConcept.​coding:amt | Base | required | Australian Medication | ⏿1.0.2 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
au-core-medreq-01 | error | MedicationRequest.authoredOn | Date shall be precise to the day or, if not available, the Data Absent Reason extension shall be present | `$this.hasValue() implies (extension('http://hl7.org/fhir/StructureDefinition/data-absent-reason').value.exists().not() and $this.toString().length() >= 10)`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationRequest |  | 0..* | AUBaseMedicationRequest | A request for a medication for a patient in an Australian healthcare context
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:sexParameterForClinicalUse |  | 0..* | (Complex) | A context-specific sex parameter for clinical use URL: http://hl7.org/fhir/StructureDefinition/patient-sexParameterForClinicalUse
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)
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier |  | 0..* | Identifier, AUETPPrescriptionIdentifier, AULocalPrescriptionIdentifier | External ids for this request
status | ?!SO Σ | 1..1 | code | active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown Binding: medicationrequest Status (required): A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
statusReason |  | 0..1 | CodeableConcept | Reason for current status Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status.
intent | ?!SO Σ | 1..1 | code | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option Binding: medicationRequest Intent (required): The kind of medication order.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category |  | 0..* | CodeableConcept | Type of medication usage Binding: medicationRequest Category Codes (example): A coded concept identifying the category of medication request. For example, where the medication is to be consumed or administered, or the type of medication treatment.
priority | Σ | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
doNotPerform | ?!Σ | 0..1 | boolean | True if request is prohibiting action
reported[x] | Σ | 0..1 |  | Reported rather than primary record
reportedBoolean |  |  | boolean |
reportedReference |  |  | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) |
Slices for medication[x] | SO Σ | 1..1 |  | Medication to be taken Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying substance or product that can be ordered.
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 Prescribed 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) | Prescribed 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 or group medication request is for
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
encounter | SO | 0..1 | Reference(AU Core Encounter) | Encounter created as part of encounter/admission/stay
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for supportingInformation |  | 0..* | Reference(Resource) | Information to support ordering of the medication Slice: Unordered, Open by profile:resolve()
supportingInformation:bodyHeight |  | 0..1 | Reference(Observation Body Height Profile) | Observation of Body Height
supportingInformation:bodyWeight |  | 0..1 | Reference(Observation Body Weight Profile) | Observation of Body Weight
authoredOn | SO Σ C | 1..1 | dateTime | Created date Constraints: au-core-medreq-01
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
requester | SO Σ | 1..1 | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | AU Core Patient | AU Core RelatedPerson) | Who/What requested the Request
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
performer |  | 0..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam) | Intended performer of administration
performerType | Σ | 0..1 | CodeableConcept | Desired kind of performer of the medication administration Binding: ProcedurePerformerRoleCodes (example): Identifies the type of individual that is desired to administer the medication.
recorder |  | 0..1 | Reference(Practitioner | PractitionerRole) | Person who entered the request
reasonCode | SO | 0..* | CodeableConcept | Reason or indication for ordering or not ordering the medication Binding: Reason for Request (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonReference | SO | 0..* | Reference(AU Core Condition | Observation) | Condition or observation that supports why the prescription is being written
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
instantiatesCanonical | Σ | 0..* | canonical() | Instantiates FHIR protocol or definition
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition
basedOn | Σ | 0..* | Reference(CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation) | What request fulfills
groupIdentifier | Σ | 0..1 | Identifier | Composite request this is part of
courseOfTherapyType |  | 0..1 | CodeableConcept | Overall pattern of medication administration Binding: medicationRequest Course of Therapy Codes (example): Identifies the overall pattern of medication administratio.
insurance |  | 0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage
note |  | 0..* | Annotation | Information about the prescription
dosageInstruction | SO | 0..* | AUBaseDosage | How the medication should be taken
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
dispenseRequest |  | 0..1 | BackboneElement | Requested dispensing
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
initialFill |  | 0..1 | BackboneElement | First fill details
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
quantity |  | 0..1 | SimpleQuantity(4.0.1) | First fill quantity
duration |  | 0..1 | Duration | First fill duration
dispenseInterval |  | 0..1 | Duration | Minimum period of time between dispenses
validityPeriod |  | 0..1 | Period | Time period supply is authorized for
numberOfRepeatsAllowed |  | 0..1 | unsignedInt | Maximum repeats authorised
quantity |  | 0..1 | SimpleQuantity(4.0.1) | Amount of medication to supply per dispense
expectedSupplyDuration |  | 0..1 | Duration | Number of days supply per dispense
performer |  | 0..1 | Reference(Organization) | Intended dispenser
substitution |  | 0..1 | BackboneElement | Brand substitution details
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
allowed[x] |  | 1..1 |  | Brand substitution flag Binding: ActSubstanceAdminSubstitutionCode (example): Identifies the type of substitution allowed.
allowedBoolean |  |  | boolean |
allowedCodeableConcept |  |  | CodeableConcept |
reason |  | 0..1 | CodeableConcept | Why should (not) substitution be made Binding: Medicine Substitution Reason (preferred)
priorPrescription |  | 0..1 | Reference(MedicationRequest) | An order/prescription that is being replaced
detectedIssue |  | 0..* | Reference(DetectedIssue) | Clinical Issue with action
eventHistory |  | 0..* | Reference(Provenance) | A list of events of interest in the lifecycle
Documentation for this format

#### Terminology Bindings

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

#### Constraints

Id | Grade | Path(s) | Description | Expression
au-core-medreq-01 | error | MedicationRequest.authoredOn | Date shall be precise to the day or, if not available, the Data Absent Reason extension shall be present | `$this.hasValue() implies (extension('http://hl7.org/fhir/StructureDefinition/data-absent-reason').value.exists().not() and $this.toString().length() >= 10)`
dom-2 | error | MedicationRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | MedicationRequest | 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 | MedicationRequest | 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 | MedicationRequest | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | MedicationRequest | 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()`

This structure is derived from AUBaseMedicationRequest

Summary

Mandatory: 2 elements
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 Encounter (http://hl7.org.au/fhir/core/StructureDefinition/au-core-encounter)
- 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 Condition (http://hl7.org.au/fhir/core/StructureDefinition/au-core-condition)

Slices

This structure defines the following Slices:

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

Maturity: 2

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationRequest |  | 0..* | AUBaseMedicationRequest | A request for a medication for a patient in an Australian healthcare context
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:sexParameterForClinicalUse |  | 0..* | (Complex) | A context-specific sex parameter for clinical use URL: http://hl7.org/fhir/StructureDefinition/patient-sexParameterForClinicalUse
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)
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!SO Σ | 1..1 | code | active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown Binding: medicationrequest Status (required): A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
intent | ?!SO Σ | 1..1 | code | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option Binding: medicationRequest Intent (required): The kind of medication order.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
doNotPerform | ?!Σ | 0..1 | boolean | True if request is prohibiting action
Slices for medication[x] | SO Σ | 1..1 |  | Medication to be taken Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying substance or product that can be ordered.
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 Prescribed 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) | Prescribed 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 or group medication request is for
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
encounter | SO | 0..1 | Reference(AU Core Encounter) | Encounter created as part of encounter/admission/stay
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for supportingInformation |  | 0..* | Reference(Resource) | Information to support ordering of the medication Slice: Unordered, Open by profile:resolve()
supportingInformation:bodyHeight |  | 0..1 | Reference(Observation Body Height Profile) | Observation of Body Height
supportingInformation:bodyWeight |  | 0..1 | Reference(Observation Body Weight Profile) | Observation of Body Weight
authoredOn | SO Σ C | 1..1 | dateTime | Created date Constraints: au-core-medreq-01
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
requester | SO Σ | 1..1 | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | AU Core Patient | AU Core RelatedPerson) | Who/What requested the Request
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonCode | SO | 0..* | CodeableConcept | Reason or indication for ordering or not ordering the medication Binding: Reason for Request (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonReference | SO | 0..* | Reference(AU Core Condition | Observation) | Condition or observation that supports why the prescription is being written
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosageInstruction | SO | 0..* | AUBaseDosage | How the medication should be taken
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
MedicationRequest.status | Base | required | Medicationrequest status | 📍4.0.1 | FHIR Std.
MedicationRequest.intent | Base | required | Medication request intent | 📍4.0.1 | FHIR Std.
MedicationRequest.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationRequest.medication[x]:medicationCodeableConcept | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationRequest.medication[x]:medicationCodeableConcept.​coding:pbs | Base | required | PBS Item Codes | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
MedicationRequest.medication[x]:medicationCodeableConcept.​coding:amt | Base | required | Australian Medication | ⏿1.0.2 | tx.hl7.org.au
MedicationRequest.reasonCode | Base | preferred | Reason for Request | ⏿1.0.1 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
au-core-medreq-01 | error | MedicationRequest.authoredOn | Date shall be precise to the day or, if not available, the Data Absent Reason extension shall be present | `$this.hasValue() implies (extension('http://hl7.org/fhir/StructureDefinition/data-absent-reason').value.exists().not() and $this.toString().length() >= 10)`
dom-2 | error | MedicationRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | MedicationRequest | 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 | MedicationRequest | 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 | MedicationRequest | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | MedicationRequest | 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()`

Differential View

This structure is derived from AUBaseMedicationRequest

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationRequest |  | 0..* | AUBaseMedicationRequest | A request for a medication for a patient in an Australian healthcare context
status | SO | 1..1 | code | active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
intent | SO | 1..1 | code | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
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) | Medication to be taken 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 Prescribed 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) | Prescribed 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 or group medication request is for
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
encounter | SO | 0..1 | Reference(AU Core Encounter) | Encounter created as part of encounter/admission/stay
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
authoredOn | SO C | 1..1 | dateTime | Created date Constraints: au-core-medreq-01
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
requester | SO | 1..1 | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | AU Core Patient | AU Core RelatedPerson) | Who/What requested the Request
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonCode | SO | 0..* | CodeableConcept | Reason or indication for ordering or not ordering the medication
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonReference | SO | 0..* | Reference(AU Core Condition | Observation) | Condition or observation that supports why the prescription is being written
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosageInstruction | SO | 0..* | AUBaseDosage | How the medication should be taken
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
MedicationRequest.medication[x]:medicationCodeableConcept.​coding:pbs | Base | required | PBS Item Codes | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
MedicationRequest.medication[x]:medicationCodeableConcept.​coding:amt | Base | required | Australian Medication | ⏿1.0.2 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
au-core-medreq-01 | error | MedicationRequest.authoredOn | Date shall be precise to the day or, if not available, the Data Absent Reason extension shall be present | `$this.hasValue() implies (extension('http://hl7.org/fhir/StructureDefinition/data-absent-reason').value.exists().not() and $this.toString().length() >= 10)`

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationRequest |  | 0..* | AUBaseMedicationRequest | A request for a medication for a patient in an Australian healthcare context
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:sexParameterForClinicalUse |  | 0..* | (Complex) | A context-specific sex parameter for clinical use URL: http://hl7.org/fhir/StructureDefinition/patient-sexParameterForClinicalUse
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)
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier |  | 0..* | Identifier, AUETPPrescriptionIdentifier, AULocalPrescriptionIdentifier | External ids for this request
status | ?!SO Σ | 1..1 | code | active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown Binding: medicationrequest Status (required): A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
statusReason |  | 0..1 | CodeableConcept | Reason for current status Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status.
intent | ?!SO Σ | 1..1 | code | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option Binding: medicationRequest Intent (required): The kind of medication order.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category |  | 0..* | CodeableConcept | Type of medication usage Binding: medicationRequest Category Codes (example): A coded concept identifying the category of medication request. For example, where the medication is to be consumed or administered, or the type of medication treatment.
priority | Σ | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
doNotPerform | ?!Σ | 0..1 | boolean | True if request is prohibiting action
reported[x] | Σ | 0..1 |  | Reported rather than primary record
reportedBoolean |  |  | boolean |
reportedReference |  |  | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) |
Slices for medication[x] | SO Σ | 1..1 |  | Medication to be taken Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying substance or product that can be ordered.
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 Prescribed 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) | Prescribed 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 or group medication request is for
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
encounter | SO | 0..1 | Reference(AU Core Encounter) | Encounter created as part of encounter/admission/stay
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for supportingInformation |  | 0..* | Reference(Resource) | Information to support ordering of the medication Slice: Unordered, Open by profile:resolve()
supportingInformation:bodyHeight |  | 0..1 | Reference(Observation Body Height Profile) | Observation of Body Height
supportingInformation:bodyWeight |  | 0..1 | Reference(Observation Body Weight Profile) | Observation of Body Weight
authoredOn | SO Σ C | 1..1 | dateTime | Created date Constraints: au-core-medreq-01
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
requester | SO Σ | 1..1 | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | AU Core Patient | AU Core RelatedPerson) | Who/What requested the Request
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
performer |  | 0..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam) | Intended performer of administration
performerType | Σ | 0..1 | CodeableConcept | Desired kind of performer of the medication administration Binding: ProcedurePerformerRoleCodes (example): Identifies the type of individual that is desired to administer the medication.
recorder |  | 0..1 | Reference(Practitioner | PractitionerRole) | Person who entered the request
reasonCode | SO | 0..* | CodeableConcept | Reason or indication for ordering or not ordering the medication Binding: Reason for Request (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonReference | SO | 0..* | Reference(AU Core Condition | Observation) | Condition or observation that supports why the prescription is being written
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
instantiatesCanonical | Σ | 0..* | canonical() | Instantiates FHIR protocol or definition
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition
basedOn | Σ | 0..* | Reference(CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation) | What request fulfills
groupIdentifier | Σ | 0..1 | Identifier | Composite request this is part of
courseOfTherapyType |  | 0..1 | CodeableConcept | Overall pattern of medication administration Binding: medicationRequest Course of Therapy Codes (example): Identifies the overall pattern of medication administratio.
insurance |  | 0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage
note |  | 0..* | Annotation | Information about the prescription
dosageInstruction | SO | 0..* | AUBaseDosage | How the medication should be taken
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
dispenseRequest |  | 0..1 | BackboneElement | Requested dispensing
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
initialFill |  | 0..1 | BackboneElement | First fill details
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
quantity |  | 0..1 | SimpleQuantity(4.0.1) | First fill quantity
duration |  | 0..1 | Duration | First fill duration
dispenseInterval |  | 0..1 | Duration | Minimum period of time between dispenses
validityPeriod |  | 0..1 | Period | Time period supply is authorized for
numberOfRepeatsAllowed |  | 0..1 | unsignedInt | Maximum repeats authorised
quantity |  | 0..1 | SimpleQuantity(4.0.1) | Amount of medication to supply per dispense
expectedSupplyDuration |  | 0..1 | Duration | Number of days supply per dispense
performer |  | 0..1 | Reference(Organization) | Intended dispenser
substitution |  | 0..1 | BackboneElement | Brand substitution details
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
allowed[x] |  | 1..1 |  | Brand substitution flag Binding: ActSubstanceAdminSubstitutionCode (example): Identifies the type of substitution allowed.
allowedBoolean |  |  | boolean |
allowedCodeableConcept |  |  | CodeableConcept |
reason |  | 0..1 | CodeableConcept | Why should (not) substitution be made Binding: Medicine Substitution Reason (preferred)
priorPrescription |  | 0..1 | Reference(MedicationRequest) | An order/prescription that is being replaced
detectedIssue |  | 0..* | Reference(DetectedIssue) | Clinical Issue with action
eventHistory |  | 0..* | Reference(Provenance) | A list of events of interest in the lifecycle
Documentation for this format

#### Terminology Bindings

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

#### Constraints

Id | Grade | Path(s) | Description | Expression
au-core-medreq-01 | error | MedicationRequest.authoredOn | Date shall be precise to the day or, if not available, the Data Absent Reason extension shall be present | `$this.hasValue() implies (extension('http://hl7.org/fhir/StructureDefinition/data-absent-reason').value.exists().not() and $this.toString().length() >= 10)`
dom-2 | error | MedicationRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | MedicationRequest | 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 | MedicationRequest | 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 | MedicationRequest | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | MedicationRequest | 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()`

This structure is derived from AUBaseMedicationRequest

Summary

Mandatory: 2 elements
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 Encounter (http://hl7.org.au/fhir/core/StructureDefinition/au-core-encounter)
- 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 Condition (http://hl7.org.au/fhir/core/StructureDefinition/au-core-condition)

Slices

This structure defines the following Slices:

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

Maturity: 2

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 | SHALL | `reference`+`token` |
patient+intent | SHOULD | `reference`+`token` |
patient+intent+status | SHOULD | `reference`+`token`+`token` |
_id | SHOULD | `token` |
patient+intent+authoredon | SHOULD | `reference`+`token`+`date` |
authoredon | MAY | `date` | A requester SHALL provide a value precise to the second + time offset. A responder SHALL support a value precise to the second + time offset. The requester SHALL support these search comparators `gt`, `lt`, `ge`, `le`. The responder SHALL support these search comparators `gt`, `lt`, `ge`, `le`. The requester SHOULD support `multipleAnd`, and if `multipleAnd` is supported, SHALL support the search comparators `gt`, `lt`, `ge`, `le`. The responder SHOULD support `multipleAnd`, and if `multipleAnd` is supported, SHALL support the search comparators `gt`, `lt`, `ge`, `le`.
intent | 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.
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`.

#### 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 these `_include` parameters: `MedicationRequest:medication`
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)

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

   Example:

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

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

2. SHALL support searching using the combination of the `patient` and `status` search parameters:
   - SHOULD support these `_include` parameters: `MedicationRequest:medication`
   - 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]/MedicationRequest?patient={Type/}[id]&status={system|}[code]{,{system|}[code],...}`

   Example:

   1. GET [base]/MedicationRequest?patient=5678&status=active
   2. GET [base]/MedicationRequest?patient=5678&status=active&_include=MedicationRequest:medication

   Implementation Notes: Fetches a bundle of all MedicationRequest resources for the specified patient and status (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 `_id` search parameter:
   - SHOULD support these `_include` parameters: `MedicationRequest:medication`

   `GET [base]/MedicationRequest?_id=[id]`

   Example:

   1. GET [base]/MedicationRequest?_id=2169591
   2. GET [base]/MedicationRequest?_id=2169591&_include=MedicationRequest:medication

   Implementation Notes: Fetches a bundle with the requested MedicationRequest, instead of just the resource itself, and allows for the inclusion of additional search parameters such as _include, _revinclude, or _lastUpdated (how to search by id of the resource)

2. SHOULD support searching using the combination of the `patient` and `intent` and `authoredon` search parameters:
   - SHOULD support these `_include` parameters: `MedicationRequest:medication`
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)
   - SHALL support these `authoredon` comparators: `gt,lt,ge,le`
   - SHOULD support multipleAnd search on `authoredon` (e.g. `authoredon=[date]&authoredon=[date]&...`), and if multipleAnd is supported, SHALL support the search comparators `gt,lt,ge,le`

   `GET [base]/MedicationRequest?patient={Type/}[id]&intent={system|}[code]&authoredon={gt|lt|ge|le}[date]{&authoredon={gt|lt|ge|le}[date]&...}`

   Example:

   1. GET [base]/MedicationRequest?patient=5678&intent=order&authoredon=ge2020-01-01T00:00:00Z

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

3. SHOULD support searching using the combination of the `patient` and `intent` search parameters:
   - SHOULD support these `_include` parameters: `MedicationRequest:medication`
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)

   `GET [base]/MedicationRequest?patient={Type/}[id]&intent={system|}[code]`

   Example:

   1. GET [base]/MedicationRequest?patient=5678&intent=order

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

4. SHOULD support searching using the combination of the `patient` and `intent` and `status` search parameters:
   - SHOULD support these `_include` parameters: `MedicationRequest:medication`
   - 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]/MedicationRequest?patient={Type/}[id]&intent={system|}[code]&status={system|}[code]{,{system|}[code],...}`

   Example:

   1. GET [base]/MedicationRequest?patient=5678&intent=order&status=active
   2. GET [base]/MedicationRequest?patient=5678&intent=order&status=active&_include=MedicationRequest:medication

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