PackagesCanonicalsLogsProblems
    Packages
    de.gematik.isik@5.1.0
    https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur
{
  "description": null,
  "_filename": "ISIKProzedur-broken.json",
  "package_name": "de.gematik.isik",
  "date": "2025-06-05",
  "derivation": "constraint",
  "publisher": "gematik GmbH (test-modified)",
  "fhirVersion": "4.0.1",
  "name": "ISiKProzedurBrokenForQATest",
  "abstract": false,
  "type": "Procedure",
  "experimental": "true",
  "resourceType": "StructureDefinition",
  "title": null,
  "package_version": "5.1.0",
  "status": "active",
  "id": "cac5ef69-5f2e-461b-be7b-0c2b3b2d24d8",
  "kind": "resource",
  "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur",
  "version": "5.0.0-rc2-test-broken",
  "differential": {
    "element": [ {
      "id": "Procedure",
      "path": "Procedure",
      "constraint": [ {
        "key": "proc-ISiK-1",
        "human": "Falls die Prozedur per OPS kodiert wird, MUSS eine SNOMED-CT kodierte Category abgebildet werden",
        "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur",
        "severity": "error",
        "expression": "code.coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists() implies category.coding.where(system = 'http://snomed.info/sct').exists()"
      }, {
        "key": "proc-ISiK-2",
        "human": "Falls eine codierte Prozedur vorliegt MUSS eine kodierte Category abgebildet werden",
        "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur",
        "severity": "error",
        "expression": "code.coding.exists() implies category.coding.exists()"
      } ]
    }, {
      "id": "Procedure.extension",
      "path": "Procedure.extension",
      "mustSupport": true
    }, {
      "id": "Procedure.extension:Dokumentationsdatum",
      "max": "1",
      "min": 0,
      "path": "Procedure.extension",
      "type": [ {
        "code": "Extension",
        "profile": [ "http://fhir.de/StructureDefinition/ProzedurDokumentationsdatum" ]
      } ],
      "sliceName": "Dokumentationsdatum",
      "mustSupport": true
    }, {
      "id": "Procedure.status",
      "path": "Procedure.status",
      "comment": "Zeigt den aktuellen Status der Prozedur an. Implementer Hinweis entfernt für Test.",
      "mustSupport": true
    }, {
      "id": "Procedure.category",
      "path": "Procedure.category",
      "short": "Kategorie",
      "mustSupport": true
    }, {
      "id": "Procedure.category.coding",
      "path": "Procedure.category.coding",
      "slicing": {
        "rules": "open",
        "discriminator": [ {
          "path": "system",
          "type": "pattern"
        } ]
      }
    }, {
      "id": "Procedure.category.coding:SNOMED-CT",
      "max": "1",
      "min": 0,
      "path": "Procedure.category.coding",
      "type": [ {
        "code": "Coding",
        "profile": [ "https://gematik.de/fhir/isik/StructureDefinition/ISiKSnomedCTCoding" ]
      } ],
      "binding": {
        "strength": "preferred",
        "valueSet": "https://gematik.de/fhir/isik/ValueSet/ProzedurenKategorieSCT"
      },
      "sliceName": "SNOMED-CT",
      "mustSupport": true
    }, {
      "id": "Procedure.code",
      "min": 1,
      "path": "Procedure.code",
      "short": "Prozeduren-Code",
      "comment": "Prozeduren SOLLEN mindestens entweder mit einem OPS-Code oder einem SNOMED-Code codiert werden. (Testvariante)",
      "constraint": [ {
        "key": "sct-ops-1",
        "human": "Falls die Prozedur kodiert vorliegt, SOLL mindestens ein OPS oder SNOMED-CT Code angegeben werden.",
        "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur",
        "severity": "error",
        "expression": "coding.exists() implies coding.where(system = 'http://snomed.info/sct').exists() or coding.where(system = 'http://fhir.de/CodeSystem/bfarm/ops').exists()"
      }, {
        "key": "proc-ISiK-3",
        "human": "Entweder MUSS eine kodierte Prozedur vorliegen oder eine textuelle Beschreibung. Stattdessen nur Extensions hinzuzufügen (vgl. https://www.hl7.org/fhir/element.html - ele-1), ist explizit nicht erlaubt.",
        "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKProzedur",
        "severity": "error",
        "expression": "coding.exists().not() implies text.exists()"
      } ],
      "mustSupport": true
    }, {
      "id": "Procedure.code.coding",
      "path": "Procedure.code.coding",
      "short": "Codierte Darstellung der Prozedur",
      "slicing": {
        "rules": "open",
        "discriminator": [ {
          "path": "system",
          "type": "pattern"
        } ]
      }
    }, {
      "path": "Procedure.code.coding",
      "min": 0,
      "short": "OPS-codierte Darstellung der Prozedur",
      "type": [ {
        "code": "Coding",
        "profile": [ "http://fhir.de/StructureDefinition/CodingOPS" ]
      } ],
      "mustSupport": true,
      "sliceName": "OPS",
      "binding": {
        "strength": "required",
        "valueSet": "http://fhir.de/ValueSet/bfarm/ops"
      },
      "max": "1",
      "id": "Procedure.code.coding:OPS"
    }, {
      "id": "Procedure.code.coding:OPS.extension:Seitenlokalisation",
      "path": "Procedure.code.coding.extension",
      "short": "Seitenlokalisation",
      "comment": "**Testfall:** Seitenlokalisation bleibt, dient zur Variation",
      "sliceName": "Seitenlokalisation",
      "mustSupport": true
    }, {
      "id": "Procedure.code.coding:OPS.system",
      "path": "Procedure.code.coding.system",
      "short": "Namensraum des Prozeduren-Codes",
      "comment": "Hier ist stets der Wert `http://fhir.de/CodeSystem/bfarm/ops` anzugeben.",
      "mustSupport": true
    }, {
      "id": "Procedure.code.coding:OPS.version",
      "path": "Procedure.code.coding.version",
      "short": "Die Jahresversion des OPS Kataloges. Angegeben wird immer die vierstellige Jahreszahl (z.B. `2017`)",
      "comment": "**Test:** Pflichtfeldabsicht bleibt (Variation).",
      "mustSupport": true
    }, {
      "id": "Procedure.code.coding:OPS.code",
      "path": "Procedure.code.coding.code",
      "short": "OPS-Code",
      "comment": "Hier ist der OPS-Code ohne jegliche Zusatzkennzeichen (z.B. Seitenlokalisation) oder Versionsnummern anzugeben.",
      "mustSupport": true
    }, {
      "path": "Procedure.code.coding",
      "min": 0,
      "short": "SNOMED-codierte Darstellung der Prozedur",
      "type": [ {
        "code": "Coding",
        "profile": [ "https://gematik.de/fhir/isik/StructureDefinition/ISiKSnomedCTCoding" ]
      } ],
      "mustSupport": true,
      "sliceName": "SNOMED-CT",
      "binding": {
        "strength": "required",
        "valueSet": "https://gematik.de/fhir/isik/ValueSet/ProzedurenCodesSCT"
      },
      "max": "1",
      "id": "Procedure.code.coding:SNOMED-CT"
    }, {
      "id": "Procedure.code.text",
      "path": "Procedure.code.text",
      "short": "Freitextiche Beschreibung der Prozedur",
      "mustSupport": true
    }, {
      "id": "Procedure.subject",
      "path": "Procedure.subject",
      "short": "Patientenbezug",
      "mustSupport": true
    }, {
      "id": "Procedure.subject.reference",
      "min": 1,
      "path": "Procedure.subject.reference",
      "short": "Patienten-Link",
      "comment": "Die Verlinkung auf eine Patienten-Ressource dient der technischen Zuordnung der Dokumentation zu einem Patienten.",
      "mustSupport": true
    }, {
      "id": "Procedure.encounter",
      "path": "Procedure.encounter",
      "short": "Aufenthaltsbezug",
      "mustSupport": true
    }, {
      "id": "Procedure.encounter.reference",
      "min": 1,
      "path": "Procedure.encounter.reference",
      "short": "Encounter-Link",
      "comment": "Die Zuordnung MUSS auf einen Encounter der Ebene 'Abteilungskontakt' erfolgen.",
      "mustSupport": true
    }, {
      "id": "Procedure.performed[x]",
      "min": 1,
      "path": "Procedure.performed[x]",
      "type": [ {
        "code": "dateTime"
      }, {
        "code": "Period"
      } ],
      "short": "Durchführungsdatum oder -Zeitraum",
      "comment": "Es muss mindestens entweder ein (partielles) Durchführungsdatum oder der Beginn des Durchführungszeitraumes angegeben werden.",
      "mustSupport": true
    }, {
      "id": "Procedure.note",
      "path": "Procedure.note",
      "short": "Notizen",
      "comment": "Ergänzende Hinweise und Anmerkungen zur Prozedur",
      "mustSupport": true
    }, {
      "id": "Procedure.fake0",
      "max": "0",
      "min": 0,
      "path": "Procedure.fake0",
      "type": [ {
        "code": "string"
      } ],
      "short": "Test-Element mit 0..0 und mustSupport (soll Fehler erzeugen)",
      "comment": "Dieses Element hat min=0 max=0 und dennoch mustSupport=true — absichtlicher Verstoß gegen F2.2.",
      "mustSupport": true
    }, {
      "id": "Procedure.someRequiredElement",
      "max": "1",
      "min": 1,
      "path": "Procedure.someRequiredElement",
      "type": [ {
        "code": "string"
      } ],
      "short": "Element mit eingeschränkter Kardinalität aber ohne mustSupport",
      "comment": "Dieses Element hat min=1 max=1, wurde **absichtlich** nicht als mustSupport markiert, um F2.1 zu verletzen."
    }, {
      "id": "Procedure.brokenMustSupportShortMissing",
      "max": "1",
      "min": 0,
      "path": "Procedure.brokenMustSupportShortMissing",
      "type": [ {
        "code": "string"
      } ],
      "comment": "Dieses mustSupport-Element hat kein 'short' — sollte eine Warnung auslösen (F1.2).",
      "mustSupport": true
    }, {
      "id": "Procedure.brokenMustSupportCommentMissing",
      "max": "1",
      "min": 0,
      "path": "Procedure.brokenMustSupportCommentMissing",
      "type": [ {
        "code": "string"
      } ],
      "short": "Broken - Kommentar fehlt",
      "mustSupport": true
    } ]
  },
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Procedure"
}