<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="http://apiframework.dedalus.eu/fhir/StructureDefinition/MedicationRequest" />
  <name value="MedicationRequest" />
  <title value="API Framework MedicationRequest" />
  <status value="active" />
  <experimental value="false" />
  <description value="API Framework Core Profile for MedicationRequest" />
  <fhirVersion value="3.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.meta">
      <path value="MedicationRequest.meta" />
      <type>
        <code value="Meta" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Meta-ForCommonConformance" />
      </type>
    </element>
    <element id="MedicationRequest.meta.tag">
      <path value="MedicationRequest.meta.tag" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="MedicationRequest.text">
      <path value="MedicationRequest.text" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.contained">
      <path value="MedicationRequest.contained" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.contained:containedObservation">
      <path value="MedicationRequest.contained" />
      <sliceName value="containedObservation" />
      <requirements value="Contained Observations are used to record clinical information useful exclusively in the context of this medication request, eg. weight" />
      <type>
        <code value="Resource" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Observation" />
      </type>
    </element>
    <element id="MedicationRequest.identifier">
      <path value="MedicationRequest.identifier" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.basedOn">
      <path value="MedicationRequest.basedOn" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/MedicationRequest" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.groupIdentifier">
      <path value="MedicationRequest.groupIdentifier" />
      <requirements value="Each MedicationRequest istance must be link to the RequestGroup representing the general order" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.intent">
      <path value="MedicationRequest.intent" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.medication[x]:medicationCodeableConcept">
      <path value="MedicationRequest.medicationCodeableConcept" />
      <sliceName value="medicationCodeableConcept" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.medication[x]:medicationCodeableConcept.coding">
      <path value="MedicationRequest.medicationCodeableConcept.coding" />
      <min value="1" />
    </element>
    <element id="MedicationRequest.subject">
      <path value="MedicationRequest.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.context">
      <path value="MedicationRequest.context" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Encounter" />
      </type>
      <type>
        <code value="Reference" />
        <targetProfile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/EpisodeOfCare" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.supportingInformation">
      <path value="MedicationRequest.supportingInformation" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.supportingInformation:observation">
      <path value="MedicationRequest.supportingInformation" />
      <sliceName value="observation" />
      <requirements value="Reference to an observation supporting this request. Might be an instance existing on the repository as well as a contained observation instance." />
      <type>
        <code value="Reference" />
        <targetProfile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Observation" />
      </type>
    </element>
    <element id="MedicationRequest.authoredOn">
      <path value="MedicationRequest.authoredOn" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.requester">
      <path value="MedicationRequest.requester" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.requester.agent">
      <path value="MedicationRequest.requester.agent" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Practitioner" />
      </type>
      <type>
        <code value="Reference" />
        <targetProfile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Organization" />
      </type>
    </element>
    <element id="MedicationRequest.reasonCode">
      <path value="MedicationRequest.reasonCode" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.reasonReference">
      <path value="MedicationRequest.reasonReference" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.note">
      <path value="MedicationRequest.note" />
      <type>
        <code value="Annotation" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Annotation-WithType" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.note.extension:type">
      <path value="MedicationRequest.note.extension" />
      <sliceName value="type" />
      <binding>
        <strength value="required" />
        <valueSetUri value="http://apiframework.dedalus.eu/fhir/ValueSet/MedicationRequestNoteTypes" />
      </binding>
    </element>
    <element id="MedicationRequest.dosageInstruction">
      <path value="MedicationRequest.dosageInstruction" />
      <type>
        <code value="Dosage" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/Dosage" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationRequest.dosageInstruction.timing.repeat.extension">
      <path value="MedicationRequest.dosageInstruction.timing.repeat.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="MedicationRequest.dosageInstruction.timing.repeat.extension:cycle">
      <path value="MedicationRequest.dosageInstruction.timing.repeat.extension" />
      <sliceName value="cycle" />
      <short value="Define Cycle (count, day, length)" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://apiframework.dedalus.eu/fhir/StructureDefinition/extension-Timing-ForMedication" />
      </type>
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>