<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="DGUV-ENLA-PR-Arbeitsunfaehigkeit" />
  <url value="http://fhir.dguv.de/ENLA/Observation/DGUV-ENLA-PR-Arbeitsunfaehigkeit" />
  <version value="1.0" />
  <name value="DGUV_ENLA_PR_Arbeitsunfaehigkeit" />
  <title value="Arbeitsunfähigkeit" />
  <status value="draft" />
  <publisher value="Deutsche Gesetzliche Unfallversicherung e.V. (DGUV)" />
  <description value="Dieses Profil beschreibt die Einschätzung der Arbeitsunfähigkeit der versicherten Person durch den behandelnden Arzt." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation">
      <path value="Observation" />
      <constraint>
        <key value="dguv-auflex-1" />
        <severity value="error" />
        <human value="Wenn der Wert 'AUFLEX'  ist, muss Flexible_AU gefüllt sein und es dürfen nur 'Woche(n) oder Monat(e) als Einheit auftreten." />
        <expression value="(value.coding.where(code='AUFLEX').exists()) implies ((value.extension('http://fhir.dguv.de/ENLA/Extension/DGUV-ENLA-EX-FlexAU').exists()) and  (value.extension('http://fhir.dguv.de/ENLA/Extension/DGUV-ENLA-EX-FlexAU').value.ofType(Duration).unit.matches('^(Woche(n)?|Monat(e)?)$')))" />
      </constraint>
      <constraint>
        <key value="dguv-aubis-1" />
        <severity value="error" />
        <human value="Wenn der Wert 'AUBIS' ist, muss effective existieren." />
        <expression value="(value.coding.code ='AUBIS') implies effective.exists()" />
      </constraint>
      <constraint>
        <key value="dguv-nicht-aubis-1" />
        <severity value="error" />
        <human value="Wenn code nicht 'AUBIS', darf effective[x] nicht genutzt/gefüllt sein." />
        <expression value="(value.coding.code !='AUBIS') implies effective.empty()" />
      </constraint>
      <constraint>
        <key value="dguv-nicht-auflex-1" />
        <severity value="error" />
        <human value="Wenn der Wert nicht  'AUFLEX'  ist, darf Flexible_AU nicht genutzt/gefüllt sein." />
        <expression value="(value.coding.where(code!='AUFLEX').exists()) implies ((value.extension('http://fhir.dguv.de/ENLA/Extension/DGUV-ENLA-EX-FlexAU').exists().not()))" />
      </constraint>
    </element>
    <element id="Observation.id">
      <path value="Observation.id" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.meta">
      <path value="Observation.meta" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.meta.profile">
      <path value="Observation.meta.profile" />
      <min value="1" />
      <max value="1" />
      <fixedCanonical value="http://fhir.dguv.de/ENLA/Observation/DGUV-ENLA-PR-Arbeitsunfaehigkeit" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.status">
      <path value="Observation.status" />
      <comment value="Fixed value = “final”, weil ein Entlassungsbericht (ENLA) nach seiner Erstellung nicht mehr geändert wird." />
      <fixedCode value="final" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <short value="Kennzeichnung des ENLA-Teilberichtsinhalts" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding.system">
      <path value="Observation.code.coding.system" />
      <short value="CodeSystem für ENLA-Teilberichtsinhalte" />
      <min value="1" />
      <fixedUri value="http://fhir.dguv.de/ENLA/CodeSystem/DGUV-ENLA-CS-Teilberichtsinhalt" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding.code">
      <path value="Observation.code.coding.code" />
      <short value="Kürzel für konkreten ENLA-Teilberichtsinhalt" />
      <min value="1" />
      <fixedCode value="AU" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding.display">
      <path value="Observation.code.coding.display" />
      <short value="Konkrete Bezeichnung für ENLA-Teilberichtsinhalt" />
      <min value="1" />
      <fixedString value="Arbeitsunfähigkeit" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.subject">
      <path value="Observation.subject" />
      <short value="Verweis auf betroffene versicherte Person" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://fhir.dguv.de/ENLA/Patient/DGUV-ENLA-PR-VersichertePerson" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.subject.reference">
      <path value="Observation.subject.reference" />
      <short value="Konkreter Verweis auf versicherte Person" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <short value="Letzter Tag der Arbeitsunfähigkeit" />
      <comment value="Letzter Tag der Arbeitsunfähigkeit; nur wenn value[x].coding.code/display = &quot;AUBIS&quot;/&quot;Arbeitsunfähig bis&quot;" />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <short value="Arbeits(un)fähigkeit der versicherten Person" />
      <definition value="Angabe darüber, ob die versicherte Person &quot;Arbeitsfähig&quot; (AF), &quot;Arbeitsunfähig bis&quot; (AUBIS), &quot;Arbeitsunfähig voraussichtliche Dauer&quot; (AUFLEX) oder &quot;Arbeitsunfähig bis auf unbestimmte Zeit&quot; (AUUZ) ist" />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x].extension">
      <path value="Observation.value[x].extension" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x].extension:Flexible_AU">
      <path value="Observation.value[x].extension" />
      <sliceName value="Flexible_AU" />
      <short value="Angabe der voraussichtlichen AU-Dauer" />
      <comment value="Angabe der voraussichtlichen AU-Dauer (Wert und Zeiteinheit), wenn kein konkretes Datum, sondern nur eine grobe Abschätzung genannt werden kann (AUFLEX), also nur wenn in value[x].coding.code/display &quot;AUFLEX&quot;/&quot;Arbeitsunfähig voraussichtliche Dauer&quot; steht" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.dguv.de/ENLA/Extension/DGUV-ENLA-EX-FlexAU" />
      </type>
      <mustSupport value="true" />
      <isModifier value="false" />
    </element>
    <element id="Observation.value[x].extension:Flexible_AU.value[x]">
      <path value="Observation.value[x].extension.value[x]" />
      <short value="Geschätzter Zeitraum für Arbeitsunfähigkeit zum Entlassungszeitpunkt" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x].extension:Flexible_AU.value[x].value">
      <path value="Observation.value[x].extension.value[x].value" />
      <short value="Dezimalzahl zur Quantifizierung der geschätzten AU-Dauer" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x].extension:Flexible_AU.value[x].unit">
      <path value="Observation.value[x].extension.value[x].unit" />
      <short value="Einheit des Zeitraums" />
      <comment value="Als Zeiteinheit nur Wochen oder Monate verwenden" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x].coding">
      <path value="Observation.value[x].coding" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x].coding.system">
      <path value="Observation.value[x].coding.system" />
      <short value="Code-System mit AU-Varianten" />
      <definition value="Mögliche Varianten bzgl. der Arbeits(un)fähigkeit der versicherten Person" />
      <min value="1" />
      <fixedUri value="http://fhir.dguv.de/ENLA/CodeSystem/DGUV-ENLA-CS-Arbeitsunfaehigkeit" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x].coding.code">
      <path value="Observation.value[x].coding.code" />
      <short value="Kürzel der konkreten AU-Variante" />
      <comment value="Bei &quot;AF&quot; (&quot;Arbeitsfaehig&quot;): KEINE Wiedereingliederung möglich" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x].coding.display">
      <path value="Observation.value[x].coding.display" />
      <short value="Bezeichnung der konkreten AU-Variante" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>