QI-Core Implementation Guide
6.0.0 - STU6 United States of America flag

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

Resource Profile: QICore MedicationRequest

Official URL: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest Version: 6.0.0
Active as of 2018-08-22 Computable Name: QICoreMedicationRequest

Profile of MedicationRequest for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.

Usage

To create an expression specifically requesting information that a MedicationRequest intentionally did not occur for a medical, patient or system reason, use the profile QICore-Medicationnotrequested.

The following example illustrates the use of the MedicationRequest profile:

define "Antithrombotic Therapy at Discharge":
  ["MedicationRequest": medication in "Antithrombotic Therapy"] Antithrombotic
    where (Antithrombotic.isCommunity() or Antithrombotic.isDischarge())
      and Antithrombotic.status in { 'active', 'completed' }
      and Antithrombotic.intent = 'order'

See the patterns page for implementation and usage patterns.

Examples

Penicillin MedicationRequest Example
Cumulative Medication Duration Example
Patient Reported MedicationRequest Example
Patient Requested MedicationRequest Example
Practitioner Ordered MedicationRequest Example

Usage:

Formal Views of Profile Content

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

This structure is derived from USCoreMedicationRequestProfile

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationRequest 0..* USCoreMedicationRequestProfile Ordering of medication for patient or group
dom-7: if doNotPerform is present, it SHALL be false
... status 1..1 code (QI-Core)(USCDI) active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
... doNotPerform 0..1 boolean (QI-Core) True if medication was not requested
Fixed Value: false
... reported[x] S 0..1 (QI-Core)(USCDI) Reported rather than primary record
.... reportedBoolean boolean
.... reportedReference Reference(QICore Practitioner | QICore PractitionerRole | QICore Patient | QICore RelatedPerson)
... encounter 0..1 Reference(QICore Encounter) (QI-Core)(USCDI) Encounter created as part of encounter/admission/stay
... authoredOn 0..1 dateTime (QI-Core)(USCDI) When request was initially authored
... requester 0..1 Reference(QICore Practitioner | QICore PractitionerRole | QICore Patient) (QI-Core)(USCDI) Who/What requested the Request
... reasonCode 0..* CodeableConcept (QI-Core)(USCDI) Reason or indication for ordering or not ordering the medication
... reasonReference 0..* Reference(QICore Condition Encounter Diagnosis | QICore Condition Problems Health Concerns | QICore Simple Observation) (QI-Core)(USCDI) QI-Core Condition or Observation that supports the prescription
... dosageInstruction 0..* Dosage (QI-Core)(USCDI) How medication should be taken
.... timing 0..1 Timing (QI-Core)(USCDI) When medication should be administered
..... repeat 0..1 Element (QI-Core) When the event is to occur
...... bounds[x] 0..1 Duration, Range, Period (QI-Core) Length/Range of lengths, or (Start and/or end) limits
...... frequency 0..1 positiveInt (QI-Core) Event occurs frequency times per period
...... frequencyMax 0..1 positiveInt (QI-Core) Event occurs frequencyMax times per period
...... period 0..1 decimal (QI-Core) Event occurs frequency times per period
...... periodMax 0..1 decimal (QI-Core) Upper limit of period (3-4 hours)
...... periodUnit 0..1 code (QI-Core) s | min | h | d | wk | mo | a - unit of time (UCUM)
.... asNeeded[x] 0..1 boolean, CodeableConcept (QI-Core) Take "as needed" (for x)
.... doseAndRate 0..* Element (QI-Core)(USCDI) Amount of medication administered
..... dose[x] 0..1 Quantity, Range (QI-Core)(USCDI) Amount of medication per dose
... dispenseRequest 0..1 BackboneElement (QI-Core)(USCDI) Medication supply authorization
.... initialFill 0..0
.... dispenseInterval 0..1 Duration (QI-Core) Minimum period of time between dispenses
.... numberOfRepeatsAllowed 0..1 unsignedInt (QI-Core)(USCDI) Number of refills authorized
.... quantity 0..1 SimpleQuantity (QI-Core)(USCDI) Amount of medication to supply per dispense
.... expectedSupplyDuration 0..1 Duration (QI-Core) Number of days supply per dispense

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
dom-7errorMedicationRequestif doNotPerform is present, it SHALL be false
: doNotPerform.empty() or doNotPerform=false
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationRequest C 0..* USCoreMedicationRequestProfile Ordering of medication for patient or group
us-core-21: requester SHALL be present if intent is "order"
dom-7: if doNotPerform is present, it SHALL be false
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code (QI-Core)(USCDI) active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
Binding: medicationrequest Status (required): A code specifying the state of the prescribing event. Describes the lifecycle of the prescription.

... Slices for category S 0..* CodeableConcept (USCDI) Type of medication usage
Slice: Unordered, Open by pattern:$this
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.


.... category:us-core S 0..* CodeableConcept (USCDI) Type of medication usage
Binding: medicationRequest Category Codes (required): The type of medication order. Note that other codes are permitted, see Required Bindings When Slicing by Value Sets


