AU Core Implementation Guide
1.1.0-preview - Preview

Publication Build: This will be filled in by the publication tooling

## Resource Profile: AU Core MedicationStatement

Official URL: http://hl7.org.au/fhir/core/StructureDefinition/au-core-medicationstatement | Version: 1.1.0-preview
Standards status: Trial-use | Maturity Level: 0 | Computable Name: AUCoreMedicationStatement
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 MedicationStatement resource to record, search, and fetch summary statements of medication use associated with a patient. It is based on the AU Base Medication Statement profile and identifies the additional mandatory core elements, extensions, vocabularies and value sets that SHALL be present in the MedicationStatement 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 for a patient’s medication usage (current or historical)
- Record or update stated medication usage 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.
- MedicationStatement resources can represent a medication using either a code with `MedicationStatement.medicationCodeableConcept`, or reference a Medication resource with `MedicationStatement.medicationReference`.
  - 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
  - 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
  - The requester SHALL support all methods
- The MedicationStatement resource can represent the clinical indication as a code with `MedicationStatement.reasonCode`, or a reference with `MedicationStatement.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

Usage:

- Examples for this Resource Profile: MedicationStatement/active-bisoprolol, MedicationStatement/completed-bactrim, MedicationStatement/completed-chloramphenicol and MedicationStatement/previous-use-diflucan
- CapabilityStatements using this Resource Profile: AU Core Requester CapabilityStatement and AU Core Responder CapabilityStatement

Changes since version 1.0.0:

- New Content

### Formal Views of Profile Content

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

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

This structure is derived from AUBaseMedicationStatement

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
MedicationStatement |  | 0..* | AUBaseMedicationStatement | A record of medication being taken by a patient in an Australian healthcare context
status | SO | 1..1 | code | active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
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 Detail Slice: Unordered, Closed by type:$this
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medication[x]:medicationCodeableConcept |  | 0..1 | CodeableConcept | Coded Medication
Slices for coding |  | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
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 | O | 0..1 | Reference(AU Core Medication) | Medication Reference
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO | 1..1 | Reference(AU Core Patient) | Who is/was taking the medication
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effective[x] | SO | 0..1 | dateTime, Period | The date/time or interval when the medication is/was/will be taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dateAsserted | SO | 0..1 | dateTime | When the statement was asserted?
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonCode | SO | 0..* | CodeableConcept | Reason for why the medication is being/was taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonReference | SO | 0..* | Reference(AU Core Condition | Observation | AU Base Diagnostic Report) | Condition or observation that supports why the medication is being/was taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosage | SO | 0..* | AUBaseDosage | Details of how medication is/was taken or should be taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Terminology Bindings (Differential)

Path | Conformance | ValueSet | URI
MedicationStatement.medication[x]:medicationCodeableConcept.coding:pbs | required | PBSItemCodes `http://terminology.hl7.org.au/ValueSet/pbs-item`
MedicationStatement.medication[x]:medicationCodeableConcept.coding:amt | required | AustralianMedication `https://healthterminologies.gov.au/fhir/ValueSet/australian-medication-1` from https://tx.ontoserver.csiro.au/fhir

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
MedicationStatement |  | 0..* | AUBaseMedicationStatement | A record of medication being taken by a patient in an Australian healthcare context dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children
Slices for extension |  |  |  | Content/Rules for all slices
extension:longTerm |  | 0..1 | boolean | Medication Long Term Indicator URL: http://hl7.org.au/fhir/StructureDefinition/medication-long-term ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
status | ?!SO Σ | 1..1 | code | active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement. ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for medication[x] | SO Σ | 1..1 |  | Medication Detail Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken. ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medicationCodeableConcept |  |  | CodeableConcept |
medicationReference |  |  | Reference(Medication) |
medication[x]:medicationCodeableConcept | Σ | 0..1 | CodeableConcept | Coded Medication Binding: SNOMEDCTMedicationCodes (example)
Additional Bindings | Purpose
Australian Medication | Preferred
PBS Item Codes | Preferred
MIMS | Preferred
GTIN | Preferred
ele-1: All FHIR elements must have a @value or children
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this ele-1: All FHIR elements must have a @value or children
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) ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
coding:pbs | SO Σ | 0..* | Coding | Code defined by a terminology system Binding: PBS Item Codes (required) ele-1: All FHIR elements must have a @value or children
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) ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
coding:amt | SO Σ | 0..* | Coding | Code defined by a terminology system Binding: Australian Medication (required) ele-1: All FHIR elements must have a @value or children
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) ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
medication[x]:medicationReference | O Σ | 0..1 | Reference(AU Core Medication) | Medication Reference ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | Who is/was taking the medication ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effective[x] | SO Σ | 0..1 |  | The date/time or interval when the medication is/was/will be taken ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
dateAsserted | SO Σ | 0..1 | dateTime | When the statement was asserted? ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonCode | SO | 0..* | CodeableConcept | Reason for why the medication is being/was taken Binding: Medication Reason Taken (preferred) ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonReference | SO | 0..* | Reference(AU Core Condition | Observation | AU Base Diagnostic Report) | Condition or observation that supports why the medication is being/was taken ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosage | SO | 0..* | AUBaseDosage | Details of how medication is/was taken or should be taken ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
MedicationStatement.status | required | Medication Status Codes `http://hl7.org/fhir/ValueSet/medication-statement-status|4.0.1` from the FHIR Standard
MedicationStatement.medication[x] | example | SNOMEDCTMedicationCodes `http://hl7.org/fhir/ValueSet/medication-codes` from the FHIR Standard
MedicationStatement.medication[x]:medicationCodeableConcept | example | SNOMEDCTMedicationCodes `http://hl7.org/fhir/ValueSet/medication-codes` from the FHIR Standard
MedicationStatement.medication[x]:medicationCodeableConcept.coding:pbs | required | PBSItemCodes `http://terminology.hl7.org.au/ValueSet/pbs-item`
MedicationStatement.medication[x]:medicationCodeableConcept.coding:amt | required | AustralianMedication `https://healthterminologies.gov.au/fhir/ValueSet/australian-medication-1` from https://tx.ontoserver.csiro.au/fhir
MedicationStatement.reasonCode | preferred | MedicationReasonTaken `https://healthterminologies.gov.au/fhir/ValueSet/medication-reason-taken-1` from https://tx.ontoserver.csiro.au/fhir

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | MedicationStatement | 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 | MedicationStatement | 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 | MedicationStatement | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | MedicationStatement | 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() |

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
MedicationStatement |  | 0..* | AUBaseMedicationStatement | A record of medication being taken by 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
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:longTerm |  | 0..1 | boolean | Medication Long Term Indicator URL: http://hl7.org.au/fhir/StructureDefinition/medication-long-term
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External identifier
basedOn | Σ | 0..* | Reference(MedicationRequest | CarePlan | ServiceRequest) | Fulfils plan, proposal or order
partOf | Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation) | Part of referenced event
status | ?!SO Σ | 1..1 | code | active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
statusReason |  | 0..* | CodeableConcept | Reason for current status Binding: SNOMEDCTDrugTherapyStatusCodes (example): A coded concept indicating the reason for the status of the statement.
category | Σ | 0..1 | CodeableConcept | Type of medication usage Binding: Medication usage category codes (preferred): A coded concept identifying where the medication included in the MedicationStatement is expected to be consumed or administered.
Slices for medication[x] | SO Σ | 1..1 |  | Medication Detail Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medicationCodeableConcept |  |  | CodeableConcept |
medicationReference |  |  | Reference(Medication) |
medication[x]:medicationCodeableConcept | Σ | 0..1 | CodeableConcept | Coded Medication Binding: SNOMEDCTMedicationCodes (example)
Additional Bindings | Purpose
Australian Medication | Preferred
PBS Item Codes | Preferred
MIMS | Preferred
GTIN | Preferred
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
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: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
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
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 | O Σ | 0..1 | Reference(AU Core Medication) | Medication Reference
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | Who is/was taking the medication
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 MedicationStatement
effective[x] | SO Σ | 0..1 |  | The date/time or interval when the medication is/was/will be taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
dateAsserted | SO Σ | 0..1 | dateTime | When the statement was asserted?
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
informationSource |  | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) | Person or organization that provided the information about the taking of this medication
derivedFrom |  | 0..* | Reference(Resource) | Additional supporting information
reasonCode | SO | 0..* | CodeableConcept | Reason for why the medication is being/was taken Binding: Medication Reason Taken (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonReference | SO | 0..* | Reference(AU Core Condition | Observation | AU Base Diagnostic Report) | Condition or observation that supports why the medication is being/was taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
note |  | 0..* | Annotation | Further information about the statement
dosage | SO | 0..* | AUBaseDosage | Details of how medication is/was taken or should be taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
MedicationStatement.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` from the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
MedicationStatement.status | required | Medication Status Codes `http://hl7.org/fhir/ValueSet/medication-statement-status|4.0.1` from the FHIR Standard
MedicationStatement.statusReason | example | SNOMEDCTDrugTherapyStatusCodes `http://hl7.org/fhir/ValueSet/reason-medication-status-codes` from the FHIR Standard
MedicationStatement.category | preferred | Medication usage category codes `http://hl7.org/fhir/ValueSet/medication-statement-category` from the FHIR Standard
MedicationStatement.medication[x] | example | SNOMEDCTMedicationCodes `http://hl7.org/fhir/ValueSet/medication-codes` from the FHIR Standard
MedicationStatement.medication[x]:medicationCodeableConcept | example | SNOMEDCTMedicationCodes `http://hl7.org/fhir/ValueSet/medication-codes` from the FHIR Standard
MedicationStatement.medication[x]:medicationCodeableConcept.coding:pbs | required | PBSItemCodes `http://terminology.hl7.org.au/ValueSet/pbs-item`
MedicationStatement.medication[x]:medicationCodeableConcept.coding:amt | required | AustralianMedication `https://healthterminologies.gov.au/fhir/ValueSet/australian-medication-1` from https://tx.ontoserver.csiro.au/fhir
MedicationStatement.reasonCode | preferred | MedicationReasonTaken `https://healthterminologies.gov.au/fhir/ValueSet/medication-reason-taken-1` from https://tx.ontoserver.csiro.au/fhir

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | MedicationStatement | 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 | MedicationStatement | 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 | MedicationStatement | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | MedicationStatement | 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 AUBaseMedicationStatement

Summary

Mandatory: 1 element
Must-Support: 10 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 Condition (http://hl7.org.au/fhir/core/StructureDefinition/au-core-condition)
- AU Base Diagnostic Report (http://hl7.org.au/fhir/StructureDefinition/au-diagnosticreport)

Slices

This structure defines the following Slices:

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

Maturity: 0

Differential View

This structure is derived from AUBaseMedicationStatement

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
MedicationStatement |  | 0..* | AUBaseMedicationStatement | A record of medication being taken by a patient in an Australian healthcare context
status | SO | 1..1 | code | active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
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 Detail Slice: Unordered, Closed by type:$this
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medication[x]:medicationCodeableConcept |  | 0..1 | CodeableConcept | Coded Medication
Slices for coding |  | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this
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 | O | 0..1 | Reference(AU Core Medication) | Medication Reference
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO | 1..1 | Reference(AU Core Patient) | Who is/was taking the medication
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effective[x] | SO | 0..1 | dateTime, Period | The date/time or interval when the medication is/was/will be taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dateAsserted | SO | 0..1 | dateTime | When the statement was asserted?
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonCode | SO | 0..* | CodeableConcept | Reason for why the medication is being/was taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonReference | SO | 0..* | Reference(AU Core Condition | Observation | AU Base Diagnostic Report) | Condition or observation that supports why the medication is being/was taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosage | SO | 0..* | AUBaseDosage | Details of how medication is/was taken or should be taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Terminology Bindings (Differential)

Path | Conformance | ValueSet | URI
MedicationStatement.medication[x]:medicationCodeableConcept.coding:pbs | required | PBSItemCodes `http://terminology.hl7.org.au/ValueSet/pbs-item`
MedicationStatement.medication[x]:medicationCodeableConcept.coding:amt | required | AustralianMedication `https://healthterminologies.gov.au/fhir/ValueSet/australian-medication-1` from https://tx.ontoserver.csiro.au/fhir

Key Elements View

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
MedicationStatement |  | 0..* | AUBaseMedicationStatement | A record of medication being taken by a patient in an Australian healthcare context dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children
Slices for extension |  |  |  | Content/Rules for all slices
extension:longTerm |  | 0..1 | boolean | Medication Long Term Indicator URL: http://hl7.org.au/fhir/StructureDefinition/medication-long-term ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
status | ?!SO Σ | 1..1 | code | active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement. ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Slices for medication[x] | SO Σ | 1..1 |  | Medication Detail Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken. ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medicationCodeableConcept |  |  | CodeableConcept |
medicationReference |  |  | Reference(Medication) |
medication[x]:medicationCodeableConcept | Σ | 0..1 | CodeableConcept | Coded Medication Binding: SNOMEDCTMedicationCodes (example)
Additional Bindings | Purpose
Australian Medication | Preferred
PBS Item Codes | Preferred
MIMS | Preferred
GTIN | Preferred
ele-1: All FHIR elements must have a @value or children
Slices for coding | Σ | 0..* | Coding | Code defined by a terminology system Slice: Unordered, Open by pattern:$this ele-1: All FHIR elements must have a @value or children
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) ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
coding:pbs | SO Σ | 0..* | Coding | Code defined by a terminology system Binding: PBS Item Codes (required) ele-1: All FHIR elements must have a @value or children
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) ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
coding:amt | SO Σ | 0..* | Coding | Code defined by a terminology system Binding: Australian Medication (required) ele-1: All FHIR elements must have a @value or children
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) ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
medication[x]:medicationReference | O Σ | 0..1 | Reference(AU Core Medication) | Medication Reference ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | Who is/was taking the medication ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effective[x] | SO Σ | 0..1 |  | The date/time or interval when the medication is/was/will be taken ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
dateAsserted | SO Σ | 0..1 | dateTime | When the statement was asserted? ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonCode | SO | 0..* | CodeableConcept | Reason for why the medication is being/was taken Binding: Medication Reason Taken (preferred) ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonReference | SO | 0..* | Reference(AU Core Condition | Observation | AU Base Diagnostic Report) | Condition or observation that supports why the medication is being/was taken ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
dosage | SO | 0..* | AUBaseDosage | Details of how medication is/was taken or should be taken ele-1: All FHIR elements must have a @value or children
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
MedicationStatement.status | required | Medication Status Codes `http://hl7.org/fhir/ValueSet/medication-statement-status|4.0.1` from the FHIR Standard
MedicationStatement.medication[x] | example | SNOMEDCTMedicationCodes `http://hl7.org/fhir/ValueSet/medication-codes` from the FHIR Standard
MedicationStatement.medication[x]:medicationCodeableConcept | example | SNOMEDCTMedicationCodes `http://hl7.org/fhir/ValueSet/medication-codes` from the FHIR Standard
MedicationStatement.medication[x]:medicationCodeableConcept.coding:pbs | required | PBSItemCodes `http://terminology.hl7.org.au/ValueSet/pbs-item`
MedicationStatement.medication[x]:medicationCodeableConcept.coding:amt | required | AustralianMedication `https://healthterminologies.gov.au/fhir/ValueSet/australian-medication-1` from https://tx.ontoserver.csiro.au/fhir
MedicationStatement.reasonCode | preferred | MedicationReasonTaken `https://healthterminologies.gov.au/fhir/ValueSet/medication-reason-taken-1` from https://tx.ontoserver.csiro.au/fhir

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | MedicationStatement | 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 | MedicationStatement | 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 | MedicationStatement | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | MedicationStatement | 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() |

