PackagesCanonicalsLogsProblems
    Packages
    de.gematik.erp-servicerequest@1.2.0
    https://gematik.de/fhir/erp-servicerequest/StructureDefinition/erp-service-request-message-container
{
  "description": "Bundle, welches alle Ressourcen einer Nachricht enthält",
  "_filename": "StructureDefinition-erp-service-request-message-container.json",
  "package_name": "de.gematik.erp-servicerequest",
  "date": "2025-07-31",
  "derivation": "constraint",
  "publisher": "gematik GmbH",
  "fhirVersion": "4.0.1",
  "name": "ERPServiceRequestMessageContainer",
  "abstract": false,
  "type": "Bundle",
  "experimental": "false",
  "resourceType": "StructureDefinition",
  "title": "ERP Service Request Nachrichten-Container",
  "package_version": "1.2.0",
  "status": "active",
  "id": "c4486a87-3959-4244-ba11-a9ef4f09a606",
  "kind": "resource",
  "url": "https://gematik.de/fhir/erp-servicerequest/StructureDefinition/erp-service-request-message-container",
  "version": "1.2.0",
  "differential": {
    "element": [ {
      "id": "Bundle",
      "path": "Bundle",
      "constraint": [ {
        "key": "service-request-message-container-1",
        "human": "Wenn die Nachricht eine Kopie ist, muss der Fokus des MessageHeaders ein Bundle sein, andernfalls ein ServiceRequest.",
        "source": "https://gematik.de/fhir/erp-servicerequest/StructureDefinition/erp-service-request-message-container",
        "severity": "error",
        "expression": "(Bundle.entry[0].resource.event.code = 'eRezept_Rezeptanforderung;NachrichtKopie' implies (Bundle.entry[0].resource.focus.all($this.resolve() is Bundle))) and (Bundle.entry[0].resource.event.code != 'eRezept_Rezeptanforderung;NachrichtKopie' implies Bundle.entry[0].resource.focus.all($this.resolve() is ServiceRequest))"
      }, {
        "key": "service-request-message-container-2",
        "human": "Wenn der Prescription-ServiceRequest den Pflegedienst als Referenz enthält, muss der E-Mail-Kontakt vorhanden sein.",
        "source": "https://gematik.de/fhir/erp-servicerequest/StructureDefinition/erp-service-request-message-container",
        "severity": "error",
        "expression": "Bundle.entry.resource.children().reference.where($this.startsWith('ServiceRequest')).all(($this.resolve().supportingInfo.where($this.type = 'Organization').exists() and $this.resolve().code.coding.code = 'prescription-request')implies $this.resolve().supportingInfo.where($this.type = 'Organization').reference.resolve().contact.telecom.where(system = 'email').exists())"
      }, {
        "key": "service-request-message-container-3",
        "human": "Wenn der Prescription-ServiceRequest den Pflegedienst als Referenz enthält, muss die Organisation den entsprechenden Typ haben.",
        "source": "https://gematik.de/fhir/erp-servicerequest/StructureDefinition/erp-service-request-message-container",
        "severity": "error",
        "expression": "Bundle.entry.resource.children().reference.where($this.startsWith('ServiceRequest')).all(($this.resolve().code.coding.code = 'prescription-request' and $this.resolve().supportingInfo.where($this.type = 'Organization').exists()) implies $this.resolve().supportingInfo.where($this.type = 'Organization').reference.resolve().type.coding.code = '1.2.276.0.76.4.245')"
      }, {
        "key": "service-request-message-container-4",
        "human": "Wenn der Prescription-ServiceRequest aktiv ist, nicht Zyto ist und der Anforderer eine Apotheke ist, muss der Pflegedienst für den Erhalt einer Kopie angegeben werden.",
        "source": "https://gematik.de/fhir/erp-servicerequest/StructureDefinition/erp-service-request-message-container",
        "severity": "error",
        "expression": "(Bundle.entry[0].resource.event.code != 'eRezept_ParenteraleZubereitung;Rezeptanfrage') implies Bundle.entry.resource.children().reference.where($this.startsWith('ServiceRequest')).all(($this.resolve().code.coding.code = 'prescription-request' and $this.resolve().status = 'active' and $this.resolve().requester.resolve().type.coding.code = '1.2.276.0.76.4.54') implies $this.resolve().supportingInfo.where($this.type = 'Organization').exists())"
      }, {
        "key": "service-request-message-container-5",
        "human": "Wenn der Dispense-ServiceRequest aktiv ist, muss der Anforderer ein Pflegedienst sein.",
        "source": "https://gematik.de/fhir/erp-servicerequest/StructureDefinition/erp-service-request-message-container",
        "severity": "error",
        "expression": "Bundle.entry.resource.children().reference.where($this.startsWith('ServiceRequest')).all(($this.resolve().code.coding.code = 'dispense-request' and $this.resolve().status = 'active') implies $this.resolve().requester.resolve().type.coding.code = '1.2.276.0.76.4.245')"
      } ]
    }, {
      "id": "Bundle.entry:MessageHeader",
      "path": "Bundle.entry",
      "sliceName": "MessageHeader"
    }, {
      "id": "Bundle.entry:MessageHeader.resource",
      "path": "Bundle.entry.resource",
      "type": [ {
        "code": "MessageHeader",
        "profile": [ "https://gematik.de/fhir/erp-servicerequest/StructureDefinition/erp-service-request-request-header" ]
      } ]
    } ]
  },
  "baseDefinition": "https://gematik.de/fhir/atf/StructureDefinition/atf-message-bundle"
}