... doNotPerform ?!Σ 0..1 boolean (QI-Core) True if medication was not requested
Fixed Value: false
... reported[x] SΣ 0..1 (QI-Core)(USCDI) Reported rather than primary record
.... reportedBoolean boolean
.... reportedReference Reference(QICore Practitioner | QICore PractitionerRole | QICore Patient | QICore RelatedPerson)
... medication[x] SΣ 1..1 (USCDI) Medication to be taken
Binding: Medication Clinical Drug . (extensible)
.... medicationCodeableConcept CodeableConcept
.... medicationReference Reference(US Core Medication Profile)
... subject SΣ 1..1 Reference(QICore Patient) (QI-Core)(USCDI) Who or group medication request is for
... encounter S 0..1 Reference(QICore Encounter) (QI-Core)(USCDI) Encounter created as part of encounter/admission/stay
... authoredOn SΣ 0..1 dateTime (QI-Core)(USCDI) When request was initially authored
... requester SΣC 0..1 Reference(QICore Practitioner | QICore PractitionerRole | QICore Patient) (QI-Core)(USCDI) Who/What requested the Request
... reasonCode 0..* CodeableConcept (QI-Core)(USCDI) Reason or indication for ordering or not ordering the medication
Binding: US Core Condition Codes (extensible)
... reasonReference 0..* Reference(QICore Condition Encounter Diagnosis | QICore Condition Problems Health Concerns | QICore Simple Observation) (QI-Core)(USCDI) QI-Core Condition or Observation that supports the prescription
... dosageInstruction S 0..* Dosage (QI-Core)(USCDI) How medication should be taken
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... text SΣ 0..1 string (USCDI) Free text dosage instructions e.g. SIG
.... timing SΣ 0..1 Timing (QI-Core)(USCDI) When medication should be administered
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... repeat ΣC 0..1 Element (QI-Core) When the event is to occur
tim-1: if there's a duration, there needs to be duration units
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-10: If there's a timeOfDay, there cannot be a when, or vice versa
...... bounds[x] Σ 0..1 (QI-Core) Length/Range of lengths, or (Start and/or end) limits
....... boundsDuration Duration
....... boundsRange Range
....... boundsPeriod Period
...... frequency Σ 0..1 positiveInt (QI-Core) Event occurs frequency times per period
...... frequencyMax Σ 0..1 positiveInt (QI-Core) Event occurs frequencyMax times per period
...... period Σ 0..1 decimal (QI-Core) Event occurs frequency times per period
...... periodMax Σ 0..1 decimal (QI-Core) Upper limit of period (3-4 hours)
...... periodUnit Σ 0..1 code (QI-Core) s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

.... asNeeded[x] Σ 0..1 (QI-Core) Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.

..... asNeededBoolean boolean
..... asNeededCodeableConcept CodeableConcept
.... doseAndRate SΣ 0..* Element (QI-Core)(USCDI) Amount of medication administered
..... dose[x] SΣ 0..1 (QI-Core)(USCDI) Amount of medication per dose
Binding: Common UCUM units (preferred)
Additional BindingsPurpose
UCUMCodes Max Binding
...... doseQuantity Quantity
... dispenseRequest S 0..1 BackboneElement (QI-Core)(USCDI) Medication supply authorization
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... dispenseInterval 0..1 Duration (QI-Core) Minimum period of time between dispenses
.... numberOfRepeatsAllowed S 0..1 unsignedInt (QI-Core)(USCDI) Number of refills authorized
.... quantity S 0..1 SimpleQuantity (QI-Core)(USCDI) Amount of medication to supply per dispense
.... expectedSupplyDuration 0..1 Duration (QI-Core) Number of days supply per dispense

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
MedicationRequest.statusrequiredmedicationrequest Status
http://hl7.org/fhir/ValueSet/medicationrequest-status
from the FHIR Standard
MedicationRequest.intentrequiredmedicationRequest Intent
http://hl7.org/fhir/ValueSet/medicationrequest-intent
from the FHIR Standard
MedicationRequest.categoryexamplemedicationRequest Category Codes
http://hl7.org/fhir/ValueSet/medicationrequest-category
from the FHIR Standard
MedicationRequest.category:us-corerequiredmedicationRequest Category Codes
http://hl7.org/fhir/ValueSet/medicationrequest-category
from the FHIR Standard
MedicationRequest.medication[x]extensibleMedicationClinicalDrug .
http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1010.4
MedicationRequest.reasonCodeextensibleUSCoreConditionCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-condition-code
MedicationRequest.dosageInstruction.timing.repeat.periodUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
MedicationRequest.dosageInstruction.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
http://hl7.org/fhir/ValueSet/medication-as-needed-reason
from the FHIR Standard
MedicationRequest.dosageInstruction.doseAndRate.dose[x]preferredCommon UCUM units
Additional Bindings Purpose
UCUMCodes Max Binding
http://hl7.org/fhir/ValueSet/ucum-common
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationRequestIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationRequestIf 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-4errorMedicationRequestIf 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-5errorMedicationRequestIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationRequestA resource should have narrative for robust management
: text.`div`.exists()
dom-7errorMedicationRequestif doNotPerform is present, it SHALL be false
: doNotPerform.empty() or doNotPerform=false
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorMedicationRequest.dosageInstruction.timing.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorMedicationRequest.dosageInstruction.timing.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorMedicationRequest.dosageInstruction.timing.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorMedicationRequest.dosageInstruction.timing.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorMedicationRequest.dosageInstruction.timing.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorMedicationRequest.dosageInstruction.timing.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorMedicationRequest.dosageInstruction.timing.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorMedicationRequest.dosageInstruction.timing.repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10errorMedicationRequest.dosageInstruction.timing.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()
us-core-21errorMedicationRequestrequester SHALL be present if intent is "order"
: (intent='order' or intent='original-order' or intent='reflex-order'or intent='filler-order' or intent='instance-order') implies requester.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationRequest C 0..* USCoreMedicationRequestProfile Ordering of medication for patient or group
us-core-21: requester SHALL be present if intent is "order"
dom-7: if doNotPerform is present, it SHALL be false
... 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 BindingsPurpose
AllLanguages Max Binding
... text 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 ids for this request
... status ?!SΣ 1..1 code (QI-Core)(USCDI) active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
Binding: medicationrequest Status (required): A code specifying the state of the prescribing event. Describes the lifecycle of the prescription.

