<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="MedicationRequest" />
  <url value="http://ontariohealth.ca/fhir/ehr/StructureDefinition/profile-medicationRequest" />
  <version value="1.0.0" />
  <name value="MedicationRequestEHR" />
  <title value="MedicationRequest EHR" />
  <status value="active" />
  <description value="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." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="MedicationRequest" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/MedicationRequest" />
  <derivation value="constraint" />
  <differential>
    <element id="MedicationRequest.extension">
      <path value="MedicationRequest.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="MedicationRequest.extension:RenderedDosageInstruction">
      <path value="MedicationRequest.extension" />
      <sliceName value="RenderedDosageInstruction" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://prescribeit.ca/fhir/StructureDefinition/ext-rendered-dosage-instruction" />
      </type>
    </element>
    <element id="MedicationRequest.identifier">
      <path value="MedicationRequest.identifier" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.identifier.system">
      <path value="MedicationRequest.identifier.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.identifier.value">
      <path value="MedicationRequest.identifier.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.status">
      <path value="MedicationRequest.status" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.intent">
      <path value="MedicationRequest.intent" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.medication[x]">
      <path value="MedicationRequest.medication[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.medication[x]:medicationReference">
      <path value="MedicationRequest.medication[x]" />
      <sliceName value="medicationReference" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://ontariohealth.ca/fhir/ehr/StructureDefinition/profile-medication" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.medication[x]:medicationCodeableConcept">
      <path value="MedicationRequest.medication[x]" />
      <sliceName value="medicationCodeableConcept" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://ontariohealth.ca/fhir/ehr/StructureDefinition/CodeableConcept-oh-ehr" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.subject">
      <path value="MedicationRequest.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://ontariohealth.ca/fhir/ehr/StructureDefinition/profile-patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.subject.reference">
      <path value="MedicationRequest.subject.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.authoredOn">
      <path value="MedicationRequest.authoredOn" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.requester">
      <path value="MedicationRequest.requester" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://ontariohealth.ca/fhir/ehr/StructureDefinition/profile-practitioner" />
        <targetProfile value="http://ontariohealth.ca/fhir/ehr/StructureDefinition/profile-practitionerRole" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.requester.reference">
      <path value="MedicationRequest.requester.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.reasonCode">
      <path value="MedicationRequest.reasonCode" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://ontariohealth.ca/fhir/ehr/StructureDefinition/CodeableConcept-oh-ehr" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/medicationreasoncode" />
      </binding>
    </element>
    <element id="MedicationRequest.reasonCode.coding.system">
      <path value="MedicationRequest.reasonCode.coding.system" />
      <min value="1" />
    </element>
    <element id="MedicationRequest.basedOn">
      <path value="MedicationRequest.basedOn" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://ontariohealth.ca/fhir/ehr/StructureDefinition/profile-medicationRequest" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.basedOn.reference">
      <path value="MedicationRequest.basedOn.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction">
      <path value="MedicationRequest.dosageInstruction" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.sequence">
      <path value="MedicationRequest.dosageInstruction.sequence" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.text">
      <path value="MedicationRequest.dosageInstruction.text" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.additionalInstruction">
      <path value="MedicationRequest.dosageInstruction.additionalInstruction" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.additionalInstruction.text">
      <path value="MedicationRequest.dosageInstruction.additionalInstruction.text" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.timing">
      <path value="MedicationRequest.dosageInstruction.timing" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.timing.repeat">
      <path value="MedicationRequest.dosageInstruction.timing.repeat" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.timing.repeat.count">
      <path value="MedicationRequest.dosageInstruction.timing.repeat.count" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.timing.repeat.duration">
      <path value="MedicationRequest.dosageInstruction.timing.repeat.duration" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.timing.repeat.durationUnit">
      <path value="MedicationRequest.dosageInstruction.timing.repeat.durationUnit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.timing.code">
      <path value="MedicationRequest.dosageInstruction.timing.code" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://ontariohealth.ca/fhir/ehr/StructureDefinition/CodeableConcept-oh-ehr" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ontariohealth.ca/fhir/ehr/ValueSet/medication-repeat-pattern" />
      </binding>
    </element>
    <element id="MedicationRequest.dosageInstruction.timing.code.coding">
      <path value="MedicationRequest.dosageInstruction.timing.code.coding" />
      <max value="1" />
    </element>
    <element id="MedicationRequest.dosageInstruction.timing.code.coding.system">
      <path value="MedicationRequest.dosageInstruction.timing.code.coding.system" />
      <min value="1" />
    </element>
    <element id="MedicationRequest.dosageInstruction.asNeeded[x]">
      <path value="MedicationRequest.dosageInstruction.asNeeded[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.asNeeded[x]:asNeededBoolean">
      <path value="MedicationRequest.dosageInstruction.asNeeded[x]" />
      <sliceName value="asNeededBoolean" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="boolean" />
      </type>
    </element>
    <element id="MedicationRequest.dosageInstruction.asNeeded[x]:asNeededCodeableConcept">
      <path value="MedicationRequest.dosageInstruction.asNeeded[x]" />
      <sliceName value="asNeededCodeableConcept" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://ontariohealth.ca/fhir/ehr/StructureDefinition/CodeableConcept-oh-ehr" />
      </type>
    </element>
    <element id="MedicationRequest.dosageInstruction.route">
      <path value="MedicationRequest.dosageInstruction.route" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://ontariohealth.ca/fhir/ehr/StructureDefinition/CodeableConcept-oh-ehr" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/routeofadministration" />
      </binding>
    </element>
    <element id="MedicationRequest.dosageInstruction.route.coding">
      <path value="MedicationRequest.dosageInstruction.route.coding" />
      <max value="1" />
    </element>
    <element id="MedicationRequest.dosageInstruction.route.coding.system">
      <path value="MedicationRequest.dosageInstruction.route.coding.system" />
      <min value="1" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate">
      <path value="MedicationRequest.dosageInstruction.doseAndRate" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseRange">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x]" />
      <sliceName value="doseRange" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Range" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseRange.low">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].low" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/prescriptiondosequantityunit" />
      </binding>
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseRange.low.value">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].low.value" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseRange.low.unit">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].low.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseRange.low.system">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].low.system" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseRange.low.code">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].low.code" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseRange.high">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].high" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/prescriptiondosequantityunit" />
      </binding>
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseRange.high.value">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].high.value" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseRange.high.unit">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].high.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseRange.high.system">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].high.system" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseRange.high.code">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].high.code" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x]" />
      <sliceName value="doseQuantity" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Quantity" />
        <profile value="http://hl7.org/fhir/StructureDefinition/SimpleQuantity" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/prescriptiondosequantityunit" />
      </binding>
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity.value">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].value" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity.unit">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity.system">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].system" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.dose[x]:doseQuantity.code">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.dose[x].code" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateRange">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x]" />
      <sliceName value="rateRange" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Range" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateRange.low">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].low" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/prescriptiondosequantityunit" />
      </binding>
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateRange.low.value">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].low.value" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateRange.low.unit">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].low.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateRange.low.system">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].low.system" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateRange.low.code">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].low.code" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateRange.high">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].high" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/prescriptiondosequantityunit" />
      </binding>
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateRange.high.value">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].high.value" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateRange.high.unit">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].high.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateRange.high.system">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].high.system" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateRange.high.code">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].high.code" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateQuantity">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x]" />
      <sliceName value="rateQuantity" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Quantity" />
        <profile value="http://hl7.org/fhir/StructureDefinition/SimpleQuantity" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateQuantity.value">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].value" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateQuantity.unit">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateQuantity.system">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].system" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.doseAndRate.rate[x]:rateQuantity.code">
      <path value="MedicationRequest.dosageInstruction.doseAndRate.rate[x].code" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/prescriptiondosequantityunit" />
      </binding>
    </element>
  </differential>
</StructureDefinition>