<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="DosageDgMP" />
  <url value="http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP" />
  <name value="DosageDgMP" />
  <title value="Dosage dgMP" />
  <status value="draft" />
  <description value="Gibt an, wie das Medikament vom Patienten im Kontext dgMP eingenommen wird/wurde oder eingenommen werden soll." />
  <fhirVersion value="4.0.1" />
  <kind value="complex-type" />
  <abstract value="false" />
  <type value="Dosage" />
  <baseDefinition value="http://ig.fhir.de/igs/medication/StructureDefinition/DosageDE" />
  <derivation value="constraint" />
  <differential>
    <element id="Dosage">
      <path value="Dosage" />
      <constraint>
        <key value="DosageStructuredOrFreeText" />
        <severity value="error" />
        <human value="Die Dosierungsangabe darf entweder nur als Freitext oder nur als vollständige strukturierte Information erfolgen — eine Mischung ist nicht erlaubt." />
        <expression value="(%resource.ofType(MedicationRequest).dosageInstruction | &#xA; ofType(MedicationDispense).dosageInstruction | &#xA; ofType(MedicationStatement).dosage).all(&#xA;  (text.exists() and timing.empty() and doseAndRate.empty()) or&#xA;  (text.empty() and (timing.exists() or doseAndRate.exists()))&#xA;)" />
        <source value="http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP" />
      </constraint>
      <constraint>
        <key value="DosageStructuredRequiresBoth" />
        <severity value="error" />
        <human value="Wenn eine strukturierte Dosierungsangabe erfolgt, müssen sowohl timing als auch doseAndRate angegeben werden." />
        <expression value="(%resource.ofType(MedicationRequest).dosageInstruction | &#xA; ofType(MedicationDispense).dosageInstruction | &#xA; ofType(MedicationStatement).dosage).all(&#xA;  (timing.exists() implies doseAndRate.exists()) and&#xA;  (doseAndRate.exists() implies timing.exists())&#xA;)" />
        <source value="http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP" />
      </constraint>
      <constraint>
        <key value="DosageDoseUnitSameCode" />
        <severity value="error" />
        <human value="Die Dosiereinheit muss über alle Dosierungen gleich sein." />
        <expression value="(%resource.ofType(MedicationRequest).dosageInstruction | ofType(MedicationDispense).dosageInstruction | ofType(MedicationStatement).dosage).all(&#xA;doseAndRate.exists() implies&#xA;  %resource.dosageInstruction.doseAndRate.dose.ofType(Quantity).code.distinct().count() = 1&#xA;)" />
        <source value="http://ig.fhir.de/igs/medication/StructureDefinition/DosageDgMP" />
      </constraint>
    </element>
    <element id="Dosage.extension:generatedDosageInstructions">
      <path value="Dosage.extension" />
      <sliceName value="generatedDosageInstructions" />
    </element>
    <element id="Dosage.extension:generatedDosageInstructions.extension">
      <path value="Dosage.extension.extension" />
      <min value="4" />
    </element>
    <element id="Dosage.extension:generatedDosageInstructions.extension:language">
      <path value="Dosage.extension.extension" />
      <sliceName value="language" />
      <min value="1" />
    </element>
    <element id="Dosage.extension:generatedDosageInstructions.extension:language.value[x]:valueCode">
      <path value="Dosage.extension.extension.value[x]" />
      <sliceName value="valueCode" />
      <type>
        <code value="code" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="http://ig.fhir.de/igs/medication/ValueSet/AlgorithmLanguageCodesDgMP" />
      </binding>
    </element>
    <element id="Dosage.extension:generatedDosageInstructions.extension:algorithm">
      <path value="Dosage.extension.extension" />
      <sliceName value="algorithm" />
      <min value="1" />
    </element>
    <element id="Dosage.extension:generatedDosageInstructions.extension:algorithm.value[x]:valueCoding">
      <path value="Dosage.extension.extension.value[x]" />
      <sliceName value="valueCoding" />
      <type>
        <code value="Coding" />
      </type>
      <patternCoding>
        <system value="http://ig.fhir.de/igs/medication/CodeSystem/DosageTextAlgorithm" />
        <code value="GematikDosageTextGenerator" />
      </patternCoding>
    </element>
    <element id="Dosage.extension:generatedDosageInstructions.extension:algorithmVersion">
      <path value="Dosage.extension.extension" />
      <sliceName value="algorithmVersion" />
      <min value="1" />
    </element>
    <element id="Dosage.sequence">
      <path value="Dosage.sequence" />
      <comment value="Begründung Einschränkung Kardinalität: Eine Dosier-Sequenz ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen." />
      <max value="0" />
    </element>
    <element id="Dosage.additionalInstruction">
      <path value="Dosage.additionalInstruction" />
      <max value="0" />
    </element>
    <element id="Dosage.patientInstruction">
      <path value="Dosage.patientInstruction" />
      <max value="0" />
    </element>
    <element id="Dosage.timing">
      <path value="Dosage.timing" />
      <type>
        <code value="Timing" />
        <profile value="http://ig.fhir.de/igs/medication/StructureDefinition/TimingDgMP" />
      </type>
    </element>
    <element id="Dosage.asNeeded[x]">
      <path value="Dosage.asNeeded[x]" />
      <comment value="Begründung Einschränkung Kardinalität: Eine Bedarfsdosis ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen." />
      <max value="0" />
    </element>
    <element id="Dosage.site">
      <path value="Dosage.site" />
      <comment value="Begründung Einschränkung Kardinalität: Eine Verabreichungsstelle ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen." />
      <max value="0" />
    </element>
    <element id="Dosage.route">
      <path value="Dosage.route" />
      <comment value="Begründung Einschränkung Kardinalität: Ein Verabreichungsweg ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen." />
      <max value="0" />
    </element>
    <element id="Dosage.method">
      <path value="Dosage.method" />
      <comment value="Begründung Einschränkung Kardinalität: Eine Verabreichungsmethode ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen." />
      <max value="0" />
    </element>
    <element id="Dosage.doseAndRate">
      <path value="Dosage.doseAndRate" />
      <comment value="Begründung Einschränkung Kardinalität: Nur eine Dosierung pro Medikation ist in der ersten Ausbaustufe des dgMP vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen." />
      <max value="1" />
    </element>
    <element id="Dosage.doseAndRate.type">
      <path value="Dosage.doseAndRate.type" />
      <comment value="Begründung Einschränkung Kardinalität: Eine 'type'-Angabe ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen." />
      <max value="0" />
    </element>
    <element id="Dosage.doseAndRate.dose[x]">
      <path value="Dosage.doseAndRate.dose[x]" />
      <comment value="Begründung Einschränkung Datentyp: Nur einfache Mengenangaben sind in der ersten Ausbaustufe des dgMP vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen." />
      <type>
        <code value="Quantity" />
        <profile value="http://hl7.org/fhir/StructureDefinition/SimpleQuantity" />
      </type>
    </element>
    <element id="Dosage.doseAndRate.dose[x]:doseQuantity">
      <path value="Dosage.doseAndRate.dose[x]" />
      <sliceName value="doseQuantity" />
      <type>
        <code value="Quantity" />
        <profile value="http://hl7.org/fhir/StructureDefinition/SimpleQuantity" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.kbv.de/ValueSet/KBV_VS_SFHIR_BMP_DOSIEREINHEIT" />
      </binding>
    </element>
    <element id="Dosage.doseAndRate.dose[x]:doseQuantity.unit">
      <path value="Dosage.doseAndRate.dose[x].unit" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Dosage.doseAndRate.dose[x]:doseQuantity.system">
      <path value="Dosage.doseAndRate.dose[x].system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Dosage.doseAndRate.dose[x]:doseQuantity.code">
      <path value="Dosage.doseAndRate.dose[x].code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Dosage.doseAndRate.rate[x]">
      <path value="Dosage.doseAndRate.rate[x]" />
      <comment value="Begründung Einschränkung Kardinalität: Eine Verabreichungsmenge pro Zeiteinheit ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen." />
      <max value="0" />
    </element>
    <element id="Dosage.maxDosePerPeriod">
      <path value="Dosage.maxDosePerPeriod" />
      <comment value="Begründung Einschränkung Kardinalität: Eine maximale Dosis pro Zeitraum ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen." />
      <max value="0" />
    </element>
    <element id="Dosage.maxDosePerAdministration">
      <path value="Dosage.maxDosePerAdministration" />
      <comment value="Begründung Einschränkung Kardinalität: Eine maximale Dosis pro Verabreichung ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen." />
      <max value="0" />
    </element>
    <element id="Dosage.maxDosePerLifetime">
      <path value="Dosage.maxDosePerLifetime" />
      <comment value="Begründung Einschränkung Kardinalität: Eine maximale Dosis über die Lebenszeit ist in der ersten Ausbaustufe des dgMP nicht vorgesehen, um die Komplexität zu reduzieren und die Übersichtlichkeit zu erhöhen." />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>