<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="de-dosage" />
  <url value="http://fhir.de/StructureDefinition/de-dosage" />
  <name value="DE_DOSAGE" />
  <title value="DE DOSAGE" />
  <status value="draft" />
  <fhirVersion value="4.0.1" />
  <kind value="complex-type" />
  <abstract value="true" />
  <type value="Dosage" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Dosage" />
  <derivation value="constraint" />
  <differential>
    <element id="Dosage">
      <path value="Dosage" />
      <constraint>
        <key value="if-sequence-then-boundsDuration" />
        <severity value="error" />
        <human value="If a sequence is given the duration must be stated" />
        <expression value="sequence.exists() implies timing.repeat.boundsDuration.exists()" />
        <source value="http://fhir.de/StructureDefinition/de-dosage" />
      </constraint>
    </element>
    <element id="Dosage.extension">
      <path value="Dosage.extension" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Dosage.extension:dosage_category">
      <path value="Dosage.extension" />
      <sliceName value="dosage_category" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/dosage-category-ex" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Dosage.sequence">
      <path value="Dosage.sequence" />
      <mustSupport value="true" />
    </element>
    <element id="Dosage.additionalInstruction">
      <path value="Dosage.additionalInstruction" />
      <mustSupport value="true" />
    </element>
    <element id="Dosage.patientInstruction">
      <path value="Dosage.patientInstruction" />
      <mustSupport value="true" />
    </element>
    <element id="Dosage.timing.event">
      <path value="Dosage.timing.event" />
      <max value="0" />
    </element>
    <element id="Dosage.timing.repeat">
      <path value="Dosage.timing.repeat" />
      <min value="1" />
    </element>
    <element id="Dosage.timing.repeat.bounds[x]">
      <path value="Dosage.timing.repeat.bounds[x]" />
      <type>
        <code value="Duration" />
      </type>
    </element>
    <element id="Dosage.timing.repeat.count">
      <path value="Dosage.timing.repeat.count" />
      <max value="0" />
    </element>
    <element id="Dosage.timing.repeat.countMax">
      <path value="Dosage.timing.repeat.countMax" />
      <max value="0" />
    </element>
    <element id="Dosage.timing.repeat.duration">
      <path value="Dosage.timing.repeat.duration" />
      <max value="0" />
    </element>
    <element id="Dosage.timing.repeat.durationMax">
      <path value="Dosage.timing.repeat.durationMax" />
      <max value="0" />
    </element>
    <element id="Dosage.timing.repeat.durationUnit">
      <path value="Dosage.timing.repeat.durationUnit" />
      <max value="0" />
    </element>
    <element id="Dosage.timing.repeat.frequencyMax">
      <path value="Dosage.timing.repeat.frequencyMax" />
      <max value="0" />
    </element>
    <element id="Dosage.timing.repeat.periodMax">
      <path value="Dosage.timing.repeat.periodMax" />
      <max value="0" />
    </element>
    <element id="Dosage.timing.repeat.offset">
      <path value="Dosage.timing.repeat.offset" />
      <max value="0" />
    </element>
    <element id="Dosage.timing.code">
      <path value="Dosage.timing.code" />
      <max value="0" />
    </element>
    <element id="Dosage.asNeeded[x]">
      <path value="Dosage.asNeeded[x]" />
      <max value="0" />
    </element>
    <element id="Dosage.site">
      <path value="Dosage.site" />
      <max value="0" />
    </element>
    <element id="Dosage.route">
      <path value="Dosage.route" />
      <max value="0" />
    </element>
    <element id="Dosage.method">
      <path value="Dosage.method" />
      <max value="0" />
    </element>
    <element id="Dosage.doseAndRate">
      <path value="Dosage.doseAndRate" />
      <mustSupport value="true" />
    </element>
    <element id="Dosage.doseAndRate.type">
      <path value="Dosage.doseAndRate.type" />
      <max value="0" />
    </element>
    <element id="Dosage.doseAndRate.dose[x]">
      <path value="Dosage.doseAndRate.dose[x]" />
      <type>
        <code value="Quantity" />
        <profile value="http://hl7.org/fhir/StructureDefinition/SimpleQuantity" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Dosage.doseAndRate.rate[x]">
      <path value="Dosage.doseAndRate.rate[x]" />
      <max value="0" />
    </element>
    <element id="Dosage.maxDosePerPeriod">
      <path value="Dosage.maxDosePerPeriod" />
      <max value="0" />
    </element>
    <element id="Dosage.maxDosePerAdministration">
      <path value="Dosage.maxDosePerAdministration" />
      <max value="0" />
    </element>
    <element id="Dosage.maxDosePerLifetime">
      <path value="Dosage.maxDosePerLifetime" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>