{
  "resourceType": "StructureDefinition",
  "id": "atf-message-bundle",
  "url": "https://gematik.de/fhir/atf/StructureDefinition/atf-message-bundle",
  "version": "1.4.1",
  "name": "BundleAppTransportFramework",
  "title": "MessageBundle für den Nachrichtentransport",
  "status": "active",
  "experimental": false,
  "date": "2025-07-31",
  "publisher": "gematik GmbH",
  "description": "Bundle zum Zusammenfasssen der FHIR-Instanzen, welche in innerhalb dieses UseCases zusammengefasst werden sollen.",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "Bundle",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Bundle",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Bundle",
        "path": "Bundle",
        "constraint": [
          {
            "key": "resolve-references-in-bundle",
            "severity": "error",
            "human": "Alle Referenzen innerhalb eines Bundles müssen aufgelöst werden können",
            "expression": "Bundle.entry.resource.where($this.is(Bundle).not()).descendants().ofType(Reference).reference.where($this.startsWith('#').not()).all((%resource.entry.fullUrl.join('|') + '|').contains($this + '|'))",
            "source": "https://gematik.de/fhir/atf/StructureDefinition/atf-message-bundle"
          }
        ]
      },
      {
        "id": "Bundle.identifier",
        "path": "Bundle.identifier",
        "min": 1
      },
      {
        "id": "Bundle.identifier.system",
        "path": "Bundle.identifier.system",
        "min": 1,
        "fixedUri": "urn:ietf:rfc:3986"
      },
      {
        "id": "Bundle.identifier.value",
        "path": "Bundle.identifier.value",
        "short": "Eindeutige UUID",
        "min": 1
      },
      {
        "id": "Bundle.type",
        "path": "Bundle.type",
        "fixedCode": "message"
      },
      {
        "id": "Bundle.timestamp",
        "path": "Bundle.timestamp",
        "min": 1
      },
      {
        "id": "Bundle.entry",
        "path": "Bundle.entry",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "resource"
            }
          ],
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Bundle.entry:MessageHeader",
        "path": "Bundle.entry",
        "sliceName": "MessageHeader",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Bundle.entry:MessageHeader.fullUrl",
        "path": "Bundle.entry.fullUrl",
        "min": 1
      },
      {
        "id": "Bundle.entry:MessageHeader.resource",
        "path": "Bundle.entry.resource",
        "min": 1,
        "type": [
          {
            "code": "MessageHeader",
            "profile": [
              "https://gematik.de/fhir/atf/StructureDefinition/atf-message-header"
            ]
          }
        ]
      }
    ]
  }
}