<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ISiKNachricht" />
  <url value="https://gematik.de/fhir/isik/v3/Terminplanung/StructureDefinition/ISiKNachricht" />
  <version value="3.1.1" />
  <name value="ISiKNachricht" />
  <status value="active" />
  <experimental value="false" />
  <date value="2025-12-01" />
  <publisher value="gematik GmbH" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Communication" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Communication" />
  <derivation value="constraint" />
  <differential>
    <element id="Communication.inResponseTo">
      <path value="Communication.inResponseTo" />
      <mustSupport value="true" />
    </element>
    <element id="Communication.status">
      <path value="Communication.status" />
      <mustSupport value="true" />
    </element>
    <element id="Communication.subject">
      <path value="Communication.subject" />
      <comment value="Im ISIK-Kontext MUSS der referenzierte Patient konform zum [ISIKPatient](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient) des Basismoduls sein." />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Communication.sent">
      <path value="Communication.sent" />
      <mustSupport value="true" />
    </element>
    <element id="Communication.recipient">
      <path value="Communication.recipient" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <comment value="Im ISIK-Kontext MUSS die referenzierte Practitioner-Ressource konform zum [ISiKPersonImGesundheitsberuf](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf) des Basismoduls sein." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Communication.recipient.identifier">
      <path value="Communication.recipient.identifier" />
      <mustSupport value="true" />
    </element>
    <element id="Communication.recipient.display">
      <path value="Communication.recipient.display" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Communication.recipient:ISiKRecipient">
      <path value="Communication.recipient" />
      <sliceName value="ISiKRecipient" />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/HealthcareService" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Communication.recipient:ISiKRecipient.reference">
      <path value="Communication.recipient.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Communication.sender">
      <path value="Communication.sender" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Communication.sender.reference">
      <path value="Communication.sender.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Communication.payload">
      <path value="Communication.payload" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Communication.payload.content[x]">
      <path value="Communication.payload.content[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Communication.payload.content[x]:contentString">
      <path value="Communication.payload.content[x]" />
      <sliceName value="contentString" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Communication.payload.content[x]:contentAttachment">
      <path value="Communication.payload.content[x]" />
      <sliceName value="contentAttachment" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Attachment" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Communication.payload.content[x]:contentAttachment.contentType">
      <path value="Communication.payload.content[x].contentType" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Communication.payload.content[x]:contentAttachment.data">
      <path value="Communication.payload.content[x].data" />
      <max value="0" />
    </element>
    <element id="Communication.payload.content[x]:contentAttachment.url">
      <path value="Communication.payload.content[x].url" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Communication.payload.content[x]:contentAttachment.creation">
      <path value="Communication.payload.content[x].creation" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>