<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ISiKFormularDaten" />
  <url value="https://gematik.de/fhir/isik/StructureDefinition/ISiKFormularDaten" />
  <version value="6.0.0-rc" />
  <name value="ISiKFormularDaten" />
  <title value="Ausgefülltes ISiK-Formular" />
  <status value="active" />
  <experimental value="false" />
  <date value="2026-04-02" />
  <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 Spezifikationen-&gt;Extensions 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.implicitRules">
      <path value="QuestionnaireResponse.implicitRules" />
      <short value="Verweis auf die Regeln, nach denen die Ressource erstellt wurde" />
      <comment value="Begründung Constraint: In ISiK existiert kein Use-Case für dieses Element. Da es sich um ein Modifying Element handelt, wird es daher ausgeschlossen.&#xA;  Darüber hinaus werden die Regeln als URI vorgehalten. Dies führt dazu, dass sich hinter der URI eine beliebige Menge an Regeln befinden kann; wodurch  nicht sichergestellt werden kann, dass alle Clients die Regeln korrekt interpretieren können." />
      <max value="0" />
    </element>
    <element id="QuestionnaireResponse.text">
      <path value="QuestionnaireResponse.text" />
      <short value="Menschlich lesbare Zusammenfassung der FormularDaten" />
      <comment value="**Begründung MS:**&#xA;  Wird ein Formular nicht im Kontext der `Datenübermittlung aus Subsystemen` übertragen, wo ein Narrativ im Kontext der Composition gefordert wird, muss an dieser Stelle eine menschenlesbare Zusammenfassung der FormularDaten bereitgestellt werden, damit die Informationen auch ohne Zugriff auf die zugrunde liegende FormularDefinition und die strukturierte Darstellung der Formulardaten interpretiert werden können." />
      <mustSupport value="true" />
    </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:MpFormular">
      <path value="QuestionnaireResponse.modifierExtension" />
      <sliceName value="MpFormular" />
      <short value="Zurgrundeliegendes Formular wird in einem Medizinprodukt eingesetzt" />
      <comment value="**Begründung MS:**&#xA;  In dieser Extension wird die Zweckbestimmung angegeben, welche die FormularDefinition, auf der diese FormularDaten basieren, für die Verwendung innerhalb eines Medizinproduktes identifiziert hat. Sobald diese Extension vorhanden ist, sollten die Konsequenzen für die Anzeige und Verarbeitung der FormularDaten geprüft werden. Ein Formularrenderer, der sich nicht mit dem Thema MDR und Medizinprodukte auseinandergesetzt hat, sollte hier auf das im FHIR-Standard festgelegte Verhalten bei [modifierExtension](http://hl7.org/fhir/extensibility.html#modifierExtension) zurückgreifen." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://gematik.de/fhir/isik/StructureDefinition/ISiKMpFormularExtension" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="QuestionnaireResponse.modifierExtension:MpFormular.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.&#xA;  &#xA;  **Hinweis:** In manchen Fällen kann eine Instanz nicht auf eine existierende Patient-Ressurces referenzieren. In diesen Fällen kann hier auch ein eindeutiger Identifier wie eine KVNR oder eine andere Patienten-ID angegeben werden, um die Zuordnung zu einem Patienten zu ermöglichen." />
      <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.subject.identifier">
      <path value="QuestionnaireResponse.subject.identifier" />
      <short value="eindeutiger Patienten-Identifier (bspw. KVNR)" />
      <comment value="**Begründung MS:** Ein eindeutiger Patienten-Identifier ermöglicht die Zuordnung der FormularDaten zu einem bestimmten Patienten, auch wenn keine direkte Referenz auf eine Patient-Ressource besteht." />
      <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>