... statusReason 0..1 CodeableConcept Reason for current status
Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status.

... intent ?!SΣC 1..1 code (USCDI) proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: medicationRequest Intent (required): The kind of medication order.

... Slices for category S 0..* CodeableConcept (USCDI) Type of medication usage
Slice: Unordered, Open by pattern:$this
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.


.... category:us-core S 0..* CodeableConcept (USCDI) Type of medication usage
Binding: medicationRequest Category Codes (required): The type of medication order. Note that other codes are permitted, see Required Bindings When Slicing by Value Sets


... 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 (QI-Core) True if medication was not requested
Fixed Value: false
... reported[x] SΣ 0..1 (QI-Core)(USCDI) Reported rather than primary record
.... reportedBoolean boolean S
.... reportedReference Reference S(QICore Practitioner | QICore PractitionerRole | QICore Patient | QICore RelatedPerson)
... medication[x] SΣ 1..1 (USCDI) Medication to be taken
Binding: Medication Clinical Drug . (extensible)
.... medicationCodeableConcept CodeableConcept
.... medicationReference Reference(US Core Medication Profile)
... subject SΣ 1..1 Reference(QICore Patient) (QI-Core)(USCDI) Who or group medication request is for
... encounter S 0..1 Reference(QICore Encounter) (QI-Core)(USCDI) Encounter created as part of encounter/admission/stay
... supportingInformation 0..* Reference(Resource) Information to support ordering of the medication
... authoredOn SΣ 0..1 dateTime (QI-Core)(USCDI) When request was initially authored
... requester SΣC 0..1 Reference(QICore Practitioner | QICore PractitionerRole | QICore Patient) (QI-Core)(USCDI) Who/What requested the Request
... 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 0..* CodeableConcept (QI-Core)(USCDI) Reason or indication for ordering or not ordering the medication
Binding: US Core Condition Codes (extensible)
... reasonReference 0..* Reference(QICore Condition Encounter Diagnosis | QICore Condition Problems Health Concerns | QICore Simple Observation) (QI-Core)(USCDI) QI-Core Condition or Observation that supports the prescription
... 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 S 0..* Dosage (QI-Core)(USCDI) How medication should be taken
.... 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 SΣ 0..1 string (USCDI) Free text dosage instructions e.g. SIG
.... additionalInstruction Σ 0..* CodeableConcept Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (example): A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery".


.... patientInstruction Σ 0..1 string Patient or consumer oriented instructions
.... timing SΣ 0..1 Timing (QI-Core)(USCDI) When medication should be 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
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... event Σ 0..* dateTime When the event occurs
..... repeat ΣC 0..1 Element (QI-Core) When the event is to occur
tim-1: if there's a duration, there needs to be duration units
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-10: If there's a timeOfDay, there cannot be a when, or vice versa
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... bounds[x] Σ 0..1 (QI-Core) Length/Range of lengths, or (Start and/or end) limits
....... boundsDuration Duration
....... boundsRange Range
....... boundsPeriod Period
...... count Σ 0..1 positiveInt Number of times to repeat
...... countMax Σ 0..1 positiveInt Maximum number of times to repeat
...... duration Σ 0..1 decimal How long when it happens
...... durationMax Σ 0..1 decimal How long when it happens (Max)
...... durationUnit Σ 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

...... frequency Σ 0..1 positiveInt (QI-Core) Event occurs frequency times per period
...... frequencyMax Σ 0..1 positiveInt (QI-Core) Event occurs frequencyMax times per period
...... period Σ 0..1 decimal (QI-Core) Event occurs frequency times per period
...... periodMax Σ 0..1 decimal (QI-Core) Upper limit of period (3-4 hours)
...... periodUnit Σ 0..1 code (QI-Core) s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

...... dayOfWeek Σ 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
...... timeOfDay Σ 0..* time Time of day for action
...... when Σ 0..* code Code for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


...... offset Σ 0..1 unsignedInt Minutes from event (before or after)
..... code Σ 0..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.

.... asNeeded[x] Σ 0..1 (QI-Core) Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.

..... asNeededBoolean boolean
..... asNeededCodeableConcept CodeableConcept
.... site Σ 0..1 CodeableConcept Body site to administer to
Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example): A coded concept describing the site location the medicine enters into or onto the body.

.... route Σ 0..1 CodeableConcept How drug should enter body
Binding: SNOMEDCTRouteCodes (example): A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.

.... method Σ 0..1 CodeableConcept Technique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered.

.... doseAndRate SΣ 0..* Element (QI-Core)(USCDI) 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] SΣ 0..1 (QI-Core)(USCDI) Amount of medication per dose
Binding: Common UCUM units (preferred)
Additional BindingsPurpose
UCUMCodes Max Binding
...... doseQuantity Quantity S
...... doseRange Range
..... 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 Upper limit on medication per administration
.... maxDosePerLifetime Σ 0..1 SimpleQuantity Upper limit on medication per lifetime of the patient
... dispenseRequest S 0..1 BackboneElement (QI-Core)(USCDI) Medication supply authorization
.... 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
.... dispenseInterval 0..1 Duration (QI-Core) Minimum period of time between dispenses
.... validityPeriod 0..1 Period Time period supply is authorized for
.... numberOfRepeatsAllowed S 0..1 unsignedInt (QI-Core)(USCDI) Number of refills authorized
.... quantity S 0..1 SimpleQuantity (QI-Core)(USCDI) Amount of medication to supply per dispense
.... expectedSupplyDuration 0..1 Duration (QI-Core) Number of days supply per dispense
.... performer 0..1 Reference(Organization) Intended dispenser
... substitution 0..1 BackboneElement Any restrictions on medication substitution
.... 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 Whether substitution is allowed or not
Binding: ActSubstanceAdminSubstitutionCode (example): Identifies the type of substitution allowed.

