<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ISiKFormularDaten" />
  <url value="https://gematik.de/fhir/isik/StructureDefinition/ISiKFormularDaten" />
  <version value="5.1.2" />
  <name value="ISiKFormularDaten" />
  <title value="Ausgefülltes ISiK-Formular" />
  <status value="active" />
  <experimental value="false" />
  <date value="2026-04-30" />
  <publisher value="gematik GmbH" />
  <description value="Im Profil `ISiKFormularDaten` sind Mindestanforderungen an ISiK kompatible, ausgefüllte Formulare definiert.&#xA;Die verwendbaren Extensions sind nicht mit profiliert, sondern im IG unter [Artefakte-&gt;Extensions](https://simplifier.net/guide/isik-formular-stufe-5/Einfuehrung/Artefakte/Extensions.page.md?version=current) beschrieben." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="QuestionnaireResponse" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" />
  <derivation value="constraint" />
  <differential>
    <element id="QuestionnaireResponse">
      <path value="QuestionnaireResponse" />
      <constraint>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice">
          <valueBoolean value="true" />
        </extension>
        <key value="sdcqr-1" />
        <severity value="warning" />
        <human value="Subject SHOULD be present (searching is difficult without subject).  Almost all QuestionnaireResponses should be with respect to some sort of subject." />
        <expression value="subject.exists()" />
        <xpath value="exists(f:subject)" />
        <source value="https://gematik.de/fhir/isik/StructureDefinition/ISiKFormularDaten" />
      </constraint>
      <constraint>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice">
          <valueBoolean value="true" />
        </extension>
        <key value="sdcqr-2" />
        <severity value="error" />
        <human value="When repeats=true for a group, it'll be represented with multiple items with the same linkId in the QuestionnaireResponse.  For a question, it'll be represented by a single item with that linkId with multiple answers." />
        <expression value="(QuestionnaireResponse|repeat(answer|item)).select(item.where(answer.value.exists()).linkId.isDistinct()).allTrue()" />
        <xpath value="not(exists(for $item in descendant::f:item[f:answer] return $item/preceding-sibling::f:item[f:linkId/@value=$item/f:linkId/@value]))" />
        <source value="https://gematik.de/fhir/isik/StructureDefinition/ISiKFormularDaten" />
      </constraint>
    </element>
    <element id="QuestionnaireResponse.id">
      <path value="QuestionnaireResponse.id" />
      <short value="serverseitige, interne ID des Datensatzes" />
      <comment value="**bedingtes Pflichtfeld/bedingtes MS:** Alle von einem Server bereitgestellten Ressourcen MÜSSEN über eine `id` verfügen.&#xA;  Von Clients erzeugte Ressourcen, die im Kontext einer CREATE-Interaktion übermittelt werden, MÜSSEN NICHT über eine `id`verfügen." />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.meta.versionId">
      <path value="QuestionnaireResponse.meta.versionId" />
      <short value="Eindeutiger Name der serverseitigen Version des Datensatzes" />
      <comment value="Alle von einem Server bereitgestellten Ressourcen SOLLEN über eine `versionID` verfügen.&#xA;  Von Clients erzeugte Ressourcen, die im Kontext einer CREATE-Interaktion übermittelt werden, MÜSSEN NICHT über eine `versionID`verfügen." />
    </element>
    <element id="QuestionnaireResponse.meta.lastUpdated">
      <path value="QuestionnaireResponse.meta.lastUpdated" />
      <short value="Zeitpunkt der letzten Änderung" />
      <comment value="Alle von einem Server bereitgestellten Ressourcen SOLLEN über ein `lastUpdate` verfügen.&#xA;  Von Clients erzeugte Ressourcen, die im Kontext einer CREATE-Interaktion übermittelt werden, MÜSSEN NICHT über ein `lastUpdate`verfügen." />
    </element>
    <element id="QuestionnaireResponse.modifierExtension">
      <path value="QuestionnaireResponse.modifierExtension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="QuestionnaireResponse.modifierExtension:MDR-Relevant">
      <path value="QuestionnaireResponse.modifierExtension" />
      <sliceName value="MDR-Relevant" />
      <short value="MPG-Relevanz der Formulardaten" />
      <comment value="**Begründung MS:**&#xA;  In dieser Extension wird angegeben, dass die Formulardaten MDR-relevant sind. Für die Erhebung und/oder Darstellung müssen ggf. bestimmte Voraussetzungen erfüllt sein. Ist die Extension nicht vorhanden, liegt keine MDR-relevanmt vor." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://gematik.de/fhir/isik/StructureDefinition/ISiKMDRRelevanzFormularExtension" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.modifierExtension:MDR-Relevant.value[x]">
      <path value="QuestionnaireResponse.modifierExtension.value[x]" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.identifier">
      <path value="QuestionnaireResponse.identifier" />
      <short value="eindeutiger Identifier der FormularDaten" />
      <comment value="**Begründung MS:**&#xA;  Ein vom FormularRenderer vergebener, eindeutiger Identifier kann von weiterverarbeitenden Systemen genutzt werden, um Dubletten zu erkennen." />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.questionnaire">
      <path value="QuestionnaireResponse.questionnaire" />
      <short value="Bezug zur FormularDefinition inkl. Version" />
      <comment value="Bei der Angabe der Canonical, sollte die Version der FormularDefinition, welche bei der Erstellung die Grundlage gebildet hat, angegeben sein.&#xA;  **Begründung MS:** &#xA;  Der Bezug zur Formulardefinition kann für die Interpretation und Darstellung der Formulardaten relevant sein." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.questionnaire.extension">
      <path value="QuestionnaireResponse.questionnaire.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="QuestionnaireResponse.questionnaire.extension:questionnaireDisplay">
      <path value="QuestionnaireResponse.questionnaire.extension" />
      <sliceName value="questionnaireDisplay" />
      <short value="Titel/Überschrift der zugrunde liegenden FormularDefinition" />
      <comment value="Wird für die Darstellung und Auffindbarkeit der FormularDaten benötigt." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/display" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.status">
      <path value="QuestionnaireResponse.status" />
      <short value="Status" />
      <comment value="**Begründung Pflichtfeld:**&#xA;  Bei der Verarbeitung von FormularDaten ist es wichtig, den Status zu beachten. Falls die Instanz noch nicht `completed` ist, sollte von einer Weiterverarbeitung abgesehen werden." />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.subject">
      <path value="QuestionnaireResponse.subject" />
      <short value="Subject (Patient), über das in diesem Formular berichtet wird." />
      <comment value="**Begründung Pflichtfeld:**  &#xA;  Zur Vereinfachung des Workflows werden zunächst nur Formulare mit Patientenbezug zugelassen.  &#xA;  Diese Anforderung kann in künftigen Ausbaustufen gelockert werden." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.subject.reference">
      <path value="QuestionnaireResponse.subject.reference" />
      <short value="Patienten-Link" />
      <comment value="**Begründung MS:** Die Verlinkung auf eine Patienten-Ressource dient der technischen Zuordnung der Dokumentation zu einem Patienten und ermöglicht wichtige API-Funktionen wie verkettete Suche, (Reverse-)Include etc.&#xA;Im ISik Kontext MUSS die referenzierte Ressource konform zu [ISiKPatient](https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient) sein.&#xA;Jenseits von ISiK KÖNNEN weitere Instanzen mit anderen Profilen referenziert werden." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.authored">
      <path value="QuestionnaireResponse.authored" />
      <short value="Datum der FormularDaten" />
      <comment value="**Begründung Pflichtfeld:** &#xA;  Relevant für die Suche und zeitliche Einordnung der FormularDaten" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.author">
      <path value="QuestionnaireResponse.author" />
      <short value="Ersteller des Fromulars" />
      <comment value="Auch wenn hier keine Einschränkung vorgenommen wurde, ist zu empfehlen, hier die ausfüllende Person (Patient/Practitioner) zu referenzieren und nicht nur die Software (Device), mit der das Formular ausgefüllt wurde.&#xA;  **Begründung MS:**&#xA;  In den meisten Fällen ist relevant, wer Formulardaten erfasst hat." />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item">
      <path value="QuestionnaireResponse.item" />
      <short value="Formularelement" />
      <comment value="**Begründung MS:** Es können beliebig viele Formularelemente hier abgebildet werden." />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.linkId">
      <path value="QuestionnaireResponse.item.linkId" />
      <short value="Eindeutige ID des Formularelement" />
      <comment value="**Begründung Pflichtfeld:**&#xA;    Die LinkId ordnet die Information der Antwort einer Frage in der FormularDefinition zu und ist aus dem Grund zur Interpretation der Antwort unablässig." />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.text">
      <path value="QuestionnaireResponse.item.text" />
      <short value="Frage, die beantwortet wurde" />
      <comment value="**Begründung Pflichtfeld:**  &#xA;    Die FormularDaten sollte pro Antwort auch die Fragestellung mitführen, &#xA;    damit die Daten auch von Systemen/Anwendern interpretiert werden können, &#xA;    die *keinen* Zugriff auf die zugrunde liegende FormularDefinition haben." />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.answer">
      <path value="QuestionnaireResponse.item.answer" />
      <short value="Antwort" />
      <comment value="**Begründung MS:**&#xA;    Die erfasste Antwort MUSS stets vorhanden sein." />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.answer.value[x]">
      <path value="QuestionnaireResponse.item.answer.value[x]" />
      <short value="Inhalt der Antwort" />
      <comment value="**Begründung MS:**&#xA;      Der Inhalt der jeweilig erfassten Antwort MUSS stehts vorhanden sein." />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.answer.item">
      <path value="QuestionnaireResponse.item.answer.item" />
      <short value="Untergeordnetes Item" />
      <comment value="**Begründung MS:**  &#xA;   Items können beliebig verschachtelt und zu Gruppen zusammengefasst werden, um komplexere und umfangreichere Formulare zu strukturieren." />
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.item.item">
      <path value="QuestionnaireResponse.item.item" />
      <short value="Untergeordnetes Item" />
      <comment value="**Begründung MS:**  &#xA;   Items können beliebig verschachtelt und zu Gruppen zusammengefasst werden, um komplexere und umfangreichere Formulare zu strukturieren." />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>