<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="DAV-PR-Base-ZusatzdatenEinheit" />
  <url value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-PR-Base-ZusatzdatenEinheit" />
  <version value="1.5.0" />
  <name value="DAV_PR_Base_ZusatzdatenEinheit" />
  <title value="DAV_PR_Base_ZusatzdatenEinheit" />
  <status value="active" />
  <date value="2025-03-31" />
  <publisher value="Deutscher Apothekerverband e.V. (DAV)" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Invoice" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Invoice" />
  <derivation value="constraint" />
  <differential>
    <element id="Invoice">
      <path value="Invoice" />
      <constraint>
        <key value="PR-SEQUENCE" />
        <severity value="error" />
        <human value="Jede Abrechnungsposition einer Einheit ist beginnend mit \&quot;1\&quot; lückenlos fortlaufend zu nummerieren." />
        <expression value="lineItem.sequence.first() = 1 and lineItem.sequence.last() = lineItem.sequence.count() and lineItem.sequence.isDistinct() and lineItem.sequence.all($this &lt;= %resource.lineItem.sequence.count())" />
        <source value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-PR-Base-ZusatzdatenEinheit" />
      </constraint>
    </element>
    <element id="Invoice.meta">
      <path value="Invoice.meta" />
      <min value="1" />
      <type>
        <code value="Meta" />
        <profile value="http://fhir.abda.de/StructureDefinition/DAV-PR-ERP-Meta" />
      </type>
    </element>
    <element id="Invoice.implicitRules">
      <path value="Invoice.implicitRules" />
      <max value="0" />
    </element>
    <element id="Invoice.language">
      <path value="Invoice.language" />
      <max value="0" />
    </element>
    <element id="Invoice.text">
      <path value="Invoice.text" />
      <max value="0" />
    </element>
    <element id="Invoice.contained">
      <path value="Invoice.contained" />
      <max value="0" />
    </element>
    <element id="Invoice.extension">
      <path value="Invoice.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Invoice.extension:ZaehlerEinheit">
      <path value="Invoice.extension" />
      <sliceName value="ZaehlerEinheit" />
      <short value="Angabe des Zählers zur Kennzeichnung einer Einheit eines Herstellungsvorgangs" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-EX-ERP-Zaehler" />
      </type>
    </element>
    <element id="Invoice.extension:ZaehlerEinheit.value[x]">
      <path value="Invoice.extension.value[x]" />
      <short value="Zähler zur Kennzeichnung einer Einheit eines Herstellungsvorgangs" />
      <definition value="Jede innerhalb eines Herstellungsvorgangs hergestellte Einheit ist beginnend mit &quot;1&quot; lückenlos fortlaufend zu nummerieren." />
    </element>
    <element id="Invoice.identifier">
      <path value="Invoice.identifier" />
      <max value="0" />
    </element>
    <element id="Invoice.status">
      <path value="Invoice.status" />
      <patternCode value="issued" />
    </element>
    <element id="Invoice.cancelledReason">
      <path value="Invoice.cancelledReason" />
      <max value="0" />
    </element>
    <element id="Invoice.type">
      <path value="Invoice.type" />
      <min value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="http://fhir.abda.de/eRezeptAbgabedaten/CodeSystem/DAV-CS-ERP-InvoiceTyp" />
          <code value="ZusatzdatenEinheit" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Invoice.type.coding">
      <path value="Invoice.type.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Invoice.type.coding.system">
      <path value="Invoice.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Invoice.type.coding.version">
      <path value="Invoice.type.coding.version" />
      <max value="0" />
    </element>
    <element id="Invoice.type.coding.code">
      <path value="Invoice.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Invoice.type.coding.display">
      <path value="Invoice.type.coding.display" />
      <max value="0" />
    </element>
    <element id="Invoice.type.coding.userSelected">
      <path value="Invoice.type.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Invoice.type.text">
      <path value="Invoice.type.text" />
      <max value="0" />
    </element>
    <element id="Invoice.subject">
      <path value="Invoice.subject" />
      <max value="0" />
    </element>
    <element id="Invoice.recipient">
      <path value="Invoice.recipient" />
      <max value="0" />
    </element>
    <element id="Invoice.date">
      <path value="Invoice.date" />
      <max value="0" />
    </element>
    <element id="Invoice.participant">
      <path value="Invoice.participant" />
      <max value="0" />
    </element>
    <element id="Invoice.issuer">
      <path value="Invoice.issuer" />
      <max value="0" />
    </element>
    <element id="Invoice.account">
      <path value="Invoice.account" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem">
      <path value="Invoice.lineItem" />
      <min value="1" />
    </element>
    <element id="Invoice.lineItem.sequence">
      <path value="Invoice.lineItem.sequence" />
      <short value="Zähler Abrechnungsposition" />
      <definition value="Jede Abrechnungsposition einer Einheit ist beginnend mit &quot;1&quot; lückenlos fortlaufend zu nummerieren." />
      <min value="1" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x]">
      <path value="Invoice.lineItem.chargeItem[x]" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding">
      <path value="Invoice.lineItem.chargeItem[x].coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:PZN">
      <path value="Invoice.lineItem.chargeItem[x].coding" />
      <sliceName value="PZN" />
      <short value="PZN" />
      <definition value="Pharmazentralnummer (PZN) des abgegebenen Produkts." />
      <max value="1" />
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/ifa/pzn" />
      </patternCoding>
      <constraint>
        <key value="PR-ZusatzdatenEinheit-PZN" />
        <severity value="error" />
        <human value="Feldlänge muss numerisch 8 sein." />
        <expression value="code.matches('^\\d{8}$')" />
        <source value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-PR-Base-ZusatzdatenEinheit" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:PZN.system">
      <path value="Invoice.lineItem.chargeItem[x].coding.system" />
      <min value="1" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:PZN.version">
      <path value="Invoice.lineItem.chargeItem[x].coding.version" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:PZN.code">
      <path value="Invoice.lineItem.chargeItem[x].coding.code" />
      <min value="1" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:PZN.display">
      <path value="Invoice.lineItem.chargeItem[x].coding.display" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:PZN.userSelected">
      <path value="Invoice.lineItem.chargeItem[x].coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:Sonderkennzeichen-TA1">
      <path value="Invoice.lineItem.chargeItem[x].coding" />
      <sliceName value="Sonderkennzeichen-TA1" />
      <short value="Vertraglich vereinbartes Sonderkennzeichen" />
      <definition value="8-stelliges Sonderkennzeichen aus der Technischen Anlage" />
      <max value="1" />
      <patternCoding>
        <system value="http://TA1.abda.de" />
      </patternCoding>
      <constraint>
        <key value="PR-ZusatzdatenEinheit-SOK" />
        <severity value="error" />
        <human value="Feldlänge muss numerisch 8 sein." />
        <expression value="code.matches('^\\d{8}$')" />
        <source value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-PR-Base-ZusatzdatenEinheit" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:Sonderkennzeichen-TA1.system">
      <path value="Invoice.lineItem.chargeItem[x].coding.system" />
      <min value="1" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:Sonderkennzeichen-TA1.version">
      <path value="Invoice.lineItem.chargeItem[x].coding.version" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:Sonderkennzeichen-TA1.code">
      <path value="Invoice.lineItem.chargeItem[x].coding.code" />
      <min value="1" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:Sonderkennzeichen-TA1.display">
      <path value="Invoice.lineItem.chargeItem[x].coding.display" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:Sonderkennzeichen-TA1.userSelected">
      <path value="Invoice.lineItem.chargeItem[x].coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:keineAngabe">
      <path value="Invoice.lineItem.chargeItem[x].coding" />
      <sliceName value="keineAngabe" />
      <short value="Auswahlfeld, wenn kein Code angegeben wird." />
      <definition value="Sofern die Code-Angabe beim vorliegenden Anwendungsfall optional ist, kann auf die Angabe der PZN bzw. des Sonderkennzeichens verzichtet werden." />
      <max value="1" />
      <patternCoding>
        <system value="http://terminology.hl7.org/CodeSystem/v3-NullFlavor" />
        <code value="NA" />
      </patternCoding>
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:keineAngabe.system">
      <path value="Invoice.lineItem.chargeItem[x].coding.system" />
      <min value="1" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:keineAngabe.version">
      <path value="Invoice.lineItem.chargeItem[x].coding.version" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:keineAngabe.code">
      <path value="Invoice.lineItem.chargeItem[x].coding.code" />
      <min value="1" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:keineAngabe.display">
      <path value="Invoice.lineItem.chargeItem[x].coding.display" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:keineAngabe.userSelected">
      <path value="Invoice.lineItem.chargeItem[x].coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].text">
      <path value="Invoice.lineItem.chargeItem[x].text" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem.priceComponent">
      <path value="Invoice.lineItem.priceComponent" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Invoice.lineItem.priceComponent.extension">
      <path value="Invoice.lineItem.priceComponent.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="0" />
    </element>
    <element id="Invoice.lineItem.priceComponent.extension:Faktorkennzeichen">
      <path value="Invoice.lineItem.priceComponent.extension" />
      <sliceName value="Faktorkennzeichen" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-EX-ERP-ZusatzdatenFaktorkennzeichen" />
      </type>
    </element>
    <element id="Invoice.lineItem.priceComponent.extension:Preiskennzeichen">
      <path value="Invoice.lineItem.priceComponent.extension" />
      <sliceName value="Preiskennzeichen" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-EX-ERP-ZusatzdatenPreiskennzeichen" />
      </type>
    </element>
    <element id="Invoice.lineItem.priceComponent.type">
      <path value="Invoice.lineItem.priceComponent.type" />
      <patternCode value="informational" />
    </element>
    <element id="Invoice.lineItem.priceComponent.code">
      <path value="Invoice.lineItem.priceComponent.code" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem.priceComponent.factor">
      <path value="Invoice.lineItem.priceComponent.factor" />
      <short value="Anteil der Packung, des Zuschlags, etc." />
      <definition value="Angabe als Promilleanteil (Bis zu 6 Vor- und bis zu 6-Nachkommastellen mit Dezimaltrennzeichen)" />
      <constraint>
        <key value="PR-ZusatzdatenEinheit-1" />
        <severity value="error" />
        <human value="erlaubte Feldlänge: 1..13,6" />
        <expression value="toString().matches('^\\d{1,6}(\\.\\d{1,6})?$')" />
        <source value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-PR-Base-ZusatzdatenEinheit" />
      </constraint>
    </element>
    <element id="Invoice.lineItem.priceComponent.amount">
      <path value="Invoice.lineItem.priceComponent.amount" />
      <min value="1" />
      <type>
        <code value="Money" />
        <profile value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-PR-ERP-PreisangabeEUR" />
      </type>
    </element>
    <element id="Invoice.lineItem.priceComponent.amount.value">
      <path value="Invoice.lineItem.priceComponent.amount.value" />
      <short value="Nettopreis der Abrechnungsposition" />
    </element>
    <element id="Invoice.totalPriceComponent">
      <path value="Invoice.totalPriceComponent" />
      <max value="0" />
    </element>
    <element id="Invoice.totalNet">
      <path value="Invoice.totalNet" />
      <max value="0" />
    </element>
    <element id="Invoice.totalGross">
      <path value="Invoice.totalGross" />
      <max value="0" />
    </element>
    <element id="Invoice.paymentTerms">
      <path value="Invoice.paymentTerms" />
      <max value="0" />
    </element>
    <element id="Invoice.note">
      <path value="Invoice.note" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>