..... allowedBoolean boolean
..... allowedCodeableConcept CodeableConcept
.... reason 0..1 CodeableConcept Why should (not) substitution be made
Binding: SubstanceAdminSubstitutionReason (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed.

... 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
MedicationRequest.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
MedicationRequest.statusrequiredmedicationrequest Status
http://hl7.org/fhir/ValueSet/medicationrequest-status
from the FHIR Standard
MedicationRequest.statusReasonexamplemedicationRequest Status Reason Codes
http://hl7.org/fhir/ValueSet/medicationrequest-status-reason
from the FHIR Standard
MedicationRequest.intentrequiredmedicationRequest Intent
http://hl7.org/fhir/ValueSet/medicationrequest-intent
from the FHIR Standard
MedicationRequest.categoryexamplemedicationRequest Category Codes
http://hl7.org/fhir/ValueSet/medicationrequest-category
from the FHIR Standard
MedicationRequest.category:us-corerequiredmedicationRequest Category Codes
http://hl7.org/fhir/ValueSet/medicationrequest-category
from the FHIR Standard
MedicationRequest.priorityrequiredRequestPriority
http://hl7.org/fhir/ValueSet/request-priority|4.0.1
from the FHIR Standard
MedicationRequest.medication[x]extensibleMedicationClinicalDrug .
http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1010.4
MedicationRequest.performerTypeexampleProcedurePerformerRoleCodes
http://hl7.org/fhir/ValueSet/performer-role
from the FHIR Standard
MedicationRequest.reasonCodeextensibleUSCoreConditionCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-condition-code
MedicationRequest.courseOfTherapyTypeexamplemedicationRequest Course of Therapy Codes
http://hl7.org/fhir/ValueSet/medicationrequest-course-of-therapy
from the FHIR Standard
MedicationRequest.dosageInstruction.additionalInstructionexampleSNOMEDCTAdditionalDosageInstructions
http://hl7.org/fhir/ValueSet/additional-instruction-codes
from the FHIR Standard
MedicationRequest.dosageInstruction.timing.repeat.durationUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
MedicationRequest.dosageInstruction.timing.repeat.periodUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
MedicationRequest.dosageInstruction.timing.repeat.dayOfWeekrequiredDaysOfWeek
http://hl7.org/fhir/ValueSet/days-of-week|4.0.1
from the FHIR Standard
MedicationRequest.dosageInstruction.timing.repeat.whenrequiredEventTiming
http://hl7.org/fhir/ValueSet/event-timing|4.0.1
from the FHIR Standard
MedicationRequest.dosageInstruction.timing.codepreferredTimingAbbreviation
http://hl7.org/fhir/ValueSet/timing-abbreviation
from the FHIR Standard
MedicationRequest.dosageInstruction.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
http://hl7.org/fhir/ValueSet/medication-as-needed-reason
from the FHIR Standard
MedicationRequest.dosageInstruction.siteexampleSNOMEDCTAnatomicalStructureForAdministrationSiteCodes
http://hl7.org/fhir/ValueSet/approach-site-codes
from the FHIR Standard
MedicationRequest.dosageInstruction.routeexampleSNOMEDCTRouteCodes
http://hl7.org/fhir/ValueSet/route-codes
from the FHIR Standard
MedicationRequest.dosageInstruction.methodexampleSNOMEDCTAdministrationMethodCodes
http://hl7.org/fhir/ValueSet/administration-method-codes
from the FHIR Standard
MedicationRequest.dosageInstruction.doseAndRate.typeexampleDoseAndRateType
http://hl7.org/fhir/ValueSet/dose-rate-type
from the FHIR Standard
MedicationRequest.dosageInstruction.doseAndRate.dose[x]preferredCommon UCUM units
Additional Bindings Purpose
UCUMCodes Max Binding
http://hl7.org/fhir/ValueSet/ucum-common
from the FHIR Standard
MedicationRequest.substitution.allowed[x]exampleActSubstanceAdminSubstitutionCode
http://terminology.hl7.org/ValueSet/v3-ActSubstanceAdminSubstitutionCode
MedicationRequest.substitution.reasonexampleSubstanceAdminSubstitutionReason
http://terminology.hl7.org/ValueSet/v3-SubstanceAdminSubstitutionReason

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationRequestIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationRequestIf 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-4errorMedicationRequestIf 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-5errorMedicationRequestIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationRequestA resource should have narrative for robust management
: text.`div`.exists()
dom-7errorMedicationRequestif doNotPerform is present, it SHALL be false
: doNotPerform.empty() or doNotPerform=false
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorMedicationRequest.dosageInstruction.timing.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorMedicationRequest.dosageInstruction.timing.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorMedicationRequest.dosageInstruction.timing.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorMedicationRequest.dosageInstruction.timing.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorMedicationRequest.dosageInstruction.timing.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorMedicationRequest.dosageInstruction.timing.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorMedicationRequest.dosageInstruction.timing.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorMedicationRequest.dosageInstruction.timing.repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10errorMedicationRequest.dosageInstruction.timing.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()
us-core-21errorMedicationRequestrequester SHALL be present if intent is "order"
: (intent='order' or intent='original-order' or intent='reflex-order'or intent='filler-order' or intent='instance-order') implies requester.exists()

Differential View

This structure is derived from USCoreMedicationRequestProfile

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationRequest 0..* USCoreMedicationRequestProfile Ordering of medication for patient or group
dom-7: if doNotPerform is present, it SHALL be false
... status 1..1 code (QI-Core)(USCDI) active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
... doNotPerform 0..1 boolean (QI-Core) True if medication was not requested
Fixed Value: false
... reported[x] S 0..1 (QI-Core)(USCDI) Reported rather than primary record
.... reportedBoolean boolean
.... reportedReference Reference(QICore Practitioner | QICore PractitionerRole | QICore Patient | QICore RelatedPerson)
... encounter 0..1 Reference(QICore Encounter) (QI-Core)(USCDI) Encounter created as part of encounter/admission/stay
... authoredOn 0..1 dateTime (QI-Core)(USCDI) When request was initially authored
... requester 0..1 Reference(QICore Practitioner | QICore PractitionerRole | QICore Patient) (QI-Core)(USCDI) Who/What requested the Request
... reasonCode 0..* CodeableConcept (QI-Core)(USCDI) Reason or indication for ordering or not ordering the medication
... reasonReference 0..* Reference(QICore Condition Encounter Diagnosis | QICore Condition Problems Health Concerns | QICore Simple Observation) (QI-Core)(USCDI) QI-Core Condition or Observation that supports the prescription
... dosageInstruction 0..* Dosage (QI-Core)(USCDI) How medication should be taken
.... timing 0..1 Timing (QI-Core)(USCDI) When medication should be administered
..... repeat 0..1 Element (QI-Core) When the event is to occur
...... bounds[x] 0..1 Duration, Range, Period (QI-Core) Length/Range of lengths, or (Start and/or end) limits
...... frequency 0..1 positiveInt (QI-Core) Event occurs frequency times per period
...... frequencyMax 0..1 positiveInt (QI-Core) Event occurs frequencyMax times per period
...... period 0..1 decimal (QI-Core) Event occurs frequency times per period
...... periodMax 0..1 decimal (QI-Core) Upper limit of period (3-4 hours)
...... periodUnit 0..1 code (QI-Core) s | min | h | d | wk | mo | a - unit of time (UCUM)
.... asNeeded[x] 0..1 boolean, CodeableConcept (QI-Core) Take "as needed" (for x)
.... doseAndRate 0..* Element (QI-Core)(USCDI) Amount of medication administered
..... dose[x] 0..1 Quantity, Range (QI-Core)(USCDI) Amount of medication per dose
... dispenseRequest 0..1 BackboneElement (QI-Core)(USCDI) Medication supply authorization
.... initialFill 0..0
.... dispenseInterval 0..1 Duration (QI-Core) Minimum period of time between dispenses
.... numberOfRepeatsAllowed 0..1 unsignedInt (QI-Core)(USCDI) Number of refills authorized
.... quantity 0..1 SimpleQuantity (QI-Core)(USCDI) Amount of medication to supply per dispense
.... expectedSupplyDuration 0..1 Duration (QI-Core) Number of days supply per dispense

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
dom-7errorMedicationRequestif doNotPerform is present, it SHALL be false
: doNotPerform.empty() or doNotPerform=false

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationRequest C 0..* USCoreMedicationRequestProfile Ordering of medication for patient or group
us-core-21: requester SHALL be present if intent is "order"
dom-7: if doNotPerform is present, it SHALL be false
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code (QI-Core)(USCDI) active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
Binding: medicationrequest Status (required): A code specifying the state of the prescribing event. Describes the lifecycle of the prescription.

... Slices for category S 0..* CodeableConcept (USCDI) Type of medication usage
Slice: Unordered, Open by pattern:$this
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.


.... category:us-core S 0..* CodeableConcept (USCDI) Type of medication usage
Binding: medicationRequest Category Codes (required): The type of medication order. Note that other codes are permitted, see Required Bindings When Slicing by Value Sets


... doNotPerform ?!Σ 0..1 boolean (QI-Core) True if medication was not requested
Fixed Value: false
... reported[x] SΣ 0..1 (QI-Core)(USCDI) Reported rather than primary record
.... reportedBoolean boolean
.... reportedReference Reference(QICore Practitioner | QICore PractitionerRole | QICore Patient | QICore RelatedPerson)
... medication[x] SΣ 1..1 (USCDI) Medication to be taken
Binding: Medication Clinical Drug . (extensible)
.... medicationCodeableConcept CodeableConcept
.... medicationReference Reference(US Core Medication Profile)
... subject SΣ 1..1 Reference(QICore Patient) (QI-Core)(USCDI) Who or group medication request is for
... encounter S 0..1 Reference(QICore Encounter) (QI-Core)(USCDI) Encounter created as part of encounter/admission/stay
... authoredOn SΣ 0..1 dateTime (QI-Core)(USCDI) When request was initially authored
... requester SΣC 0..1 Reference(QICore Practitioner | QICore PractitionerRole | QICore Patient) (QI-Core)(USCDI) Who/What requested the Request
... reasonCode 0..* CodeableConcept (QI-Core)(USCDI) Reason or indication for ordering or not ordering the medication
Binding: US Core Condition Codes (extensible)
... reasonReference 0..* Reference(QICore Condition Encounter Diagnosis | QICore Condition Problems Health Concerns | QICore Simple Observation) (QI-Core)(USCDI) QI-Core Condition or Observation that supports the prescription
... dosageInstruction S 0..* Dosage (QI-Core)(USCDI) How medication should be taken
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... text SΣ 0..1 string (USCDI) Free text dosage instructions e.g. SIG
.... timing SΣ 0..1 Timing (QI-Core)(USCDI) When medication should be administered
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... repeat ΣC 0..1 Element (QI-Core) When the event is to occur
tim-1: if there's a duration, there needs to be duration units
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-10: If there's a timeOfDay, there cannot be a when, or vice versa
...... bounds[x] Σ 0..1 (QI-Core) Length/Range of lengths, or (Start and/or end) limits
....... boundsDuration Duration
....... boundsRange Range
....... boundsPeriod Period
...... frequency Σ 0..1 positiveInt (QI-Core) Event occurs frequency times per period
...... frequencyMax Σ 0..1 positiveInt (QI-Core) Event occurs frequencyMax times per period
...... period Σ 0..1 decimal (QI-Core) Event occurs frequency times per period
...... periodMax Σ 0..1 decimal (QI-Core) Upper limit of period (3-4 hours)
...... periodUnit Σ 0..1 code (QI-Core) s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

.... asNeeded[x] Σ 0..1 (QI-Core) Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.

..... asNeededBoolean boolean
..... asNeededCodeableConcept CodeableConcept
.... doseAndRate SΣ 0..* Element (QI-Core)(USCDI) Amount of medication administered
..... dose[x] SΣ 0..1 (QI-Core)(USCDI) Amount of medication per dose
Binding: Common UCUM units (preferred)
Additional BindingsPurpose
UCUMCodes Max Binding
...... doseQuantity Quantity
... dispenseRequest S 0..1 BackboneElement (QI-Core)(USCDI) Medication supply authorization
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... dispenseInterval 0..1 Duration (QI-Core) Minimum period of time between dispenses
.... numberOfRepeatsAllowed S 0..1 unsignedInt (QI-Core)(USCDI) Number of refills authorized
.... quantity S 0..1 SimpleQuantity (QI-Core)(USCDI) Amount of medication to supply per dispense
.... expectedSupplyDuration 0..1 Duration (QI-Core) Number of days supply per dispense

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
MedicationRequest.statusrequiredmedicationrequest Status
http://hl7.org/fhir/ValueSet/medicationrequest-status
from the FHIR Standard
MedicationRequest.intentrequiredmedicationRequest Intent
http://hl7.org/fhir/ValueSet/medicationrequest-intent
from the FHIR Standard
MedicationRequest.categoryexamplemedicationRequest Category Codes
http://hl7.org/fhir/ValueSet/medicationrequest-category
from the FHIR Standard
MedicationRequest.category:us-corerequiredmedicationRequest Category Codes
http://hl7.org/fhir/ValueSet/medicationrequest-category
from the FHIR Standard
MedicationRequest.medication[x]extensibleMedicationClinicalDrug .
http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1010.4
MedicationRequest.reasonCodeextensibleUSCoreConditionCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-condition-code
MedicationRequest.dosageInstruction.timing.repeat.periodUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
MedicationRequest.dosageInstruction.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
http://hl7.org/fhir/ValueSet/medication-as-needed-reason
from the FHIR Standard
MedicationRequest.dosageInstruction.doseAndRate.dose[x]preferredCommon UCUM units
Additional Bindings Purpose
UCUMCodes Max Binding
http://hl7.org/fhir/ValueSet/ucum-common
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationRequestIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationRequestIf 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-4errorMedicationRequestIf 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-5errorMedicationRequestIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationRequestA resource should have narrative for robust management
: text.`div`.exists()
dom-7errorMedicationRequestif doNotPerform is present, it SHALL be false
: doNotPerform.empty() or doNotPerform=false
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorMedicationRequest.dosageInstruction.timing.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorMedicationRequest.dosageInstruction.timing.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorMedicationRequest.dosageInstruction.timing.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorMedicationRequest.dosageInstruction.timing.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorMedicationRequest.dosageInstruction.timing.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorMedicationRequest.dosageInstruction.timing.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorMedicationRequest.dosageInstruction.timing.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorMedicationRequest.dosageInstruction.timing.repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10errorMedicationRequest.dosageInstruction.timing.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()
us-core-21errorMedicationRequestrequester SHALL be present if intent is "order"
: (intent='order' or intent='original-order' or intent='reflex-order'or intent='filler-order' or intent='instance-order') implies requester.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationRequest C 0..* USCoreMedicationRequestProfile Ordering of medication for patient or group
us-core-21: requester SHALL be present if intent is "order"
dom-7: if doNotPerform is present, it SHALL be false
... 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 BindingsPurpose
AllLanguages Max Binding
... text 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 ids for this request
... status ?!SΣ 1..1 code (QI-Core)(USCDI) active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
Binding: medicationrequest Status (required): A code specifying the state of the prescribing event. Describes the lifecycle of the prescription.

... statusReason 0..1 CodeableConcept Reason for current status
Binding: medicationRequest Status Reason Codes (example): Identifies the reasons for a given status.

... intent ?!SΣC 1..1 code (USCDI) proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: medicationRequest Intent (required): The kind of medication order.

... Slices for category S 0..* CodeableConcept (USCDI) Type of medication usage
Slice: Unordered, Open by pattern:$this
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.


.... category:us-core S 0..* CodeableConcept (USCDI) Type of medication usage
Binding: medicationRequest Category Codes (required): The type of medication order. Note that other codes are permitted, see Required Bindings When Slicing by Value Sets


... 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 (QI-Core) True if medication was not requested
Fixed Value: false
... reported[x] SΣ 0..1 (QI-Core)(USCDI) Reported rather than primary record
.... reportedBoolean boolean S
.... reportedReference Reference S(QICore Practitioner | QICore PractitionerRole | QICore Patient | QICore RelatedPerson)
... medication[x] SΣ 1..1 (USCDI) Medication to be taken
Binding: Medication Clinical Drug . (extensible)
.... medicationCodeableConcept CodeableConcept
.... medicationReference Reference(US Core Medication Profile)
... subject SΣ 1..1 Reference(QICore Patient) (QI-Core)(USCDI) Who or group medication request is for
... encounter S 0..1 Reference(QICore Encounter) (QI-Core)(USCDI) Encounter created as part of encounter/admission/stay
... supportingInformation 0..* Reference(Resource) Information to support ordering of the medication
... authoredOn SΣ 0..1 dateTime (QI-Core)(USCDI) When request was initially authored
... requester SΣC 0..1 Reference(QICore Practitioner | QICore PractitionerRole | QICore Patient) (QI-Core)(USCDI) Who/What requested the Request
... 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 0..* CodeableConcept (QI-Core)(USCDI) Reason or indication for ordering or not ordering the medication
Binding: US Core Condition Codes (extensible)
... reasonReference 0..* Reference(QICore Condition Encounter Diagnosis | QICore Condition Problems Health Concerns | QICore Simple Observation) (QI-Core)(USCDI) QI-Core Condition or Observation that supports the prescription
... 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 S 0..* Dosage (QI-Core)(USCDI) How medication should be taken
.... 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 SΣ 0..1 string (USCDI) Free text dosage instructions e.g. SIG
.... additionalInstruction Σ 0..* CodeableConcept Supplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (example): A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery".


.... patientInstruction Σ 0..1 string Patient or consumer oriented instructions
.... timing SΣ 0..1 Timing (QI-Core)(USCDI) When medication should be 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
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... event Σ 0..* dateTime When the event occurs
..... repeat ΣC 0..1 Element (QI-Core) When the event is to occur
tim-1: if there's a duration, there needs to be duration units
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-10: If there's a timeOfDay, there cannot be a when, or vice versa
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... bounds[x] Σ 0..1 (QI-Core) Length/Range of lengths, or (Start and/or end) limits
....... boundsDuration Duration
....... boundsRange Range
....... boundsPeriod Period
...... count Σ 0..1 positiveInt Number of times to repeat
...... countMax Σ 0..1 positiveInt Maximum number of times to repeat
...... duration Σ 0..1 decimal How long when it happens
...... durationMax Σ 0..1 decimal How long when it happens (Max)
...... durationUnit Σ 0..1 code s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

...... frequency Σ 0..1 positiveInt (QI-Core) Event occurs frequency times per period
...... frequencyMax Σ 0..1 positiveInt (QI-Core) Event occurs frequencyMax times per period
...... period Σ 0..1 decimal (QI-Core) Event occurs frequency times per period
...... periodMax Σ 0..1 decimal (QI-Core) Upper limit of period (3-4 hours)
...... periodUnit Σ 0..1 code (QI-Core) s | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

...... dayOfWeek Σ 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
...... timeOfDay Σ 0..* time Time of day for action
...... when Σ 0..* code Code for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


...... offset Σ 0..1 unsignedInt Minutes from event (before or after)
..... code Σ 0..1 CodeableConcept BID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.

.... asNeeded[x] Σ 0..1 (QI-Core) Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.

..... asNeededBoolean boolean
..... asNeededCodeableConcept CodeableConcept
.... site Σ 0..1 CodeableConcept Body site to administer to
Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example): A coded concept describing the site location the medicine enters into or onto the body.

