R4 Ballot #1 (Mixed Normative/Trial use) Current Build
This page was published as part of FHIR v3.3.0: R4 Ballot #1 : Mixed Normative/Trial use (First Normative ballot). It has been superceded by R4 . For a full list of available versions, see the Directory of published versions .

11.1 Resource MedicationRequest - Content

Pharmacy Work Group Maturity Level : 3   Trial Use Security Category : Patient Compartments : Encounter , Patient , Practitioner

An order or request for both supply of the medication and the instructions for administration of the medication to a patient. The resource is called "MedicationRequest" rather than "MedicationPrescription" or "MedicationOrder" to generalize the use across inpatient and outpatient settings, including care plans, etc., and to harmonize with workflow patterns.

This resource covers all type of orders for medications for a patient. This includes inpatient medication orders as well as community orders (whether filled by the prescriber or by a pharmacy). It also includes orders for over-the-counter medications (e.g. Aspirin), total parenteral nutrition and diet/ vitamin supplements. It may be used to support the order of medication-related devices. It is not intended for use in prescribing particular diets, or for ordering non-medication-related items (eyeglasses, supplies, etc.). In addition, the MedicationRequest may be used to report orders/request from external systems that have been reported for informational purposes and are not authoritative and are not expected to be acted upon (e.g. dispensed or administered).

The MedicationRequest resource is a "request" resource from a FHIR workflow perspective - see Workflow Request.

The MedicationRequest resource allows requesting only a single medication. If a workflow requires requesting multiple items simultaneously, this is done using multiple instances of this resource. These instances can be linked in different ways, depending on the needs of the workflow. For guidance, refer to the Request pattern

The MedicationRequest resource is used to request or order medication for a subject. It may also be used to report a medication request or order from one organization or source to another. When requesting supplies or devices when there is a patient focus or instructions regarding their use, SupplyRequest or DeviceRequest should be used instead instead. When reporting on the usage of a medication by a patient, the MedicationUsage t resource should be used.

The Medication domain includes a number of related resources

MedicationRequest An order for both supply of the medication and the instructions for administration of the medicine to a patient.
MedicationDispense Provision of a supply of a medication with the intention that it is subsequently consumed by a patient (usually in response to a prescription).
MedicationAdministration When a patient actually consumes a medicine, or it is otherwise administered to them
MedicationStatement MedicationUsage This is a record of medication being taken by a patient, or that the medication has been given to a patient where the record is the result of a report from the patient, or another clinician. A medication statement is not a part of the prescribe->dispense->administer sequence but is a report that such a sequence (or at least a part of it) did take place resulting in a belief that the patient has received a particular medication.

This resource is referenced by CarePlan , Claim , ClinicalImpression , DiagnosticReport , ExplanationOfBenefit , Goal , MedicationAdministration , MedicationDispense , MedicationStatement itself, MedicationUsage , Observation and ServiceRequest .

This resource implements the Request pattern.

Structure

Name Flags Card. Type Description & Constraints doco
. . MedicationRequest TU DomainResource Ordering of medication for patient or group
Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . identifier 0..* Identifier External ids for this request
. . . status ?! Σ 1..1 code active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
MedicationRequestStatus Medicationrequest status ( Required )
. . . statusReason 0..1 CodeableConcept Reason for current status
Medication request status reason codes ( Example )
.. . intent ?! Σ 1..1 code proposal | plan | order | original-order | instance-order | option
MedicationRequestIntent Medication request intent ( Required )
. . . category 0..* CodeableConcept Type of medication usage
MedicationRequestCategory Medication request category codes ( Example )
. . . priority Σ 0..1 code routine | urgent | asap | stat
RequestPriority Request priority ( Required )
. . . doNotPerform ?! Σ 0..1 boolean True if request is prohibiting action
... reported Σ 0..1 boolean Reported rather than primary record
... informationSource 0..1 Reference ( Patient | Practitioner | PractitionerRole | RelatedPerson | Organization ) The person or organization who provided the information about this request, if the source is someone other than the requestor
. . . medication[x] Σ 1..1 Medication to be taken
SNOMED CT Medication Codes ( Example )
. . . . medicationCodeableConcept CodeableConcept
. . . . medicationReference Reference ( Medication )
. . . subject Σ 1..1 Reference ( Patient | Group ) Who or group medication request is for
. . . context encounter 0..1 Reference ( Encounter | EpisodeOfCare ) Created during Encounter created as part of encounter/admission/stay
. . . supportingInformation 0..* Reference ( Any ) Information to support ordering of the medication
. . . authoredOn Σ 0..1 dateTime When request was initially authored
. . . requester Σ 0..1 Reference ( Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device ) 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
Procedure Performer Role Codes ( Example )
. . . recorder 0..1 Reference ( Practitioner | PractitionerRole ) Person who entered the request
. . . reasonCode 0..* CodeableConcept Reason or indication for writing ordering or not ordering the prescription medication
Condition/Problem/Diagnosis Codes ( Example )
. . . reasonReference 0..* Reference ( Condition | Observation ) Condition or observation that supports why the prescription is being written
. . . instantiatesCanonical Σ 0..* canonical ( PlanDefinition | ActivityDefinition ) Instantiates FHIR protocol or definition
.. . instantiates 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
. . . statusReason courseOfTherapyType 0..1 CodeableConcept Reason for current status Overall pattern of medication administration
MedicationRequestStatusReason Medication request course of therapy codes ( Example )
. . . insurance 0..* Reference ( Coverage | ClaimResponse ) Associated insurance coverage
. . . note 0..* Annotation Information about the prescription
. . . dosageInstruction 0..* Dosage How the medication should be taken
. . . dispenseRequest 0..1 BackboneElement Medication supply authorization
. . . . initialFill 0..1 BackboneElement First fill details
..... quantity 0..1 SimpleQuantity First fill quantity
..... duration 0..1 Duration First fill duration
.... dispenseInterval 0..1 Duration Minimum period of time between dispenses
. . . . validityPeriod 0..1 Period Time period supply is authorized for
. . . . numberOfRepeatsAllowed 0..1 unsignedInt 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
. . . . performer 0..1 Reference ( Organization ) Intended dispenser
. . . substitution 0..1 BackboneElement Any restrictions on medication substitution
. . . allowed . allowed[x] ?! 1..1 boolean Whether substitution is allowed or not
V3 Value SetActSubstanceAdminSubstitutionCode ( Example )
..... allowedBoolean boolean
..... allowedCodeableConcept CodeableConcept
. . . . reason 0..1 CodeableConcept Why should (not) substitution be made
SubstanceAdminSubstitutionReason V3 Value SetSubstanceAdminSubstitutionReason ( Example )
. . . 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

UML Diagram ( Legend )

