<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="BackportSubscriptionStatusR4Fixed" />
  <url value="https://gematik.de/fhir/isik/StructureDefinition/BackportSubscriptionStatusR4Fixed" />
  <version value="1.1.0" />
  <name value="BackportSubscriptionStatusR4Fixed" />
  <title value="R4 Backported R5 SubscriptionStatus" />
  <status value="active" />
  <experimental value="false" />
  <date value="2023-01-11T15:34:32+11:00" />
  <publisher value="HL7 International / FHIR Infrastructure" />
  <contact>
    <name value="HL7 FHIR Infrastructure WG" />
    <telecom>
      <system value="url" />
      <value value="https://hl7.org/Special/committees/fiwg" />
    </telecom>
  </contact>
  <contact>
    <name value="Gino Canessa" />
    <telecom>
      <system value="email" />
      <value value="mailto:gino.canessa@microsoft.com" />
    </telecom>
  </contact>
  <contact>
    <name value="Eric Haas" />
    <telecom>
      <system value="email" />
      <value value="mailto:ehaas@healthedatainc.com" />
    </telecom>
  </contact>
  <description value="Profil auf der FHIR-R4-Resource Parameters zur Unterstützung themenbasierter Subscription-Benachrichtigungen in R4.&#xA;&#xA;Dieses Profil ist funktional identisch mit `http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription-status-r4`.  &#xA;Die Version 1.1.0 des offiziellen Profils weist jedoch technische Fehler auf. Daher wurde es hier als Workaround erneut implementiert.&#xA;Diese lokale Definition wird durch das offizielle `backport-subscription-status-r4` Profil ersetzt, sobald eine korrigierte Version veröffentlicht wurde." />
  <jurisdiction>
    <coding>
      <system value="http://unstats.un.org/unsd/methods/m49/m49.htm" />
      <code value="001" />
      <display value="World" />
    </coding>
  </jurisdiction>
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Parameters" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Parameters" />
  <derivation value="constraint" />
  <differential>
    <element id="Parameters">
      <path value="Parameters" />
      <short value="Parameter containing subscription status information" />
    </element>
    <element id="Parameters.id">
      <path value="Parameters.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="Parameters.meta.versionId">
      <path value="Parameters.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="Parameters.meta.lastUpdated">
      <path value="Parameters.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="Parameters.implicitRules">
      <path value="Parameters.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="Parameters.parameter">
      <path value="Parameters.parameter" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="name" />
        </discriminator>
        <description value="Slice on parameter name" />
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <short value="Slices containing subscription status information" />
      <min value="3" />
    </element>
    <element id="Parameters.parameter:subscription">
      <path value="Parameters.parameter" />
      <sliceName value="subscription" />
      <short value="Parameter containing the reference to a subscription" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:subscription.name">
      <path value="Parameters.parameter.name" />
      <short value="Slice discriminator: the reference to a subscription" />
      <fixedString value="subscription" />
    </element>
    <element id="Parameters.parameter:subscription.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <short value="Reference to the Subscription responsible for this notification" />
      <definition value="The reference to the Subscription which generated this notification." />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Subscription" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:topic">
      <path value="Parameters.parameter" />
      <sliceName value="topic" />
      <short value="Parameter containing the canonical reference to a subscription topic" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:topic.name">
      <path value="Parameters.parameter.name" />
      <short value="Slice discriminator: the canonical reference to a subscription topic" />
      <fixedString value="topic" />
    </element>
    <element id="Parameters.parameter:topic.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <short value="Canonical reference to the SubscriptionTopic this notification relates to" />
      <definition value="Canonical reference to the SubscriptionTopic for the Subscription which generated this notification." />
      <comment value="This value SHOULD NOT be present when using `empty` payloads, MAY be present when using id-only payloads, and SHOULD be present when using `full-resource` payloads." />
      <type>
        <code value="canonical" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:status">
      <path value="Parameters.parameter" />
      <sliceName value="status" />
      <short value="Parameter containing the subscription status" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:status.name">
      <path value="Parameters.parameter.name" />
      <short value="Slice discriminator: the subscription status" />
      <fixedString value="status" />
    </element>
    <element id="Parameters.parameter:status.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <short value="Status of the subscription when this notification was generated" />
      <definition value="The status of the subscription, which marks the server state for managing the subscription." />
      <min value="1" />
      <type>
        <code value="code" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/subscription-status" />
      </binding>
    </element>
    <element id="Parameters.parameter:type">
      <path value="Parameters.parameter" />
      <sliceName value="type" />
      <short value="Parameter containing the type of event for this notification" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:type.name">
      <path value="Parameters.parameter.name" />
      <short value="Slice discriminator: the type of event for this notification" />
      <fixedString value="type" />
    </element>
    <element id="Parameters.parameter:type.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <short value="The type of event being conveyed with this notificaiton." />
      <min value="1" />
      <type>
        <code value="code" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/subscription-notification-type" />
      </binding>
    </element>
    <element id="Parameters.parameter:eventsSinceSubscriptionStart">
      <path value="Parameters.parameter" />
      <sliceName value="eventsSinceSubscriptionStart" />
      <short value="Parameter containing the number of events since this subscription started" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:eventsSinceSubscriptionStart.name">
      <path value="Parameters.parameter.name" />
      <short value="Slice discriminator: the number of events since this subscription started" />
      <fixedString value="events-since-subscription-start" />
    </element>
    <element id="Parameters.parameter:eventsSinceSubscriptionStart.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <short value="Events since the Subscription was created" />
      <definition value="The total number of actual events which have been generated since the Subscription was created (inclusive of this notification) - regardless of how many have been successfully communicated. This number is NOT incremented for handshake and heartbeat notifications." />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:notificationEvent">
      <path value="Parameters.parameter" />
      <sliceName value="notificationEvent" />
      <short value="Parameter containing the event notification details" />
      <min value="0" />
      <max value="*" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:notificationEvent.name">
      <path value="Parameters.parameter.name" />
      <short value="Parameter containing notification event details" />
      <fixedString value="notification-event" />
    </element>
    <element id="Parameters.parameter:notificationEvent.part">
      <path value="Parameters.parameter.part" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="name" />
        </discriminator>
        <description value="Slice on notification event parameter name" />
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:notificationEvent.part:eventNumber">
      <path value="Parameters.parameter.part" />
      <sliceName value="eventNumber" />
      <short value="Parameter containing the event number" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:notificationEvent.part:eventNumber.name">
      <path value="Parameters.parameter.part.name" />
      <short value="Slice discriminator: the event number" />
      <fixedString value="event-number" />
    </element>
    <element id="Parameters.parameter:notificationEvent.part:eventNumber.value[x]">
      <path value="Parameters.parameter.part.value[x]" />
      <short value="Event number" />
      <definition value="The sequential number of this event in this subscription context." />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:notificationEvent.part:eventTimestamp">
      <path value="Parameters.parameter.part" />
      <sliceName value="eventTimestamp" />
      <short value="Parameter containing the event timestamp" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:notificationEvent.part:eventTimestamp.name">
      <path value="Parameters.parameter.part.name" />
      <short value="Slice discriminator: the event timestamp" />
      <fixedString value="timestamp" />
    </element>
    <element id="Parameters.parameter:notificationEvent.part:eventTimestamp.value[x]">
      <path value="Parameters.parameter.part.value[x]" />
      <short value="The instant this event occurred" />
      <definition value="The actual time this event occured on the server." />
      <type>
        <code value="instant" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:notificationEvent.part:eventFocus">
      <path value="Parameters.parameter.part" />
      <sliceName value="eventFocus" />
      <short value="Parameter containing the event focus" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:notificationEvent.part:eventFocus.name">
      <path value="Parameters.parameter.part.name" />
      <short value="Slice discriminator: the event focus" />
      <fixedString value="focus" />
    </element>
    <element id="Parameters.parameter:notificationEvent.part:eventFocus.value[x]">
      <path value="Parameters.parameter.part.value[x]" />
      <short value="The focus of this event" />
      <definition value="The focus of this event. While this will usually be a reference to the focus resource of the event, it MAY contain a reference to a non-FHIR object." />
      <type>
        <code value="Reference" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:notificationEvent.part:eventAdditionalContext">
      <path value="Parameters.parameter.part" />
      <sliceName value="eventAdditionalContext" />
      <short value="Parameter containing additional context for this event" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:notificationEvent.part:eventAdditionalContext.name">
      <path value="Parameters.parameter.part.name" />
      <short value="Slice discriminator: additional context for this event" />
      <fixedString value="additional-context" />
    </element>
    <element id="Parameters.parameter:notificationEvent.part:eventAdditionalContext.value[x]">
      <path value="Parameters.parameter.part.value[x]" />
      <short value="Additional context for this event" />
      <definition value="Additional context information for this event. Generally, this will contain references to additional resources included with the event (e.g., the Patient relevant to an Encounter), however it MAY refer to non-FHIR objects." />
      <type>
        <code value="Reference" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:error">
      <path value="Parameters.parameter" />
      <sliceName value="error" />
      <short value="Parameter containing errors on the subscription" />
      <min value="0" />
      <max value="*" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:error.name">
      <path value="Parameters.parameter.name" />
      <short value="Slice discriminator: errors on the subscription" />
      <fixedString value="error" />
    </element>
    <element id="Parameters.parameter:error.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <short value="An error on the subscription" />
      <definition value="A record of errors that occurred when the server processed a notification." />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>