This page is part of the Data Access Framework (v1.6.0: STU 2 Ballot 1) based on FHIR v1.6.0. . For a full list of available versions, see the Directory of published versions
Both the MedicationOrder and MedicationStatement resources can be used to record a patient’s medication. For more information about the context for their usages, refer to the medication domains’s boundaries section. This profile sets minimum expectations for the MedicationOrder resource to record, search and fetch medications associated with a patient. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.
Example Usage Scenarios:
The following are example usage scenarios for the DAF-MedicationOrder profile:
The following data-elements are mandatory (i.e data MUST be present). These are presented below in a simple human-readable explanation. Profile specific guidance and an example are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.
Each MedicationOrder must have:
Profile specific implementation guidance:
The official URL for this profile is:
http://hl7.org/fhir/us/daf/StructureDefinition/daf-core-medicationorder
This profile was published on Mon Aug 01 00:00:00 AEST 2016 as a draft by Health Level Seven International (FHIR-Infrastructure).
Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.
This structure is derived from MedicationOrder
MedicationOrder.status
which has an required binding to:
MedicationOrder.medicationCodeableConcept
or MedicationOrder.medicationReference
MedicationOrder.medicationCodeableConcept
has an extensible binding to Medication Clinical Drug (RxNorm)MedicationOrder.patient
MedicationOrder.dateWritten
MedicationOrder.prescriber
This structure is derived from MedicationOrder
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
MedicationOrder | I | 0..* | Prescription of medication to for patient dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-1: If the resource is contained in another resource, it SHALL NOT contain any narrative dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource | |
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: Common Languages (extensible) | |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | 0..* | Identifier | External identifier | |
status | ?!S | 1..1 | code | active | on-hold | completed | entered-in-error | stopped | draft Binding: MedicationOrderStatus (required) |
medication[x] | S | 1..1 | CodeableConcept, Reference(Profile daf-core-medication) | Medication to be taken Binding: Medication Clinical Drug (RxNorm) (extensible) |
patient | S | 1..1 | Reference(Profile daf-core-patient) | Who prescription is for |
encounter | 0..1 | Reference(Encounter) | Created during encounter/admission/stay | |
dateWritten | S | 1..1 | dateTime | When prescription was initially authorized |
prescriber | S | 1..1 | Reference(Profile daf-core-pract) | Who ordered the initial medication(s) |
reasonCode | 0..* | CodeableConcept | Reason or indication for writing the prescription Binding: Condition/Problem/Diagnosis Codes (example) | |
reasonReference | 0..* | Reference(Condition) | Condition that supports why the prescription is being written | |
note | 0..* | Annotation | Information about the prescription | |
category | 0..1 | code | Type of medication usage Binding: MedicationOrderCategory (example) | |
dosageInstruction | 0..* | BackboneElement | How medication should be taken | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!∑ | 0..* | Extension | Extensions that cannot be ignored |
text | 0..1 | string | Free text dosage instructions e.g. SIG | |
additionalInstructions | 0..* | CodeableConcept | Supplemental instructions - e.g. "with meals" Binding: SNOMED CT Additional Dosage Instructions (example) | |
timing | 0..1 | Timing | When medication should be administered | |
asNeeded[x] | 0..1 | boolean, CodeableConcept | Take "as needed" (for x) Binding: SNOMED CT Medication As Needed Reason Codes (example) | |
site[x] | 0..1 | CodeableConcept, Reference(BodySite) | Body site to administer to Binding: SNOMED CT Anatomical Structure for Administration Site Codes (example) | |
route | 0..1 | CodeableConcept | How drug should enter body Binding: SNOMED CT Route Codes (example) | |
method | 0..1 | CodeableConcept | Technique for administering medication Binding: SNOMED CT Administration Method Codes (example) | |
dose[x] | 0..1 | Range, SimpleQuantity | Amount of medication per dose | |
maxDosePerPeriod | 0..1 | Ratio | Upper limit on medication per unit of time | |
maxDosePerAdministration | 0..1 | SimpleQuantity | Upper limit on medication per administration | |
maxDosePerLifetime | 0..1 | SimpleQuantity | Upper limit on medication per lifetime of the patient | |
rate[x] | 0..1 | Ratio, Range, SimpleQuantity | Amount of medication per unit of time | |
dispenseRequest | 0..1 | BackboneElement | Medication supply authorization | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!∑ | 0..* | Extension | Extensions that cannot be ignored |
validityPeriod | 0..1 | Period | Time period supply is authorized for | |
numberOfRepeatsAllowed | 0..1 | positiveInt | Number of refills authorized | |
quantity | 0..1 | SimpleQuantity | Amount of medication to supply per dispense | |
expectedSupplyDuration | 0..1 | Duration | Number of days supply per dispense | |
substitution | 0..1 | BackboneElement | Any restrictions on medication substitution | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!∑ | 0..* | Extension | Extensions that cannot be ignored |
allowed | 1..1 | boolean | Whether substitution is allowed or not | |
reason | 0..1 | CodeableConcept | Why should (not) substitution be made Binding: SubstanceAdminSubstitutionReason (example) | |
priorPrescription | 0..1 | Reference(MedicationOrder) | An order/prescription that this supersedes | |
eventHistory | 0..* | BackboneElement | A list of events of interest in the lifecycle | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!∑ | 0..* | Extension | Extensions that cannot be ignored |
status | 1..1 | code | active | on-hold | completed | entered-in-error | stopped | draft Binding: MedicationOrderStatus (required) | |
action | 0..1 | CodeableConcept | Action taken (e.g. verify, discontinue) Binding: (unbound) (example) | |
dateTime | 1..1 | dateTime | The date at which the event happened | |
actor | 0..1 | Reference(Practitioner) | Who took the action | |
reason | 0..1 | CodeableConcept | Reason the action was taken Binding: (unbound) (example) | |
Documentation for this format |
yet to be done: Xml template
yet to be done: Json template
This structure is derived from MedicationOrder
Differential View
This structure is derived from MedicationOrder
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
MedicationOrder | I | 0..* | Prescription of medication to for patient dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-1: If the resource is contained in another resource, it SHALL NOT contain any narrative dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource | |
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: Common Languages (extensible) | |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | 0..* | Identifier | External identifier | |
status | ?!S | 1..1 | code | active | on-hold | completed | entered-in-error | stopped | draft Binding: MedicationOrderStatus (required) |
medication[x] | S | 1..1 | CodeableConcept, Reference(Profile daf-core-medication) | Medication to be taken Binding: Medication Clinical Drug (RxNorm) (extensible) |
patient | S | 1..1 | Reference(Profile daf-core-patient) | Who prescription is for |
encounter | 0..1 | Reference(Encounter) | Created during encounter/admission/stay | |
dateWritten | S | 1..1 | dateTime | When prescription was initially authorized |
prescriber | S | 1..1 | Reference(Profile daf-core-pract) | Who ordered the initial medication(s) |
reasonCode | 0..* | CodeableConcept | Reason or indication for writing the prescription Binding: Condition/Problem/Diagnosis Codes (example) | |
reasonReference | 0..* | Reference(Condition) | Condition that supports why the prescription is being written | |
note | 0..* | Annotation | Information about the prescription | |
category | 0..1 | code | Type of medication usage Binding: MedicationOrderCategory (example) | |
dosageInstruction | 0..* | BackboneElement | How medication should be taken | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!∑ | 0..* | Extension | Extensions that cannot be ignored |
text | 0..1 | string | Free text dosage instructions e.g. SIG | |
additionalInstructions | 0..* | CodeableConcept | Supplemental instructions - e.g. "with meals" Binding: SNOMED CT Additional Dosage Instructions (example) | |
timing | 0..1 | Timing | When medication should be administered | |
asNeeded[x] | 0..1 | boolean, CodeableConcept | Take "as needed" (for x) Binding: SNOMED CT Medication As Needed Reason Codes (example) | |
site[x] | 0..1 | CodeableConcept, Reference(BodySite) | Body site to administer to Binding: SNOMED CT Anatomical Structure for Administration Site Codes (example) | |
route | 0..1 | CodeableConcept | How drug should enter body Binding: SNOMED CT Route Codes (example) | |
method | 0..1 | CodeableConcept | Technique for administering medication Binding: SNOMED CT Administration Method Codes (example) | |
dose[x] | 0..1 | Range, SimpleQuantity | Amount of medication per dose | |
maxDosePerPeriod | 0..1 | Ratio | Upper limit on medication per unit of time | |
maxDosePerAdministration | 0..1 | SimpleQuantity | Upper limit on medication per administration | |
maxDosePerLifetime | 0..1 | SimpleQuantity | Upper limit on medication per lifetime of the patient | |
rate[x] | 0..1 | Ratio, Range, SimpleQuantity | Amount of medication per unit of time | |
dispenseRequest | 0..1 | BackboneElement | Medication supply authorization | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!∑ | 0..* | Extension | Extensions that cannot be ignored |
validityPeriod | 0..1 | Period | Time period supply is authorized for | |
numberOfRepeatsAllowed | 0..1 | positiveInt | Number of refills authorized | |
quantity | 0..1 | SimpleQuantity | Amount of medication to supply per dispense | |
expectedSupplyDuration | 0..1 | Duration | Number of days supply per dispense | |
substitution | 0..1 | BackboneElement | Any restrictions on medication substitution | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!∑ | 0..* | Extension | Extensions that cannot be ignored |
allowed | 1..1 | boolean | Whether substitution is allowed or not | |
reason | 0..1 | CodeableConcept | Why should (not) substitution be made Binding: SubstanceAdminSubstitutionReason (example) | |
priorPrescription | 0..1 | Reference(MedicationOrder) | An order/prescription that this supersedes | |
eventHistory | 0..* | BackboneElement | A list of events of interest in the lifecycle | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!∑ | 0..* | Extension | Extensions that cannot be ignored |
status | 1..1 | code | active | on-hold | completed | entered-in-error | stopped | draft Binding: MedicationOrderStatus (required) | |
action | 0..1 | CodeableConcept | Action taken (e.g. verify, discontinue) Binding: (unbound) (example) | |
dateTime | 1..1 | dateTime | The date at which the event happened | |
actor | 0..1 | Reference(Practitioner) | Who took the action | |
reason | 0..1 | CodeableConcept | Reason the action was taken Binding: (unbound) (example) | |
Documentation for this format |
XML Template
yet to be done: Xml template
JSON Template
yet to be done: Json template
Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron
Path | Name | Conformance | ValueSet |
MedicationOrder.language | Common Languages | extensible | Common Languages |
MedicationOrder.status | MedicationOrderStatus | required | MedicationOrderStatus |
MedicationOrder.medication[x] | Medication Clinical Drug (RxNorm) | extensible | Medication Clinical Drug (RxNorm) |
MedicationOrder.reasonCode | Condition/Problem/Diagnosis Codes | example | Condition/Problem/Diagnosis Codes |
MedicationOrder.category | MedicationOrderCategory | example | MedicationOrderCategory |
MedicationOrder.dosageInstruction.additionalInstructions | SNOMED CT Additional Dosage Instructions | example | SNOMED CT Additional Dosage Instructions |
MedicationOrder.dosageInstruction.asNeeded[x] | SNOMED CT Medication As Needed Reason Codes | example | SNOMED CT Medication As Needed Reason Codes |
MedicationOrder.dosageInstruction.site[x] | SNOMED CT Anatomical Structure for Administration Site Codes | example | SNOMED CT Anatomical Structure for Administration Site Codes |
MedicationOrder.dosageInstruction.route | SNOMED CT Route Codes | example | SNOMED CT Route Codes |
MedicationOrder.dosageInstruction.method | SNOMED CT Administration Method Codes | example | SNOMED CT Administration Method Codes |
MedicationOrder.substitution.reason | SubstanceAdminSubstitutionReason | example | SubstanceAdminSubstitutionReason |
MedicationOrder.eventHistory.status | MedicationOrderStatus | required | MedicationOrderStatus |
MedicationOrder.eventHistory.action | ?ext | example | |
MedicationOrder.eventHistory.reason | ?ext | example |
Id | Path | Details | Requirements |
dom-2 | MedicationOrder | If the resource is contained in another resource, it SHALL NOT contain nested Resources XPath: not(parent::f:contained and f:contained) | |
dom-1 | MedicationOrder | If the resource is contained in another resource, it SHALL NOT contain any narrative XPath: not(parent::f:contained and f:text) | |
dom-4 | MedicationOrder | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated XPath: not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated)) | |
dom-3 | MedicationOrder | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource XPath: not(exists(for $id in f:contained/*/@id return $id[not(ancestor::f:contained/parent::*/descendant::f:reference/@value=concat('#', $id))])) |