MedicationRequest ( DomainResource ) This records identifiers Identifiers associated with this medication request that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. For example a reimbursement system might issue its own id for each prescription that is created. This They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is particularly important where FHIR only provides part of an entire workflow process where records must be tracked through an entire system updated and propagates from server to server identifier : Identifier [0..*] A code specifying the current state of the order. Generally, this will be active or completed state (this element modifies the meaning of other elements) status : code [1..1] « A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription prescription. (Strength=Required) MedicationRequestStatus medicationrequest Status ! » Captures the reason for the current state of the MedicationRequest statusReason : CodeableConcept [0..1] « Identifies the reasons for a given status. (Strength=Example) medicationRequest Status Reas... ?? » Whether the request is a proposal, plan, or an original order (this element modifies the meaning of other elements) intent : code [1..1] « The kind of medication order order. (Strength=Required) MedicationRequestIntent medicationRequest Intent ! » Indicates the type of medication request (for example, where the medication is expected to be consumed or administered (i.e. inpatient or outpatient) or the type of treatment (i.e. chemotherapy or endocrine) outpatient)) category : CodeableConcept [0..*] « 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). treatment. (Strength=Example) MedicationRequestCategory medicationRequest Category ?? » Indicates how quickly the Medication Request should be addressed with respect to other requests priority : code [0..1] « Identifies the level of importance to be assigned to actioning the request request. (Strength=Required) RequestPriority ! » If true indicates that the provider is asking for the medication request not to occur (this element modifies the meaning of other elements) doNotPerform : boolean [0..1] Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report reported : boolean [0..1] The person or organization who provided the information about this request, if the source is someone other than the requestor. This is often used when the MedicationRequest is reported by another person informationSource : Reference [0..1] « Patient | Practitioner | PractitionerRole | RelatedPerson | Organization » Identifies the medication being requested. This is a link to a resource that represents the medication which may be the details of the medication or simply an attribute carrying a code that identifies the medication from a known list of medications medication[x] : Type [1..1] « CodeableConcept | Reference ( Medication ); A coded concept identifying substance or product that can be ordered. (Strength=Example) SNOMED CT Medication SNOMEDCTMedicationCodes ?? » A link to a resource representing the person or set of individuals to whom the medication will be given subject : Reference [1..1] « Patient | Group » A link to an encounter, The Encounter during which this [x] was created or episode of care, that identifies to which the particular occurrence or set occurrences creation of contact between patient and health care provider this record is tightly associated context encounter : Reference [0..1] « Encounter | EpisodeOfCare » Include additional information (for example, patient height and weight) weight, a MedicationUsage for the patient) that supports the ordering of the medication supportingInformation : Reference [0..*] « Any » The date (and perhaps time) when the prescription was initially written or authored on authoredOn : dateTime [0..1] The individual, organization, or device that initiated the request and has responsibility for its activation requester : Reference [0..1] « Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device » The specified desired performer of the medication treatment (e.g. the performer of the medication administration) performer : Reference [0..1] « Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam » Indicates the type of performer of the administration of the medication performerType : CodeableConcept [0..1] « Identifies the type of individual that is desired to administer the medication medication. (Strength=Example) Procedure Performer Role ProcedurePerformerRoleCodes ?? » The person who entered the order on behalf of another individual for example in the case of a verbal or a telephone order recorder : Reference [0..1] « Practitioner | PractitionerRole » The reason or the indication for ordering or not ordering the medication reasonCode : CodeableConcept [0..*] « A coded concept indicating why the medication was ordered. (Strength=Example) Condition/Problem/Diagnosis Condition/Problem/DiagnosisCo... ?? » Condition or observation that supports why the medication was ordered reasonReference : Reference [0..*] « Condition | Observation » The URL pointing to a protocol, guideline, orderset, or other definition that is adhered to in whole or in part by this MedicationRequest instantiates instantiatesCanonical : canonical [0..*] « PlanDefinition | ActivityDefinition » The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this MedicationRequest instantiatesUri : uri [0..*] A plan or request that is fulfilled in whole or in part by this medication request basedOn : Reference [0..*] « CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation » A shared identifier common to all requests that were authorized more or less simultaneously by a single author, representing the identifier of the requisition or prescription groupIdentifier : Identifier [0..1] Captures The description of the reason for overall pattern of the current state administration of the MedicationRequest medication to the patient statusReason courseOfTherapyType : CodeableConcept [0..1] « Identifies the reasons for a given status overall pattern of medication administratio. (Strength=Example) medicationRequest MedicationRequestStatusReason Course of T... ?? » Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be required for delivering the requested service insurance : Reference [0..*] « Coverage | ClaimResponse » Extra information about the prescription that could not be conveyed by the other attributes note : Annotation [0..*] Indicates how the medication is to be used by the patient dosageInstruction : Dosage [0..*] A link to a resource representing an earlier order related order or prescription priorPrescription : Reference [0..1] « MedicationRequest » Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, duplicate therapy, dosage alert etc detectedIssue : Reference [0..*] « DetectedIssue » Links to Provenance records for past versions of this resource or fulfilling request or event resources that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the resource eventHistory : Reference [0..*] « Provenance » DispenseRequest The minimum period of time that must occur between dispenses of the medication dispenseInterval : Duration [0..1] This indicates the validity period of a prescription (stale dating the Prescription) validityPeriod : Period [0..1] An integer indicating the number of times, in addition to the original dispense, (aka refills or repeats) that the patient can receive the prescribed medication. Usage Notes: This integer does not include the original order dispense. This means that if an order indicates dispense 30 tablets plus "3 repeats", then the order can be dispensed a total of 4 times and the patient can receive a total of 120 tablets. A prescriber may explicitly say that zero refills are permitted after the initial dispense numberOfRepeatsAllowed : unsignedInt [0..1] The amount that is to be dispensed for one fill quantity : Quantity ( SimpleQuantity ) [0..1] Identifies the period time over which the supplied product is expected to be used, or the length of time the dispense is expected to last expectedSupplyDuration : Duration [0..1] Indicates the intended dispensing Organization specified by the prescriber performer : Reference [0..1] « Organization » InitialFill The amount or quantity to provide as part of the first dispense quantity : Quantity ( SimpleQuantity ) [0..1] The length of time that the first dispense is expected to last duration : Duration [0..1] Substitution True if the prescriber allows a different drug to be dispensed from what was prescribed (this element modifies the meaning of other elements) allowed allowed[x] : boolean Type [1..1] « boolean | CodeableConcept ; Identifies the type of substitution allowed. (Strength=Example) v3.ActSubstanceAdminSubstitut... ?? » Indicates the reason for the substitution, or why substitution must or must not be performed reason : CodeableConcept [0..1] « A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. (Strength=Example) SubstanceAdminSubstitutionRea... v3.SubstanceAdminSubstitution... ?? » Indicates the quantity or duration for the first dispense of the medication initialFill [0..1] Indicates the specific details for the dispense or medication supply part of a medication request (also known as a Medication Prescription or Medication Order). Note that this information is not always sent with the order. There may be in some settings (e.g. hospitals) institutional or system support for completing the dispense details in the pharmacy department dispenseRequest [0..1] Indicates whether or not substitution can or should be part of the dispense. In some cases, substitution must happen, in other cases substitution must not happen. This block explains the prescriber's intent. If nothing is specified substitution may be done substitution [0..1]

XML Template

