<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="epa-medication" />
  <url value="https://gematik.de/fhir/epa-medication/StructureDefinition/epa-medication" />
  <version value="1.0.0" />
  <name value="EPAMedication" />
  <title value="EPA Medication" />
  <status value="active" />
  <experimental value="false" />
  <date value="2023-12-06" />
  <publisher value="gematik GmbH" />
  <description value="Defines the medication resource for the Medication Service in the ePA system." />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="script10.6" />
    <uri value="http://ncpdp.org/SCRIPT10_6" />
    <name value="Mapping to NCPDP SCRIPT 10.6" />
  </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="Medication" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Medication" />
  <derivation value="constraint" />
  <differential>
    <element id="Medication">
      <path value="Medication" />
      <constraint>
        <key value="epa-med-1" />
        <severity value="error" />
        <human value="Medikamenten-Code, -Bezeichnung oder Inhaltsstoffe müssen angegeben werden." />
        <expression value="code.exists() or ingredient.exists()" />
        <source value="https://gematik.de/fhir/epa-medication/StructureDefinition/epa-medication" />
      </constraint>
    </element>
    <element id="Medication.extension">
      <path value="Medication.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Medication.extension:RxPrescriptionProcessIdentifier">
      <path value="Medication.extension" />
      <sliceName value="RxPrescriptionProcessIdentifier" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://gematik.de/fhir/epa-medication/StructureDefinition/rx-prescription-process-identifier-extension" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Medication.identifier">
      <path value="Medication.identifier" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.identifier:ePAMedicationUniqueIdentifier">
      <path value="Medication.identifier" />
      <sliceName value="ePAMedicationUniqueIdentifier" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://gematik.de/fhir/epa-medication/StructureDefinition/epa-medication-unique-identifier" />
      </type>
    </element>
    <element id="Medication.code">
      <path value="Medication.code" />
      <short value="Medication in coded form or as free text if necessary" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding">
      <path value="Medication.code.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:PZN">
      <path value="Medication.code.coding" />
      <sliceName value="PZN" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/ifa/pzn" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:PZN.system">
      <path value="Medication.code.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:PZN.code">
      <path value="Medication.code.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:PZN.display">
      <path value="Medication.code.coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:ATC-DE">
      <path value="Medication.code.coding" />
      <sliceName value="ATC-DE" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/bfarm/atc" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:ATC-DE.system">
      <path value="Medication.code.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:ATC-DE.code">
      <path value="Medication.code.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:ATC-DE.display">
      <path value="Medication.code.coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:ASK">
      <path value="Medication.code.coding" />
      <sliceName value="ASK" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/ask" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:ASK.system">
      <path value="Medication.code.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:ASK.code">
      <path value="Medication.code.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:ASK.display">
      <path value="Medication.code.coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:WG14">
      <path value="Medication.code.coding" />
      <sliceName value="WG14" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/abdata/wg14" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:WG14.system">
      <path value="Medication.code.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:WG14.code">
      <path value="Medication.code.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:WG14.display">
      <path value="Medication.code.coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:verordnungskategorieCode">
      <path value="Medication.code.coding" />
      <sliceName value="verordnungskategorieCode" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:verordnungskategorieCode.system">
      <path value="Medication.code.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.coding:verordnungskategorieCode.code">
      <path value="Medication.code.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gematik.de/fhir/epa-medication/ValueSet/kbv-medication-type-vs" />
      </binding>
    </element>
    <element id="Medication.code.coding:verordnungskategorieCode.display">
      <path value="Medication.code.coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.code.text">
      <path value="Medication.code.text" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.status">
      <path value="Medication.status" />
      <short value="Status der Medikamenteninformation" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.manufacturer">
      <path value="Medication.manufacturer" />
      <short value="Hersteller des Medikaments" />
      <comment value="Hier kann der tatsächliche Hersteller des Medikaments benannt werden, vornehmlich im Fall von Wirkstoffmischungen (Rezepturen), beispielsweise die Krankenhausapotheke. Zu beachten ist, dass die zulassende Organisation, wie sie z.B. in den Daten zur PZN benannt ist, nicht als Hersteller gilt." />
      <mustSupport value="true" />
    </element>
    <element id="Medication.manufacturer.display">
      <path value="Medication.manufacturer.display" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.form">
      <path value="Medication.form" />
      <short value="Abgabeform" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.form.coding">
      <path value="Medication.form.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Medication.form.coding:EDQM">
      <path value="Medication.form.coding" />
      <sliceName value="EDQM" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/uv/ips/ValueSet/medicine-doseform" />
      </binding>
    </element>
    <element id="Medication.form.coding:EDQM.system">
      <path value="Medication.form.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.form.coding:EDQM.code">
      <path value="Medication.form.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.form.coding:EDQM.display">
      <path value="Medication.form.coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.form.coding:KBVDarreichungsform">
      <path value="Medication.form.coding" />
      <sliceName value="KBVDarreichungsform" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gematik.de/fhir/epa-medication/ValueSet/kbv-medication-darreichungsform-vs" />
      </binding>
    </element>
    <element id="Medication.form.coding:KBVDarreichungsform.system">
      <path value="Medication.form.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.form.coding:KBVDarreichungsform.code">
      <path value="Medication.form.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.form.coding:KBVDarreichungsform.display">
      <path value="Medication.form.coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount">
      <path value="Medication.amount" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount.numerator">
      <path value="Medication.amount.numerator" />
      <min value="1" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount.numerator.value">
      <path value="Medication.amount.numerator.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount.numerator.unit">
      <path value="Medication.amount.numerator.unit" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount.numerator.system">
      <path value="Medication.amount.numerator.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount.numerator.code">
      <path value="Medication.amount.numerator.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount.denominator">
      <path value="Medication.amount.denominator" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount.denominator.value">
      <path value="Medication.amount.denominator.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount.denominator.unit">
      <path value="Medication.amount.denominator.unit" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount.denominator.system">
      <path value="Medication.amount.denominator.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.amount.denominator.code">
      <path value="Medication.amount.denominator.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient">
      <path value="Medication.ingredient" />
      <short value="Informationen zu Bestandteilen (Rezeptur)" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]">
      <path value="Medication.ingredient.item[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept">
      <path value="Medication.ingredient.item[x]" />
      <sliceName value="itemCodeableConcept" />
      <short value="Bestandteil in codierter Form oder ggf. als Freitext" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding">
      <path value="Medication.ingredient.item[x].coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:ASK">
      <path value="Medication.ingredient.item[x].coding" />
      <sliceName value="ASK" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/ask" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:ASK.system">
      <path value="Medication.ingredient.item[x].coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:ASK.code">
      <path value="Medication.ingredient.item[x].coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:ASK.display">
      <path value="Medication.ingredient.item[x].coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:ATC-DE">
      <path value="Medication.ingredient.item[x].coding" />
      <sliceName value="ATC-DE" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/bfarm/atc" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:ATC-DE.system">
      <path value="Medication.ingredient.item[x].coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:ATC-DE.code">
      <path value="Medication.ingredient.item[x].coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:ATC-DE.display">
      <path value="Medication.ingredient.item[x].coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:PZN">
      <path value="Medication.ingredient.item[x].coding" />
      <sliceName value="PZN" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/ifa/pzn" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:PZN.system">
      <path value="Medication.ingredient.item[x].coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:PZN.code">
      <path value="Medication.ingredient.item[x].coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:PZN.display">
      <path value="Medication.ingredient.item[x].coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:WG14">
      <path value="Medication.ingredient.item[x].coding" />
      <sliceName value="WG14" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/abdata/wg14" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:WG14.system">
      <path value="Medication.ingredient.item[x].coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:WG14.code">
      <path value="Medication.ingredient.item[x].coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.coding:WG14.display">
      <path value="Medication.ingredient.item[x].coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemCodeableConcept.text">
      <path value="Medication.ingredient.item[x].text" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemReference">
      <path value="Medication.ingredient.item[x]" />
      <sliceName value="itemReference" />
      <short value="Bestandteil (Referenz auf ein anderes Medikament)" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Substance" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Medication" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.item[x]:itemReference.reference">
      <path value="Medication.ingredient.item[x].reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.isActive">
      <path value="Medication.ingredient.isActive" />
      <short value="handelt es sich um einen aktiven Bestandteil?" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.strength">
      <path value="Medication.ingredient.strength" />
      <short value="Stärke" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.strength.numerator">
      <path value="Medication.ingredient.strength.numerator" />
      <min value="1" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.strength.numerator.value">
      <path value="Medication.ingredient.strength.numerator.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.strength.numerator.unit">
      <path value="Medication.ingredient.strength.numerator.unit" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.strength.numerator.system">
      <path value="Medication.ingredient.strength.numerator.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.strength.numerator.code">
      <path value="Medication.ingredient.strength.numerator.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.strength.denominator">
      <path value="Medication.ingredient.strength.denominator" />
      <patternQuantity>
        <system value="http://unitsofmeasure.org" />
      </patternQuantity>
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.strength.denominator.value">
      <path value="Medication.ingredient.strength.denominator.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.strength.denominator.unit">
      <path value="Medication.ingredient.strength.denominator.unit" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.strength.denominator.system">
      <path value="Medication.ingredient.strength.denominator.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.ingredient.strength.denominator.code">
      <path value="Medication.ingredient.strength.denominator.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.batch">
      <path value="Medication.batch" />
      <short value="Angaben zur Charge" />
      <mustSupport value="true" />
    </element>
    <element id="Medication.batch.lotNumber">
      <path value="Medication.batch.lotNumber" />
      <short value="Chargennummer" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>