{
"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"
}