<MedicationRequest xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <</identifier>
 <
 <
 <</category>

 <identifier><!-- 0..* Identifier External ids for this request --></identifier>
 <status value="[code]"/><!-- 1..1 active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown -->
 <statusReason><!-- 0..1 CodeableConcept Reason for current status --></statusReason>
 <intent value="[code]"/><!-- 1..1 proposal | plan | order | original-order | instance-order | option -->
 <category><!-- 0..* CodeableConcept Type of medication usage --></category>

 <priority value="[code]"/><!-- 0..1 routine | urgent | asap | stat -->
 <doNotPerform value="[boolean]"/><!-- 0..1 True if request is prohibiting action -->
 <reported value="[boolean]"/><!-- 0..1 Reported rather than primary record -->
 <informationSource><!-- 0..1 Reference(Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) The person or organization who provided the information about this request, if the source is someone other than the requestor --></informationSource>
 <medication[x]><!-- 1..1 CodeableConcept|Reference(Medication) Medication to be taken --></medication[x]>
 <</subject>
 <</context>
 <</supportingInformation>

 <subject><!-- 1..1 Reference(Group|Patient) Who or group medication request is for --></subject>
 <encounter><!-- 0..1 Reference(Encounter) Encounter created as part of encounter/admission/stay --></encounter>
 <supportingInformation><!-- 0..* Reference(Any) Information to support ordering of the medication --></supportingInformation>

 <authoredOn value="[dateTime]"/><!-- 0..1 When request was initially authored -->
 <|
   </requester>
 <|
   </performer>

 <requester><!-- 0..1 Reference(Device|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) Who/What requested the Request --></requester>
 <performer><!-- 0..1 Reference(CareTeam|Device|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) Intended performer of administration --></performer>
 <performerType><!-- 0..1 CodeableConcept Desired kind of performer of the medication administration --></performerType>
 <</recorder>
 <</reasonCode>

 <recorder><!-- 0..1 Reference(Practitioner|PractitionerRole) Person who entered the request --></recorder>
 <reasonCode><!-- 0..* CodeableConcept Reason or indication for ordering or not ordering the medication --></reasonCode>

 <reasonReference><!-- 0..* Reference(Condition|Observation) Condition or observation that supports why the prescription is being written --></reasonReference>
 <
 <</basedOn>

 <instantiatesCanonical><!-- 0..* canonical(ActivityDefinition|PlanDefinition) Instantiates FHIR protocol or definition --></instantiatesCanonical>
 <instantiatesUri value="[uri]"/><!-- 0..* Instantiates external protocol or definition -->
 <basedOn><!-- 0..* Reference(CarePlan|ImmunizationRecommendation|
   MedicationRequest|ServiceRequest) What request fulfills --></basedOn>
 <groupIdentifier><!-- 0..1 Identifier Composite request this is part of --></groupIdentifier>
 <</statusReason>
 <</insurance>

 <courseOfTherapyType><!-- 0..1 CodeableConcept Overall pattern of medication administration --></courseOfTherapyType>
 <insurance><!-- 0..* Reference(ClaimResponse|Coverage) Associated insurance coverage --></insurance>

 <note><!-- 0..* Annotation Information about the prescription --></note>
 <dosageInstruction><!-- 0..* Dosage How the medication should be taken --></dosageInstruction>
 <dispenseRequest>  <!-- 0..1 Medication supply authorization -->
  <initialFill>  <!-- 0..1 First fill details -->
   <quantity><!-- 0..1 Quantity(SimpleQuantity) First fill quantity --></quantity>
   <duration><!-- 0..1 Duration First fill duration --></duration>
  </initialFill>
  <dispenseInterval><!-- 0..1 Duration Minimum period of time between dispenses --></dispenseInterval>

  <validityPeriod><!-- 0..1 Period Time period supply is authorized for --></validityPeriod>
  <numberOfRepeatsAllowed value="[unsignedInt]"/><!-- 0..1 Number of refills authorized -->
  <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount of medication to supply per dispense --></quantity>
  <expectedSupplyDuration><!-- 0..1 Duration Number of days supply per dispense --></expectedSupplyDuration>
  <performer><!-- 0..1 Reference(Organization) Intended dispenser --></performer>
 </dispenseRequest>
 <
  <

 <substitution>  <!-- 0..1 Any restrictions on medication substitution -->
  <allowed[x]><!-- 1..1 boolean|CodeableConcept Whether substitution is allowed or not --></allowed[x]>

  <reason><!-- 0..1 CodeableConcept Why should (not) substitution be made --></reason>
 </substitution>
 <priorPrescription><!-- 0..1 Reference(MedicationRequest) An order/prescription that is being replaced --></priorPrescription>
 <detectedIssue><!-- 0..* Reference(DetectedIssue) Clinical Issue with action --></detectedIssue>
 <eventHistory><!-- 0..* Reference(Provenance) A list of events of interest in the lifecycle --></eventHistory>
</MedicationRequest>

JSON Template

