<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="DAV-PR-Base-Abrechnungszeilen" />
  <url value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-PR-Base-Abrechnungszeilen" />
  <version value="1.5.0" />
  <name value="DAV_PR_Base_Abrechnungszeilen" />
  <title value="DAV_PR_Base_Abrechnungszeilen" />
  <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-Abrechnungszeilen" />
      </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.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="Abrechnungszeilen" />
        </coding>
      </patternCodeableConcept>
    </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" />
      <short value="Abrechnungszeile" />
      <min value="1" />
      <constraint>
        <key value="PR-NOCTU" />
        <severity value="error" />
        <human value="Angabe der NOCTU SOK und ZusatzattributAbgabeNoctu nur in Verbindung." />
        <expression value="(extension('http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-EX-ERP-Zusatzattribute').extension('ZusatzattributAbgabeNoctu').exists() implies (chargeItem.coding.system = 'http://TA1.abda.de' and chargeItem.coding.code = '02567018')) and ((chargeItem.coding.system = 'http://TA1.abda.de' and chargeItem.coding.code = '02567018') implies extension('http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-EX-ERP-Zusatzattribute').extension('ZusatzattributAbgabeNoctu').exists())" />
        <source value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-PR-Base-Abrechnungszeilen" />
      </constraint>
    </element>
    <element id="Invoice.lineItem.extension">
      <path value="Invoice.lineItem.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="0" />
    </element>
    <element id="Invoice.lineItem.extension:Zusatzattribute">
      <path value="Invoice.lineItem.extension" />
      <sliceName value="Zusatzattribute" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-EX-ERP-Zusatzattribute" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Invoice.lineItem.sequence">
      <path value="Invoice.lineItem.sequence" />
      <short value="Zähler Abrechnungszeile" />
      <definition value="Jede Abrechnungszeile ist beginnend mit dem Wert &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-Abrechnungszeilen-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-Abrechnungszeilen" />
      </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" />
      <mustSupport value="true" />
    </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" />
      <mustSupport value="true" />
    </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-Abrechnungszeilen-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-Abrechnungszeilen" />
      </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" />
      <mustSupport value="true" />
    </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" />
      <mustSupport value="true" />
    </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:Hilfsmittelnummer">
      <path value="Invoice.lineItem.chargeItem[x].coding" />
      <sliceName value="Hilfsmittelnummer" />
      <short value="Hilfsmittelpositionsnummer" />
      <definition value="Angabe der 10-stelligen Hilfsmittelpositionsnummer bei Applikationshilfen ohne PZN." />
      <max value="1" />
      <patternCoding>
        <system value="http://fhir.de/sid/gkv/hmnr" />
      </patternCoding>
      <constraint>
        <key value="PR-Abrechnungszeilen-HMNR" />
        <severity value="error" />
        <human value="Feldlänge muss numerisch 10 sein." />
        <expression value="code.matches('^\\d{10}$')" />
        <source value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-PR-Base-Abrechnungszeilen" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:Hilfsmittelnummer.system">
      <path value="Invoice.lineItem.chargeItem[x].coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:Hilfsmittelnummer.version">
      <path value="Invoice.lineItem.chargeItem[x].coding.version" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:Hilfsmittelnummer.code">
      <path value="Invoice.lineItem.chargeItem[x].coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:Hilfsmittelnummer.display">
      <path value="Invoice.lineItem.chargeItem[x].coding.display" />
      <max value="0" />
    </element>
    <element id="Invoice.lineItem.chargeItem[x].coding:Hilfsmittelnummer.userSelected">
      <path value="Invoice.lineItem.chargeItem[x].coding.userSelected" />
      <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="closed" />
      </slicing>
      <min value="2" />
      <max value="4" />
    </element>
    <element id="Invoice.lineItem.priceComponent.extension:MwSt-Satz">
      <path value="Invoice.lineItem.priceComponent.extension" />
      <sliceName value="MwSt-Satz" />
      <min value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-EX-ERP-MwStSatz" />
      </type>
    </element>
    <element id="Invoice.lineItem.priceComponent.extension:KostenVersicherter">
      <path value="Invoice.lineItem.priceComponent.extension" />
      <sliceName value="KostenVersicherter" />
      <short value="Kosten, die vom Versicherten getragen werden." />
      <definition value="Die Kategorie Zuzahlung muss genau einmal pro Abrechnungszeile angegeben werden.&#xD;&#xA;Die Kategorien Mehrkosten und Eigenbeteiligung können jeweils einmal pro Abrechnungszeile angegeben werden" />
      <min value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-EX-ERP-KostenVersicherter" />
      </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="Mengenfaktor" />
      <min value="1" />
      <constraint>
        <key value="PR-Abrechnungszeilen-2" />
        <severity value="error" />
        <human value="Faktor hat die Feldänge 1..6" />
        <expression value="toString().matches('^\\d{1,6}$')" />
        <source value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-PR-Base-Abrechnungszeilen" />
      </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="Gesamter Bruttopreis für eine Abrechnungszeile" />
      <definition value="Gesamter Bruttopreis für eine Abrechnungszeile in Euro (1-12 Stellen inkl. Trenner und 2 Nachkommastellen)" />
    </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" />
      <short value="Bruttopreisangaben in Euro" />
      <min value="1" />
      <type>
        <code value="Money" />
        <profile value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-PR-ERP-PreisangabeEUR" />
      </type>
    </element>
    <element id="Invoice.totalGross.extension">
      <path value="Invoice.totalGross.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Invoice.totalGross.extension:Gesamtzuzahlung">
      <path value="Invoice.totalGross.extension" />
      <sliceName value="Gesamtzuzahlung" />
      <min value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.abda.de/eRezeptAbgabedaten/StructureDefinition/DAV-EX-ERP-Gesamtzuzahlung" />
      </type>
    </element>
    <element id="Invoice.totalGross.value">
      <path value="Invoice.totalGross.value" />
      <short value="Gesamt-Bruttopreis der Verordnung" />
      <definition value="Summe der im Feld Bruttopreis (lineItem.priceComponent.amount) enthaltenen Beträge aus allen Abrechnungszeilen (in Euro mit 2 Nachkommastellen)." />
    </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>