.... route Σ 0..1 CodeableConcept How drug should enter body
Binding: SNOMEDCTRouteCodes (example): A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.

.... method Σ 0..1 CodeableConcept Technique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (example): A coded concept describing the technique by which the medicine is administered.

.... doseAndRate SΣ 0..* Element (QI-Core)(USCDI) 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] SΣ 0..1 (QI-Core)(USCDI) Amount of medication per dose
Binding: Common UCUM units (preferred)
Additional BindingsPurpose
UCUMCodes Max Binding
...... doseQuantity Quantity S
...... doseRange Range
..... 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 Upper limit on medication per administration
.... maxDosePerLifetime Σ 0..1 SimpleQuantity Upper limit on medication per lifetime of the patient
... dispenseRequest S 0..1 BackboneElement (QI-Core)(USCDI) Medication supply authorization
.... 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
.... dispenseInterval 0..1 Duration (QI-Core) Minimum period of time between dispenses
.... validityPeriod 0..1 Period Time period supply is authorized for
.... numberOfRepeatsAllowed S 0..1 unsignedInt (QI-Core)(USCDI) Number of refills authorized
.... quantity S 0..1 SimpleQuantity (QI-Core)(USCDI) Amount of medication to supply per dispense
.... expectedSupplyDuration 0..1 Duration (QI-Core) Number of days supply per dispense
.... performer 0..1 Reference(Organization) Intended dispenser
... substitution 0..1 BackboneElement Any restrictions on medication substitution
.... 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 Whether substitution is allowed or not
Binding: ActSubstanceAdminSubstitutionCode (example): Identifies the type of substitution allowed.