{doco
  "resourceType" : "MedicationRequest",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "
  "
  "
  "

  "identifier" : [{ Identifier }], // External ids for this request
  "status" : "<code>", // R!  active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
  "statusReason" : { CodeableConcept }, // Reason for current status
  "intent" : "<code>", // R!  proposal | plan | order | original-order | instance-order | option
  "category" : [{ CodeableConcept }], // Type of medication usage

  "priority" : "<code>", // routine | urgent | asap | stat
  "doNotPerform" : <boolean>, // True if request is prohibiting action
  "reported" : <boolean>, // Reported rather than primary record
  "informationSource" : { Reference(Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) }, // The person or organization who provided the information about this request, if the source is someone other than the requestor
  // medication[x]: Medication to be taken. One of these 2:
  "medicationCodeableConcept" : { CodeableConcept },
  "medicationReference" : { Reference(Medication) },
  "
  "
  "

  "subject" : { Reference(Group|Patient) }, // R!  Who or group medication request is for
  "encounter" : { Reference(Encounter) }, // Encounter created as part of encounter/admission/stay
  "supportingInformation" : [{ Reference(Any) }], // Information to support ordering of the medication

  "authoredOn" : "<dateTime>", // When request was initially authored
  "|
   
  "|
   

  "requester" : { Reference(Device|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) }, // Who/What requested the Request
  "performer" : { Reference(CareTeam|Device|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) }, // Intended performer of administration
  "performerType" : { CodeableConcept }, // Desired kind of performer of the medication administration
  "
  "

  "recorder" : { Reference(Practitioner|PractitionerRole) }, // Person who entered the request
  "reasonCode" : [{ CodeableConcept }], // Reason or indication for ordering or not ordering the medication

  "reasonReference" : [{ Reference(Condition|Observation) }], // Condition or observation that supports why the prescription is being written
  "
  "

  "instantiatesCanonical" : [{ canonical(ActivityDefinition|PlanDefinition) }], // Instantiates FHIR protocol or definition
  "instantiatesUri" : ["<uri>"], // Instantiates external protocol or definition
  "basedOn" : [{ Reference(CarePlan|ImmunizationRecommendation|
   MedicationRequest|ServiceRequest) }], // What request fulfills
  "groupIdentifier" : { Identifier }, // Composite request this is part of
  "
  "

  "courseOfTherapyType" : { CodeableConcept }, // Overall pattern of medication administration
  "insurance" : [{ Reference(ClaimResponse|Coverage) }], // Associated insurance coverage

  "note" : [{ Annotation }], // Information about the prescription
  "dosageInstruction" : [{ Dosage }], // How the medication should be taken
  "dispenseRequest" : { // Medication supply authorization
    "initialFill" : { // First fill details
      "quantity" : { Quantity(SimpleQuantity) }, // First fill quantity
      "duration" : { Duration } // First fill duration
    },
    "dispenseInterval" : { Duration }, // Minimum period of time between dispenses

    "validityPeriod" : { Period }, // Time period supply is authorized for
    "numberOfRepeatsAllowed" : "<unsignedInt>", // Number of refills authorized
    "quantity" : { Quantity(SimpleQuantity) }, // Amount of medication to supply per dispense
    "expectedSupplyDuration" : { Duration }, // Number of days supply per dispense
    "performer" : { Reference(Organization) } // Intended dispenser
  },
  "
    "

  "substitution" : { // Any restrictions on medication substitution
    // allowed[x]: Whether substitution is allowed or not. One of these 2:
    "allowedBoolean" : <boolean>,
    "allowedCodeableConcept" : { CodeableConcept },

    "reason" : { CodeableConcept } // Why should (not) substitution be made
  },
  "priorPrescription" : { Reference(MedicationRequest) }, // An order/prescription that is being replaced
  "detectedIssue" : [{ Reference(DetectedIssue) }], // Clinical Issue with action
  "eventHistory" : [{ Reference(Provenance) }] // A list of events of interest in the lifecycle
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco
[ a fhir:MedicationRequest;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root
  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:

  fhir:MedicationRequest.identifier [ Identifier ], ... ; # 0..* External ids for this request

  fhir:MedicationRequest.status [ code ]; # 1..1 active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
  fhir:MedicationRequest.statusReason [ CodeableConcept ]; # 0..1 Reason for current status

  fhir:MedicationRequest.intent [ code ]; # 1..1 proposal | plan | order | original-order | instance-order | option
  fhir:

  fhir:MedicationRequest.category [ CodeableConcept ], ... ; # 0..* Type of medication usage

  fhir:MedicationRequest.priority [ code ]; # 0..1 routine | urgent | asap | stat
  fhir:MedicationRequest.doNotPerform [ boolean ]; # 0..1 True if request is prohibiting action
  fhir:MedicationRequest.reported [ boolean ]; # 0..1 Reported rather than primary record
  fhir:MedicationRequest.informationSource [ Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 0..1 The person or organization who provided the information about this request, if the source is someone other than the requestor

  # MedicationRequest.medication[x] : 1..1 Medication to be taken. One of these 2
    fhir:MedicationRequest.medicationCodeableConcept [ CodeableConcept ]
    fhir:MedicationRequest.medicationReference [ Reference(Medication) ]
  fhir:
  fhir:
  fhir:

  fhir:MedicationRequest.subject [ Reference(Group|Patient) ]; # 1..1 Who or group medication request is for
  fhir:MedicationRequest.encounter [ Reference(Encounter) ]; # 0..1 Encounter created as part of encounter/admission/stay
  fhir:MedicationRequest.supportingInformation [ Reference(Any) ], ... ; # 0..* Information to support ordering of the medication

  fhir:MedicationRequest.authoredOn [ dateTime ]; # 0..1 When request was initially authored
  fhir:
  fhir:

  fhir:MedicationRequest.requester [ Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 0..1 Who/What requested the Request
  fhir:MedicationRequest.performer [ Reference(CareTeam|Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 0..1 Intended performer of administration

  fhir:MedicationRequest.performerType [ CodeableConcept ]; # 0..1 Desired kind of performer of the medication administration
  fhir:
  fhir:

  fhir:MedicationRequest.recorder [ Reference(Practitioner|PractitionerRole) ]; # 0..1 Person who entered the request
  fhir:MedicationRequest.reasonCode [ CodeableConcept ], ... ; # 0..* Reason or indication for ordering or not ordering the medication

  fhir:MedicationRequest.reasonReference [ Reference(Condition|Observation) ], ... ; # 0..* Condition or observation that supports why the prescription is being written
  fhir:
  fhir:

  fhir:MedicationRequest.instantiatesCanonical [ canonical(ActivityDefinition|PlanDefinition) ], ... ; # 0..* Instantiates FHIR protocol or definition
  fhir:MedicationRequest.instantiatesUri [ uri ], ... ; # 0..* Instantiates external protocol or definition
  fhir:MedicationRequest.basedOn [ Reference(CarePlan|ImmunizationRecommendation|MedicationRequest|ServiceRequest) ], ... ; # 0..* What request fulfills

  fhir:MedicationRequest.groupIdentifier [ Identifier ]; # 0..1 Composite request this is part of
  fhir:
  fhir:

  fhir:MedicationRequest.courseOfTherapyType [ CodeableConcept ]; # 0..1 Overall pattern of medication administration
  fhir:MedicationRequest.insurance [ Reference(ClaimResponse|Coverage) ], ... ; # 0..* Associated insurance coverage

  fhir:MedicationRequest.note [ Annotation ], ... ; # 0..* Information about the prescription
  fhir:MedicationRequest.dosageInstruction [ Dosage ], ... ; # 0..* How the medication should be taken
  fhir:MedicationRequest.dispenseRequest [ # 0..1 Medication supply authorization
    fhir:MedicationRequest.dispenseRequest.initialFill [ # 0..1 First fill details
      fhir:MedicationRequest.dispenseRequest.initialFill.quantity [ Quantity(SimpleQuantity) ]; # 0..1 First fill quantity
      fhir:MedicationRequest.dispenseRequest.initialFill.duration [ Duration ]; # 0..1 First fill duration
    ];
    fhir:MedicationRequest.dispenseRequest.dispenseInterval [ Duration ]; # 0..1 Minimum period of time between dispenses

    fhir:MedicationRequest.dispenseRequest.validityPeriod [ Period ]; # 0..1 Time period supply is authorized for
    fhir:MedicationRequest.dispenseRequest.numberOfRepeatsAllowed [ unsignedInt ]; # 0..1 Number of refills authorized
    fhir:MedicationRequest.dispenseRequest.quantity [ Quantity(SimpleQuantity) ]; # 0..1 Amount of medication to supply per dispense
    fhir:MedicationRequest.dispenseRequest.expectedSupplyDuration [ Duration ]; # 0..1 Number of days supply per dispense
    fhir:MedicationRequest.dispenseRequest.performer [ Reference(Organization) ]; # 0..1 Intended dispenser
  ];
  fhir:
    fhir:

  fhir:MedicationRequest.substitution [ # 0..1 Any restrictions on medication substitution
    # MedicationRequest.substitution.allowed[x] : 1..1 Whether substitution is allowed or not. One of these 2
      fhir:MedicationRequest.substitution.allowedBoolean [ boolean ]
      fhir:MedicationRequest.substitution.allowedCodeableConcept [ CodeableConcept ]

    fhir:MedicationRequest.substitution.reason [ CodeableConcept ]; # 0..1 Why should (not) substitution be made
  ];
  fhir:MedicationRequest.priorPrescription [ Reference(MedicationRequest) ]; # 0..1 An order/prescription that is being replaced
  fhir:MedicationRequest.detectedIssue [ Reference(DetectedIssue) ], ... ; # 0..* Clinical Issue with action
  fhir:MedicationRequest.eventHistory [ Reference(Provenance) ], ... ; # 0..* A list of events of interest in the lifecycle
]

Changes since R3

MedicationRequest
MedicationRequest.status
  • Min Cardinality changed Change value set from 0 http://hl7.org/fhir/ValueSet/medicationrequest-status|4.0.0 to 1 http://hl7.org/fhir/ValueSet/medicationrequest-status|4.1.0
MedicationRequest.category MedicationRequest.intent
  • Max Cardinality changed Change value set from 1 http://hl7.org/fhir/ValueSet/medicationrequest-intent|4.0.0 to * http://hl7.org/fhir/ValueSet/medicationrequest-intent|4.1.0
MedicationRequest.priority
  • Change value set from http://hl7.org/fhir/ValueSet/medication-request-priority to http://hl7.org/fhir/ValueSet/request-priority MedicationRequest.medication[x] Remove Reference(Medication), Add Reference(Medication) MedicationRequest.requester Type changed from BackboneElement to Reference(Practitioner|PractitionerRole|Organization|Patient|RelatedPerson|Device) MedicationRequest.performer Added Element MedicationRequest.performerType Added Element MedicationRequest.instantiates Added Element MedicationRequest.basedOn Type changed from Reference(CarePlan|MedicationRequest|ProcedureRequest|ReferralRequest) http://hl7.org/fhir/ValueSet/request-priority|4.0.0 to Reference(CarePlan|MedicationRequest|ServiceRequest) http://hl7.org/fhir/ValueSet/request-priority|4.1.0
MedicationRequest.statusReason MedicationRequest.reported
  • Added Element
MedicationRequest.insurance MedicationRequest.informationSource
  • Added Element
MedicationRequest.dispenseRequest.numberOfRepeatsAllowed MedicationRequest.instantiatesCanonical
  • Type changed from positiveInt canonical to unsignedInt MedicationRequest.definition deleted MedicationRequest.requester.agent deleted canonical(PlanDefinition | ActivityDefinition)
MedicationRequest.requester.onBehalfOf MedicationRequest.reported[x]
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON .

See R3 <--> R4 Conversion Maps (status = 36 tests that all execute ok. 8 fail round-trip testing and 36 r3 resources are invalid (0 errors). )

Structure

Name Flags Card. Type Description & Constraints doco
. . MedicationRequest TU DomainResource Ordering of medication for patient or group
Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . identifier 0..* Identifier External ids for this request
. . . status ?! Σ 1..1 code active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
MedicationRequestStatus Medicationrequest status ( Required )
. . . statusReason 0..1 CodeableConcept Reason for current status
Medication request status reason codes ( Example )
.. . intent ?! Σ 1..1 code proposal | plan | order | original-order | instance-order | option
MedicationRequestIntent Medication request intent ( Required )
. . . category 0..* CodeableConcept Type of medication usage
MedicationRequestCategory Medication request category codes ( Example )
. . . priority Σ 0..1 code routine | urgent | asap | stat
RequestPriority Request priority ( Required )
. . . doNotPerform ?! Σ 0..1 boolean True if request is prohibiting action
... reported Σ 0..1 boolean Reported rather than primary record
... informationSource 0..1 Reference ( Patient | Practitioner | PractitionerRole | RelatedPerson | Organization ) The person or organization who provided the information about this request, if the source is someone other than the requestor
. . . medication[x] Σ 1..1 Medication to be taken
SNOMED CT Medication Codes ( Example )
. . . . medicationCodeableConcept CodeableConcept
. . . . medicationReference Reference ( Medication )
. . . subject Σ 1..1 Reference ( Patient | Group ) Who or group medication request is for
. . . context encounter 0..1 Reference ( Encounter | EpisodeOfCare ) Created during Encounter created as part of encounter/admission/stay
. . . supportingInformation 0..* Reference ( Any ) Information to support ordering of the medication
. . . authoredOn Σ 0..1 dateTime When request was initially authored
. . . requester Σ 0..1 Reference ( Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device ) 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
Procedure Performer Role Codes ( Example )
. . . recorder 0..1 Reference ( Practitioner | PractitionerRole ) Person who entered the request
. . . reasonCode 0..* CodeableConcept Reason or indication for writing ordering or not ordering the prescription medication
Condition/Problem/Diagnosis Codes ( Example )
. . . reasonReference 0..* Reference ( Condition | Observation ) Condition or observation that supports why the prescription is being written
. . . instantiatesCanonical Σ 0..* canonical ( PlanDefinition | ActivityDefinition ) Instantiates FHIR protocol or definition
.. . instantiates 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
. . . statusReason courseOfTherapyType 0..1 CodeableConcept Reason for current status Overall pattern of medication administration
MedicationRequestStatusReason Medication request course of therapy codes ( Example )
. . . insurance 0..* Reference ( Coverage | ClaimResponse ) Associated insurance coverage
. . . note 0..* Annotation Information about the prescription
. . . dosageInstruction 0..* Dosage How the medication should be taken
. . . dispenseRequest 0..1 BackboneElement Medication supply authorization
. . . . initialFill 0..1 BackboneElement First fill details
..... quantity 0..1 SimpleQuantity First fill quantity
..... duration 0..1 Duration First fill duration
.... dispenseInterval 0..1 Duration Minimum period of time between dispenses
. . . . validityPeriod 0..1 Period Time period supply is authorized for
. . . . numberOfRepeatsAllowed 0..1 unsignedInt 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
. . . . performer 0..1 Reference ( Organization ) Intended dispenser
. . . substitution 0..1 BackboneElement Any restrictions on medication substitution
. . . allowed . allowed[x] ?! 1..1 boolean Whether substitution is allowed or not
V3 Value SetActSubstanceAdminSubstitutionCode ( Example )
..... allowedBoolean boolean
..... allowedCodeableConcept CodeableConcept
. . . . reason 0..1 CodeableConcept Why should (not) substitution be made
SubstanceAdminSubstitutionReason V3 Value SetSubstanceAdminSubstitutionReason ( Example )
. . . 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

UML Diagram ( Legend )

MedicationRequest ( DomainResource ) This records identifiers Identifiers associated with this medication request that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. For example a reimbursement system might issue its own id for each prescription that is created. This They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is particularly important where FHIR only provides part of an entire workflow process where records must be tracked through an entire system updated and propagates from server to server identifier : Identifier [0..*] A code specifying the current state of the order. Generally, this will be active or completed state (this element modifies the meaning of other elements) status : code [1..1] « A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription prescription. (Strength=Required) MedicationRequestStatus medicationrequest Status ! » Captures the reason for the current state of the MedicationRequest statusReason : CodeableConcept [0..1] « Identifies the reasons for a given status. (Strength=Example) medicationRequest Status Reas... ?? » Whether the request is a proposal, plan, or an original order (this element modifies the meaning of other elements) intent : code [1..1] « The kind of medication order order. (Strength=Required) MedicationRequestIntent medicationRequest Intent ! » Indicates the type of medication request (for example, where the medication is expected to be consumed or administered (i.e. inpatient or outpatient) or the type of treatment (i.e. chemotherapy or endocrine) outpatient)) category : CodeableConcept [0..*] « 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). treatment. (Strength=Example) MedicationRequestCategory medicationRequest Category ?? » Indicates how quickly the Medication Request should be addressed with respect to other requests priority : code [0..1] « Identifies the level of importance to be assigned to actioning the request request. (Strength=Required) RequestPriority ! » If true indicates that the provider is asking for the medication request not to occur (this element modifies the meaning of other elements) doNotPerform : boolean [0..1] Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report reported : boolean [0..1] The person or organization who provided the information about this request, if the source is someone other than the requestor. This is often used when the MedicationRequest is reported by another person informationSource : Reference [0..1] « Patient | Practitioner | PractitionerRole | RelatedPerson | Organization » Identifies the medication being requested. This is a link to a resource that represents the medication which may be the details of the medication or simply an attribute carrying a code that identifies the medication from a known list of medications medication[x] : Type [1..1] « CodeableConcept | Reference ( Medication ); A coded concept identifying substance or product that can be ordered. (Strength=Example) SNOMED CT Medication SNOMEDCTMedicationCodes ?? » A link to a resource representing the person or set of individuals to whom the medication will be given subject : Reference [1..1] « Patient | Group » A link to an encounter, The Encounter during which this [x] was created or episode of care, that identifies to which the particular occurrence or set occurrences creation of contact between patient and health care provider this record is tightly associated context encounter : Reference [0..1] « Encounter | EpisodeOfCare » Include additional information (for example, patient height and weight) weight, a MedicationUsage for the patient) that supports the ordering of the medication supportingInformation : Reference [0..*] « Any » The date (and perhaps time) when the prescription was initially written or authored on authoredOn : dateTime [0..1] The individual, organization, or device that initiated the request and has responsibility for its activation requester : Reference [0..1] « Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device » The specified desired performer of the medication treatment (e.g. the performer of the medication administration) performer : Reference [0..1] « Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam » Indicates the type of performer of the administration of the medication performerType : CodeableConcept [0..1] « Identifies the type of individual that is desired to administer the medication medication. (Strength=Example) Procedure Performer Role ProcedurePerformerRoleCodes ?? » The person who entered the order on behalf of another individual for example in the case of a verbal or a telephone order recorder : Reference [0..1] « Practitioner | PractitionerRole » The reason or the indication for ordering or not ordering the medication reasonCode : CodeableConcept [0..*] « A coded concept indicating why the medication was ordered. (Strength=Example) Condition/Problem/Diagnosis Condition/Problem/DiagnosisCo... ?? » Condition or observation that supports why the medication was ordered reasonReference : Reference [0..*] « Condition | Observation » The URL pointing to a protocol, guideline, orderset, or other definition that is adhered to in whole or in part by this MedicationRequest instantiates instantiatesCanonical : canonical [0..*] « PlanDefinition | ActivityDefinition » The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this MedicationRequest instantiatesUri : uri [0..*] A plan or request that is fulfilled in whole or in part by this medication request basedOn : Reference [0..*] « CarePlan | MedicationRequest | ServiceRequest | ImmunizationRecommendation » A shared identifier common to all requests that were authorized more or less simultaneously by a single author, representing the identifier of the requisition or prescription groupIdentifier : Identifier [0..1] Captures The description of the reason for overall pattern of the current state administration of the MedicationRequest medication to the patient statusReason courseOfTherapyType : CodeableConcept [0..1] « Identifies the reasons for a given status overall pattern of medication administratio. (Strength=Example) medicationRequest MedicationRequestStatusReason Course of T... ?? » Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be required for delivering the requested service insurance : Reference [0..*] « Coverage | ClaimResponse » Extra information about the prescription that could not be conveyed by the other attributes note : Annotation [0..*] Indicates how the medication is to be used by the patient dosageInstruction : Dosage [0..*] A link to a resource representing an earlier order related order or prescription priorPrescription : Reference [0..1] « MedicationRequest » Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, duplicate therapy, dosage alert etc detectedIssue : Reference [0..*] « DetectedIssue » Links to Provenance records for past versions of this resource or fulfilling request or event resources that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the resource eventHistory : Reference [0..*] « Provenance » DispenseRequest The minimum period of time that must occur between dispenses of the medication dispenseInterval : Duration [0..1] This indicates the validity period of a prescription (stale dating the Prescription) validityPeriod : Period [0..1] An integer indicating the number of times, in addition to the original dispense, (aka refills or repeats) that the patient can receive the prescribed medication. Usage Notes: This integer does not include the original order dispense. This means that if an order indicates dispense 30 tablets plus "3 repeats", then the order can be dispensed a total of 4 times and the patient can receive a total of 120 tablets. A prescriber may explicitly say that zero refills are permitted after the initial dispense numberOfRepeatsAllowed : unsignedInt [0..1] The amount that is to be dispensed for one fill quantity : Quantity ( SimpleQuantity ) [0..1] Identifies the period time over which the supplied product is expected to be used, or the length of time the dispense is expected to last expectedSupplyDuration : Duration [0..1] Indicates the intended dispensing Organization specified by the prescriber performer : Reference [0..1] « Organization » InitialFill The amount or quantity to provide as part of the first dispense quantity : Quantity ( SimpleQuantity ) [0..1] The length of time that the first dispense is expected to last duration : Duration [0..1] Substitution True if the prescriber allows a different drug to be dispensed from what was prescribed (this element modifies the meaning of other elements) allowed allowed[x] : boolean Type [1..1] « boolean | CodeableConcept ; Identifies the type of substitution allowed. (Strength=Example) v3.ActSubstanceAdminSubstitut... ?? » Indicates the reason for the substitution, or why substitution must or must not be performed reason : CodeableConcept [0..1] « A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. (Strength=Example) SubstanceAdminSubstitutionRea... v3.SubstanceAdminSubstitution... ?? » Indicates the quantity or duration for the first dispense of the medication initialFill [0..1] Indicates the specific details for the dispense or medication supply part of a medication request (also known as a Medication Prescription or Medication Order). Note that this information is not always sent with the order. There may be in some settings (e.g. hospitals) institutional or system support for completing the dispense details in the pharmacy department dispenseRequest [0..1] Indicates whether or not substitution can or should be part of the dispense. In some cases, substitution must happen, in other cases substitution must not happen. This block explains the prescriber's intent. If nothing is specified substitution may be done substitution [0..1]

XML Template

<MedicationRequest xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <</identifier>
 <
 <
 <</category>

 <identifier><!-- 0..* Identifier External ids for this request --></identifier>
 <status value="[code]"/><!-- 1..1 active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown -->
 <statusReason><!-- 0..1 CodeableConcept Reason for current status --></statusReason>
 <intent value="[code]"/><!-- 1..1 proposal | plan | order | original-order | instance-order | option -->
 <category><!-- 0..* CodeableConcept Type of medication usage --></category>

 <priority value="[code]"/><!-- 0..1 routine | urgent | asap | stat -->
 <doNotPerform value="[boolean]"/><!-- 0..1 True if request is prohibiting action -->
 <reported value="[boolean]"/><!-- 0..1 Reported rather than primary record -->
 <informationSource><!-- 0..1 Reference(Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) The person or organization who provided the information about this request, if the source is someone other than the requestor --></informationSource>
 <medication[x]><!-- 1..1 CodeableConcept|Reference(Medication) Medication to be taken --></medication[x]>
 <</subject>
 <</context>
 <</supportingInformation>

 <subject><!-- 1..1 Reference(Group|Patient) Who or group medication request is for --></subject>
 <encounter><!-- 0..1 Reference(Encounter) Encounter created as part of encounter/admission/stay --></encounter>
 <supportingInformation><!-- 0..* Reference(Any) Information to support ordering of the medication --></supportingInformation>

 <authoredOn value="[dateTime]"/><!-- 0..1 When request was initially authored -->
 <|
   </requester>
 <|
   </performer>

 <requester><!-- 0..1 Reference(Device|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) Who/What requested the Request --></requester>
 <performer><!-- 0..1 Reference(CareTeam|Device|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) Intended performer of administration --></performer>
 <performerType><!-- 0..1 CodeableConcept Desired kind of performer of the medication administration --></performerType>
 <</recorder>
 <</reasonCode>

 <recorder><!-- 0..1 Reference(Practitioner|PractitionerRole) Person who entered the request --></recorder>
 <reasonCode><!-- 0..* CodeableConcept Reason or indication for ordering or not ordering the medication --></reasonCode>

 <reasonReference><!-- 0..* Reference(Condition|Observation) Condition or observation that supports why the prescription is being written --></reasonReference>
 <
 <</basedOn>

 <instantiatesCanonical><!-- 0..* canonical(ActivityDefinition|PlanDefinition) Instantiates FHIR protocol or definition --></instantiatesCanonical>
 <instantiatesUri value="[uri]"/><!-- 0..* Instantiates external protocol or definition -->
 <basedOn><!-- 0..* Reference(CarePlan|ImmunizationRecommendation|
   MedicationRequest|ServiceRequest) What request fulfills --></basedOn>
 <groupIdentifier><!-- 0..1 Identifier Composite request this is part of --></groupIdentifier>
 <</statusReason>
 <</insurance>

 <courseOfTherapyType><!-- 0..1 CodeableConcept Overall pattern of medication administration --></courseOfTherapyType>
 <insurance><!-- 0..* Reference(ClaimResponse|Coverage) Associated insurance coverage --></insurance>

 <note><!-- 0..* Annotation Information about the prescription --></note>
 <dosageInstruction><!-- 0..* Dosage How the medication should be taken --></dosageInstruction>
 <dispenseRequest>  <!-- 0..1 Medication supply authorization -->
  <initialFill>  <!-- 0..1 First fill details -->
   <quantity><!-- 0..1 Quantity(SimpleQuantity) First fill quantity --></quantity>
   <duration><!-- 0..1 Duration First fill duration --></duration>
  </initialFill>
  <dispenseInterval><!-- 0..1 Duration Minimum period of time between dispenses --></dispenseInterval>

  <validityPeriod><!-- 0..1 Period Time period supply is authorized for --></validityPeriod>
  <numberOfRepeatsAllowed value="[unsignedInt]"/><!-- 0..1 Number of refills authorized -->
  <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount of medication to supply per dispense --></quantity>
  <expectedSupplyDuration><!-- 0..1 Duration Number of days supply per dispense --></expectedSupplyDuration>
  <performer><!-- 0..1 Reference(Organization) Intended dispenser --></performer>
 </dispenseRequest>
 <
  <

 <substitution>  <!-- 0..1 Any restrictions on medication substitution -->
  <allowed[x]><!-- 1..1 boolean|CodeableConcept Whether substitution is allowed or not --></allowed[x]>

  <reason><!-- 0..1 CodeableConcept Why should (not) substitution be made --></reason>
 </substitution>
 <priorPrescription><!-- 0..1 Reference(MedicationRequest) An order/prescription that is being replaced --></priorPrescription>
 <detectedIssue><!-- 0..* Reference(DetectedIssue) Clinical Issue with action --></detectedIssue>
 <eventHistory><!-- 0..* Reference(Provenance) A list of events of interest in the lifecycle --></eventHistory>
</MedicationRequest>

JSON Template

{doco
  "resourceType" : "MedicationRequest",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "
  "
  "
  "

  "identifier" : [{ Identifier }], // External ids for this request
  "status" : "<code>", // R!  active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
  "statusReason" : { CodeableConcept }, // Reason for current status
  "intent" : "<code>", // R!  proposal | plan | order | original-order | instance-order | option
  "category" : [{ CodeableConcept }], // Type of medication usage

  "priority" : "<code>", // routine | urgent | asap | stat
  "doNotPerform" : <boolean>, // True if request is prohibiting action
  "reported" : <boolean>, // Reported rather than primary record
  "informationSource" : { Reference(Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) }, // The person or organization who provided the information about this request, if the source is someone other than the requestor
  // medication[x]: Medication to be taken. One of these 2:
  "medicationCodeableConcept" : { CodeableConcept },
  "medicationReference" : { Reference(Medication) },
  "
  "
  "

  "subject" : { Reference(Group|Patient) }, // R!  Who or group medication request is for
  "encounter" : { Reference(Encounter) }, // Encounter created as part of encounter/admission/stay
  "supportingInformation" : [{ Reference(Any) }], // Information to support ordering of the medication

  "authoredOn" : "<dateTime>", // When request was initially authored
  "|
   
  "|
   

  "requester" : { Reference(Device|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) }, // Who/What requested the Request
  "performer" : { Reference(CareTeam|Device|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) }, // Intended performer of administration
  "performerType" : { CodeableConcept }, // Desired kind of performer of the medication administration
  "
  "

  "recorder" : { Reference(Practitioner|PractitionerRole) }, // Person who entered the request
  "reasonCode" : [{ CodeableConcept }], // Reason or indication for ordering or not ordering the medication

  "reasonReference" : [{ Reference(Condition|Observation) }], // Condition or observation that supports why the prescription is being written
  "
  "

  "instantiatesCanonical" : [{ canonical(ActivityDefinition|PlanDefinition) }], // Instantiates FHIR protocol or definition
  "instantiatesUri" : ["<uri>"], // Instantiates external protocol or definition
  "basedOn" : [{ Reference(CarePlan|ImmunizationRecommendation|
   MedicationRequest|ServiceRequest) }], // What request fulfills
  "groupIdentifier" : { Identifier }, // Composite request this is part of
  "
  "

  "courseOfTherapyType" : { CodeableConcept }, // Overall pattern of medication administration
  "insurance" : [{ Reference(ClaimResponse|Coverage) }], // Associated insurance coverage

  "note" : [{ Annotation }], // Information about the prescription
  "dosageInstruction" : [{ Dosage }], // How the medication should be taken
  "dispenseRequest" : { // Medication supply authorization
    "initialFill" : { // First fill details
      "quantity" : { Quantity(SimpleQuantity) }, // First fill quantity
      "duration" : { Duration } // First fill duration
    },
    "dispenseInterval" : { Duration }, // Minimum period of time between dispenses

    "validityPeriod" : { Period }, // Time period supply is authorized for
    "numberOfRepeatsAllowed" : "<unsignedInt>", // Number of refills authorized
    "quantity" : { Quantity(SimpleQuantity) }, // Amount of medication to supply per dispense
    "expectedSupplyDuration" : { Duration }, // Number of days supply per dispense
    "performer" : { Reference(Organization) } // Intended dispenser
  },
  "
    "

  "substitution" : { // Any restrictions on medication substitution
    // allowed[x]: Whether substitution is allowed or not. One of these 2:
    "allowedBoolean" : <boolean>,
    "allowedCodeableConcept" : { CodeableConcept },

    "reason" : { CodeableConcept } // Why should (not) substitution be made
  },
  "priorPrescription" : { Reference(MedicationRequest) }, // An order/prescription that is being replaced
  "detectedIssue" : [{ Reference(DetectedIssue) }], // Clinical Issue with action
  "eventHistory" : [{ Reference(Provenance) }] // A list of events of interest in the lifecycle
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco
[ a fhir:MedicationRequest;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root
  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:

  fhir:MedicationRequest.identifier [ Identifier ], ... ; # 0..* External ids for this request

  fhir:MedicationRequest.status [ code ]; # 1..1 active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
  fhir:MedicationRequest.statusReason [ CodeableConcept ]; # 0..1 Reason for current status

  fhir:MedicationRequest.intent [ code ]; # 1..1 proposal | plan | order | original-order | instance-order | option
  fhir:

  fhir:MedicationRequest.category [ CodeableConcept ], ... ; # 0..* Type of medication usage

  fhir:MedicationRequest.priority [ code ]; # 0..1 routine | urgent | asap | stat
  fhir:MedicationRequest.doNotPerform [ boolean ]; # 0..1 True if request is prohibiting action
  fhir:MedicationRequest.reported [ boolean ]; # 0..1 Reported rather than primary record
  fhir:MedicationRequest.informationSource [ Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 0..1 The person or organization who provided the information about this request, if the source is someone other than the requestor

  # MedicationRequest.medication[x] : 1..1 Medication to be taken. One of these 2
    fhir:MedicationRequest.medicationCodeableConcept [ CodeableConcept ]
    fhir:MedicationRequest.medicationReference [ Reference(Medication) ]
  fhir:
  fhir:
  fhir:

  fhir:MedicationRequest.subject [ Reference(Group|Patient) ]; # 1..1 Who or group medication request is for
  fhir:MedicationRequest.encounter [ Reference(Encounter) ]; # 0..1 Encounter created as part of encounter/admission/stay
  fhir:MedicationRequest.supportingInformation [ Reference(Any) ], ... ; # 0..* Information to support ordering of the medication

  fhir:MedicationRequest.authoredOn [ dateTime ]; # 0..1 When request was initially authored
  fhir:
  fhir:

  fhir:MedicationRequest.requester [ Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 0..1 Who/What requested the Request
  fhir:MedicationRequest.performer [ Reference(CareTeam|Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 0..1 Intended performer of administration

  fhir:MedicationRequest.performerType [ CodeableConcept ]; # 0..1 Desired kind of performer of the medication administration
  fhir:
  fhir:

  fhir:MedicationRequest.recorder [ Reference(Practitioner|PractitionerRole) ]; # 0..1 Person who entered the request
  fhir:MedicationRequest.reasonCode [ CodeableConcept ], ... ; # 0..* Reason or indication for ordering or not ordering the medication

  fhir:MedicationRequest.reasonReference [ Reference(Condition|Observation) ], ... ; # 0..* Condition or observation that supports why the prescription is being written
  fhir:
  fhir:

  fhir:MedicationRequest.instantiatesCanonical [ canonical(ActivityDefinition|PlanDefinition) ], ... ; # 0..* Instantiates FHIR protocol or definition
  fhir:MedicationRequest.instantiatesUri [ uri ], ... ; # 0..* Instantiates external protocol or definition
  fhir:MedicationRequest.basedOn [ Reference(CarePlan|ImmunizationRecommendation|MedicationRequest|ServiceRequest) ], ... ; # 0..* What request fulfills

  fhir:MedicationRequest.groupIdentifier [ Identifier ]; # 0..1 Composite request this is part of
  fhir:
  fhir:

  fhir:MedicationRequest.courseOfTherapyType [ CodeableConcept ]; # 0..1 Overall pattern of medication administration
  fhir:MedicationRequest.insurance [ Reference(ClaimResponse|Coverage) ], ... ; # 0..* Associated insurance coverage

  fhir:MedicationRequest.note [ Annotation ], ... ; # 0..* Information about the prescription
  fhir:MedicationRequest.dosageInstruction [ Dosage ], ... ; # 0..* How the medication should be taken
  fhir:MedicationRequest.dispenseRequest [ # 0..1 Medication supply authorization
    fhir:MedicationRequest.dispenseRequest.initialFill [ # 0..1 First fill details
      fhir:MedicationRequest.dispenseRequest.initialFill.quantity [ Quantity(SimpleQuantity) ]; # 0..1 First fill quantity
      fhir:MedicationRequest.dispenseRequest.initialFill.duration [ Duration ]; # 0..1 First fill duration
    ];
    fhir:MedicationRequest.dispenseRequest.dispenseInterval [ Duration ]; # 0..1 Minimum period of time between dispenses

    fhir:MedicationRequest.dispenseRequest.validityPeriod [ Period ]; # 0..1 Time period supply is authorized for
    fhir:MedicationRequest.dispenseRequest.numberOfRepeatsAllowed [ unsignedInt ]; # 0..1 Number of refills authorized
    fhir:MedicationRequest.dispenseRequest.quantity [ Quantity(SimpleQuantity) ]; # 0..1 Amount of medication to supply per dispense
    fhir:MedicationRequest.dispenseRequest.expectedSupplyDuration [ Duration ]; # 0..1 Number of days supply per dispense
    fhir:MedicationRequest.dispenseRequest.performer [ Reference(Organization) ]; # 0..1 Intended dispenser
  ];
  fhir:
    fhir:

  fhir:MedicationRequest.substitution [ # 0..1 Any restrictions on medication substitution
    # MedicationRequest.substitution.allowed[x] : 1..1 Whether substitution is allowed or not. One of these 2
      fhir:MedicationRequest.substitution.allowedBoolean [ boolean ]
      fhir:MedicationRequest.substitution.allowedCodeableConcept [ CodeableConcept ]

    fhir:MedicationRequest.substitution.reason [ CodeableConcept ]; # 0..1 Why should (not) substitution be made
  ];
  fhir:MedicationRequest.priorPrescription [ Reference(MedicationRequest) ]; # 0..1 An order/prescription that is being replaced
  fhir:MedicationRequest.detectedIssue [ Reference(DetectedIssue) ], ... ; # 0..* Clinical Issue with action
  fhir:MedicationRequest.eventHistory [ Reference(Provenance) ], ... ; # 0..* A list of events of interest in the lifecycle
]

Changes since DSTU2 Release 3

MedicationRequest
MedicationRequest.status
  • Min Cardinality changed Change value set from 0 http://hl7.org/fhir/ValueSet/medicationrequest-status|4.0.0 to 1 http://hl7.org/fhir/ValueSet/medicationrequest-status|4.1.0
MedicationRequest.category MedicationRequest.intent
  • Max Cardinality changed Change value set from 1 http://hl7.org/fhir/ValueSet/medicationrequest-intent|4.0.0 to * http://hl7.org/fhir/ValueSet/medicationrequest-intent|4.1.0
MedicationRequest.priority
  • Change value set from http://hl7.org/fhir/ValueSet/medication-request-priority to http://hl7.org/fhir/ValueSet/request-priority MedicationRequest.medication[x] Remove Reference(Medication), Add Reference(Medication) MedicationRequest.requester Type changed from BackboneElement to Reference(Practitioner|PractitionerRole|Organization|Patient|RelatedPerson|Device) MedicationRequest.performer Added Element MedicationRequest.performerType Added Element MedicationRequest.instantiates Added Element MedicationRequest.basedOn Type changed from Reference(CarePlan|MedicationRequest|ProcedureRequest|ReferralRequest) http://hl7.org/fhir/ValueSet/request-priority|4.0.0 to Reference(CarePlan|MedicationRequest|ServiceRequest) http://hl7.org/fhir/ValueSet/request-priority|4.1.0
MedicationRequest.statusReason MedicationRequest.reported
  • Added Element
MedicationRequest.insurance MedicationRequest.informationSource
  • Added Element
MedicationRequest.dispenseRequest.numberOfRepeatsAllowed MedicationRequest.instantiatesCanonical
  • Type changed from positiveInt canonical to unsignedInt MedicationRequest.definition deleted MedicationRequest.requester.agent deleted canonical(PlanDefinition | ActivityDefinition)
MedicationRequest.requester.onBehalfOf MedicationRequest.reported[x]
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON .

See R3 <--> R4 Conversion Maps (status = 36 tests that all execute ok. 8 fail round-trip testing and 36 r3 resources are invalid (0 errors). )

 

Alternate See the Profiles & Extensions and the alternate definitions: Master Definition XML + JSON , XML Schema / Schematron + JSON Schema , ShEx (for Turtle ) + see the extensions , the spreadsheet version & the dependency analysis a

MedicationRequest.statusReason
Path Definition Type Reference
MedicationRequest.status A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription prescription. Required MedicationRequestStatus medicationrequest Status
MedicationRequest.statusReason Identifies the reasons for a given status. Example medicationRequest Status Reason Codes
MedicationRequest.intent The kind of medication order order. Required MedicationRequestIntent medicationRequest Intent
MedicationRequest.category 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). treatment. Example MedicationRequestCategory medicationRequest Category Codes
MedicationRequest.priority Identifies the level of importance to be assigned to actioning the request request. Required RequestPriority
MedicationRequest.medication[x] A coded concept identifying substance or product that can be ordered. Example SNOMED CT Medication Codes SNOMEDCTMedicationCodes
MedicationRequest.performerType Identifies the type of individual that is desired to administer the medication medication. Example Procedure Performer Role Codes ProcedurePerformerRoleCodes
MedicationRequest.reasonCode A coded concept indicating why the medication was ordered. Example Condition/Problem/Diagnosis Condition/Problem/DiagnosisCodes
MedicationRequest.courseOfTherapyType Identifies the overall pattern of medication administratio. Example medicationRequest Course of Therapy Codes
MedicationRequest.substitution.allowed[x] Identifies the reasons for a given status type of substitution allowed. Example MedicationRequestStatusReason v3.ActSubstanceAdminSubstitutionCode
MedicationRequest.substitution.reason A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. Example SubstanceAdminSubstitutionReason v3.SubstanceAdminSubstitutionReason

Free text dosage instructions can be used for cases where the instructions are too complex to code. The content of this attribute does not include the name or description of the medication. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication. It is expected that the text instructions will always be populated. If the dosage.timing attribute is also populated, then the dosage.text should reflect the same information as the timing.

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

Name Type Description Expression In Common
authoredon date Return prescriptions written on this date MedicationRequest.authoredOn
category token Returns prescriptions with different categories MedicationRequest.category
code token Return prescriptions of this medication code MedicationRequest.medication.as(CodeableConcept) (MedicationRequest.medication as CodeableConcept) 4 13 Resources
context reference Return prescriptions with this encounter or episode of care identifier MedicationRequest.context ( EpisodeOfCare , Encounter ) date date Returns medication request to be administered on a specific date MedicationRequest.dosageInstruction.timing.event 3 Resources
encounter reference Return prescriptions with this encounter identifier MedicationRequest.encounter
( Encounter )
1 Resources
identifier token Return prescriptions with this external identifier MedicationRequest.identifier 3 30 Resources
intended-dispenser reference Returns prescriptions intended to be dispensed by this Organization MedicationRequest.dispenseRequest.performer
( Organization )
intended-performer reference Returns the intended performer of the administration of the medication request MedicationRequest.performer
( Practitioner , Organization , CareTeam , Device , Patient , PractitionerRole , RelatedPerson )
intended-performertype token Returns requests for a specific type of performer MedicationRequest.performerType
intent token Returns prescriptions with different intents MedicationRequest.intent
medication reference Return prescriptions for this medication reference MedicationRequest.medication.as(Reference) (MedicationRequest.medication as Reference)
( Medication )
3 Resources
patient reference Returns prescriptions for a specific patient MedicationRequest.subject MedicationRequest.subject.where(resolve() is Patient)
( Patient )
3 33 Resources
priority token Returns prescriptions with different priorities MedicationRequest.priority
requester reference Returns prescriptions prescribed by this prescriber MedicationRequest.requester
( Practitioner , Organization , Device , Patient , PractitionerRole , RelatedPerson )
status token Status of the prescription MedicationRequest.status 3 Resources
subject reference The identity of a patient to list orders for MedicationRequest.subject
( Group , Patient )