Snapshot View

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
MedicationStatement |  | 0..* | AUBaseMedicationStatement | A record of medication being taken by 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
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:longTerm |  | 0..1 | boolean | Medication Long Term Indicator URL: http://hl7.org.au/fhir/StructureDefinition/medication-long-term
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External identifier
basedOn | Σ | 0..* | Reference(MedicationRequest | CarePlan | ServiceRequest) | Fulfils plan, proposal or order
partOf | Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation) | Part of referenced event
status | ?!SO Σ | 1..1 | code | active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
statusReason |  | 0..* | CodeableConcept | Reason for current status Binding: SNOMEDCTDrugTherapyStatusCodes (example): A coded concept indicating the reason for the status of the statement.
category | Σ | 0..1 | CodeableConcept | Type of medication usage Binding: Medication usage category codes (preferred): A coded concept identifying where the medication included in the MedicationStatement is expected to be consumed or administered.
Slices for medication[x] | SO Σ | 1..1 |  | Medication Detail Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
medicationCodeableConcept |  |  | CodeableConcept |
medicationReference |  |  | Reference(Medication) |
medication[x]:medicationCodeableConcept | Σ | 0..1 | CodeableConcept | Coded Medication Binding: SNOMEDCTMedicationCodes (example)
Additional Bindings | Purpose
Australian Medication | Preferred
PBS Item Codes | Preferred
MIMS | Preferred
GTIN | Preferred
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
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: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
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
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 | O Σ | 0..1 | Reference(AU Core Medication) | Medication Reference
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | Who is/was taking the medication
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 MedicationStatement
effective[x] | SO Σ | 0..1 |  | The date/time or interval when the medication is/was/will be taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
dateAsserted | SO Σ | 0..1 | dateTime | When the statement was asserted?
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
informationSource |  | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) | Person or organization that provided the information about the taking of this medication
derivedFrom |  | 0..* | Reference(Resource) | Additional supporting information
reasonCode | SO | 0..* | CodeableConcept | Reason for why the medication is being/was taken Binding: Medication Reason Taken (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
reasonReference | SO | 0..* | Reference(AU Core Condition | Observation | AU Base Diagnostic Report) | Condition or observation that supports why the medication is being/was taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
note |  | 0..* | Annotation | Further information about the statement
dosage | SO | 0..* | AUBaseDosage | Details of how medication is/was taken or should be taken
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
MedicationStatement.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` from the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
MedicationStatement.status | required | Medication Status Codes `http://hl7.org/fhir/ValueSet/medication-statement-status|4.0.1` from the FHIR Standard
MedicationStatement.statusReason | example | SNOMEDCTDrugTherapyStatusCodes `http://hl7.org/fhir/ValueSet/reason-medication-status-codes` from the FHIR Standard
MedicationStatement.category | preferred | Medication usage category codes `http://hl7.org/fhir/ValueSet/medication-statement-category` from the FHIR Standard
MedicationStatement.medication[x] | example | SNOMEDCTMedicationCodes `http://hl7.org/fhir/ValueSet/medication-codes` from the FHIR Standard
MedicationStatement.medication[x]:medicationCodeableConcept | example | SNOMEDCTMedicationCodes `http://hl7.org/fhir/ValueSet/medication-codes` from the FHIR Standard
MedicationStatement.medication[x]:medicationCodeableConcept.coding:pbs | required | PBSItemCodes `http://terminology.hl7.org.au/ValueSet/pbs-item`
MedicationStatement.medication[x]:medicationCodeableConcept.coding:amt | required | AustralianMedication `https://healthterminologies.gov.au/fhir/ValueSet/australian-medication-1` from https://tx.ontoserver.csiro.au/fhir
MedicationStatement.reasonCode | preferred | MedicationReasonTaken `https://healthterminologies.gov.au/fhir/ValueSet/medication-reason-taken-1` from https://tx.ontoserver.csiro.au/fhir

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | MedicationStatement | 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 | MedicationStatement | 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 | MedicationStatement | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | MedicationStatement | 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 AUBaseMedicationStatement

Summary

Mandatory: 1 element
Must-Support: 10 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 Condition (http://hl7.org.au/fhir/core/StructureDefinition/au-core-condition)
- AU Base Diagnostic Report (http://hl7.org.au/fhir/StructureDefinition/au-diagnosticreport)

Slices

This structure defines the following Slices:

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

Maturity: 0

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+effective | SHOULD | `reference`+`date` |
_id | SHOULD | `token` |
effective | 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`.
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: `MedicationStatement:medication`
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)

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

   Example:

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

   Implementation Notes: Fetches a bundle of all MedicationStatement 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: `MedicationStatement: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]/MedicationStatement?patient={Type/}[id]&status={system|}[code]{,{system|}[code],...}`

   Example:

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

   Implementation Notes: Fetches a bundle of all MedicationStatement 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: `MedicationStatement:medication`

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

   Example:

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

   Implementation Notes: Fetches a bundle with the requested MedicationStatement, 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 `effective` search parameters:
   - SHOULD support these `_include` parameters: `MedicationStatement:medication`
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)
   - SHALL support these `effective` comparators: `gt,lt,ge,le`
   - SHOULD support multipleAnd search on `effective` (e.g.`effective=[date]&effective=[date]&...`)

   `GET [base]/MedicationStatement?patient={Type/}[id]&effective={gt|lt|ge|le}[date]{&effective={gt|lt|ge|le}[date]&...}`

   Example:

   1. GET [base]/MedicationStatement?patient=5678&effective=ge2020-01-01T00:00:00Z
   2. GET [base]/MedicationStatement?patient.identifier=http://example.org/fhir/mrn|12345&effective=ge2020-01-01T00:00:00Z
   3. GET [base]/MedicationStatement?patient.identifier=http://example.org/fhir/mrn|12345&effective=ge2020-01-01T00:00:00Z&_include=MedicationStatement:medication

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