..... allowedBoolean boolean
..... allowedCodeableConcept CodeableConcept
.... reason 0..1 CodeableConcept Why should (not) substitution be made
Binding: SubstanceAdminSubstitutionReason (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed.

... 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
MedicationRequest.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
MedicationRequest.statusrequiredmedicationrequest Status
http://hl7.org/fhir/ValueSet/medicationrequest-status
from the FHIR Standard
MedicationRequest.statusReasonexamplemedicationRequest Status Reason Codes
http://hl7.org/fhir/ValueSet/medicationrequest-status-reason
from the FHIR Standard
MedicationRequest.intentrequiredmedicationRequest Intent
http://hl7.org/fhir/ValueSet/medicationrequest-intent
from the FHIR Standard
MedicationRequest.categoryexamplemedicationRequest Category Codes
http://hl7.org/fhir/ValueSet/medicationrequest-category
from the FHIR Standard
MedicationRequest.category:us-corerequiredmedicationRequest Category Codes
http://hl7.org/fhir/ValueSet/medicationrequest-category
from the FHIR Standard
MedicationRequest.priorityrequiredRequestPriority
http://hl7.org/fhir/ValueSet/request-priority|4.0.1
from the FHIR Standard
MedicationRequest.medication[x]extensibleMedicationClinicalDrug .
http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1010.4
MedicationRequest.performerTypeexampleProcedurePerformerRoleCodes
http://hl7.org/fhir/ValueSet/performer-role
from the FHIR Standard
MedicationRequest.reasonCodeextensibleUSCoreConditionCodes
http://hl7.org/fhir/us/core/ValueSet/us-core-condition-code
MedicationRequest.courseOfTherapyTypeexamplemedicationRequest Course of Therapy Codes
http://hl7.org/fhir/ValueSet/medicationrequest-course-of-therapy
from the FHIR Standard
MedicationRequest.dosageInstruction.additionalInstructionexampleSNOMEDCTAdditionalDosageInstructions
http://hl7.org/fhir/ValueSet/additional-instruction-codes
from the FHIR Standard
MedicationRequest.dosageInstruction.timing.repeat.durationUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
MedicationRequest.dosageInstruction.timing.repeat.periodUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
MedicationRequest.dosageInstruction.timing.repeat.dayOfWeekrequiredDaysOfWeek
http://hl7.org/fhir/ValueSet/days-of-week|4.0.1
from the FHIR Standard
MedicationRequest.dosageInstruction.timing.repeat.whenrequiredEventTiming
http://hl7.org/fhir/ValueSet/event-timing|4.0.1
from the FHIR Standard
MedicationRequest.dosageInstruction.timing.codepreferredTimingAbbreviation
http://hl7.org/fhir/ValueSet/timing-abbreviation
from the FHIR Standard
MedicationRequest.dosageInstruction.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
http://hl7.org/fhir/ValueSet/medication-as-needed-reason
from the FHIR Standard
MedicationRequest.dosageInstruction.siteexampleSNOMEDCTAnatomicalStructureForAdministrationSiteCodes
http://hl7.org/fhir/ValueSet/approach-site-codes
from the FHIR Standard
MedicationRequest.dosageInstruction.routeexampleSNOMEDCTRouteCodes
http://hl7.org/fhir/ValueSet/route-codes
from the FHIR Standard
MedicationRequest.dosageInstruction.methodexampleSNOMEDCTAdministrationMethodCodes
http://hl7.org/fhir/ValueSet/administration-method-codes
from the FHIR Standard
MedicationRequest.dosageInstruction.doseAndRate.typeexampleDoseAndRateType
http://hl7.org/fhir/ValueSet/dose-rate-type
from the FHIR Standard
MedicationRequest.dosageInstruction.doseAndRate.dose[x]preferredCommon UCUM units
Additional Bindings Purpose
UCUMCodes Max Binding
http://hl7.org/fhir/ValueSet/ucum-common
from the FHIR Standard
MedicationRequest.substitution.allowed[x]exampleActSubstanceAdminSubstitutionCode
http://terminology.hl7.org/ValueSet/v3-ActSubstanceAdminSubstitutionCode
MedicationRequest.substitution.reasonexampleSubstanceAdminSubstitutionReason
http://terminology.hl7.org/ValueSet/v3-SubstanceAdminSubstitutionReason

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationRequestIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationRequestIf 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-4errorMedicationRequestIf 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-5errorMedicationRequestIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationRequestA resource should have narrative for robust management
: text.`div`.exists()
dom-7errorMedicationRequestif doNotPerform is present, it SHALL be false
: doNotPerform.empty() or doNotPerform=false
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorMedicationRequest.dosageInstruction.timing.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorMedicationRequest.dosageInstruction.timing.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorMedicationRequest.dosageInstruction.timing.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorMedicationRequest.dosageInstruction.timing.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorMedicationRequest.dosageInstruction.timing.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorMedicationRequest.dosageInstruction.timing.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorMedicationRequest.dosageInstruction.timing.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorMedicationRequest.dosageInstruction.timing.repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10errorMedicationRequest.dosageInstruction.timing.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()
us-core-21errorMedicationRequestrequester SHALL be present if intent is "order"
: (intent='order' or intent='original-order' or intent='reflex-order'or intent='filler-order' or intent='instance-order') implies requester.exists()

 

Other representations of profile: CSV, Excel, Schematron