<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ISiKSubscription" />
  <url value="https://gematik.de/fhir/isik/StructureDefinition/ISiKSubscription" />
  <version value="5.1.2" />
  <name value="ISiKSubscription" />
  <title value="ISiK Subscription" />
  <status value="active" />
  <experimental value="false" />
  <date value="2026-04-30" />
  <publisher value="gematik GmbH" />
  <description value="ISiK Subscription  &#xA;### Motivation&#xA;&#xA;Subscription ist eine FHIR Ressource, um als Client-System Benachrichtigungen über Events auf dem FHIR Server anzufragen. Der Subscription Mechanismus in FHIR R4 ist nicht geeignet, um alle relevanten Events (hier im Speziellen das Mergen von Patienten) zu unterstützen. Daher basiert das ISiK Subscription-Profil auf dem [Subscriptions R5 Backport Profil von HL7](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription.html).&#xA;&#xA;Um als Subsystem über ein Subsription-Event informiert zu werden, KANN der FHIR Subscription Mechanismus gemäß des [Subscriptions R5 Backport IGs von HL7](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/index.html) genutzt werden.&#xA;&#xA;### Kompatibilität&#xA;&#xA;Das Profil ISiKSubscription basiert auf dem [Backport-Subscription Profil](https://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition-backport-subscription.html).&#xA;Der [SubscriptionStatus](https://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition-backport-subscription-status-r4.html), sowie das [Subscription Notification Bundle](https://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition-backport-subscription-notification-r4.html) werden unverändert direkt aus dem [Subscriptions R5 Backport IG](https://hl7.org/fhir/uv/subscriptions-backport/index.html) genutzt.  &#xA;&#xA;Hinweise zu Inkompatibilitäten können über die [Portalseite](https://service.gematik.de/servicedesk/customer/portal/16) gemeldet werden." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Subscription" />
  <baseDefinition value="http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription" />
  <derivation value="constraint" />
  <differential>
    <element id="Subscription.id">
      <path value="Subscription.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="Subscription.meta.versionId">
      <path value="Subscription.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="Subscription.meta.lastUpdated">
      <path value="Subscription.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="Subscription.status">
      <path value="Subscription.status" />
      <short value="Status" />
      <comment value="**Bedeutung:** Der Status der Subscription, der den Serverstatus der Subscription angibt. &#xA;  Neue Subscriptions werden immer mit dem Status `requested` an den Server übergeben. &#xA;  Der Server ändert im Anschluss den Status auf `active` oder im Fehlerfall auf `error`." />
      <mustSupport value="true" />
    </element>
    <element id="Subscription.reason">
      <path value="Subscription.reason" />
      <short value="Grund der Subscription" />
      <comment value="**Bedeutung:** Beschreibung wieso diese Subscription erstellt wurde." />
      <mustSupport value="true" />
    </element>
    <element id="Subscription.criteria">
      <path value="Subscription.criteria" />
      <short value="Canonical URL des SubscriptionTopic welches man abonnieren möchte." />
      <comment value="Enthält eines der in ISiK vereinbarten Subsription Topics." />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://gematik.de/fhir/isik/ValueSet/ISiKSubscriptionTopicVS" />
      </binding>
    </element>
    <element id="Subscription.criteria.extension:filterCriteria">
      <path value="Subscription.criteria.extension" />
      <sliceName value="filterCriteria" />
      <short value="Filterkriterium." />
      <comment value="**Bedeutung:** Filterkriterium für die Subscription. Dieses Feld ist optional und kann genutzt werden, um die Subscription auf bestimmte Events zu filtern." />
    </element>
    <element id="Subscription.criteria.extension:filterCriteria.value[x]">
      <path value="Subscription.criteria.extension.value[x]" />
      <mustSupport value="true" />
    </element>
    <element id="Subscription.channel">
      <path value="Subscription.channel" />
      <short value="Kommunikationskanal" />
      <comment value="**Bedeutung:** Kommunikationskanal über den die Subscription Benachrichtigungen gesendet werden sollen." />
      <mustSupport value="true" />
    </element>
    <element id="Subscription.channel.extension:heartbeatPeriod">
      <path value="Subscription.channel.extension" />
      <sliceName value="heartbeatPeriod" />
      <short value="Heartbeat-Intervall" />
      <comment value="**Bedeutung:** Intervall in dem der Server prüft, ob der Kommunikationskanal noch aktiv ist." />
      <mustSupport value="true" />
    </element>
    <element id="Subscription.channel.extension:heartbeatPeriod.value[x]">
      <path value="Subscription.channel.extension.value[x]" />
      <mustSupport value="true" />
    </element>
    <element id="Subscription.channel.type">
      <path value="Subscription.channel.type" />
      <short value="Typ des Kommunikationskanals" />
      <comment value="**Bedeutung:** Der Typ des Kommunikationskanals, über den Subscription-Benachrichtigungen gesendet werden sollen.  &#xA;    In ISiK MUSS der Wert `rest-hook` unterstützt werden, weitere Werte KÖNNEN unterstützt werden." />
      <mustSupport value="true" />
    </element>
    <element id="Subscription.channel.type.extension:customChannelType">
      <path value="Subscription.channel.type.extension" />
      <sliceName value="customChannelType" />
      <short value="Custom Channel Type" />
      <comment value="**Bedeutung:** Custom Channel Type welcher in ISiK aktuell nicht unterstützt wird." />
      <max value="0" />
    </element>
    <element id="Subscription.channel.endpoint">
      <path value="Subscription.channel.endpoint" />
      <short value="Endpunkt" />
      <comment value="**Bedeutung:** Adresse des Kommunikationskanals/ Endpunkts, an den Subscription-Benachrichtigungen gesendet werden sollen. Dies ist nur für rest-hook Subscriptions relevant." />
      <mustSupport value="true" />
    </element>
    <element id="Subscription.channel.payload">
      <path value="Subscription.channel.payload" />
      <short value="Format der Nutzdaten" />
      <comment value="**Bedeutung:** Format in dem Subscription Notifications versendet werden sollen (JSON oder XML)." />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://gematik.de/fhir/isik/ValueSet/FhirMimeTypeVS" />
      </binding>
    </element>
    <element id="Subscription.channel.payload.extension:content">
      <path value="Subscription.channel.payload.extension" />
      <sliceName value="content" />
      <short value="Inhalt der Nutzdaten" />
      <comment value="**Bedeutung:** Welcher Ressourceninhalt in der Nutzlast der Benachrichtigung geliefert werden soll.  &#xA;      Zur Auswahl stehen eine leere Nutzlast (`empty`), nur die Ressourcen-id (`id-only`) oder der gesamte Inhalt der Ressource (`full-resource`)." />
    </element>
    <element id="Subscription.channel.header">
      <path value="Subscription.channel.header" />
      <short value="Falls eine REST-Enpunkt einen Authorization-Header benötigt, kann dieser hier gesetzt werden" />
      <comment value="**Bedeutung:** http-Header welcher dazu genutzt werden kann einen Authorization-header zu setzen. Dies ist nur für rest-hook Subscriptions relevant.  &#xA;    **Hinweise:** ACHTUNG: dieses Datenfeld muss bei READ-Interaktionen maskiert werden! Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html)" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>