<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="http://fhir.de/StructureDefinition/icd-10-gm-diagnosesicherheit" />
  <version value="0.9" />
  <name value="ICD10GMDiagnosesicherheit" />
  <title value="Extension zur Erfassung der Diagnosesicherheit gemäß KBV-Kodierrichtlinien" />
  <status value="draft" />
  <date value="2019-08-07" />
  <fhirVersion value="4.0.0" />
  <kind value="complex-type" />
  <abstract value="false" />
  <context>
    <type value="element" />
    <expression value="CodeableConcept.coding" />
  </context>
  <context>
    <type value="element" />
    <expression value="Coding" />
  </context>
  <type value="Extension" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" />
  <derivation value="constraint" />
  <differential>
    <element id="Extension.url">
      <path value="Extension.url" />
      <fixedUri value="http://fhir.de/StructureDefinition/icd-10-gm-diagnosesicherheit" />
    </element>
    <element id="Extension.value[x]">
      <path value="Extension.value[x]" />
      <min value="1" />
      <type>
        <code value="Coding" />
      </type>
      <constraint>
        <key value="icd-4" />
        <severity value="warning" />
        <human value="Wenn die Diagnosesicherheit &quot;A (Ausschluss)&quot; verwendet wird, dann muss clinicalStatus leer bleiben und verificationStaus auf &quot;refuted&quot; gesetzt werden." />
        <expression value="code!='A' or (%resource.verificationStatus.coding.where(code='refuted').exists() and %resource.clinicalStatus.empty())" />
        <source value="Extension" />
      </constraint>
      <constraint>
        <key value="icd-5" />
        <severity value="warning" />
        <human value="Wenn die Diagnosesicherheit &quot;G (Gesichert)&quot; verwendet wird, dann muss clinicalStatus auf &quot;active&quot; und verificationStatus auf &quot;confirmed&quot; gesetzt werden." />
        <expression value="code!='G' or (%resource.clinicalStatus.coding.where(code='active').exists and %resource.verificationStatus.coding.where(code='confirmed').exists())" />
        <source value="Extension" />
      </constraint>
      <constraint>
        <key value="icd-6" />
        <severity value="warning" />
        <human value="Wenn die Diagnosesicherheit &quot;V (Verdacht auf)&quot; verwendet wird, dann muss clinicalStatus auf &quot;active&quot; und verificationStatus auf &quot;provisional&quot; gesetzt werden." />
        <expression value="code!='V' or (%resource.clinicalStatus.coding.where(code='active').exists() and %resource.verificationStatus.coding.where(code='provisional').exists())" />
        <source value="Extension" />
      </constraint>
      <constraint>
        <key value="icd-7" />
        <severity value="warning" />
        <human value="Wenn die Diagnosesicherheit &quot;Z (Zustand nach)&quot; verwendet wird, dann muss clinicalStatus auf &quot;resolved&quot; und verificationStatus auf &quot;confirmed&quot; gesetzt werden." />
        <expression value="code!='Z' or (%resource.clinicalStatus.coding.where(code='resolved').exists() and %resource.verificationStatus.coding.where(code='confirmed').exists())" />
        <source value="Extension" />
      </constraint>
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.de/ValueSet/kbv/s-icd-diagnosesicherheit" />
      </binding>
    </element>
  </differential>
</StructureDefinition>