<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="mii-pr-medikation-medication-statement" />
  <url value="https://www.medizininformatik-initiative.de/fhir/core/modul-medikation/StructureDefinition/MedicationStatement" />
  <version value="2.0.0" />
  <name value="MII_PR_Medikation_MedicationStatement">
    <extension url="http://hl7.org/fhir/StructureDefinition/translation">
      <extension url="lang">
        <valueCode value="en-US" />
      </extension>
      <extension url="content">
        <valueString value="MII_PR_Medikation_MedicationStatement" />
      </extension>
    </extension>
  </name>
  <title value="MII PR Medikation MedicationStatement">
    <extension url="http://hl7.org/fhir/StructureDefinition/translation">
      <extension url="lang">
        <valueCode value="en-US" />
      </extension>
      <extension url="content">
        <valueString value="MII PR Medikation MedicationStatement" />
      </extension>
    </extension>
  </title>
  <status value="active" />
  <date value="2022-07-13" />
  <publisher value="Medizininformatik Initiative" />
  <contact>
    <telecom>
      <system value="url" />
      <value value="https://www.medizininformatik-initiative.de" />
    </telecom>
  </contact>
  <description value="Das MedicationStatement kann anzeigen, dass der Patient ein Medikament zur Zeit einnimmt, in der Vergangenheit genommen hat oder in Zukunft einnehmen wird. Dabei kann es sich sowohl um verschreibungspflichtige Medikamente handeln, wie auch um OTC-Präparate, welche ein Patient in Eigenverantwortung einnimmt.">
    <extension url="http://hl7.org/fhir/StructureDefinition/translation">
      <extension url="lang">
        <valueCode value="en-US" />
      </extension>
      <extension url="content">
        <valueString value="A record of a medication that is being consumed by a patient." />
      </extension>
    </extension>
  </description>
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="workflow" />
    <uri value="http://hl7.org/fhir/workflow" />
    <name value="Workflow Pattern" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="w5" />
    <uri value="http://hl7.org/fhir/fivews" />
    <name value="FiveWs Pattern Mapping" />
  </mapping>
  <mapping>
    <identity value="v2" />
    <uri value="http://hl7.org/v2" />
    <name value="HL7 v2 Mapping" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="MedicationStatement" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/MedicationStatement" />
  <derivation value="constraint" />
  <differential>
    <element id="MedicationStatement.id">
      <path value="MedicationStatement.id" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.meta">
      <path value="MedicationStatement.meta" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.meta.source">
      <path value="MedicationStatement.meta.source" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.meta.profile">
      <path value="MedicationStatement.meta.profile" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.identifier">
      <path value="MedicationStatement.identifier" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.basedOn">
      <path value="MedicationStatement.basedOn" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.partOf">
      <path value="MedicationStatement.partOf" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.status">
      <path value="MedicationStatement.status" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.category">
      <path value="MedicationStatement.category" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.category.coding">
      <path value="MedicationStatement.category.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="MedicationStatement.category.coding:usageCategory">
      <path value="MedicationStatement.category.coding" />
      <sliceName value="usageCategory" />
      <min value="0" />
      <max value="*" />
      <patternCoding>
        <system value="http://terminology.hl7.org/CodeSystem/medication-statement-category" />
      </patternCoding>
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/medication-statement-category" />
      </binding>
    </element>
    <element id="MedicationStatement.category.coding:contextCode">
      <path value="MedicationStatement.category.coding" />
      <sliceName value="contextCode" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://ihe-d.de/CodeSystems/FallkontextBeiDokumentenerstellung" />
      </patternCoding>
      <binding>
        <strength value="required" />
        <valueSet value="https://www.medizininformatik-initiative.de/fhir/core/modul-medikation/ValueSet/fallkontext" />
      </binding>
    </element>
    <element id="MedicationStatement.medication[x]">
      <path value="MedicationStatement.medication[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.medication[x]:medicationReference">
      <path value="MedicationStatement.medication[x]" />
      <sliceName value="medicationReference" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Medication" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.medication[x]:medicationCodeableConcept">
      <path value="MedicationStatement.medication[x]" />
      <sliceName value="medicationCodeableConcept" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.medication[x]:medicationCodeableConcept.coding">
      <path value="MedicationStatement.medication[x].coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.medication[x]:medicationCodeableConcept.coding:Pharmazentralnummer">
      <path value="MedicationStatement.medication[x].coding" />
      <sliceName value="Pharmazentralnummer" />
      <min value="0" />
      <max value="*" />
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/ifa/pzn" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.medication[x]:medicationCodeableConcept.coding:Pharmazentralnummer.system">
      <path value="MedicationStatement.medication[x].coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.medication[x]:medicationCodeableConcept.coding:Pharmazentralnummer.code">
      <path value="MedicationStatement.medication[x].coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.medication[x]:medicationCodeableConcept.coding:atcClassDe">
      <path value="MedicationStatement.medication[x].coding" />
      <sliceName value="atcClassDe" />
      <short value="ATC Klassifikation deutsche Version" />
      <definition value="ATC-Codes für Fertigarzneimittel bspw. von Kombiprodukten" />
      <min value="0" />
      <max value="*" />
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/bfarm/atc" />
      </patternCoding>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.de/ValueSet/bfarm/atc" />
      </binding>
    </element>
    <element id="MedicationStatement.medication[x]:medicationCodeableConcept.coding:atcClassDe.system">
      <path value="MedicationStatement.medication[x].coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.medication[x]:medicationCodeableConcept.coding:atcClassDe.code">
      <path value="MedicationStatement.medication[x].coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.medication[x]:medicationCodeableConcept.coding:atcClassEn">
      <path value="MedicationStatement.medication[x].coding" />
      <sliceName value="atcClassEn" />
      <short value="Anatomical Therapeutic Chemical Classification System" />
      <definition value="ATC Classification International WHO Version" />
      <min value="0" />
      <max value="*" />
      <patternCoding>
        <system value="http://www.whocc.no/atc" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.medication[x]:medicationCodeableConcept.coding:atcClassEn.system">
      <path value="MedicationStatement.medication[x].coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.medication[x]:medicationCodeableConcept.coding:atcClassEn.code">
      <path value="MedicationStatement.medication[x].coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.medication[x]:medicationCodeableConcept.text">
      <path value="MedicationStatement.medication[x].text" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.subject">
      <path value="MedicationStatement.subject" />
      <type>
        <code value="Reference" />
        <profile value="https://www.medizininformatik-initiative.de/fhir/core/StructureDefinition/MII-Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Group" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.context">
      <path value="MedicationStatement.context" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.effective[x]">
      <path value="MedicationStatement.effective[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.effective[x]:effectiveDateTime">
      <path value="MedicationStatement.effective[x]" />
      <sliceName value="effectiveDateTime" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.effective[x]:effectivePeriod">
      <path value="MedicationStatement.effective[x]" />
      <sliceName value="effectivePeriod" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dateAsserted">
      <path value="MedicationStatement.dateAsserted" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.informationSource">
      <path value="MedicationStatement.informationSource" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.reasonCode">
      <path value="MedicationStatement.reasonCode" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.reasonReference">
      <path value="MedicationStatement.reasonReference" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.note">
      <path value="MedicationStatement.note" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage">
      <path value="MedicationStatement.dosage" />
      <constraint>
        <key value="dsg-1" />
        <severity value="error" />
        <human value="If present, dosage must include free text or structured data" />
        <expression value="text.exists() or doseAndRate.exists()" />
        <source value="https://www.medizininformatik-initiative.de/fhir/core/modul-medikation/StructureDefinition/MedicationStatement" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.sequence">
      <path value="MedicationStatement.dosage.sequence" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.text">
      <path value="MedicationStatement.dosage.text" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing">
      <path value="MedicationStatement.dosage.timing" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.event">
      <path value="MedicationStatement.dosage.timing.event" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat">
      <path value="MedicationStatement.dosage.timing.repeat" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsDuration">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x]" />
      <sliceName value="boundsDuration" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Duration" />
      </type>
      <patternDuration>
        <system value="http://unitsofmeasure.org" />
      </patternDuration>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsDuration.value">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsDuration.unit">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsDuration.system">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsDuration.code">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsRange">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x]" />
      <sliceName value="boundsRange" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Range" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsRange.low">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].low" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsRange.low.value">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].low.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsRange.low.unit">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].low.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsRange.low.system">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].low.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsRange.low.code">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].low.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsRange.high">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].high" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsRange.high.value">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].high.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsRange.high.unit">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].high.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsRange.high.system">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].high.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsRange.high.code">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].high.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsPeriod">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x]" />
      <sliceName value="boundsPeriod" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsPeriod.start">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].start" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsPeriod.end">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].end" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.count">
      <path value="MedicationStatement.dosage.timing.repeat.count" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.countMax">
      <path value="MedicationStatement.dosage.timing.repeat.countMax" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.duration">
      <path value="MedicationStatement.dosage.timing.repeat.duration" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.durationMax">
      <path value="MedicationStatement.dosage.timing.repeat.durationMax" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.durationUnit">
      <path value="MedicationStatement.dosage.timing.repeat.durationUnit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.frequency">
      <path value="MedicationStatement.dosage.timing.repeat.frequency" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.frequencyMax">
      <path value="MedicationStatement.dosage.timing.repeat.frequencyMax" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.period">
      <path value="MedicationStatement.dosage.timing.repeat.period" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.periodMax">
      <path value="MedicationStatement.dosage.timing.repeat.periodMax" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.periodUnit">
      <path value="MedicationStatement.dosage.timing.repeat.periodUnit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.dayOfWeek">
      <path value="MedicationStatement.dosage.timing.repeat.dayOfWeek" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.timeOfDay">
      <path value="MedicationStatement.dosage.timing.repeat.timeOfDay" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.when">
      <path value="MedicationStatement.dosage.timing.repeat.when" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.offset">
      <path value="MedicationStatement.dosage.timing.repeat.offset" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.asNeeded[x]">
      <path value="MedicationStatement.dosage.asNeeded[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.asNeeded[x]:asNeededBoolean">
      <path value="MedicationStatement.dosage.asNeeded[x]" />
      <sliceName value="asNeededBoolean" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="boolean" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.asNeeded[x]:asNeededCodeableConcept">
      <path value="MedicationStatement.dosage.asNeeded[x]" />
      <sliceName value="asNeededCodeableConcept" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.site">
      <path value="MedicationStatement.dosage.site" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.site.coding">
      <path value="MedicationStatement.dosage.site.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.site.coding:SNOMED">
      <path value="MedicationStatement.dosage.site.coding" />
      <sliceName value="SNOMED" />
      <min value="0" />
      <max value="*" />
      <patternCoding>
        <system value="http://snomed.info/sct" />
      </patternCoding>
      <mustSupport value="true" />
      <binding>
        <strength value="example" />
        <description value="target site IPS" />
        <valueSet value="http://hl7.org/fhir/uv/ips/ValueSet/target-site-uv-ips" />
      </binding>
    </element>
    <element id="MedicationStatement.dosage.site.coding:SNOMED.system">
      <path value="MedicationStatement.dosage.site.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.site.coding:SNOMED.code">
      <path value="MedicationStatement.dosage.site.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.route">
      <path value="MedicationStatement.dosage.route" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.route.coding">
      <path value="MedicationStatement.dosage.route.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.route.coding:EDQM">
      <path value="MedicationStatement.dosage.route.coding" />
      <sliceName value="EDQM" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://standardterms.edqm.eu" />
      </patternCoding>
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <description value="EDQM Standard Terms" />
        <valueSet value="http://hl7.org/fhir/uv/ips/ValueSet/medicine-route-of-administration" />
      </binding>
    </element>
    <element id="MedicationStatement.dosage.route.coding:EDQM.system">
      <path value="MedicationStatement.dosage.route.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.route.coding:EDQM.code">
      <path value="MedicationStatement.dosage.route.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.route.coding:SNOMED">
      <path value="MedicationStatement.dosage.route.coding" />
      <sliceName value="SNOMED" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://snomed.info/sct" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.route.coding:SNOMED.system">
      <path value="MedicationStatement.dosage.route.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.route.coding:SNOMED.code">
      <path value="MedicationStatement.dosage.route.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate">
      <path value="MedicationStatement.dosage.doseAndRate" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]">
      <path value="MedicationStatement.dosage.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="MedicationStatement.dosage.doseAndRate.dose[x]:doseRange">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x]" />
      <sliceName value="doseRange" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Range" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseRange.low">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].low" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseRange.low.value">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].low.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseRange.low.unit">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].low.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseRange.low.system">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].low.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseRange.low.code">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].low.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseRange.high">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].high" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseRange.high.value">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].high.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseRange.high.unit">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].high.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseRange.high.system">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].high.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseRange.high.code">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].high.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseQuantity">
      <path value="MedicationStatement.dosage.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>
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseQuantity.value">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseQuantity.unit">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseQuantity.system">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseQuantity.code">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]">
      <path value="MedicationStatement.dosage.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="MedicationStatement.dosage.doseAndRate.rate[x]:rateRatio">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x]" />
      <sliceName value="rateRatio" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Ratio" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRatio.numerator">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].numerator" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRatio.numerator.value">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].numerator.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRatio.numerator.unit">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].numerator.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRatio.numerator.system">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].numerator.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRatio.numerator.code">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].numerator.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRatio.denominator">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].denominator" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRatio.denominator.value">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].denominator.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRatio.denominator.unit">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].denominator.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRatio.denominator.system">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].denominator.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRatio.denominator.code">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].denominator.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRange">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x]" />
      <sliceName value="rateRange" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Range" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRange.low">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].low" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRange.low.value">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].low.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRange.low.unit">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].low.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRange.low.system">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].low.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRange.low.code">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].low.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRange.high">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].high" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRange.high.value">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].high.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRange.high.unit">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].high.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRange.high.system">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].high.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateRange.high.code">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].high.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateQuantity">
      <path value="MedicationStatement.dosage.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>
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateQuantity.value">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateQuantity.unit">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateQuantity.system">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.rate[x]:rateQuantity.code">
      <path value="MedicationStatement.dosage.doseAndRate.rate[x].code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerPeriod">
      <path value="MedicationStatement.dosage.maxDosePerPeriod" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerPeriod.numerator">
      <path value="MedicationStatement.dosage.maxDosePerPeriod.numerator" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerPeriod.numerator.value">
      <path value="MedicationStatement.dosage.maxDosePerPeriod.numerator.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerPeriod.numerator.unit">
      <path value="MedicationStatement.dosage.maxDosePerPeriod.numerator.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerPeriod.numerator.system">
      <path value="MedicationStatement.dosage.maxDosePerPeriod.numerator.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerPeriod.numerator.code">
      <path value="MedicationStatement.dosage.maxDosePerPeriod.numerator.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerPeriod.denominator">
      <path value="MedicationStatement.dosage.maxDosePerPeriod.denominator" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerPeriod.denominator.value">
      <path value="MedicationStatement.dosage.maxDosePerPeriod.denominator.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerPeriod.denominator.unit">
      <path value="MedicationStatement.dosage.maxDosePerPeriod.denominator.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerPeriod.denominator.system">
      <path value="MedicationStatement.dosage.maxDosePerPeriod.denominator.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerPeriod.denominator.code">
      <path value="MedicationStatement.dosage.maxDosePerPeriod.denominator.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerAdministration">
      <path value="MedicationStatement.dosage.maxDosePerAdministration" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerAdministration.value">
      <path value="MedicationStatement.dosage.maxDosePerAdministration.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerAdministration.unit">
      <path value="MedicationStatement.dosage.maxDosePerAdministration.unit" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerAdministration.system">
      <path value="MedicationStatement.dosage.maxDosePerAdministration.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.maxDosePerAdministration.code">
      <path value="MedicationStatement.dosage.maxDosePerAdministration.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>