diff --git a/.github/workflows/RenderAllDiagrams.yml b/.github/workflows/RenderAllDiagrams.yml
index ab9e6113..af500189 100644
--- a/.github/workflows/RenderAllDiagrams.yml
+++ b/.github/workflows/RenderAllDiagrams.yml
@@ -3,9 +3,7 @@ name: Render All Diagrams
on:
push:
paths:
- - '**/Material/images/src/**/*.puml'
- '**/Material/images/src/**/*.drawio'
- - '**/Material/images/src/**/*.bpmn'
branches-ignore:
- 'main**'
@@ -22,45 +20,6 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
- # Installs Java distribution for running the plantUML jar
- - name: Install Java
- uses: actions/setup-java@v4
- with:
- distribution: 'temurin'
- java-version: '21'
- check-latest: true
-
- # Install graphviz for plantuml
- - name: Setup Graphviz
- uses: ts-graphviz/setup-graphviz@v2
-
- # Download plantUML jar
- - name: Download plantuml file
- run: |
- wget -O plantuml.jar "https://github.com/plantuml/plantuml/releases/latest/download/plantuml.jar"
-
- # Clean Folder
- - name: Ensure and clean folder
- run: |
- img_dir=Material/images/diagrams
- mkdir -p $img_dir
- rm -rf Material/images/diagrams/*.svg
-
- # Generate the SVGs from PUML
- - name: Render PUML to SVG and Move files
- run: |
- FileNamePaths=$(find . -path "*/images/src/*/*.puml" -exec dirname {} \; | sort -u)
- for dir in $FileNamePaths
- do
- # Render SVGs from PUMLs
- find $dir -name "*.puml" -exec java -jar plantuml.jar -tsvg {} \;
- done
-
- # Remove plantUML jar
- - name: remove plantuml file
- run: |
- rm -f plantuml.jar
-
# Generate the SVGs from DrawIO
- name: Render DrawIO to SVG with predefined action
uses: rlespinasse/drawio-export-action@v2
@@ -100,4 +59,4 @@ jobs:
with:
commit_user_name: GitHub Actions Bot
commit_user_email: ActionBot@github.com
- commit_message: auto-generated diagrams by GitHub Action after source code change
\ No newline at end of file
+ commit_message: auto-generated diagrams by GitHub Action after source code change
diff --git a/ImplementationGuide/Implementierungsleitfaden_ISiKTerminplanung.json b/ImplementationGuide/Implementierungsleitfaden_ISiKTerminplanung.json
index 6c21d559..45d7e843 100644
--- a/ImplementationGuide/Implementierungsleitfaden_ISiKTerminplanung.json
+++ b/ImplementationGuide/Implementierungsleitfaden_ISiKTerminplanung.json
@@ -125,4 +125,4 @@
]
}
}
-}
\ No newline at end of file
+}
diff --git a/ImplementationGuide/markdown/Datenobjekte/CapabilityStatement.md b/ImplementationGuide/markdown/Datenobjekte/CapabilityStatement.md
index 3cdf0605..280c3f9a 100644
--- a/ImplementationGuide/markdown/Datenobjekte/CapabilityStatement.md
+++ b/ImplementationGuide/markdown/Datenobjekte/CapabilityStatement.md
@@ -15,6 +15,8 @@ Die Verwendung der [CapabilityStatement-Expectation](https://hl7.org/fhir/R4/ext
## CapabilityStatement (Requirement) ISiK-Terminplanung
+Das nachfolgende CapabilityStatement repräsentiert die Anforderungen an ein Termin-Repository.
+
[Link Simplifier Profil Übersicht](https://simplifier.net/isik-terminplanung-v4/isikcapabilitystatementterminplanungserver)
{{render:https://gematik.de/fhir/isik/CapabilityStatement/ISiKCapabilityStatementTerminplanungServer}}
diff --git a/ImplementationGuide/markdown/Datenobjekte/ISiKTerminAppointment.md b/ImplementationGuide/markdown/Datenobjekte/ISiKTerminAppointment.md
index b050b335..eac2c7a8 100644
--- a/ImplementationGuide/markdown/Datenobjekte/ISiKTerminAppointment.md
+++ b/ImplementationGuide/markdown/Datenobjekte/ISiKTerminAppointment.md
@@ -88,15 +88,12 @@ Alle Statuswerte MÜSSEN durch ein bestätigungsrelevantes System unterstützt w
**Hinweis:** Dies SOLL der Kodierung des serviceType eines Schedules entsprechen, der innerhalb des Termins gebucht wird. Ein Termin-Repository SOLL einen Termin abweisen, falls unbekannte Kodierungen in .serviceType durch den Termin-Requestor übermittelt werden, sodass ein Termin-Repository sicherstellen kann, dass alle Ressourcen für die Behandlungsleistung(en) bereitgestellt werden können. Hierzu ist eine Interpretation der Behandlungsleistung notwendig. Ein Termin KANN für mehrere Behandlungsleistungen gebucht werden, falls dies durch die Fachlogik des Termin-Repositories unterstüzt wird.
-
-
### `Appointment.specialty`
**Bedeutung:** Kodierung der Fachrichtung des Termins
**Hinweis:** Sofern aus den auf der Appointment-Ressource aufsetzenden Anwendungsfällen eine weitere Verarbeitung der Ressource durch einen menschlichen Nutzer nicht ausgeschlossen werden kann, MUSS das bestätigungsrelevante System mit dem Termin verbundenen Ressourcen (insb. `Appointment.slot`, `Appointment.slot.schedule`, `Appointment.participant:AkteurMedizinischeBehandlungseinheit.actor`) oder aus dem spezifischen Kontext verfügbare Informationen auswerten und das Element `Appointment.specialty` mit einem sinnvollen Wert kodieren (eine Ausnahme bildet hier zum Beispiel die fachrichtungs-unabhängige Terminplanung durch krankenhausinterne, zentrale Organisationseinheiten).
Insbesondere ist die Kodierung der Fachrichtung des Termins notwendig im Kontext der Bereitstellung einer graphischen Oberfläche, wie sie Endnutzenden in einem Zuweiserportal/Patientenportal zur Ansicht gebracht wird.
-
### `Appointment.priority.extension:Priority`
@@ -116,7 +113,6 @@ Insbesondere ist die Kodierung der Fachrichtung des Termins notwendig im Kontext
**Hinweis:** Sofern der Termin an einen Slot gebunden ist, SOLL der Endzeitpunkt des Termins dem Endzeitpunkt des letzten Slots des Termins entsprechen.
-
### `Appointment.slot`
**Bedeutung:** Referenzierung der Slots für die Verknüpfung des Termins mit einem Schedule
@@ -131,7 +127,7 @@ Insbesondere ist die Kodierung der Fachrichtung des Termins notwendig im Kontext
### `Appointment.participant`
-**Bedeutung:** TeilnehmerInnen des Termins
+**Bedeutung:** Teilnehmer des Termins
**Hinweis:** Mindestens eine Patient-Referenz MUSS angegeben werden. Dies MUSS durch das Termin-Repository während der Buchung des Termins geprüft werden. Weitere Leistungserbringer KÖNNEN angegeben werden.
@@ -163,7 +159,7 @@ Für die Ressource Appointment MÜSSEN die REST-Interaktionen "READ" und "PATCH"
```GET [base]/Appointment?service-type=http://example.org/fhir/CodeSystem/ScheduleServiceType|CT```
- Anwendungshinweise: Bei einer Suche mit dem ":not"-Modifier MÜSSEN Ressourcen, die keinen Wert für "Appointment.serviceType" enthalten, im Suchergebnis enthalten sein. Bei einer Suche ohne den ":not"-Modifier DÜRFEN Ressourcen, die keinen Wert für "Appointment.serviceType" enthalten, NICHT im Suchergebnis enthalten sein. Weitere Informationen zur Suche nach "Appointment.serviceType" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token Search"](https://hl7.org/fhir/R4/search.html#token).
+ Anwendungshinweise: Weitere Informationen zur Suche nach "Appointment.serviceType" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token Search"](https://hl7.org/fhir/R4/search.html#token).
1. Der Suchparameter "specialty" MUSS unterstützt werden:
@@ -171,7 +167,7 @@ Für die Ressource Appointment MÜSSEN die REST-Interaktionen "READ" und "PATCH"
```GET [base]/Appointment?specialty=urn:oid:1.2.276.0.76.5.114|535```
- Anwendungshinweise: Bei einer Suche mit dem ":not"-Modifier MÜSSEN Ressourcen, die keinen Wert für "Appointment.specialty" enthalten, im Suchergebnis enthalten sein. Bei einer Suche ohne den ":not"-Modifier DÜRFEN Ressourcen, die keinen Wert für "Appointment.specialty" enthalten, NICHT im Suchergebnis enthalten sein. Weitere Informationen zur Suche nach "Appointment.specialty" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token Search"](https://hl7.org/fhir/R4/search.html#token).
+ Anwendungshinweise: Weitere Informationen zur Suche nach "Appointment.specialty" finden sich in der [FHIR-Basisspezifikation - Abschnitt "Token Search"](https://hl7.org/fhir/R4/search.html#token).
1. Der Suchparameter "date" MUSS unterstützt werden:
diff --git a/ImplementationGuide/markdown/Datenobjekte/ISiKTerminKontaktMitGesundheitseinrichtung.md b/ImplementationGuide/markdown/Datenobjekte/ISiKTerminKontaktMitGesundheitseinrichtung.md
index a2f441a4..f54082c5 100644
--- a/ImplementationGuide/markdown/Datenobjekte/ISiKTerminKontaktMitGesundheitseinrichtung.md
+++ b/ImplementationGuide/markdown/Datenobjekte/ISiKTerminKontaktMitGesundheitseinrichtung.md
@@ -4,11 +4,11 @@
### Motivation
-Das Datenobjekt ISiKKontaktMitGesundheitseinrichtung dient der Verknüpfung des ISiK-Basis-Encounters (ISiKKontaktGesundheitseinrichtung) mit einem Termin (Appointment) und - darauf aufbauend - der Dokumentenkommunikation.
+Das Datenobjekt ISiKKontaktMitGesundheitseinrichtung dient der Verknüpfung des ISiK-Basis-Encounters (ISiKKontaktMitGesundheitseinrichtung) mit einem Termin (Appointment) und - darauf aufbauend - der Dokumentenkommunikation.
Die Anforderung dieser Verknüpfung stammt aus dem Szenario der Dokument-Übertragung zwischen Patientenportal und krankenhaus-internem Primärsystem (KIS): Dokumente liegen bei Termin-Buchung erst im Patientenportal (im Appointment) vor und werden erst mit Anlage des Encounters in das KIS (etc.) übermittelt. Dazu muss das Appointment mit dem neu angelegten Encounter verknüpft werden, um die Dokumente aus dem Patientenportal darüber zuzuordnen.
-Hieraus folgt, dass das Datenobjekt nur relevant ist, falls das bestätigungsrelevante System das Datenobjekt ISiKKontaktGesundheitseinrichtung sowie ISiKTermin implementiert. Zu Beginn des Termins sollte das System die Verknüpfung zwischen Encounter und Appointment herstellen. Ausgenommen hiervon sind Termine, die nicht stattfinden, da für diese in der Regel keine Encounter angelegt werden.
+Hieraus folgt, dass das Datenobjekt nur relevant ist, falls das bestätigungsrelevante System das Datenobjekt ISiKKontaktMitGesundheitseinrichtung sowie ISiKTermin implementiert. Zu Beginn des Termins sollte das System die Verknüpfung zwischen Encounter und Appointment herstellen. Ausgenommen hiervon sind Termine, die nicht stattfinden, da für diese in der Regel keine Encounter angelegt werden.
---
@@ -52,4 +52,4 @@ Der Suchparameter "appointment" MUSS unterstützt werden:
### Weiteres
-Siehe für weitere Anmerkungen und Vorgaben den [ISiK-Basis-Encounters (ISiKKontaktGesundheitseinrichtung)](https://simplifier.net/guide/isik-basis-v4/ImplementationGuide-markdown-Datenobjekte-Datenobjekte_Kontakt?version=current)
+Siehe für weitere Anmerkungen und Vorgaben den [ISiK-Basis-Encounters (ISiKKontaktMitGesundheitseinrichtung)](https://simplifier.net/guide/isik-basis-v4/ImplementationGuide-markdown-Datenobjekte-Datenobjekte_Kontakt?version=current)
diff --git a/ImplementationGuide/markdown/Datenobjekte/ISiKTerminblockSlot.md b/ImplementationGuide/markdown/Datenobjekte/ISiKTerminblockSlot.md
index eed36680..0ee53ef8 100644
--- a/ImplementationGuide/markdown/Datenobjekte/ISiKTerminblockSlot.md
+++ b/ImplementationGuide/markdown/Datenobjekte/ISiKTerminblockSlot.md
@@ -40,7 +40,7 @@ Folgende FHIRPath-Constraints sind im Profil zu beachten:
**Bedeutung:** Indikator ob ein Slot verwendbar ist für die Buchung eines Appointments.
-**Hinweise:** Inbesondere eine Differenzierung des Status "busy" ermöglicht es einem Termin Requestor passende Termine einer BenutzerIn zur Verfügung zu stellen. Durch entsprechende Kombinationen können somit Termine in einer passenden Länge gebucht werden.
+**Hinweise:** Inbesondere eine Differenzierung des Status "busy" ermöglicht es einem Termin Requestor passende Termine einem Benutzer zur Verfügung zu stellen. Durch entsprechende Kombinationen können somit Termine in einer passenden Länge gebucht werden.
### `Slot.start`
diff --git a/ImplementationGuide/markdown/Datenobjekte/Operations.md b/ImplementationGuide/markdown/Datenobjekte/Operations.md
index fad7964d..43612e87 100644
--- a/ImplementationGuide/markdown/Datenobjekte/Operations.md
+++ b/ImplementationGuide/markdown/Datenobjekte/Operations.md
@@ -225,7 +225,7 @@ Folgende Elemente DÜRFEN NICHT durch ein Update der Ressourcen verändert werde
- Appointment.end
- Appointment.participant.actor.where(resolve() is Patient)
-**Hinweis:** Hinweis: Ein Termin Repository MUSS einen Termin ablehnen, falls der Termin auf einen nicht vorhandenen (gelöscht oder inkativ) Patienten referenziert. Dies gilt insbesondere auch nachträglich für vorläufig angelegte Patienten-Ressourcen.
+**Hinweis:** Ein Termin Repository MUSS einen Termin ablehnen, falls der Termin auf einen nicht vorhandenen (gelöscht oder inkativ) Patienten referenziert. Dies gilt insbesondere auch nachträglich für vorläufig angelegte Patienten-Ressourcen.
Sollte die PATCH-Parameter-Ressource eins dieser Elemente verändern, MUSS die Operation mit einem Status Code "HTTP 400 - Bad Request" zurückgewiesen werden. Eine OperationOutcome Ressource MUSS zurückgegeben werden, die in kodierter Form den entsprechenden Fehler beschreibt.
diff --git a/ImplementationGuide/markdown/Einfuehrung.md b/ImplementationGuide/markdown/Einfuehrung.md
index 1ac31779..f0e6550a 100644
--- a/ImplementationGuide/markdown/Einfuehrung.md
+++ b/ImplementationGuide/markdown/Einfuehrung.md
@@ -1,41 +1,41 @@
-
-
-----
-Version: 4.0.0
-
-Datum: 01.10.2024
-
-Status: Active
-
-Realm: Deutschland
-
-----
-
-# Interoperabler Datenaustausch durch Informationssysteme im Krankenhaus (ISiK)
-
-Die gematik wurde vom Gesetzgeber beauftragt, im Benehmen mit der Deutschen Krankenhausgesellschaft (DKG) und den maßgeblichen Bundesverbänden der Industrie im Gesundheitswesen, verbindliche Standards für den Austausch von Gesundheitsdaten mit Informationssystemen im Krankenhaus zu erarbeiten. Dieser FHIR ImplementationGuide (IG) beschreibt die für diesen Zweck entwickelten FHIR Profile und das [REST](https://de.wikipedia.org/wiki/Representational_State_Transfer)-basierte Application Programming Interface (API). Die REST-API wird im Wesentlichen [vom FHIR Standard vorgegeben](https://www.hl7.org/fhir/R4/http.html). Dieser Leitfaden konkretisiert die ISiK-relevanten Funktionen der Standard-REST-API und trifft inhaltliche Festlegungen zu den ISiK-relevanten Ressourcen in Form von Ressourcen-Profilen.
-
-Hersteller bestätigungsrelevanter Systeme sollen durch diesen IG in die Lage versetzt werden, eine konforme Implementierung zu erstellen und das Bestätigungsverfahren der gematik erfolgreich zu absolvieren.
-
-Weitere Informationen siehe [§373 SGB V](https://www.gesetze-im-internet.de/sgb_5/__373.html).
-
-Hinweis: Sowohl für die Implementierung der ISiK-Spezifikation als auch für den Betrieb eines Produktes, das die ISiK-Spezifikation implementiert, ist eine SNOMED-CT-Lizenz notwendig. Diese kann beim [National Release Center für SNOMED CT in Deutschland](https://www.bfarm.de/DE/Kodiersysteme/Terminologien/SNOMED-CT/_node.html) beantragt werden.
-
-**Kontakt**
-
-Bringen Sie allgemeine Fragen und Anmerkungen gerne über unser Anfrageportal ein: [Anfragen ISiK + ISiP](https://service.gematik.de/servicedesk/customer/portal/16)
-
-Falls Sie keinen Zugang zum Anfrageportal haben und dieses nutzen wollen, senden Sie uns bitte eine Nachricht an die Adresse isik [ at ] gematik.de mit dem Betreff "Portalzugang".
-
-**Herausgeber**
-
-gematik GmbH
-
-[Impressum](https://www.gematik.de/impressum/)
-
-**Gender-Hinweis**
-
-Zugunsten des Leseflusses wird in dieser Publikation meist die
-männliche Form verwendet. Wir bitten, dies nicht als Zeichen einer
-geschlechtsspezifischen Wertung zu deuten. Diese Variante deckt auch alle
-weiteren Geschlechter, neben männlich und weiblich, ab.
+
+
+----
+Version: 4.0.1
+
+Datum: 02.12.2024
+
+Status: Active
+
+Realm: Deutschland
+
+----
+
+# Interoperabler Datenaustausch durch Informationssysteme im Krankenhaus (ISiK)
+
+Die gematik wurde vom Gesetzgeber beauftragt, im Benehmen mit der Deutschen Krankenhausgesellschaft (DKG) und den maßgeblichen Bundesverbänden der Industrie im Gesundheitswesen, verbindliche Standards für den Austausch von Gesundheitsdaten mit Informationssystemen im Krankenhaus zu erarbeiten. Dieser FHIR ImplementationGuide (IG) beschreibt die für diesen Zweck entwickelten FHIR Profile und das [REST](https://de.wikipedia.org/wiki/Representational_State_Transfer)-basierte Application Programming Interface (API). Die REST-API wird im Wesentlichen [vom FHIR Standard vorgegeben](https://www.hl7.org/fhir/R4/http.html). Dieser Leitfaden konkretisiert die ISiK-relevanten Funktionen der Standard-REST-API und trifft inhaltliche Festlegungen zu den ISiK-relevanten Ressourcen in Form von Ressourcen-Profilen.
+
+Hersteller bestätigungsrelevanter Systeme sollen durch diesen IG in die Lage versetzt werden, eine konforme Implementierung zu erstellen und das Bestätigungsverfahren der gematik erfolgreich zu absolvieren.
+
+Weitere Informationen siehe [§373 SGB V](https://www.gesetze-im-internet.de/sgb_5/__373.html).
+
+Hinweis: Sowohl für die Implementierung der ISiK-Spezifikation als auch für den Betrieb eines Produktes, das die ISiK-Spezifikation implementiert, ist eine SNOMED-CT-Lizenz notwendig. Diese kann beim [National Release Center für SNOMED CT in Deutschland](https://www.bfarm.de/DE/Kodiersysteme/Terminologien/SNOMED-CT/_node.html) beantragt werden.
+
+**Kontakt**
+
+Bringen Sie allgemeine Fragen und Anmerkungen gerne über unser Anfrageportal ein: [Anfragen ISiK + ISiP](https://service.gematik.de/servicedesk/customer/portal/16)
+
+Falls Sie keinen Zugang zum Anfrageportal haben und dieses nutzen wollen, senden Sie uns bitte eine Nachricht an die Adresse isik [ at ] gematik.de mit dem Betreff "Portalzugang".
+
+**Herausgeber**
+
+gematik GmbH
+
+[Impressum](https://www.gematik.de/impressum/)
+
+**Gender-Hinweis**
+
+Zugunsten des Leseflusses wird in dieser Publikation meist die
+männliche Form verwendet. Wir bitten, dies nicht als Zeichen einer
+geschlechtsspezifischen Wertung zu deuten. Diese Variante deckt auch alle
+weiteren Geschlechter, neben männlich und weiblich, ab.
diff --git a/ImplementationGuide/markdown/Motivation.md b/ImplementationGuide/markdown/Motivation.md
index 6e36c9b2..15c01632 100644
--- a/ImplementationGuide/markdown/Motivation.md
+++ b/ImplementationGuide/markdown/Motivation.md
@@ -1,6 +1,6 @@
# Motivation
-Die Vereinbarung von Terminen für Behandlungsleistungen repräsentiert oftmals für Patienten oder für sie zuständige Leistungserbringer den Einstieg in den Versorgungsablauf im Krankenhaus. Die Terminplanung agiert somit als kritische Schnittstelle zwischen diversen Akteuren im Gesundheitswesen, inklusive der zu behandelnden Personen. Informationen zu notwendigen und/oder gewünschten Behandlungen, Verfügbarkeiten der involvierten Personen und abrechnungsrelevante Details zur Krankenversicherung müssen potenziell ausgetauscht werden, um einen optimierten Ablauf des Aufenthaltes im Krankenhaus zu ermöglichen.
+Die Vereinbarung von Terminen für Behandlungsleistungen repräsentiert oftmals für Patienten oder für sie zuständige Leistungserbringer den Einstieg in den Versorgungsablauf im Krankenhaus. Die Terminplanung agiert somit als kritische Schnittstelle zwischen diversen Akteuren im Gesundheitswesen, inklusive der zu behandelnden Personen. Informationen zu notwendigen bzw. gewünschten Behandlungen, Verfügbarkeiten der involvierten Personen und abrechnungsrelevante Details zur Krankenversicherung müssen potenziell ausgetauscht werden, um einen optimierten Ablauf des Aufenthaltes im Krankenhaus zu ermöglichen.
Das Krankenhauszukunftsgesetz (KHZG) hebt die zentrale Rolle der Terminvereinbarung hervor in dem in den dazugehörigen Fördertatbeständen Vorgaben für die Terminplanung im digitalen Aufnahmemanagement bzw. für die Terminplanung mittels Patientenportalen gemacht werden (vgl. §19 Abs. 1 Satz 1 Nr. 2 KHSFV bzw. §21 Abs. 2 KHSFV).
diff --git a/ImplementationGuide/markdown/ReleaseNotes.md b/ImplementationGuide/markdown/ReleaseNotes.md
index 39d417a2..25ae98b3 100644
--- a/ImplementationGuide/markdown/ReleaseNotes.md
+++ b/ImplementationGuide/markdown/ReleaseNotes.md
@@ -4,6 +4,25 @@ Im Rahmen der ISiK-Veröffentlichungen wird das [Semantic Versioning](https://se
Die erste Ziffer X bezeichnet ein Major-Release und regelt die Gültigkeit von Releases. Die dritte Ziffer Y (Release x.0.y) bezeichnet eine technische Korrektur und versioniert kleinere Änderungen (Packages) während eines Jahres, z. B. 1.0.1.
+Version 4.0.1
+
+Datum: 02.12.2024
+
+* Implizites ValueSet expandiert https://github.com/gematik/spec-ISiK-Terminplanung/pull/207
+* Dokumentation zur Begründung der Kardinalitäten und Must-Support-Flags ergänzt https://github.com/gematik/spec-ISiK-Terminplanung/pull/209
+* Für ISiKTermin Verschiebung des Slicing auf .specialty.coding. https://github.com/gematik/spec-ISiK-Terminplanung/pull/204
+* Kardinalität für Schedule.actor.display geschwächt https://github.com/gematik/spec-ISiK-Terminplanung/pull/206
+* Anforderungen an die Kodierung von Appointment/Schedule.serviceType geschwächt https://github.com/gematik/spec-ISiK-Terminplanung/pull/227
+* Schwächung der Kardinalität von actor.display im Profil StructureDefinition-ISiKTermin https://github.com/gematik/spec-ISiK-Terminplanung/pull/233
+ * Ergänzung von Anforderungen an Akteure https://github.com/gematik/spec-ISiK-Terminplanung/pull/236
+ * Fix der Canonical URL im Capability-Statement des Terminplanungsserver https://github.com/gematik/spec-ISiK-Terminplanung/pull/238
+ * Hinzufügen der Extension "Appointment Replaces" zum Profil ISiKTermin https://github.com/gematik/spec-ISiK-Terminplanung/pull/242
+ * Update der Dependency de.ihe-d.terminology auf Version 3.0.1 https://github.com/gematik/spec-ISiK-Terminplanung/pull/240
+* Korrektur des Extension Kontext in ISiKKalender https://github.com/gematik/spec-ISiK-Terminplanung/pull/239
+* Aktualisierung der Operation ISiKBookOperation https://github.com/gematik/spec-ISiK-Terminplanung/pull/245
+
+----
+
Version 4.0.0
Datum: 01.10.2024
diff --git a/ImplementationGuide/markdown/UebergreifendeFestlegungen/Akteure.md b/ImplementationGuide/markdown/UebergreifendeFestlegungen/Akteure.md
index 5b325bf5..7b583e1d 100644
--- a/ImplementationGuide/markdown/UebergreifendeFestlegungen/Akteure.md
+++ b/ImplementationGuide/markdown/UebergreifendeFestlegungen/Akteure.md
@@ -2,7 +2,7 @@
Innerhalb des ISiK Moduls Terminplanung kann ein beteiligtes System verschiedene Rollen einnehmen und somit unterschiedliche Aufgaben innerhalb der im Abschnitt {{pagelink:ImplementationGuide/markdown/UebergreifendeFestlegungen/Interaktionen.md}} definierten Arbeitsabläufe übernehmen. Im Weiteren werden diese Rollen mithilfe der Definition von Akteuren formalisiert, sodass eine Zuordnung von relevanten Interaktionen zum jeweiligen Akteur erfolgen kann.
-Grundsätzlich wird als Terminblock eine für einen Termin buchbare Zeiteinheit verstanden, in der bestimmte Ressourcen (z.B. Fachabteilungen, Personen im Gesundheitswesen, Geräten, Räumen) zur Verfügung stehen. Übergreifend über ein oder mehrere Terminblöcke hinweg kann für diese Ressourcen anschließend ein Termin vereinbart werden.
+Grundsätzlich wird als Terminblock eine für einen Termin buchbare Zeiteinheit verstanden, in der bestimmte Ressourcen (z.B. Fachabteilungen, Personen im Gesundheitswesen, Geräte, Räume) zur Verfügung stehen. Übergreifend über ein oder mehrere Terminblöcke hinweg kann für diese Ressourcen anschließend ein Termin vereinbart werden.
### Termin Repository
@@ -31,7 +31,7 @@ Als Termin Requestor (in Anlehnung an die IHE Terminologie auch als Termin Sourc
**Definition:**
-Als Termin Consumer werden alle System definiert, die Termininformationen abfragen, um diese einer BenutzerIn zu präsentieren. Ein Termin Consumer verfügt über keine permanente Persistierung der abgefragten Informationen. Durch den Termin Consumer erfolgt explizit nur die Aufbereitung und Präsentation der Termininformationen. Eine anderweitige Verarbeitung der Termininformationen fällt in die Kategorie der anderen Akteure.
+Als Termin Consumer werden alle System definiert, die Termininformationen abfragen, um diese einem Benutzer zu präsentieren. Ein Termin Consumer verfügt über keine permanente Persistierung der abgefragten Informationen. Durch den Termin Consumer erfolgt explizit nur die Aufbereitung und Präsentation der Termininformationen. Eine anderweitige Verarbeitung der Termininformationen fällt in die Kategorie der anderen Akteure.
**Beispielsysteme:**
diff --git a/ImplementationGuide/markdown/UebergreifendeFestlegungen/Interaktionen.md b/ImplementationGuide/markdown/UebergreifendeFestlegungen/Interaktionen.md
index f7e64977..4a96446f 100644
--- a/ImplementationGuide/markdown/UebergreifendeFestlegungen/Interaktionen.md
+++ b/ImplementationGuide/markdown/UebergreifendeFestlegungen/Interaktionen.md
@@ -2,11 +2,20 @@
Für folgende Interaktionen werden im vorliegenden Implementierungsleitfaden Vorgaben für die Umsetzung innerhalb der ISiK-Schnittstelle definiert:
+
+| Akteure | Transaktionen | Optionalität |
+|--------------------|-------------------------------------------------------------------------------------------------------------------------------|-------------|
+| **Termin Repository** | - Übermittlung von Patienteninformationen - Verfügbare Behandlungsleistungen abrufen - Verfügbare Terminlisten abrufen - Abfrage von (verfügbaren) Terminblöcken - Termin neu buchen (Buchungsmanagement von verfügbaren Terminen) - Termin absagen (ausgehend vom Client) - Termin verschieben (ausgehend vom Client) - Terminzusatzinformationen aktualisieren (ausgehend vom Client) | Verplichtend |
+| **Termin Requestor** | - Übermittlung von Patienteninformationen - Verfügbare Behandlungsleistungen abrufen - Verfügbare Terminlisten abrufen - Abfrage von (verfügbaren) Terminblöcken - Termin neu buchen (Buchungsmanagement von verfügbaren Terminen) - Termin absagen (ausgehend vom Client) - Termin verschieben (ausgehend vom Client) - Terminzusatzinformationen aktualisieren (ausgehend vom Client) | Optional |
+| **Termin Consumer** | - Abfrage von (vereinbarten) Terminen | Optional |
+
+Zudem kann die Situation eintreten, dass ein System die Aufgaben eines Termin Repositories übernimmt, jedoch kein terminführendes System ist (z. B. ein Patientenportal) und die Termine mit einem weiteren Termin Repository synchronisiert (z. B. KIS). In diesem Fall übernimmt das System, welches Termine an das terminführende System sendet, die Rolle eines Termin-Requestors. Diese Option steht einem Termin Repository offen, falls es für bestimmte Use Cases notwendig ist; jedoch ist dies nicht verpflichtend für die Rolle des Termin Repositories.
+
---
{{render:Material/images/Interaktionen/1. Übermittelung Patienteninformationen - zum Termin zugehörige Vorabinformationen.png}}
-Für die Auswahl eines verfügbaren Terminblocks kann es notwendig sein, dass das Termin Repository vorab durch den Termin Requestor Vorabinformationen (z.B. für die Krankenversicherung) erhält. Diese können über eine schreibende Schnittstelle an das Terminrepository übermittelt werden. Es ist zu beachten, dass das Termin Repository gegebenenfalls diese Informationen separat von eigens erstellten Datenobjekten vorhält und/oder die Information dauerhaft erst nach einer manuellen Überprüfung durch eine BenutzerIn freigibt.
+Für die Auswahl eines verfügbaren Terminblocks kann es notwendig sein, dass das Termin Repository vorab durch den Termin Requestor Vorabinformationen (z.B. für die Krankenversicherung) erhält. Diese können über eine schreibende Schnittstelle an das Terminrepository übermittelt werden. Es ist zu beachten, dass das Termin Repository gegebenenfalls diese Informationen separat von eigens erstellten Datenobjekten vorhält und/oder die Information dauerhaft erst nach einer manuellen Überprüfung durch eine Benutzer freigibt.
Gleichermaßen können Informationen zum Patienten vorab übermittelt werden, sodass gewisse Basisangaben bereits im Terminrepository vorliegen.
@@ -40,7 +49,7 @@ Siehe {{pagelink:ImplementationGuide/markdown/Datenobjekte/ISiKTerminblockSlot.m
{{render:Material/images/Interaktionen/5. Termin neu buchen - Buchungsmanagemnent von verfügbaren Terminen.png}}
-Für einen durch die BenutzerIn ausgewählten Terminblock bzw. mehreren aufeinander folgenden Terminblöcken kann durch den Termin Requestor ein Termin angefragt werden. Dieser kann direkt oder erst nach manueller Bestätigung durch das Termin Repository freigegeben werden.
+Für einen durch den Benutzer ausgewählten Terminblock bzw. mehreren aufeinander folgenden Terminblöcken kann durch den Termin Requestor ein Termin angefragt werden. Dieser kann direkt oder erst nach manueller Bestätigung durch das Termin Repository freigegeben werden.
Es ist zu beachten, dass innerhalb dieser Aktion ein terminführendes Termin Repository die Rolle des Termin Requestors übernehmen kann und den neu-angelegten Termin in ein weiteres Terminrepository spiegelt.
diff --git a/ImplementationGuide/markdown/UseCases.md b/ImplementationGuide/markdown/UseCases.md
index dd0cb4cd..56203b61 100644
--- a/ImplementationGuide/markdown/UseCases.md
+++ b/ImplementationGuide/markdown/UseCases.md
@@ -1,3 +1,12 @@
-# Use Cases
-
-{{index:current}}
\ No newline at end of file
+# Use Cases
+
+Das Modul Terminplanung umfasst alle Datenmodule die notwendig sind, um eine Abfrage für eine Behandlungsleistung inkl. anschließender Terminvereinbarung durchzuführen.
+Die Terminvereinbarung ist durchführbar durch die Patientinnen und Patienten oder deren vorgelagerten Leistungserbringern.
+
+Dies umfasst:
+
+- Abbildung von verfügbaren teil- und voll- stationäre Behandlungen
+- Abfrage von verfügbaren Terminen
+- Buchungsmanagement von verfügbaren Terminen (Zusage, Absage, Temporäre Buchung, Wiederholende Termine)
+- Benachrichtigungen bei Terminänderungen
+- Anlage eines neues Patienten im KIS
diff --git a/ImplementationGuide/markdown/UseCases/Informationsmodell.md b/ImplementationGuide/markdown/UseCases/Informationsmodell.md
deleted file mode 100644
index c3ad58d0..00000000
--- a/ImplementationGuide/markdown/UseCases/Informationsmodell.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Übersicht
-Im Folgenden wird ein grafischer Überblick über alle in diesem Modul profilierten Ressourcen gegeben.
-Da es sich um eine Zusammenfassung handelt, werden nur folgende Profile und Felder dargestellt:
-* Profile und Extenstion, die im Modul Terminplanung enstanden sind.
-* Profile und Extenstion, die im Modul Terminplanung zwingend benötigt werden. In vereinfachter Form, mit Verweis auf den Ursprung.
-* Felder, die unterstüzt werden MÜSSEN (Must Support).
-* Die Elemente (Unterfelder) haben, die unterstüzt werden MÜSSEN (Must Support).
-* Nur Unter-Elemente (MS) bis zu zweiten oder dritten Tiefe, abhängig von Umfang und Systematik. D.h. Keine bedingten Wiederholungen (repeat) oder Rekursionen (part-of).
-
-
-## Ressourcen Diagramm
-
-
-
-## Informationsmodell Diagramm
-
- WIP
\ No newline at end of file
diff --git a/ImplementationGuide/markdown/UseCases/InteraktionenUndSearchTypes.md b/ImplementationGuide/markdown/UseCases/InteraktionenUndSearchTypes.md
deleted file mode 100644
index 18e959bb..00000000
--- a/ImplementationGuide/markdown/UseCases/InteraktionenUndSearchTypes.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Interaktionen und Search Types
-
-Innerhalb des ISiK-Moduls Terminplanung kann ein beteiligtes System verschiedene Rollen einnehmen und somit unterschiedliche Aufgaben übernehmen. In Anlehnung an IHE HMW werden im Folgenden diese Rollen mithilfe der Definition von Akteuren formalisiert und die Interaktionen zugeordnet.
-
-Es ist zu beachten, dass in vielen Fällen ein Terminmangementsystem aus unterschiedlichen Modulen besteht, die mehreren oder allen der genannten Akteure entsprechen:
-* Ein **Termin Repository**, da das System das terminführende System ist
-* Ein **Termin Requestor**, um intern im System einen Termin zu vereinbaren
-* Ein **Termin Consumer** um eine Übersicht der vereinbarten Termine anzuzeigen
-
-# Search Includes and Reverse Includes
-
-Damit diese Akteure sinnvoll miteinander kommunizieren, wird im Folgenden ein grafischer Überblick über die in diesem Modul zu inlduierenden Suchparameter und Operationen gegeben.
-Da es sich um eine Zusammenfassung handelt, gelten Bedingungen für die gezeigten Inhalte:
-* Alle Must-Support Elemente einer Componente müssen von den entsprechenden Systemen suchbar sein. Diese sind hier nicht erneut aufgezählt.
-* Ein Doppelpunkt meint den Zugriff auf ein Element des beinhaltenden Profils.
-* Das Elemente hinter einem Doppelpunkt besitzt wiederum die Suchparameter (alle Must-Support Elemente!), die hier in die Suchsyntax zu inkludieren sind.
-
-
\ No newline at end of file
diff --git a/ImplementationGuide/markdown/UseCases/UseCases.md b/ImplementationGuide/markdown/UseCases/UseCases.md
deleted file mode 100644
index febeb8c4..00000000
--- a/ImplementationGuide/markdown/UseCases/UseCases.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Use Cases - Übersicht
-Im Folgenden wird ein grafischer Überblick über Anwendungsfälle (Use Cases) gegeben, die in diesem Modul relevant sind. Da es sich um eine Zusammenfassung handelt, werden nur folgende Use Case und dafür hinreichende Funktionen dargestellt:
-* Allgemeine und intuitiv verständliche Use Cases.
- * Kombinationen und weitere Details sind möglich.
- * Übergreifende Use Cases und und ihre Sub Use Cases können in einem separaten Diagramm auf den entsprechenden Seiten gefunden werden.
-* Allgemeine und intuitiv Adverse Use Cases (diese gilt es zu vermeiden)
-* In den Funktionen werden triviale Suchen einer Ressource anhand ihrer eigenen Properties nicht dargestellt, z.B. Suche einer Ressource anhand der ID, Name, Code usw.
-
-
-## Use Case Diagramm
-
-
-
-
diff --git a/Material/Modulsteckbrief.md b/Material/Modulsteckbrief.md
index f4f5dc63..2c065c22 100644
--- a/Material/Modulsteckbrief.md
+++ b/Material/Modulsteckbrief.md
@@ -1,7 +1,7 @@
# Terminplanung
## Kurzbeschreibung
-Das Modul Terminplanung umfasst alle Datenmodule die notwendig sind um eine Abfrage für eine Behandlungsleistung inkl. anschließender Terminvereinbarung durchzuführen. Die Terminvereinbarung ist durchführbar durch die Patientinnen und Patienten oder deren vorgelagerten Leistungserbringern.
+Das Modul Terminplanung umfasst alle Datenmodule die notwendig sind, um eine Abfrage für eine Behandlungsleistung inkl. anschließender Terminvereinbarung durchzuführen. Die Terminvereinbarung ist durchführbar durch die Patientinnen und Patienten oder deren vorgelagerten Leistungserbringern.
Dies umfasst:
diff --git a/ImplementationGuide/markdown/UseCases/USeCase-Kommunikation-Draft-WIP.md b/Material/Use Cases Kommunikation.md
similarity index 96%
rename from ImplementationGuide/markdown/UseCases/USeCase-Kommunikation-Draft-WIP.md
rename to Material/Use Cases Kommunikation.md
index 4b9ffd57..65b3b102 100644
--- a/ImplementationGuide/markdown/UseCases/USeCase-Kommunikation-Draft-WIP.md
+++ b/Material/Use Cases Kommunikation.md
@@ -1,18 +1,18 @@
-## Use Case - Benachrichtigung (Kommunikation)
-
-Der Use Case rund um die Benachrichtigung, im Folgenden "Kommunikation" genannt, lässt sich in folgende Szenarien ausdifferenzieren. Sofern ISiK an bestimmten Stellen nicht geeignet erscheint wird nachfolgend eine Alternative vorgeschlagen:
-
-1. Interne Kommunikation eines Leistungserbringers mit einem anderen Leistungserbringer während der Buchung eines internen Termins:
- - Absprache des Termins: "Anfrage des Leistungserbringers: Gibt es an diesem Datum noch einen freien Termin?" -> TI-Messenger (?)
- - Rückfragen: Rückfrage des Leistungserbringers zur Terminanfrage -> TI-Messenger (?)
- - Notizen: Interne Notizen rund um den Termin -> ISiK, Appointment.comment
- - Formulare: z.B. Interner Anforderungsschein -> ISiK, Questionnaire
-1. Externe Kommunikation von Leistungserbringer an Patient:
- - Patientenhinweise: "Bitte nüchtern erscheinen, etc." -> ISiK, Appointment.patientInstruction
-1. Externe Kommunikation von Systemen an Patient:
- - Formulare: z.B. Einwilligung, Anamnese-Bogen -> ISiK, Questionnaire
- - Patientenhinweise: "Bitte nüchtern erscheinen, etc." -> ISiK, Appointment.patientInstruction
- - Administrative Hinweise zum Termin: z.B. Anfahrtsskizze -> ISiK, Appointment.supportingInformation
-1. Externe Kommunikation von Patient an Krankenhaus/Arzt:
- - Antworten auf Fragebögen / Formulare -> ISiK, QuestionnaireResponse
+# Use Case - Benachrichtigung (Kommunikation)
+
+Der Use Case rund um die Benachrichtigung, im Folgenden "Kommunikation" genannt, lässt sich in folgende Szenarien ausdifferenzieren. Sofern ISiK an bestimmten Stellen nicht geeignet erscheint wird nachfolgend eine Alternative vorgeschlagen:
+
+1. Interne Kommunikation eines Leistungserbringers mit einem anderen Leistungserbringer während der Buchung eines internen Termins:
+ - Absprache des Termins: "Anfrage des Leistungserbringers: Gibt es an diesem Datum noch einen freien Termin?" -> TI-Messenger (?)
+ - Rückfragen: Rückfrage des Leistungserbringers zur Terminanfrage -> TI-Messenger (?)
+ - Notizen: Interne Notizen rund um den Termin -> ISiK, Appointment.comment
+ - Formulare: z.B. Interner Anforderungsschein -> ISiK, Questionnaire
+1. Externe Kommunikation von Leistungserbringer an Patient:
+ - Patientenhinweise: "Bitte nüchtern erscheinen, etc." -> ISiK, Appointment.patientInstruction
+1. Externe Kommunikation von Systemen an Patient:
+ - Formulare: z.B. Einwilligung, Anamnese-Bogen -> ISiK, Questionnaire
+ - Patientenhinweise: "Bitte nüchtern erscheinen, etc." -> ISiK, Appointment.patientInstruction
+ - Administrative Hinweise zum Termin: z.B. Anfahrtsskizze -> ISiK, Appointment.supportingInformation
+1. Externe Kommunikation von Patient an Krankenhaus/Arzt:
+ - Antworten auf Fragebögen / Formulare -> ISiK, QuestionnaireResponse
- Fragen und Hinweise zum Termin -> Über ISiK möglich, ISiKNachricht (Communication) u.a. in Communication.inResponseTo für bidirektionale Kommunikation
\ No newline at end of file
diff --git a/Material/images/diagrams/akteure_1.svg b/Material/images/diagrams/akteure_1.svg
index 373606fe..4ff03dee 100644
--- a/Material/images/diagrams/akteure_1.svg
+++ b/Material/images/diagrams/akteure_1.svg
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Material/images/diagrams/akteure_2.svg b/Material/images/diagrams/akteure_2.svg
index bf4fec0b..d102caf8 100644
--- a/Material/images/diagrams/akteure_2.svg
+++ b/Material/images/diagrams/akteure_2.svg
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Material/images/diagrams/dummy.svg b/Material/images/diagrams/dummy.svg
deleted file mode 100644
index 768a604c..00000000
--- a/Material/images/diagrams/dummy.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/Material/images/diagrams/infomodell.svg b/Material/images/diagrams/infomodell.svg
deleted file mode 100644
index a0ff1b4f..00000000
--- a/Material/images/diagrams/infomodell.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/Material/images/diagrams/resourcediagram.svg b/Material/images/diagrams/resourcediagram.svg
deleted file mode 100644
index 9ad95ad6..00000000
--- a/Material/images/diagrams/resourcediagram.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/Material/images/diagrams/searchtypes_interaction.svg b/Material/images/diagrams/searchtypes_interaction.svg
deleted file mode 100644
index 1bba88f0..00000000
--- a/Material/images/diagrams/searchtypes_interaction.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/Material/images/diagrams/usecases.svg b/Material/images/diagrams/usecases.svg
deleted file mode 100644
index a4c2bf53..00000000
--- a/Material/images/diagrams/usecases.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/Material/images/diagrams/workflows.svg b/Material/images/diagrams/workflows.svg
index dbd1fc04..8e369326 100644
--- a/Material/images/diagrams/workflows.svg
+++ b/Material/images/diagrams/workflows.svg
@@ -1,3 +1,3 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Material/images/src/plantuml/infomodell.puml b/Material/images/src/plantuml/infomodell.puml
deleted file mode 100644
index 24391dd7..00000000
--- a/Material/images/src/plantuml/infomodell.puml
+++ /dev/null
@@ -1,206 +0,0 @@
-@startuml dummy
-' package Dummy{
-' entity Entität01 {
-' optionales Attribut
-' **optionales fettes Attribut**
-' * **vorgeschriebens fettes Attribut**
-' }
-'
-' entity Entität01 {
-' optionales Attribut : text
-' **optionales fettes Attribut** nummer <>
-' * **vorgeschriebens fettes Attribut**
-' }
-' Entität01 }|..|| Entität02
-' Entität03 }o..o| Entität04
-' Entität05 ||--o{ Entität06
-' Entität07 |o--|| Entität08
-' }
-@enduml
-
-
-' TODO:
-' Vervollständigen im Sinne von: https://github.com/gematik/spec-ISiK-Medikation/blob/rc/main-stufe-4/Material/docs/Medikation%20Abgleich%20bestehende%20Spezifikationen.xlsx
-
-@startuml infomodell
-'verhindere Probleme mit gewinkelten Krähenfüßen
-'skinparam linetype ortho
-
-'together enhancement
-set separator none
-
-
-
-'ISiK_Medikation.ISiKMedikationsListe::subject --> ISiK_Basis.ISiKPatient
-'ISiK_Medikation.ISiKMedikationTransaction --> R4_Core.Bundle
-'ISiK_Medikation.ISiKMedikationTransactionResponse --|> R4_Core.Bundle
-
-
-together ISiK_Terminplanung {
-
- class ISiKKalender <<(P,#8DA5C4)>>{
- extension : **ScheduleName**
- |_ (All Slices)
- |_ extension
- |_ KalenderName : **Extension**
- active
- serviceType
- specialty
- |_ Fachrichtung : **IHEXDSauthorSpeciality**
- actor : Reference ( **Patient** | **Practitioner** | PractitionerRole | \n\t**RelatedPerson** | Device | HealthcareService | Location)
- |_ identifier
- |_ display
- |_ Akteur : Reference (**Practitioner** | HealthcareService)
- |_ reference
- }
-
- class ISiKMedizinischeBehandlungseinheit <<(P,#8DA5C4)>>{
- active
- type
- specialty
- |_ Fachrichtung : **IHEXDSauthorSpeciality**
- name
- }
-
- class ISiKNachricht <<(P,#8DA5C4)>>{
- inResponseTo : Reference (Communication)
- status
- subject : Reference ( **Patient** )
- sent
- recipient : Reference ( Device | Organization | **Patient** | **Practitioner** | \n\tPractitionerRole | **RelatedPerson** | Group | CareTeam | HealthcareService)
- |_ identifier
- |_ display
- |_ ISiKRecipient : Reference ( **Practitioner** | HealthcareService)
- |_ reference
- sender : Reference ( Device | Organization | **Patient** | **Practitioner** | \n\tPractitionerRole | **RelatedPerson** | HealthcareService)
- |_ reference
- payload : BackboneElement
- |_ content[x]
- |_ contentString
- |_ contentAttachment
- |_ contentType
- |_ data
- |_ url
- |_ creation
- }
-
- class ISiKTermin <<(P,#8DA5C4)>>{
-
- }
-
- class ISiKTerminblock <<(P,#8DA5C4)>>{
-
- }
-
- class ISiKTerminKontaktMitGesundheitseinrichtung <<(P,#8DA5C4)>>{
-
- }
-
- 'Extensions
-
- class ScheduleName <<(E,#7A8495)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-terminplanung-v4/schedulename ScheduleName]]
- }
-
- class AppointmentReplaces <<(E,#7A8495)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-terminplanung-v4/appointmentreplaces AppointmentReplaces]]
- }
-
- class ISiKNachrichtExtension <<(E,#7A8495)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-terminplanung-v4/isiknachrichtextension ISiK Nachricht Extension]]
- }
-
- class ISiKTerminPriorityExtension <<(E,#7A8495)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-terminplanung-v4/isikterminpriorityextension ISiKTermin Priority Extension]]
- ---
- value[x] : **ISiKTerminPriority (required)**
- |_ valueCodeableConcept
- }
-}
-
-together MII_Kerndatensatz {
-
-}
-
-together R4_Core {
-
-}
-
-together ISiK_Basis {
- class Basismodul_Stufe_3 <<(M,#FFDC36)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-basis-v4/~introduction ISiK Basis Stufe 3]]
- }
- class ISiKPatient <<(P,#8DA5C4)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-basis-v4/isikpatient ISiK Patient]]
- }
- class ISiKKontaktGesundheitseinrichtung <<(P,#8DA5C4)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-basis-v4/isikkontaktgesundheitseinrichtung ISiK Kontakt Gesundheitseinrichtung]]
- }
- class ISiKPractitioner <<(P,#8DA5C4)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-basis-v4/isikpersonimgesundheitsberuf ISiK Person im Gesundheitsberuf]]
- }
- class ISiKDiagnose <<(P,#8DA5C4)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-basis-v4/isikdiagnose ISiK Diagnose]]
- }
- class ISiKProzedur <<(P,#8DA5C4)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-basis-v4/isikprozedur ISiK Prozedur]]
- }
- class ISiKAngehoeriger <<(P,#8DA5C4)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-basis-v4/isikangehoeriger ISiK Angehoeriger]]
- }
-}
-
-'Realtions
-
-'diamonds
-together {
-<> MultiRef_PracPatRel
-MultiRef_PracPatRel -- ISiKPractitioner
-MultiRef_PracPatRel -- ISiKPatient
-MultiRef_PracPatRel -- ISiKAngehoeriger
-<> MultiRef_KDLXDS
-MultiRef_KDLXDS -- vsKDL
-MultiRef_KDLXDS -- IHEXDStypeCode
-}
-
-'Relations
-ISiKDokumentenSuchergebnisse::DocumentReference -down- " 1..1 " ISiKDokumentenMetadaten
-
-
-ISiKDokumentenMetadaten::type -- " 1..1 " MultiRef_KDLXDS
-ISiKDokumentenMetadaten::category -- " 0..1 " IHEXDSclassCode
-
-ISiKDokumentenMetadaten::subject --> " 1..1 " ISiKPatient
-ISiKDokumentenMetadaten::author <--> " 0..1 " MultiRef_PracPatRel
-ISiKDokumentenMetadaten::securityLabel -up- " 1..* "ISiKConfidentialityCodes
-ISiKDokumentenMetadaten::content -- " 1..1 " IHEXDSformatCodeDE
-ISiKDokumentenMetadaten::encounter -- " 0..1 " ISiKKontaktGesundheitseinrichtung
-ISiKDokumentenMetadaten::context -- " 1..1 " IHEXDSeventCodeList
-ISiKDokumentenMetadaten::context -- " 1..1 " IHEXDShealthcareFacilityTypeCode
-ISiKDokumentenMetadaten::context -- " 1..1 " IHEXDSpracticeSettingCode
-
-
-'together dummy {
-' class Foo {
-' + field1
-' + field2
-' }
-' class Bar {
-' + field3
-' + field4
-' }
-' Foo::field1 --> Bar::field3 : foo
-' Foo::field2 --> Bar::field4 : bar
-'}
-@enduml
\ No newline at end of file
diff --git a/Material/images/src/plantuml/resourcediagram.puml b/Material/images/src/plantuml/resourcediagram.puml
deleted file mode 100644
index c6919ab1..00000000
--- a/Material/images/src/plantuml/resourcediagram.puml
+++ /dev/null
@@ -1,224 +0,0 @@
-@startuml dummy
-' package Dummy{
-' entity Entität01 {
-' optionales Attribut
-' **optionales fettes Attribut**
-' * **vorgeschriebens fettes Attribut**
-' }
-'
-' entity Entität01 {
-' optionales Attribut : text
-' **optionales fettes Attribut** nummer <>
-' * **vorgeschriebens fettes Attribut**
-' }
-' Entität01 }|..|| Entität02
-' Entität03 }o..o| Entität04
-' Entität05 ||--o{ Entität06
-' Entität07 |o--|| Entität08
-' }
-@enduml
-
-
-' TODO:
-' Vervollständigen im Sinne von: https://github.com/gematik/spec-ISiK-Medikation/blob/rc/main-stufe-4/Material/docs/Medikation%20Abgleich%20bestehende%20Spezifikationen.xlsx
-
-@startuml resourcediagram
-'verhindere Probleme mit gewinkelten Krähenfüßen
-'skinparam linetype ortho
-
-'Namespace enhancement
-set separator none
-
-
-
-'ISiK_Medikation.ISiKMedikationsListe::subject --> ISiK_Basis.ISiKPatient
-'ISiK_Medikation.ISiKMedikationTransaction --> R4_Core.Bundle
-'ISiK_Medikation.ISiKMedikationTransactionResponse --|> R4_Core.Bundle
-
-
-
-namespace ISiK_Terminplanung {
-
- class ISiKKalender <<(P,#8DA5C4)>>{
- extension : **ScheduleName**
- |_ (All Slices)
- |_ extension
- |_ KalenderName : **Extension**
- active
- serviceType
- specialty
- |_ Fachrichtung : **IHEXDSauthorSpeciality**
- actor : Reference ( **Patient** | **Practitioner** | PractitionerRole | \n\t**RelatedPerson** | Device | **HealthcareService** | Location)
- |_ identifier
- |_ display
- |_ Akteur : Reference (**Practitioner** | **HealthcareService**)
- |_ reference
- }
-
- class ISiKMedizinischeBehandlungseinheit <<(P,#8DA5C4)>>{
- active
- type
- specialty
- |_ Fachrichtung : **IHEXDSauthorSpeciality**
- name
- }
-
- class ISiKNachricht <<(P,#8DA5C4)>>{
- inResponseTo : Reference (Communication)
- status
- subject : Reference ( **Patient** )
- sent
- recipient : Reference ( Device | Organization | **Patient** | **Practitioner** | \n\tPractitionerRole | **RelatedPerson** | Group | CareTeam | **HealthcareService**)
- |_ identifier
- |_ display
- |_ ISiKRecipient : Reference ( **Practitioner** | **HealthcareService**)
- |_ reference
- sender : Reference ( Device | Organization | **Patient** | **Practitioner** | \n\tPractitionerRole | **RelatedPerson** | **HealthcareService**)
- |_ reference
- payload : BackboneElement
- |_ content[x]
- |_ contentString
- |_ contentAttachment
- |_ contentType
- |_ data
- |_ url
- |_ creation
- }
-
- class ISiKTermin <<(P,#8DA5C4)>>{
- meta
- |_ tag
- |_ Source : **VS_CommonMetaTag_De**
- extension
- |_ Nachricht : Extension ( Reference ( **ISiKNachricht** ) )
- |_ replaces : Extension ( Reference ( **Appointment** ) )
- status
- cancelationReason : **ISiKTerminCancelationReason**
- serviceType
- specialty
- |_ Fachrichtung : **IDEXDSauthorSpeciality**
- priority
- |_ extension Extension
- |_ Priority : Extension ( **ISiKTerminPriorityExtension** )
- start
- end
- slot : Reference ( **Slot** )
- |_ reference
- patientInstruction
- participant
- |_ actor : Reference ( **Patient** | **Practitioner** | PractitionerRole \n\t| **RelatedPerson** | Device | **HealthcareService** | Location)
- |_ display
- |_ status
- |_ AkteurPatient
- |_ actor : Reference ( **Patient** )
- |_ reference
- |_ AkteurPersonImGesundheitsberuf
- |_ actor : Reference ( **Practitioner** )
- |_ reference
- |_ AkteurMedizinischeBehandlungseinheit
- |_ actor : Reference ( **HealthcareService** )
- |_ reference
- }
-
- class ISiKTerminblock <<(P,#8DA5C4)>>{
- schedule : Reference ( **Schedule** )
- |_ reference
- status
- start
- end
- }
-
- class ISiKTerminKontaktMitGesundheitseinrichtung <<(P,#8DA5C4)>>{
- Dokumentation der Basisressource auf Simplifier
- [[https://simplifier.net/isik-basis-v4/isikkontaktgesundheitseinrichtung ISiK Kontakt Gesundheitseinrichtung]]
- ---
- **Elemente wie in der Basisressource** und
- appointment : Reference ( **Appointment** )
- }
-
- 'Extensions
-
- class ScheduleName <<(E,#7A8495)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-terminplanung-v4/schedulename ScheduleName]]
- }
-
- class AppointmentReplaces <<(E,#7A8495)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-terminplanung-v4/appointmentreplaces AppointmentReplaces]]
- }
-
- class ISiKNachrichtExtension <<(E,#7A8495)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-terminplanung-v4/isiknachrichtextension ISiK Nachricht Extension]]
- }
-
- class ISiKTerminCancelationReason <<(E,#7A8495)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-terminplanung-v4/isiktermincancelationreason ISiK Nachricht Extension]]
- Includes codes defined in the code system [[https://simplifier.net/packages/hl7.fhir.r4.core/4.0.1/files/81887 AppointmentCancellationReason]]
- ---
- pat
- prov
- maint
- meds-inc
- other
- }
-
- class ISiKTerminPriorityExtension <<(E,#7A8495)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-terminplanung-v4/isikterminpriorityextension ISiKTermin Priority Extension]]
- ---
- value[x] : **ISiKTerminPriority (required)**
- |_ valueCodeableConcept
- }
-
-namespace DE_Basisprofile_R4 {
- class Basisprofile_DE <<(M,#FFAAAA)>>{
- Dokumentation auf HL7 Org
- [[https://simplifier.net/basisprofil-de-r4 Basisprofil DE (RE4)]]
- }
- class VS_CommonMetaTag_De <<(V,#8DA5C4)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656812 VS Common Meta Tag DE]]
- Includes codes from the underlying code System
- [[https://simplifier.net/packages/de.basisprofil.r4/1.4.0/files/656725 CS Common Meta Tag DE]]
- }
-
-namespace ISiK_Basis {
- class Basismodul_Stufe_4 <<(M,#FFDC36)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-basis-v4/~introduction ISiK Basis Stufe 4]]
- }
- class ISiKPatient <<(P,#8DA5C4)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-basis-v4/isikpatient ISiK Patient]]
- }
- class ISiKKontaktGesundheitseinrichtung <<(P,#8DA5C4)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-basis-v4/isikkontaktgesundheitseinrichtung ISiK Kontakt Gesundheitseinrichtung]]
- }
- class ISiKPractitioner <<(P,#8DA5C4)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-basis-v4/isikpersonimgesundheitsberuf ISiK Person im Gesundheitsberuf]]
- }
- class ISiKAngehoeriger <<(P,#8DA5C4)>>{
- Dokumentation auf Simplifier
- [[https://simplifier.net/isik-basis-v4/isikangehoeriger ISiK Angehoeriger]]
- }
-}
-
-
-'namespace dummy {
-' class Foo {
-' + field1
-' + field2
-' }
-' class Bar {
-' + field3
-' + field4
-' }
-' Foo::field1 --> Bar::field3 : foo
-' Foo::field2 --> Bar::field4 : bar
-'}
-@enduml
\ No newline at end of file
diff --git a/Material/images/src/plantuml/search_includes.puml b/Material/images/src/plantuml/search_includes.puml
deleted file mode 100644
index 18c830ca..00000000
--- a/Material/images/src/plantuml/search_includes.puml
+++ /dev/null
@@ -1,47 +0,0 @@
-
-@startuml searchtypes_interaction
-left to right direction
-'skinparam packageStyle cloud
-skinparam linetype ortho
-
-
-folder CSt_AppointmentLead as "Alle Systeme mit dem Charakter eines Terminführenden Systems" {
- component CStLead_Schedule [
- **ISiK Kalender**
- ====
- Suche anhand von
- ** : ** actor
- ===
- Finde alle zugehörigen
- * Slot ** via ** schedule
- ]
-
- component CStLead_Slot [
- **ISiK Terminblock**
- ====
- Suche anhand von
- ** : ** schedule
- ===
- Finde alle zugehörigen
- * Appointment ** via ** slot
- ]
-
- component CStLead_Appointment [
- **ISiK Termin**
- ====
- Suche anhand von
- ** : ** schedule
- ===
- Finde alle zugehörigen
- * Appointment ** via ** slot
- ]
-
- 'component "ISiK MedikationsListe"
- component "ISiK Medikament"
- component "ISiK Patient"
- component "ISiK Kontakt Gesundheitseinrichtung"
- component "ISiK Person im Gesundheitsberuf"
-
-}
-
-@enduml
\ No newline at end of file
diff --git a/Material/images/src/plantuml/usecases.puml b/Material/images/src/plantuml/usecases.puml
deleted file mode 100644
index cc14d667..00000000
--- a/Material/images/src/plantuml/usecases.puml
+++ /dev/null
@@ -1,61 +0,0 @@
-'@startuml usecases
-'usecase Medikation as "
-' = Medikation
-'
-' ___
-' Some text
-' === Neu-Verordnung
-' Other text
-' === Anpassung
-' Information
-' === Abgabe
-'"
-'@enduml
-
-@startuml usecases
-left to right direction
-'skinparam packageStyle cloud
-'skinparam linetype ortho
-
-'actor :FHIR Repository: as DB << Application >>
-actor :Heilberufler:
-actor :Versicherter:
-storage adverseUC as "Adverse Use Case" {
- storage (Verwechslung){
- (Dauer)
- (Termin)
- (Benötigte Expertise)
- (Patient)
- }
- (Mehrfachbelegung)
- (Terminüberhang)
- (Nicht-Erscheinen)
- (Personalüberhang)
-}
-
-storage gnrlUC as "Allgemein" {
- (Information)
- (Benachrichtigung)
- (Terminbuchung)
- (Sprechzeiten)
- (Schließzeiten)
- (Terminhistorie)
- (Personalplanung)
- storage booKUC as "Buchung von Terminen"{
- (Absage)
- (Verschieben)
- (Durchführung)
- (Anfrage-Ablehnung)
- (Anfrage-Abbruch)
- (Anfrage-Reservierung)
- }
-}
-
-Heilberufler --> gnrlUC
-Versicherter --> Information
-Versicherter --> booKUC
-
-
-'fncts --> adverseUC : mitigates
-'fncts --> gnrlUC : enables
-@enduml
\ No newline at end of file
diff --git a/Resources/fsh-generated/fsh-index.json b/Resources/fsh-generated/fsh-index.json
index c11df889..17e2732d 100644
--- a/Resources/fsh-generated/fsh-index.json
+++ b/Resources/fsh-generated/fsh-index.json
@@ -4,16 +4,16 @@
"fshName": "ISiKTerminExample",
"fshType": "Instance",
"fshFile": "ISiKTermin.fsh",
- "startLine": 95,
- "endLine": 112
+ "startLine": 97,
+ "endLine": 114
},
{
"outputFile": "Appointment-ISiKTerminExampleExtendedICU.json",
"fshName": "ISiKTerminExampleExtendedICU",
"fshType": "Instance",
"fshFile": "ISiKTermin.fsh",
- "startLine": 114,
- "endLine": 132
+ "startLine": 116,
+ "endLine": 134
},
{
"outputFile": "CapabilityStatement-ISiKCapabilityStatementTerminplanungServer.json",
@@ -21,7 +21,7 @@
"fshType": "Instance",
"fshFile": "ISiKTerminplanungCapabilityStatement.fsh",
"startLine": 1,
- "endLine": 258
+ "endLine": 395
},
{
"outputFile": "Communication-ISiKNachrichtExample.json",
@@ -36,8 +36,8 @@
"fshName": "ISiKMedizinischeBehandlungseinheitExample",
"fshType": "Instance",
"fshFile": "ISiKMedizinischeBehandlungseinheit.fsh",
- "startLine": 20,
- "endLine": 26
+ "startLine": 22,
+ "endLine": 28
},
{
"outputFile": "OperationDefinition-ISiKAppointmentBookOperation.json",
@@ -52,8 +52,8 @@
"fshName": "ISiKKalenderExample",
"fshType": "Instance",
"fshFile": "ISiKKalender.fsh",
- "startLine": 41,
- "endLine": 48
+ "startLine": 45,
+ "endLine": 52
},
{
"outputFile": "Slot-ISiKTerminblockExample.json",
@@ -69,7 +69,7 @@
"fshType": "Profile",
"fshFile": "ISiKKalender.fsh",
"startLine": 1,
- "endLine": 30
+ "endLine": 34
},
{
"outputFile": "StructureDefinition-ISiKMedizinischeBehandlungseinheit.json",
@@ -77,7 +77,7 @@
"fshType": "Profile",
"fshFile": "ISiKMedizinischeBehandlungseinheit.fsh",
"startLine": 1,
- "endLine": 18
+ "endLine": 20
},
{
"outputFile": "StructureDefinition-ISiKNachricht.json",
@@ -92,8 +92,8 @@
"fshName": "ISiKNachrichtExtension",
"fshType": "Extension",
"fshFile": "ISiKTermin.fsh",
- "startLine": 78,
- "endLine": 81
+ "startLine": 80,
+ "endLine": 83
},
{
"outputFile": "StructureDefinition-ISiKTermin.json",
@@ -101,23 +101,15 @@
"fshType": "Profile",
"fshFile": "ISiKTermin.fsh",
"startLine": 1,
- "endLine": 76
- },
- {
- "outputFile": "StructureDefinition-ISiKTerminKontaktMitGesundheitseinrichtung.json",
- "fshName": "ISiKTerminKontaktMitGesundheitseinrichtung",
- "fshType": "Profile",
- "fshFile": "ISiKTerminKontaktMitGesundheitseinrichtung.fsh",
- "startLine": 1,
- "endLine": 5
+ "endLine": 78
},
{
"outputFile": "StructureDefinition-ISiKTerminPriorityExtension.json",
"fshName": "ISiKTerminPriorityExtension",
"fshType": "Extension",
"fshFile": "ISiKTermin.fsh",
- "startLine": 83,
- "endLine": 88
+ "startLine": 85,
+ "endLine": 90
},
{
"outputFile": "StructureDefinition-ISiKTerminblock.json",
@@ -132,8 +124,8 @@
"fshName": "ScheduleName",
"fshType": "Extension",
"fshFile": "ISiKKalender.fsh",
- "startLine": 34,
- "endLine": 39
+ "startLine": 38,
+ "endLine": 43
},
{
"outputFile": "ValueSet-ISiKTerminCancelationReason.json",
@@ -149,6 +141,6 @@
"fshType": "ValueSet",
"fshFile": "valueSets.fsh",
"startLine": 11,
- "endLine": 15
+ "endLine": 31
}
]
diff --git a/Resources/fsh-generated/fsh-index.txt b/Resources/fsh-generated/fsh-index.txt
index 5d55a594..021e9f8c 100644
--- a/Resources/fsh-generated/fsh-index.txt
+++ b/Resources/fsh-generated/fsh-index.txt
@@ -1,20 +1,19 @@
-Output File Name Type FSH File Lines
-Appointment-ISiKTerminExample.json ISiKTerminExample Instance ISiKTermin.fsh 95 - 112
-Appointment-ISiKTerminExampleExtendedICU.json ISiKTerminExampleExtendedICU Instance ISiKTermin.fsh 114 - 132
-CapabilityStatement-ISiKCapabilityStatementTerminplanungServer.json ISiKCapabilityStatementTerminplanungServer Instance ISiKTerminplanungCapabilityStatement.fsh 1 - 258
-Communication-ISiKNachrichtExample.json ISiKNachrichtExample Instance ISiKNachricht.fsh 32 - 41
-HealthcareService-ISiKMedizinischeBehandlungseinheitExample.json ISiKMedizinischeBehandlungseinheitExample Instance ISiKMedizinischeBehandlungseinheit.fsh 20 - 26
-OperationDefinition-ISiKAppointmentBookOperation.json Book Instance ISiKBookOperation.fsh 1 - 52
-Schedule-ISiKKalenderExample.json ISiKKalenderExample Instance ISiKKalender.fsh 41 - 48
-Slot-ISiKTerminblockExample.json ISiKTerminblockExample Instance ISiKTerminblock.fsh 19 - 25
-StructureDefinition-ISiKKalender.json ISiKKalender Profile ISiKKalender.fsh 1 - 30
-StructureDefinition-ISiKMedizinischeBehandlungseinheit.json ISiKMedizinischeBehandlungseinheit Profile ISiKMedizinischeBehandlungseinheit.fsh 1 - 18
-StructureDefinition-ISiKNachricht.json ISiKNachricht Profile ISiKNachricht.fsh 1 - 30
-StructureDefinition-ISiKNachrichtExtension.json ISiKNachrichtExtension Extension ISiKTermin.fsh 78 - 81
-StructureDefinition-ISiKTermin.json ISiKTermin Profile ISiKTermin.fsh 1 - 76
-StructureDefinition-ISiKTerminKontaktMitGesundheitseinrichtung.json ISiKTerminKontaktMitGesundheitseinrichtung Profile ISiKTerminKontaktMitGesundheitseinrichtung.fsh 1 - 5
-StructureDefinition-ISiKTerminPriorityExtension.json ISiKTerminPriorityExtension Extension ISiKTermin.fsh 83 - 88
-StructureDefinition-ISiKTerminblock.json ISiKTerminblock Profile ISiKTerminblock.fsh 1 - 12
-StructureDefinition-ScheduleName.json ScheduleName Extension ISiKKalender.fsh 34 - 39
-ValueSet-ISiKTerminCancelationReason.json ISiKTerminCancelationReason ValueSet valueSets.fsh 1 - 9
-ValueSet-ISiKTerminPriority.json ISiKTerminPriority ValueSet valueSets.fsh 11 - 15
\ No newline at end of file
+Output File Name Type FSH File Lines
+Appointment-ISiKTerminExample.json ISiKTerminExample Instance ISiKTermin.fsh 97 - 114
+Appointment-ISiKTerminExampleExtendedICU.json ISiKTerminExampleExtendedICU Instance ISiKTermin.fsh 116 - 134
+CapabilityStatement-ISiKCapabilityStatementTerminplanungServer.json ISiKCapabilityStatementTerminplanungServer Instance ISiKTerminplanungCapabilityStatement.fsh 1 - 395
+Communication-ISiKNachrichtExample.json ISiKNachrichtExample Instance ISiKNachricht.fsh 32 - 41
+HealthcareService-ISiKMedizinischeBehandlungseinheitExample.json ISiKMedizinischeBehandlungseinheitExample Instance ISiKMedizinischeBehandlungseinheit.fsh 22 - 28
+OperationDefinition-ISiKAppointmentBookOperation.json Book Instance ISiKBookOperation.fsh 1 - 52
+Schedule-ISiKKalenderExample.json ISiKKalenderExample Instance ISiKKalender.fsh 45 - 52
+Slot-ISiKTerminblockExample.json ISiKTerminblockExample Instance ISiKTerminblock.fsh 19 - 25
+StructureDefinition-ISiKKalender.json ISiKKalender Profile ISiKKalender.fsh 1 - 34
+StructureDefinition-ISiKMedizinischeBehandlungseinheit.json ISiKMedizinischeBehandlungseinheit Profile ISiKMedizinischeBehandlungseinheit.fsh 1 - 20
+StructureDefinition-ISiKNachricht.json ISiKNachricht Profile ISiKNachricht.fsh 1 - 30
+StructureDefinition-ISiKNachrichtExtension.json ISiKNachrichtExtension Extension ISiKTermin.fsh 80 - 83
+StructureDefinition-ISiKTermin.json ISiKTermin Profile ISiKTermin.fsh 1 - 78
+StructureDefinition-ISiKTerminPriorityExtension.json ISiKTerminPriorityExtension Extension ISiKTermin.fsh 85 - 90
+StructureDefinition-ISiKTerminblock.json ISiKTerminblock Profile ISiKTerminblock.fsh 1 - 12
+StructureDefinition-ScheduleName.json ScheduleName Extension ISiKKalender.fsh 38 - 43
+ValueSet-ISiKTerminCancelationReason.json ISiKTerminCancelationReason ValueSet valueSets.fsh 1 - 9
+ValueSet-ISiKTerminPriority.json ISiKTerminPriority ValueSet valueSets.fsh 11 - 31
\ No newline at end of file
diff --git a/Resources/fsh-generated/resources/Appointment-ISiKTerminExampleExtendedICU.json b/Resources/fsh-generated/resources/Appointment-ISiKTerminExampleExtendedICU.json
index 73c26fdf..cc8fdc9b 100644
--- a/Resources/fsh-generated/resources/Appointment-ISiKTerminExampleExtendedICU.json
+++ b/Resources/fsh-generated/resources/Appointment-ISiKTerminExampleExtendedICU.json
@@ -44,11 +44,7 @@
{
"code": "INTM",
"system": "http://ihe-d.de/CodeSystems/AerztlicheFachrichtungen"
- }
- ]
- },
- {
- "coding": [
+ },
{
"code": "3600",
"system": "http://fhir.de/CodeSystem/dkgev/Fachabteilungsschluessel-erweitert"
diff --git a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementTerminplanungServer.json b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementTerminplanungServer.json
index 965495f9..adcbeae4 100644
--- a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementTerminplanungServer.json
+++ b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementTerminplanungServer.json
@@ -5,8 +5,8 @@
"status": "active",
"experimental": false,
"publisher": "gematik GmbH",
- "version": "4.0.0",
- "date": "2024-10-01",
+ "version": "4.0.1",
+ "date": "2024-12-02",
"implementationGuide": [
"https://gematik.de/fhir/isik/ImplementationGuide/ISiK-Terminplanung"
],
@@ -22,7 +22,7 @@
]
}
],
- "description": "Das vorliegende CapabilityStatement beschreibt alle verpflichtenden Interaktionen die ein ISiK-konformes System unterstützen muss um das Bestätigungsverfahren des Moduls 'Terminplanung' zu bestehen.",
+ "description": "Dieses CapabilityStatement beschreibt alle Interaktionen \n die ein ISiK-konformes System unterstützen MUSS bzw. KANN,\n um das Bestätigungsverfahren für dieses Modul zu bestehen. \n\n Jede Instanz eines bestätigungsrelevanten Systems MUSS an ihrem Endpunkt eine CapabilityStatement-Ressource bereitstellen.\nHierzu MUSS die [capabilities-Interaktion gemäß FHIR-Kernspezifikation](https://hl7.org/fhir/R4/http.html#capabilities) unterstützt werden. \nDer `MODE`-Parameter kann ignoriert werden. \nDas CapabilityStatement in dieser Spezifikation stellt die Anforderungen seitens der gematik dar (`kind = requirements`). \nZur Unterscheidung von Anforderungen, die erfüllt werden MÜSSEN gegenüber jenen, die erfüllt werden KÖNNEN, \nwird die [CapabilityStatement-Expectation-Extension](https://hl7.org/fhir/R4/extension-capabilitystatement-expectation.html) mit den möglichen Werten `SHALL` (=MUSS) und `MAY` (=KANN) verwendet. \n\nEine Server-Instanz MUSS ihrerseits ein CapabilityStatement vom `kind = instance` liefern und im Element `software` den Namen \nund die Versionsnummer angeben. \nDarüber hinaus MUSS in `CapabilityStatement.instantiates` die Canonical URL des nachfolgenden CapabilityStatements angegeben werden. \n\nDas CapabilityStatement der Instanz MUSS alle Funktionalitäten auflisten, die im folgenden CapabilityStatement mit `SHALL` gekennzeichnet sind. \nDas CapabilityStatement KANN darüber hinaus die mit `MAY` gekennzeichneten Funktionalitäten, sowie weitere Funktionalitäten auflisten, \nsofern diese in der Instanz implementiert wurden. \n\nDie Verwendung der CapabilityStatement-Expectation-Extension ist im CapabilityStatement der Server-Instanz nicht erforderlich.\n\nDieses CapabilityStatement repräsentiert die Anforderungen an ein Termin-Repository.",
"jurisdiction": [
{
"coding": [
@@ -40,21 +40,18 @@
"application/fhir+xml",
"application/fhir+json"
],
- "instantiates": [
- "https://gematik.de/fhir/isik/CapabilityStatement/ISiKCapabilityStatementTerminplanungServer"
- ],
"rest": [
{
"mode": "server",
"resource": [
{
+ "type": "Schedule",
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
"valueCode": "SHALL"
}
],
- "type": "Schedule",
"supportedProfile": [
"https://gematik.de/fhir/isik/StructureDefinition/ISiKKalender"
],
@@ -88,7 +85,42 @@
],
"name": "_id",
"definition": "http://hl7.org/fhir/SearchParameter/Resource-id",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_id=103270` \n **Anwendungshinweis:** \n Der Parameter `_id` wird selten alleinstehend verwendet, da sich zum Abruf einer Ressource \n anhand der `id` die `READ`-Interaktion besser anbietet. Der Parameter kann jedoch verwendet werden,\n um den Abruf einer Ressource bspw. mit einem `_include` weiterer Ressourcen zu verbinden,\n z.B. zum Abruf eines Encounters in Verbindung mit dem zugehörigen Patienten: \n `GET [base]/Encounter?_id=103270&_include=Encounter:patient` \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Parameters for all resources](https://hl7.org/fhir/R4/search.html#all). \n Dieser Suchparameter ist für die Umsetzung des IHE PDQm Profils verpflichtend."
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "SHALL"
+ }
+ ],
+ "name": "_tag",
+ "definition": "http://hl7.org/fhir/SearchParameter/Resource-tag",
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_tag=https://example.org/codes|needs-review` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Parameters for all resources](https://hl7.org/fhir/R4/search.html#all) \n sowie Abschnitt [Tags](https://www.hl7.org/fhir/R4/resource.html#simple-tags). "
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "SHALL"
+ }
+ ],
+ "name": "_count",
+ "type": "number",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_count=100` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Page Count](https://www.hl7.org/fhir/R4/search.html#count). "
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "MAY"
+ }
+ ],
+ "name": "_has",
+ "type": "string",
+ "documentation": "**Beispiel:** Suche nach allen Patienten, die eine Observation mit dem Code '1234-5' haben \n `GET [base]/Patient?_has:Observation:patient:code=1234-5` \n **Beispiel:** Suche nach allen Encountern, bei denen die Diagnose 'A12.3' gestellt wurde \n `GET [base]/Encounter?_has:Condition:encounter:code=A12.3` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Reverse Chaining](https://hl7.org/fhir/R4/search.html#has). "
},
{
"extension": [
@@ -99,7 +131,8 @@
],
"name": "active",
"definition": "http://hl7.org/fhir/SearchParameter/Schedule-active",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/Schedule?active=true` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
},
{
"extension": [
@@ -110,7 +143,8 @@
],
"name": "service-type",
"definition": "http://hl7.org/fhir/SearchParameter/Schedule-service-type",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/Schedule?service-type=http://example.org/fhir/CodeSystem/ScheduleServiceType|CT` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
},
{
"extension": [
@@ -121,7 +155,8 @@
],
"name": "specialty",
"definition": "http://hl7.org/fhir/SearchParameter/Schedule-specialty",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/Schedule?specialty=urn:oid:1.2.276.0.76.5.114|535` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
},
{
"extension": [
@@ -132,44 +167,41 @@
],
"name": "actor",
"definition": "http://hl7.org/fhir/SearchParameter/Schedule-actor",
- "type": "reference"
+ "type": "reference",
+ "documentation": "**Beispiel:** \n `GET [base]/Schedule?actor=Practitioner/ISiKPractitionerExample` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
}
],
"searchRevInclude": [
- "Slot:schedule"
+ "Slot:schedule",
+ "Schedule:actor"
],
"_searchRevInclude": [
{
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
- "valueCode": "SHALL"
+ "valueCode": "MAY"
}
]
- }
- ],
- "searchInclude": [
- "Schedule:actor"
- ],
- "_searchInclude": [
+ },
{
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
- "valueCode": "SHALL"
+ "valueCode": "MAY"
}
]
}
]
},
{
+ "type": "Slot",
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
"valueCode": "SHALL"
}
],
- "type": "Slot",
"supportedProfile": [
"https://gematik.de/fhir/isik/StructureDefinition/ISiKTerminblock"
],
@@ -203,7 +235,42 @@
],
"name": "_id",
"definition": "http://hl7.org/fhir/SearchParameter/Resource-id",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_id=103270` \n **Anwendungshinweis:** \n Der Parameter `_id` wird selten alleinstehend verwendet, da sich zum Abruf einer Ressource \n anhand der `id` die `READ`-Interaktion besser anbietet. Der Parameter kann jedoch verwendet werden,\n um den Abruf einer Ressource bspw. mit einem `_include` weiterer Ressourcen zu verbinden,\n z.B. zum Abruf eines Encounters in Verbindung mit dem zugehörigen Patienten: \n `GET [base]/Encounter?_id=103270&_include=Encounter:patient` \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Parameters for all resources](https://hl7.org/fhir/R4/search.html#all). \n Dieser Suchparameter ist für die Umsetzung des IHE PDQm Profils verpflichtend."
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "SHALL"
+ }
+ ],
+ "name": "_tag",
+ "definition": "http://hl7.org/fhir/SearchParameter/Resource-tag",
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_tag=https://example.org/codes|needs-review` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Parameters for all resources](https://hl7.org/fhir/R4/search.html#all) \n sowie Abschnitt [Tags](https://www.hl7.org/fhir/R4/resource.html#simple-tags). "
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "SHALL"
+ }
+ ],
+ "name": "_count",
+ "type": "number",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_count=100` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Page Count](https://www.hl7.org/fhir/R4/search.html#count). "
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "MAY"
+ }
+ ],
+ "name": "_has",
+ "type": "string",
+ "documentation": "**Beispiel:** Suche nach allen Patienten, die eine Observation mit dem Code '1234-5' haben \n `GET [base]/Patient?_has:Observation:patient:code=1234-5` \n **Beispiel:** Suche nach allen Encountern, bei denen die Diagnose 'A12.3' gestellt wurde \n `GET [base]/Encounter?_has:Condition:encounter:code=A12.3` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Reverse Chaining](https://hl7.org/fhir/R4/search.html#has). "
},
{
"extension": [
@@ -214,7 +281,8 @@
],
"name": "schedule",
"definition": "http://hl7.org/fhir/SearchParameter/Slot-schedule",
- "type": "reference"
+ "type": "reference",
+ "documentation": "**Beispiel:** \n `GET [base]/Slot?schedule=Schedule/ISiKKalenderExample&start=2022-12-10T09:00:00Z` \n `GET [base]/Slot?schedule=Schedule/ISiKKalenderExample` \n **Anwendungshinweis:** \n Der Suchparameter `schedule` MUSS in Kombination mit einem definierten Startzeitpunkt mittels Suchparameter `start` unterstützt werden. \n Der Suchparameter `schedule` KANN alleinstehend unterstützt werden. Beim Fehlen des `start`-Suchparameters SOLL der aktuelle Zeitpunkt des Servers \n als Startzeitpunkt per Default verwendet werden.\n In diesem Fall ist auch ein Chaining auf weitere verknüpfte Akteure möglich: \n `GET https://example.org/fhir/Slot?schedule.actor:HealthcareService.type=https://example.org/fhir/CodeSystem/Behandlungsleistung|CT` \n Dies kann notwendig sein, falls interdisziplinäre Kalender durch das Termin-Repository gepflegt werden (z.B. ein Kalender pro Station). \n In solchen Fälle wäre es sinnvoll, wenn das Termin-Repository einem Termin-Requestor eine Verknüpfung zwischen Kalender (Schedule) \n und Behandlungsleistung (HealthcareService) bereitstellen würde.\n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
},
{
"extension": [
@@ -225,7 +293,8 @@
],
"name": "status",
"definition": "http://hl7.org/fhir/SearchParameter/Slot-status",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/Slot?status=free&schedule=Schedule/ISiKTerminExample`\n `GET [base]/Slot?status=free&schedule.actor:Practitioner.name=Musterarzt` \n **Anwendungshinweis:** \n Der Suchparameter `status` MUSS in Kombination ('&') mit dem Parameter `schedule` unterstützt werden. \n Diese Abfrage KANN entweder eine direkte Angabe einer Referenz oder eine Angabe von weiteren Chaining-Parametern sein.\n Der Suchparameter MUSS NICHT alleinstehend unterstützt werden. \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
},
{
"extension": [
@@ -236,7 +305,8 @@
],
"name": "start",
"definition": "http://hl7.org/fhir/SearchParameter/Slot-start",
- "type": "date"
+ "type": "date",
+ "documentation": "**Beispiel:** \n `GET [base]/Slot?start=2022-12-10T09:00:00Z&schedule=Schedule/ISiKTerminExample` \n `GET [base]/Slot?start=2022-12-10T09:00:00Z&schedule.actor:Practitioner.name=Musterarzt` \n **Anwendungshinweis:** \n Der Suchparameter `start` MUSS in Kombination ('&') mit dem Parameter `schedule` unterstützt werden.\n Diese Abfrage KANN entweder eine direkte Angabe einer Referenz oder eine Angabe von weiteren Chaining-Parametern sein.\n Der Suchparameter MUSS NICHT alleinstehend unterstützt werden.\n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#date). "
}
],
"searchInclude": [
@@ -247,7 +317,7 @@
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
- "valueCode": "SHALL"
+ "valueCode": "MAY"
}
]
}
@@ -260,20 +330,20 @@
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
- "valueCode": "SHALL"
+ "valueCode": "MAY"
}
]
}
]
},
{
+ "type": "Appointment",
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
"valueCode": "SHALL"
}
],
- "type": "Appointment",
"supportedProfile": [
"https://gematik.de/fhir/isik/StructureDefinition/ISiKTermin"
],
@@ -316,7 +386,42 @@
],
"name": "_id",
"definition": "http://hl7.org/fhir/SearchParameter/Resource-id",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_id=103270` \n **Anwendungshinweis:** \n Der Parameter `_id` wird selten alleinstehend verwendet, da sich zum Abruf einer Ressource \n anhand der `id` die `READ`-Interaktion besser anbietet. Der Parameter kann jedoch verwendet werden,\n um den Abruf einer Ressource bspw. mit einem `_include` weiterer Ressourcen zu verbinden,\n z.B. zum Abruf eines Encounters in Verbindung mit dem zugehörigen Patienten: \n `GET [base]/Encounter?_id=103270&_include=Encounter:patient` \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Parameters for all resources](https://hl7.org/fhir/R4/search.html#all). \n Dieser Suchparameter ist für die Umsetzung des IHE PDQm Profils verpflichtend."
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "SHALL"
+ }
+ ],
+ "name": "_tag",
+ "definition": "http://hl7.org/fhir/SearchParameter/Resource-tag",
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_tag=https://example.org/codes|needs-review` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Parameters for all resources](https://hl7.org/fhir/R4/search.html#all) \n sowie Abschnitt [Tags](https://www.hl7.org/fhir/R4/resource.html#simple-tags). "
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "SHALL"
+ }
+ ],
+ "name": "_count",
+ "type": "number",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_count=100` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Page Count](https://www.hl7.org/fhir/R4/search.html#count). "
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "MAY"
+ }
+ ],
+ "name": "_has",
+ "type": "string",
+ "documentation": "**Beispiel:** Suche nach allen Patienten, die eine Observation mit dem Code '1234-5' haben \n `GET [base]/Patient?_has:Observation:patient:code=1234-5` \n **Beispiel:** Suche nach allen Encountern, bei denen die Diagnose 'A12.3' gestellt wurde \n `GET [base]/Encounter?_has:Condition:encounter:code=A12.3` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Reverse Chaining](https://hl7.org/fhir/R4/search.html#has). "
},
{
"extension": [
@@ -327,7 +432,8 @@
],
"name": "status",
"definition": "http://hl7.org/fhir/SearchParameter/Appointment-status",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/Appointment?status=booked` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
},
{
"extension": [
@@ -338,7 +444,8 @@
],
"name": "service-type",
"definition": "http://hl7.org/fhir/SearchParameter/Appointment-service-type",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/Appointment?service-type=http://example.org/fhir/CodeSystem/ScheduleServiceType|CT` \n **Anwendungshinweis:** \n Anwendungshinweise: Bei einer Suche mit dem `:not`-Modifier MÜSSEN Ressourcen, die keinen Wert für `Appointment.serviceType` enthalten, \n im Suchergebnis enthalten sein.\n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
},
{
"extension": [
@@ -349,7 +456,8 @@
],
"name": "specialty",
"definition": "http://hl7.org/fhir/SearchParameter/Appointment-service-type",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/Appointment?specialty=urn:oid:1.2.276.0.76.5.114|535` \n **Anwendungshinweis:** \n Anwendungshinweise: Bei einer Suche mit dem `:not`-Modifier MÜSSEN Ressourcen, die keinen Wert für `Appointment.specialty` enthalten, \n im Suchergebnis enthalten sein. \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
},
{
"extension": [
@@ -360,7 +468,8 @@
],
"name": "date",
"definition": "http://hl7.org/fhir/SearchParameter/Appointment-date",
- "type": "date"
+ "type": "date",
+ "documentation": "**Beispiel:** \n `GET [base]/Appointment?date=2022-12-10T09:00:00Z` \n **Anwendungshinweis:** \n Die Suche wird gegen das Element `Appointment.start` ausgewertet. \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#date). "
},
{
"extension": [
@@ -371,7 +480,8 @@
],
"name": "slot",
"definition": "http://hl7.org/fhir/SearchParameter/Appointment-slot",
- "type": "reference"
+ "type": "reference",
+ "documentation": "**Beispiel:** \n `GET [base]/Appointment?slot=Slot/ISiKSlotExample` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
},
{
"extension": [
@@ -382,7 +492,8 @@
],
"name": "actor",
"definition": "http://hl7.org/fhir/SearchParameter/Appointment-actor",
- "type": "reference"
+ "type": "reference",
+ "documentation": "**Beispiel:** \n `GET [base]/Appointment?actor=Patient/ISiKPatientExample` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
}
],
"operation": [
@@ -394,7 +505,8 @@
}
],
"name": "book",
- "definition": "https://gematik.de/fhir/isik/OperationDefinition/AppointmentBook"
+ "definition": "https://gematik.de/fhir/isik/OperationDefinition/AppointmentBook",
+ "documentation": "Die $book-Operation ermöglicht einem Termin-Requestor einen Termin in einem Termin-Repository zu buchen bzw. zu verschieben."
}
],
"searchInclude": [
@@ -406,7 +518,7 @@
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
- "valueCode": "SHALL"
+ "valueCode": "MAY"
}
]
},
@@ -414,20 +526,20 @@
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
- "valueCode": "SHALL"
+ "valueCode": "MAY"
}
]
}
]
},
{
+ "type": "Communication",
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
"valueCode": "MAY"
}
],
- "type": "Communication",
"supportedProfile": [
"https://gematik.de/fhir/isik/StructureDefinition/ISiKNachricht"
],
@@ -479,7 +591,42 @@
],
"name": "_id",
"definition": "http://hl7.org/fhir/SearchParameter/Resource-id",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_id=103270` \n **Anwendungshinweis:** \n Der Parameter `_id` wird selten alleinstehend verwendet, da sich zum Abruf einer Ressource \n anhand der `id` die `READ`-Interaktion besser anbietet. Der Parameter kann jedoch verwendet werden,\n um den Abruf einer Ressource bspw. mit einem `_include` weiterer Ressourcen zu verbinden,\n z.B. zum Abruf eines Encounters in Verbindung mit dem zugehörigen Patienten: \n `GET [base]/Encounter?_id=103270&_include=Encounter:patient` \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Parameters for all resources](https://hl7.org/fhir/R4/search.html#all). \n Dieser Suchparameter ist für die Umsetzung des IHE PDQm Profils verpflichtend."
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "SHALL"
+ }
+ ],
+ "name": "_tag",
+ "definition": "http://hl7.org/fhir/SearchParameter/Resource-tag",
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_tag=https://example.org/codes|needs-review` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Parameters for all resources](https://hl7.org/fhir/R4/search.html#all) \n sowie Abschnitt [Tags](https://www.hl7.org/fhir/R4/resource.html#simple-tags). "
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "SHALL"
+ }
+ ],
+ "name": "_count",
+ "type": "number",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_count=100` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Page Count](https://www.hl7.org/fhir/R4/search.html#count). "
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "MAY"
+ }
+ ],
+ "name": "_has",
+ "type": "string",
+ "documentation": "**Beispiel:** Suche nach allen Patienten, die eine Observation mit dem Code '1234-5' haben \n `GET [base]/Patient?_has:Observation:patient:code=1234-5` \n **Beispiel:** Suche nach allen Encountern, bei denen die Diagnose 'A12.3' gestellt wurde \n `GET [base]/Encounter?_has:Condition:encounter:code=A12.3` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Reverse Chaining](https://hl7.org/fhir/R4/search.html#has). "
},
{
"extension": [
@@ -490,7 +637,8 @@
],
"name": "subject",
"definition": "http://hl7.org/fhir/SearchParameter/Communication-subject",
- "type": "reference"
+ "type": "reference",
+ "documentation": "**Beispiel:** \n `GET [base]/Communication?subject=Patient/ISiKPatientExample` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
},
{
"extension": [
@@ -501,7 +649,8 @@
],
"name": "recipient",
"definition": "http://hl7.org/fhir/SearchParameter/Communication-recipient",
- "type": "reference"
+ "type": "reference",
+ "documentation": "**Beispiel:** \n `GET [base]/Communication?recipient=Practitioner/ISiKPractitionerExample` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
},
{
"extension": [
@@ -512,10 +661,12 @@
],
"name": "sender",
"definition": "http://hl7.org/fhir/SearchParameter/Communication-sender",
- "type": "reference"
+ "type": "reference",
+ "documentation": "**Beispiel:** \n `GET [base]/Communication?sender=Practitioner/ISiKPractitionerExample` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
}
],
"searchInclude": [
+ "Communication:recipient",
"Communication:sender",
"Communication:subject"
],
@@ -524,7 +675,7 @@
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
- "valueCode": "SHALL"
+ "valueCode": "MAY"
}
]
},
@@ -532,20 +683,28 @@
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
- "valueCode": "SHALL"
+ "valueCode": "MAY"
+ }
+ ]
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "MAY"
}
]
}
]
},
{
+ "type": "HealthcareService",
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
"valueCode": "SHALL"
}
],
- "type": "HealthcareService",
"supportedProfile": [
"https://gematik.de/fhir/isik/StructureDefinition/ISiKMedizinischeBehandlungseinheit"
],
@@ -579,7 +738,42 @@
],
"name": "_id",
"definition": "http://hl7.org/fhir/SearchParameter/Resource-id",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_id=103270` \n **Anwendungshinweis:** \n Der Parameter `_id` wird selten alleinstehend verwendet, da sich zum Abruf einer Ressource \n anhand der `id` die `READ`-Interaktion besser anbietet. Der Parameter kann jedoch verwendet werden,\n um den Abruf einer Ressource bspw. mit einem `_include` weiterer Ressourcen zu verbinden,\n z.B. zum Abruf eines Encounters in Verbindung mit dem zugehörigen Patienten: \n `GET [base]/Encounter?_id=103270&_include=Encounter:patient` \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Parameters for all resources](https://hl7.org/fhir/R4/search.html#all). \n Dieser Suchparameter ist für die Umsetzung des IHE PDQm Profils verpflichtend."
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "SHALL"
+ }
+ ],
+ "name": "_tag",
+ "definition": "http://hl7.org/fhir/SearchParameter/Resource-tag",
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_tag=https://example.org/codes|needs-review` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Parameters for all resources](https://hl7.org/fhir/R4/search.html#all) \n sowie Abschnitt [Tags](https://www.hl7.org/fhir/R4/resource.html#simple-tags). "
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "SHALL"
+ }
+ ],
+ "name": "_count",
+ "type": "number",
+ "documentation": "**Beispiel:** \n `GET [base]/[Resourcetype]?_count=100` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Page Count](https://www.hl7.org/fhir/R4/search.html#count). "
+ },
+ {
+ "extension": [
+ {
+ "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
+ "valueCode": "MAY"
+ }
+ ],
+ "name": "_has",
+ "type": "string",
+ "documentation": "**Beispiel:** Suche nach allen Patienten, die eine Observation mit dem Code '1234-5' haben \n `GET [base]/Patient?_has:Observation:patient:code=1234-5` \n **Beispiel:** Suche nach allen Encountern, bei denen die Diagnose 'A12.3' gestellt wurde \n `GET [base]/Encounter?_has:Condition:encounter:code=A12.3` \n **Anwendungshinweis:** \n Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Reverse Chaining](https://hl7.org/fhir/R4/search.html#has). "
},
{
"extension": [
@@ -590,7 +784,8 @@
],
"name": "active",
"definition": "http://hl7.org/fhir/SearchParameter/HealthcareService-active",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/HealthcareService?active=true` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
},
{
"extension": [
@@ -601,7 +796,8 @@
],
"name": "service-type",
"definition": "http://hl7.org/fhir/SearchParameter/HealthcareService-service-type",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/HealthcareService?service-type=http://example.org/fhir/CodeSystem/ScheduleServiceType|CT` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
},
{
"extension": [
@@ -612,7 +808,8 @@
],
"name": "specialty",
"definition": "http://hl7.org/fhir/SearchParameter/HealthcareService-specialty",
- "type": "token"
+ "type": "token",
+ "documentation": "**Beispiel:** \n `GET [base]/HealthcareService?specialty=urn:oid:1.2.276.0.76.5.114|535` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
},
{
"extension": [
@@ -623,20 +820,21 @@
],
"name": "name",
"definition": "http://hl7.org/fhir/SearchParameter/HealthcareService-name",
- "type": "string"
+ "type": "string",
+ "documentation": "**Beispiel:** \n `GET [base]/HealthcareService?name=Medizinische Behandlungseinheit Des Fachbereichs 0100` \n **Anwendungshinweis:** \n Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#string). "
}
],
- "searchRevInclude": [
+ "searchInclude": [
"Schedule:actor",
"Communication:recipient",
"Appointment:actor"
],
- "_searchRevInclude": [
+ "_searchInclude": [
{
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
- "valueCode": "SHALL"
+ "valueCode": "MAY"
}
]
},
@@ -644,7 +842,7 @@
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
- "valueCode": "SHALL"
+ "valueCode": "MAY"
}
]
},
@@ -652,7 +850,7 @@
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
- "valueCode": "SHALL"
+ "valueCode": "MAY"
}
]
}
@@ -667,7 +865,7 @@
],
"type": "Binary",
"supportedProfile": [
- "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBinary"
+ "https://gematik.de/fhir/isik/StructureDefinition/ISiKBinary"
],
"interaction": [
{
diff --git a/Resources/fsh-generated/resources/OperationDefinition-ISiKAppointmentBookOperation.json b/Resources/fsh-generated/resources/OperationDefinition-ISiKAppointmentBookOperation.json
index fda8188d..e3d8d54d 100644
--- a/Resources/fsh-generated/resources/OperationDefinition-ISiKAppointmentBookOperation.json
+++ b/Resources/fsh-generated/resources/OperationDefinition-ISiKAppointmentBookOperation.json
@@ -4,9 +4,9 @@
"status": "active",
"experimental": false,
"publisher": "gematik GmbH",
- "version": "4.0.0",
- "date": "2024-10-01",
- "name": "book",
+ "version": "4.0.1",
+ "date": "2024-12-02",
+ "name": "Book",
"url": "https://gematik.de/fhir/isik/OperationDefinition/AppointmentBook",
"kind": "operation",
"code": "book",
diff --git a/Resources/fsh-generated/resources/StructureDefinition-AppointmentReplaces.json b/Resources/fsh-generated/resources/StructureDefinition-AppointmentReplaces.json
new file mode 100644
index 00000000..29c2820f
--- /dev/null
+++ b/Resources/fsh-generated/resources/StructureDefinition-AppointmentReplaces.json
@@ -0,0 +1,49 @@
+{
+ "resourceType": "StructureDefinition",
+ "id": "AppointmentReplaces",
+ "url": "http://hl7.org/fhir/5.0/StructureDefinition/extension-Appointment.replaces",
+ "version": "4.0.1",
+ "name": "AppointmentReplaces",
+ "status": "active",
+ "experimental": false,
+ "date": "2024-12-02",
+ "publisher": "gematik GmbH",
+ "fhirVersion": "4.0.1",
+ "kind": "complex-type",
+ "abstract": false,
+ "context": [
+ {
+ "expression": "Appointment",
+ "type": "element"
+ }
+ ],
+ "type": "Extension",
+ "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension",
+ "derivation": "constraint",
+ "differential": {
+ "element": [
+ {
+ "id": "Extension.extension",
+ "path": "Extension.extension",
+ "max": "0"
+ },
+ {
+ "id": "Extension.url",
+ "path": "Extension.url",
+ "fixedUri": "http://hl7.org/fhir/5.0/StructureDefinition/extension-Appointment.replaces"
+ },
+ {
+ "id": "Extension.value[x]",
+ "path": "Extension.value[x]",
+ "type": [
+ {
+ "code": "Reference",
+ "targetProfile": [
+ "http://hl7.org/fhir/StructureDefinition/Appointment"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKKalender.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKKalender.json
index ed315143..f8b0b1e7 100644
--- a/Resources/fsh-generated/resources/StructureDefinition-ISiKKalender.json
+++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKKalender.json
@@ -2,11 +2,11 @@
"resourceType": "StructureDefinition",
"id": "ISiKKalender",
"url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKKalender",
- "version": "4.0.0",
+ "version": "4.0.1",
"name": "ISiKKalender",
"status": "active",
"experimental": false,
- "date": "2024-10-01",
+ "date": "2024-12-02",
"publisher": "gematik GmbH",
"fhirVersion": "4.0.1",
"kind": "resource",
@@ -19,6 +19,7 @@
{
"id": "Schedule.extension",
"path": "Schedule.extension",
+ "comment": "Begründung Must-Support-Flag (MS): Die KalenderName-Extension ermöglicht es einen menschenlesbaren Namen zu definieren, welcher zur Wiedererkennbarkeit des Kalenders im Rahmen der Terminplanung dient.",
"mustSupport": true
},
{
@@ -72,18 +73,32 @@
{
"id": "Schedule.active",
"path": "Schedule.active",
+ "comment": "Begründung Kardinalität und Must-Support-Flag (MS): Die Kardinalität 1..1 und das Must-Support-Flag (MS) für das 'active'-Element stellen sicher, dass jeder Kalender eindeutig als aktiv oder inaktiv gekennzeichnet ist. Dies ist entscheidend für die Ressourcenplanung und Verfügbarkeit von Terminen.",
"min": 1,
"mustSupport": true
},
{
"id": "Schedule.serviceType",
"path": "Schedule.serviceType",
+ "comment": "Begründung zu Kardinalität und Must Support: Die Dienstleistungsart eines Termins ist von entscheidender Bedeutung, um die Verfügbarkeit und Planung des Termins zu gewährleisten. Daher ist dieses Feld verpflichtend (1..*) und muss unterstützt werden (MS). Aufgrund der Heterogenität von Dienstleistungen ist eine standardisierte Kodierung nicht zwingend notwendig, eine Freitextbeschreibung ist ausreichend.",
"min": 1,
"mustSupport": true
},
+ {
+ "id": "Schedule.serviceType.text",
+ "path": "Schedule.serviceType.text",
+ "mustSupport": true
+ },
{
"id": "Schedule.specialty",
"path": "Schedule.specialty",
+ "comment": "Hinweis: Ein Kalender kann für ein Akteur gepflegt werden. Dieser Akteur kann in einer oder mehreren Fachrichtungen agieren. Für die Ressourcenplanung (z.B. welche Akteure sind für einen Termin verfügbar) sollte auch auf die Speciality des Akteurs zurückgegriffen werden für den Fall, dass ein Kalender pro Fachbereich - d.h. Akteur-übergreifend - gepflegt wird. \n \n Begründung Kardinalität Must-Support-Flag (MS): Die Kardinalität 1..* und das Must-Support-Flag (MS) für das 'specialty'-Element stellen sicher, dass jeder Kalender mindestens eine Fachrichtung angibt. Dies ist wichtig für die Ressourcenplanung und die Verfügbarkeit von Terminen, sodass angefragte Termine einem Fachbereich zugeordnet werden können.\n\n Hintergrund: Die Festlegung hat in einer Expertengruppe am 4.6.2024 stattgefunden. Diese war zuvor in einer ISiK Arbeitsgruppe bekanntgegeben worden und stand damit allen Beteiligten offen. \n ",
+ "min": 1,
+ "mustSupport": true
+ },
+ {
+ "id": "Schedule.specialty.coding",
+ "path": "Schedule.specialty.coding",
"slicing": {
"discriminator": [
{
@@ -93,12 +108,13 @@
],
"rules": "open"
},
+ "comment": "Begründung Kardinalität Fachrichtung: Die Kardinalität der Fachrichtung-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass genau eine Fachrichtung per IHE-XDS-Kodierung vorhanden ist. Dies ist notwendig, um die Spezialisierung des Kalenders eindeutig zu definieren und eine korrekte Zuordnung zu gewährleisten.\n \n Begründung Kardinalität ErweiterterFachabteilungsschluessel: Die Kardinalität der ErweiterterFachabteilungsschluessel-Eigenschaft wird auf 0..1 festgelegt, um sicherzustellen, dass optional ein erweiterter Fachabteilungsschlüssel vorhanden sein kann.",
"min": 1,
"mustSupport": true
},
{
- "id": "Schedule.specialty:Fachrichtung",
- "path": "Schedule.specialty",
+ "id": "Schedule.specialty.coding:Fachrichtung",
+ "path": "Schedule.specialty.coding",
"sliceName": "Fachrichtung",
"comment": "Die Wahl des hinterlegten ValueSets (http://ihe-d.de/ValueSets/IHEXDSpracticeSettingCode) wurde mit einem Mitglied der IHE Deutschland Arbeitsgruppe XDS ValueSets (https://www.ihe-d.de/projekte/xds-value-sets-fuer-deutschland/) sowie mit der KBV abgestimmt (Stand:13.6.2024).",
"min": 1,
@@ -110,15 +126,15 @@
}
},
{
- "id": "Schedule.specialty:ErweiterterFachabteilungsschluessel",
- "path": "Schedule.specialty",
+ "id": "Schedule.specialty.coding:ErweiterterFachabteilungsschluessel",
+ "path": "Schedule.specialty.coding",
"sliceName": "ErweiterterFachabteilungsschluessel",
"comment": "Dieses ValueSet KANN über ein Mapping (siehe Abschnitt https://wiki.hl7.de/index.php?title=IG:Value_Sets_f%C3%BCr_XDS#DocumentEntry.practiceSettingCode) mit dem ValueSet der Fachrichtung verknüpft werden und darüber ggf. die Integration von Systemen erleichtern.",
"min": 0,
"max": "1",
"binding": {
"strength": "required",
- "valueSet": "http://fhir.de/CodeSystem/dkgev/Fachabteilungsschluessel-erweitert"
+ "valueSet": "http://fhir.de/ValueSet/dkgev/Fachabteilungsschluessel-erweitert"
}
},
{
@@ -133,17 +149,19 @@
],
"rules": "open"
},
+ "comment": "Begründung Kardinalität und Must-Support-Flag (MS): Die Kardinalität der Akteur-Eigenschaft wird auf 0..1 festgelegt, um sicherzustellen, dass ein Akteur eindeutig ist, falls dieser vorhanden ist. Durch das MS wird sichergestellt, dass Systeme in der Lage sind, einen Akteur zu unterstützen, wenn er vorhanden ist.",
"mustSupport": true
},
{
"id": "Schedule.actor.identifier",
"path": "Schedule.actor.identifier",
+ "comment": "Begründung Must-Support-Flag (MS):\n Das Must-Support-Flag (MS) für das 'identifier'-Element stellt sicher, dass Systeme in der Lage sind, einen Identifier zu unterstützen, wenn er vorhanden ist. Dies ist wichtig für die eindeutige Identifizierung und Verknüpfung von Akteuren in verschiedenen Systemen.",
"mustSupport": true
},
{
"id": "Schedule.actor.display",
"path": "Schedule.actor.display",
- "min": 1,
+ "comment": "Hinweis und Begründung zum Must Support: Für alle Target-Ressourcen SOLL ein Displaywert für die Referenz angegeben werden, sodass Systeme eine Übersicht der am Termin beteiligten Akteure anzeigen können ohne die Referenzen auflösen zu müssen. Somit kann ein Termin-Consumer direkt anzeigen für welche Akteure ein Terminkalender existiert.\n \n",
"mustSupport": true
},
{
@@ -168,6 +186,7 @@
{
"id": "Schedule.actor:Akteur.reference",
"path": "Schedule.actor.reference",
+ "comment": "Begründung Kardinalität: Die Kardinalität der Akteur-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass ein eindeutiger Akteur vorhanden ist.",
"min": 1,
"mustSupport": true
}
diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKMedizinischeBehandlungseinheit.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKMedizinischeBehandlungseinheit.json
index 9905bc29..a4f8769a 100644
--- a/Resources/fsh-generated/resources/StructureDefinition-ISiKMedizinischeBehandlungseinheit.json
+++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKMedizinischeBehandlungseinheit.json
@@ -2,11 +2,11 @@
"resourceType": "StructureDefinition",
"id": "ISiKMedizinischeBehandlungseinheit",
"url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKMedizinischeBehandlungseinheit",
- "version": "4.0.0",
+ "version": "4.0.1",
"name": "ISiKMedizinischeBehandlungseinheit",
"status": "active",
"experimental": false,
- "date": "2024-10-01",
+ "date": "2024-12-02",
"publisher": "gematik GmbH",
"fhirVersion": "4.0.1",
"kind": "resource",
@@ -19,18 +19,27 @@
{
"id": "HealthcareService.active",
"path": "HealthcareService.active",
+ "comment": "Bedeutung: Ist der HealthcareService in aktiver Verwendung.\n \n Hinweis: Historische HealthcareServices können ebenfalls über die ISiK-Schnittstelle ausgetauscht werden. Für diese dürfen jedoch keine Termine vereinbart werden. Das terminführende System MUSS dies bei der Buchung überprüfen.\n \n Begründung Kardinalität und Must-Support-Flag (MS): Die Kardinalität 1..1 und das Must-Support-Flag (MS) für das 'active'-Element stellen sicher, dass jede Behandlungseinheit eindeutig als aktiv oder inaktiv gekennzeichnet ist. Dies ist entscheidend für die Ressourcenplanung und Verfügbarkeit von Behandlungseinheiten.",
"min": 1,
"mustSupport": true
},
{
"id": "HealthcareService.type",
"path": "HealthcareService.type",
+ "comment": "**Bedeutung:** Klassifikation der Behandlungsleistung welche durch den HealthcareService erbracht wird\n\n**Hinweis:** Diese Klassifikation SOLL stets auch in Appointment.serviceType und Schedule.serviceType angegeben werden. Seitens der aktuellen Spezifikation werden keine Vorgaben bezüglich der zu verwendenden Terminologie gemacht. Entsprechend verwendete Kataloge müssen als CodeSystem- und ValueSet-Ressourcen exponiert werden. Siehe [Suchparameter 'context-type-value' in ISiK Basis - Datenobjekt ValueSet](https://simplifier.net/resolve?&scope=isik-basis-v4@current&canonical=https://gematik.de/fhir/isik/StructureDefinition/ISiKValueSet).\n\n**Begründung Kardinalität:** Eine Behandlungseinheit muss mindestens einen Typ haben, sodass im Rahmen der Terminplanung ermittelt werden kann welcher Akteur für die Durchführung eines Termins zur Verfügung steht.",
"min": 1,
"mustSupport": true
},
{
"id": "HealthcareService.specialty",
"path": "HealthcareService.specialty",
+ "comment": "**Bedeutung:** Fachrichtung der Behandlungsleistung welche durch den HealthcareService erbracht wird\n\n**Hinweis:** Diese Fachrichtung SOLL stets auch in Appointment.specialty und Schedule.specialty angegeben werden.\n \n**Begründung Kardinalität:** Eine Behandlungseinheit kann multiprofessionell sein und mehere Fachbereiche abdecken. Sie muss jedoch mindestens einem Fachbereich zugeordnet sein, sodass die Behandlungseinheit während der Terminplanung als Akteur miteinbezogen werden für passende Termine.",
+ "min": 1,
+ "mustSupport": true
+ },
+ {
+ "id": "HealthcareService.specialty.coding",
+ "path": "HealthcareService.specialty.coding",
"slicing": {
"discriminator": [
{
@@ -40,12 +49,13 @@
],
"rules": "open"
},
+ "comment": "Begründung Kardinalität Fachrichtung: Die Kardinalität der Fachrichtung-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass genau eine Fachrichtung per IHE-XDS-Kodierung vorhanden ist. Dies ist notwendig, um die Spezialisierung der Behandlungseinheit eindeutig zu definieren und eine korrekte Zuordnung zu gewährleisten.\n \n Begründung Kardinalität ErweiterterFachabteilungsschluessel: Die Kardinalität der ErweiterterFachabteilungsschluessel-Eigenschaft wird auf 0..1 festgelegt, um sicherzustellen, dass optional ein erweiterter Fachabteilungsschlüssel vorhanden sein kann.",
"min": 1,
"mustSupport": true
},
{
- "id": "HealthcareService.specialty:Fachrichtung",
- "path": "HealthcareService.specialty",
+ "id": "HealthcareService.specialty.coding:Fachrichtung",
+ "path": "HealthcareService.specialty.coding",
"sliceName": "Fachrichtung",
"comment": "Die Wahl des hinterlegten ValueSets (http://ihe-d.de/ValueSets/IHEXDSpracticeSettingCode) wurde mit einem Mitglied der IHE Deutschland Arbeitsgruppe XDS ValueSets (https://www.ihe-d.de/projekte/xds-value-sets-fuer-deutschland/) sowie mit der KBV abgestimmt (Stand:13.6.2024).",
"min": 1,
@@ -57,20 +67,21 @@
}
},
{
- "id": "HealthcareService.specialty:ErweiterterFachabteilungsschluessel",
- "path": "HealthcareService.specialty",
+ "id": "HealthcareService.specialty.coding:ErweiterterFachabteilungsschluessel",
+ "path": "HealthcareService.specialty.coding",
"sliceName": "ErweiterterFachabteilungsschluessel",
"comment": "Dieses ValueSet KANN über ein Mapping (siehe Abschnitt https://wiki.hl7.de/index.php?title=IG:Value_Sets_f%C3%BCr_XDS#DocumentEntry.practiceSettingCode) mit dem ValueSet der Fachrichtung verknüpft werden und darüber ggf. die Integration von Systemen erleichtern.",
"min": 0,
"max": "1",
"binding": {
"strength": "required",
- "valueSet": "http://fhir.de/CodeSystem/dkgev/Fachabteilungsschluessel-erweitert"
+ "valueSet": "http://fhir.de/ValueSet/dkgev/Fachabteilungsschluessel-erweitert"
}
},
{
"id": "HealthcareService.name",
"path": "HealthcareService.name",
+ "comment": "**Bedeutung:** Informeller Name der Behandlungseinheit\n\n**Hinweis:** Es wird im Rahmen dieser Spezifikation davon ausgegangen, dass für einen HealthcareService keine natürlichen Identifier vorliegen, die in einem realen Kontext vergeben werden. Somit kann durch den Namen ein informeller, jedoch identifizierender Bezeichner vergeben werden.\n\n**Begründung Kardinalität:** Eine Behandlungseinheit muss mindestens einen Namen haben, um eine Wiedererkennbarkeit im Rahmen der Terminplanung zu gewährleisten.",
"min": 1,
"mustSupport": true
}
diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKNachricht.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKNachricht.json
index 06a375f4..ef994a58 100644
--- a/Resources/fsh-generated/resources/StructureDefinition-ISiKNachricht.json
+++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKNachricht.json
@@ -2,11 +2,11 @@
"resourceType": "StructureDefinition",
"id": "ISiKNachricht",
"url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKNachricht",
- "version": "4.0.0",
+ "version": "4.0.1",
"name": "ISiKNachricht",
"status": "active",
"experimental": false,
- "date": "2024-10-01",
+ "date": "2024-12-02",
"publisher": "gematik GmbH",
"fhirVersion": "4.0.1",
"kind": "resource",
@@ -19,6 +19,7 @@
{
"id": "Communication.inResponseTo",
"path": "Communication.inResponseTo",
+ "comment": "Begründung Must Support: Es wird hierdurch ermöglicht auf Nachrichten die der Patient vorab übermittelt hat zu beantworten.",
"mustSupport": true
},
{
@@ -29,7 +30,7 @@
{
"id": "Communication.subject",
"path": "Communication.subject",
- "comment": "Im ISIK-Kontext MUSS der referenzierte Patient konform zum [ISIKPatient](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient) des Basismoduls sein.",
+ "comment": "Im ISIK-Kontext MUSS der referenzierte Patient konform zum [ISIKPatient](https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient) des Basismoduls sein.",
"min": 1,
"type": [
{
@@ -44,6 +45,7 @@
{
"id": "Communication.sent",
"path": "Communication.sent",
+ "comment": "Begründung Must Support: Eine zeitlich korrekte Darstellung der Nachrichten wird hierdurch ermöglicht",
"mustSupport": true
},
{
@@ -58,18 +60,20 @@
],
"rules": "open"
},
- "comment": "Im ISIK-Kontext MUSS die referenzierte Practitioner-Ressource konform zum [ISiKPersonImGesundheitsberuf](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf) des Basismoduls sein.",
+ "comment": "Im ISIK-Kontext MUSS die referenzierte Practitioner-Ressource konform zum [ISiKPersonImGesundheitsberuf](https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf) des Basismoduls sein.",
"min": 1,
"mustSupport": true
},
{
"id": "Communication.recipient.identifier",
"path": "Communication.recipient.identifier",
+ "comment": "Begründung Kardinalität und Must-Support-Flag (MS): Die Kardinalität der identifier-Eigenschaft wird auf 0..1 festgelegt, um sicherzustellen, dass ein Empfänger über einen eindeutigen Identifier referenzierbar ist.",
"mustSupport": true
},
{
"id": "Communication.recipient.display",
"path": "Communication.recipient.display",
+ "comment": "Begründung Kardinalität und Must Support: Die Kardinalität der display-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass ein Empfänger immer eindeutig benannt wird. Das Must Support wird auf 'true' gesetzt, um sicherzustellen, dass Systeme in der Lage sind, einen Empfänger anzuzeigen, ohne die Referenzen auflösen zu müssen. Somit kann ein Termin-Consumer direkt anzeigen für welche Empfänger eine Nachricht existiert.",
"min": 1,
"mustSupport": true
},
@@ -99,18 +103,33 @@
{
"id": "Communication.sender",
"path": "Communication.sender",
+ "comment": "Begründung Kardinalität und Must Support: Die Kardinalität der sender-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass mindestens ein Sender vorhanden ist. Das Must Support wird auf 'true' gesetzt, um sicherzustellen, dass Systeme in der Lage sind, einen Sender zu unterstützen, wenn er vorhanden ist.",
"min": 1,
"mustSupport": true
},
{
"id": "Communication.sender.reference",
"path": "Communication.sender.reference",
+ "comment": "Im ISIK-Kontext MUSS die referenzierte Practitioner-Ressource konform zum [ISiKPersonImGesundheitsberuf](https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf) des Basismoduls sein. Im ISIK-Kontext MUSS die referenzierte RelatedPerson-Ressource konform zum [ISiKAngehoeriger](https://gematik.de/fhir/isik/StructureDefinition/ISiKAngehoeriger) des Basismoduls sein. Im ISIK-Kontext MUSS die referenzierte RelatedPerson-Ressource konform zum [ISiKPatient](https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient) des Basismoduls sein.",
+ "mustSupport": true
+ },
+ {
+ "id": "Communication.sender.identifier",
+ "path": "Communication.sender.identifier",
+ "comment": "Begründung Kardinalität und Must-Support-Flag (MS): Die Kardinalität der identifier-Eigenschaft wird auf 0..1 festgelegt, um sicherzustellen, dass höchstens ein Identifier vorhanden ist, damit ein Sender eindeutig über einen Identifier referenzierbar ist.",
+ "mustSupport": true
+ },
+ {
+ "id": "Communication.sender.display",
+ "path": "Communication.sender.display",
+ "comment": "Begründung Kardinalität und Must Support: Die Kardinalität der display-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass ein Sender immer eindeutig benannt wird. Das Must Support wird auf 'true' gesetzt, um sicherzustellen, dass Systeme in der Lage sind, einen Empfänger anzuzeigen, ohne die Referenzen auflösen zu müssen. Somit kann ein Termin-Consumer direkt anzeigen welche Sender eine Nachricht verfasst haben.",
"min": 1,
"mustSupport": true
},
{
"id": "Communication.payload",
"path": "Communication.payload",
+ "comment": "Begründung Kardinalität und Must Support: Die Kardinalität der payload-Eigenschaft wird auf 1..* festgelegt, um sicherzustellen, dass ein Inhalt vorhanden ist. Das Must Support wird auf 'true' gesetzt, um sicherzustellen, dass Systeme in der Lage sind, einen Inhalt zu unterstützen, wenn er vorhanden ist.",
"min": 1,
"mustSupport": true
},
diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKNachrichtExtension.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKNachrichtExtension.json
index d7326d9a..a6ebb6e8 100644
--- a/Resources/fsh-generated/resources/StructureDefinition-ISiKNachrichtExtension.json
+++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKNachrichtExtension.json
@@ -2,19 +2,19 @@
"resourceType": "StructureDefinition",
"id": "ISiKNachrichtExtension",
"url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKNachrichtExtension",
- "version": "4.0.0",
+ "version": "4.0.1",
"name": "ISiKNachrichtExtension",
"status": "active",
"experimental": false,
- "date": "2024-10-01",
+ "date": "2024-12-02",
"publisher": "gematik GmbH",
"fhirVersion": "4.0.1",
"kind": "complex-type",
"abstract": false,
"context": [
{
- "type": "element",
- "expression": "Element"
+ "expression": "Appointment",
+ "type": "element"
}
],
"type": "Extension",
diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKTermin.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKTermin.json
index 8ef51c95..2649b53f 100644
--- a/Resources/fsh-generated/resources/StructureDefinition-ISiKTermin.json
+++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKTermin.json
@@ -2,11 +2,11 @@
"resourceType": "StructureDefinition",
"id": "ISiKTermin",
"url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKTermin",
- "version": "4.0.0",
+ "version": "4.0.1",
"name": "ISiKTermin",
"status": "active",
"experimental": false,
- "date": "2024-10-01",
+ "date": "2024-12-02",
"publisher": "gematik GmbH",
"fhirVersion": "4.0.1",
"kind": "resource",
@@ -32,6 +32,7 @@
{
"id": "Appointment.meta",
"path": "Appointment.meta",
+ "comment": "Ein Tag kann verwendet werden um zu kennzeichnen, dass die Ressource von Extern erstellt worden ist.",
"mustSupport": true
},
{
@@ -63,7 +64,7 @@
{
"id": "Appointment.extension",
"path": "Appointment.extension",
- "definition": "Conditional Must Support - Einschränkung der übergreifenden MS-Definition: Falls ein bestätigungsrelevantes System das ISiK-Profil ISiKNachricht implementiert, MUSS das System auch dieses Element unterstützten. Andernfalls KANN das System dieses Element unterstützen.",
+ "comment": "Begründung zum Must Support: Termineabsagen sollten verkettbar sein, da am originalen Termin noch weitere Informationen hängen können.",
"mustSupport": true
},
{
@@ -101,11 +102,13 @@
{
"id": "Appointment.status",
"path": "Appointment.status",
+ "comment": "Begründung zu Must Support : Im ISiK Kontext ist der Status eines Termins von entscheidender Bedeutung, um den aktuellen Stand und die Verfügbarkeit des Termins zu kommunizieren.",
"mustSupport": true
},
{
"id": "Appointment.cancelationReason",
"path": "Appointment.cancelationReason",
+ "comment": "Begründung zu Must Support: Dieses Feld ist optional (0..1), muss jedoch implementiert werden (MS), um die Möglichkeit zu bieten, einen Grund für die Absage eines Termins zu hinterlegen.",
"mustSupport": true,
"binding": {
"strength": "required",
@@ -115,12 +118,24 @@
{
"id": "Appointment.serviceType",
"path": "Appointment.serviceType",
+ "comment": "Begründung zu Kardinalität und Must Support: Die Dienstleistungsart eines Termins ist von entscheidender Bedeutung, um die Verfügbarkeit und Planung des Termins zu gewährleisten. Daher ist dieses Feld verpflichtend (1..*) und muss unterstützt werden (MS). Aufgrund der Heterogenität von Dienstleistungen ist eine standardisierte Kodierung nicht zwingend notwendig, eine Freitextbeschreibung ist ausreichend.",
"min": 1,
"mustSupport": true
},
+ {
+ "id": "Appointment.serviceType.text",
+ "path": "Appointment.serviceType.text",
+ "mustSupport": true
+ },
{
"id": "Appointment.specialty",
"path": "Appointment.specialty",
+ "comment": "Optionale Angabe aller Fachbereiche aus denen ein oder mehrere Akteure für die Durchführung des Termins benötigt werden. \n \n Begründung zu Kardinalität und Must Support: KANN auch anhand des Kalenders, in dem ein Termin gebucht wird, ermittelt werden.\n Die Angabe der Fachbereiche ist optional (0..*), muss jedoch implementiert werden (MS), um die Spezialisierung hinsichtlich der zugeordneten Behandlungseinheit des Termins eindeutig zu definieren und eine korrekte Zuordnung zu gewährleisten.\n ",
+ "mustSupport": true
+ },
+ {
+ "id": "Appointment.specialty.coding",
+ "path": "Appointment.specialty.coding",
"slicing": {
"discriminator": [
{
@@ -134,10 +149,10 @@
"mustSupport": true
},
{
- "id": "Appointment.specialty:Fachrichtung",
- "path": "Appointment.specialty",
+ "id": "Appointment.specialty.coding:Fachrichtung",
+ "path": "Appointment.specialty.coding",
"sliceName": "Fachrichtung",
- "comment": "Die Wahl des hinterlegten ValueSets (http://ihe-d.de/ValueSets/IHEXDSpracticeSettingCode) wurde mit einem Mitglied der IHE Deutschland Arbeitsgruppe XDS ValueSets (https://www.ihe-d.de/projekte/xds-value-sets-fuer-deutschland/) sowie mit der KBV abgestimmt (Stand:13.6.2024).",
+ "comment": "Begründung zur Kardinalität: Die Kardinalität der Fachrichtung-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass genau eine Fachrichtung vorhanden ist. Dies ist notwendig, um die Spezialisierung des Termins eindeutig zu definieren und eine korrekte Zuordnung zu gewährleisten.\n \n Hintergrund zur Entscheidung: Die Wahl des hinterlegten ValueSets (http://ihe-d.de/ValueSets/IHEXDSpracticeSettingCode) wurde mit einem Mitglied der IHE Deutschland Arbeitsgruppe XDS ValueSets (https://www.ihe-d.de/projekte/xds-value-sets-fuer-deutschland/) sowie mit der KBV abgestimmt (Stand:13.6.2024).",
"min": 1,
"max": "1",
"mustSupport": true,
@@ -147,20 +162,21 @@
}
},
{
- "id": "Appointment.specialty:ErweiterterFachabteilungsschluessel",
- "path": "Appointment.specialty",
+ "id": "Appointment.specialty.coding:ErweiterterFachabteilungsschluessel",
+ "path": "Appointment.specialty.coding",
"sliceName": "ErweiterterFachabteilungsschluessel",
"comment": "Dieses ValueSet KANN über ein Mapping (siehe Abschnitt https://wiki.hl7.de/index.php?title=IG:Value_Sets_f%C3%BCr_XDS#DocumentEntry.practiceSettingCode) mit dem ValueSet der Fachrichtung verknüpft werden und darüber ggf. die Integration von Systemen erleichtern.",
"min": 0,
"max": "1",
"binding": {
"strength": "required",
- "valueSet": "http://fhir.de/CodeSystem/dkgev/Fachabteilungsschluessel-erweitert"
+ "valueSet": "http://fhir.de/ValueSet/dkgev/Fachabteilungsschluessel-erweitert"
}
},
{
"id": "Appointment.priority",
"path": "Appointment.priority",
+ "comment": "Begründung Must Support: Die Priorität eines Termins ist von entscheidender Bedeutung, um die Dringlichkeit und Relevanz des Termins zu kommunizieren und zu priorisieren. Eine Priorität ist nicht zwingend erforderlich, muss jedoch implementiert werden (MS), um die Möglichkeit zu bieten, die Dringlichkeit und Relevanz des Termins abzurufen.",
"mustSupport": true
},
{
@@ -176,6 +192,7 @@
"ordered": false,
"rules": "open"
},
+ "comment": "Hinweis: In R5 ist die Priority ein CodeableConcept. \n \n Begründung zu Must Support: Dieses Element ist optional (0..1), muss jedoch implementiert werden (MS), um besonders einen Notfall als solchen ausweisen zu können.",
"mustSupport": true
},
{
@@ -197,19 +214,21 @@
{
"id": "Appointment.start",
"path": "Appointment.start",
+ "comment": "Begründung zu Kardinalität und Must Support: Der Startzeitpunkt eines Termins ist von entscheidender Bedeutung, um die Verfügbarkeit und Planung des Termins zu gewährleisten. Daher ist dieses Feld verpflichtend (1..1) und muss unterstützt werden (MS).",
"min": 1,
"mustSupport": true
},
{
"id": "Appointment.end",
"path": "Appointment.end",
+ "comment": "Begründung zu Kardinalität und Must Support: Der Endzeitpunkt eines Termins ist von entscheidender Bedeutung, um die Verfügbarkeit und Planung des Termins zu gewährleisten. Daher ist dieses Feld verpflichtend (1..1) und muss unterstützt werden (MS).",
"min": 1,
"mustSupport": true
},
{
"id": "Appointment.slot",
"path": "Appointment.slot",
- "comment": "Zur Referenzierung auf eine Slot-Ressource MUSS eine Reference.reference mit einer URL verwendet werden. Das Termin-Repository muss so gestaltet sein, dass es aus Perspektive des Clients nur eine Service-BaseUrl gibt.",
+ "comment": "Begründung zu Kardinalität und Must Support: Die Kardinalität der slot-Eigenschaft bleibt 0..*, sodass ein Termin-Requestor bei der Terminbuchung nur einen Termin und ein Verweis auf ein ISiKKalender übergeben kann. Es ist dann die Aufgabe des Termin-Repositories in Abhängigkeit der gebuchten Dienstleistung freie Terminblöcke zu finden. Diese sind im Appointment zu referenzieren.",
"mustSupport": true
},
{
@@ -221,13 +240,13 @@
{
"id": "Appointment.comment",
"path": "Appointment.comment",
- "comment": "Im ISiK Kontext sollte dieses Feld zur internen Kommunikation zwischen Leistungserbringern verwendet werden, z.B. für interne Notizen rund um den Termin.\n\nEs gilt weiterhin die Semantik des Elements nach FHIR-Kernspezifikation:\n\n'Additional text to aid in facilitating the appointment. For instance, a comment might be, 'patient should proceed immediately to infusion room upon arrival'\n\nWhere this is a planned appointment and the start/end dates are not set then this field can be used to provide additional guidance on the details of the appointment request, including any restrictions on when to book it.'",
+ "comment": "Hinweis: Im ISiK Kontext sollte dieses Feld zur internen Kommunikation zwischen Leistungserbringern verwendet werden, z.B. für interne Notizen rund um den Termin.\n\nBegründung zum Must Support: Dieses Feld ist optional (0..1), muss jedoch implementiert werden (MS), um die Möglichkeit zu bieten, zusätzliche Informationen zum Termin zu hinterlegen und abrufen zu können. \n\nEs gilt weiterhin die Semantik des Elements nach FHIR-Kernspezifikation:\n\n'Additional text to aid in facilitating the appointment. For instance, a comment might be, 'patient should proceed immediately to infusion room upon arrival'\n\nWhere this is a planned appointment and the start/end dates are not set then this field can be used to provide additional guidance on the details of the appointment request, including any restrictions on when to book it.'",
"mustSupport": true
},
{
"id": "Appointment.patientInstruction",
"path": "Appointment.patientInstruction",
- "comment": "Dieses Feld sollte im Kontext von ISIK verwendet werden für die Kommunikation im Sinne der Definition der FHIR-Kernspezifikation - sowohl von Systemseite (administrativ) als auch von Seiten des medizinischen Fachpersonals.\n\nBeispiel für eine Nachricht: 'Bitte nüchtern erscheinen' etc.\n\nEs gilt weiterhin der Hinweis der FHIR Kernspezifikation:\n'Note that FHIR strings SHALL NOT exceed 1MB in size'",
+ "comment": "Hinweis: Dieses Feld sollte im Kontext von ISIK verwendet werden für die Kommunikation im Sinne der Definition der FHIR-Kernspezifikation - sowohl von Systemseite (administrativ) als auch von Seiten des medizinischen Fachpersonals.\n\nBeispiel für eine Nachricht: 'Bitte nüchtern erscheinen' etc.\n\nBegründung zum Must Support: Dieses Feld ist optional (0..1), muss jedoch implementiert werden (MS), um die Möglichkeit zu bieten, zusätzliche Informationen für Patienten zum Termin zu hinterlegen und abrufen zu können. \n\nEs gilt weiterhin der Hinweis der FHIR Kernspezifikation:\n'Note that FHIR strings SHALL NOT exceed 1MB in size'",
"mustSupport": true
},
{
@@ -242,7 +261,7 @@
],
"rules": "open"
},
- "comment": "Die Kardinalität von actor.display und das MS-Flag von .status wird an die Slices vererbt und diese sind entsprechend zu implementieren.",
+ "comment": "Hinweis: Die Kardinalität von actor.display und das MS-Flag von .status wird an die Slices vererbt und diese sind entsprechend zu implementieren.\n\nBegründung zu Kardinalität und Must Support: Die Teilnehmer eines Termins sind von entscheidender Bedeutung, um die Verfügbarkeit und Planung des Termins zu gewährleisten. Daher muss dieses Feld unterstützt werden (MS).",
"mustSupport": true
},
{
@@ -254,7 +273,7 @@
{
"id": "Appointment.participant.actor.display",
"path": "Appointment.participant.actor.display",
- "min": 1,
+ "comment": "Hinweis: Für alle Target-Ressourcen SOLL ein Displaywert für die Referenz angegeben werden, sodass Systeme eine Übersicht der am Termin beteiligten Akteure anzeigen können ohne die Referenzen auflösen zu müssen. Somit kann ein Termin-Consumer direkt anzeigen welche Akteure für den Termin relevant sind.",
"mustSupport": true
},
{
@@ -266,7 +285,7 @@
"id": "Appointment.participant:AkteurPatient",
"path": "Appointment.participant",
"sliceName": "AkteurPatient",
- "comment": "Im ISIK-Kontext MUSS der referenzierte Patient konform zum [ISIKPatient](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient) des Basismoduls sein.",
+ "comment": "Hinweis: Im ISIK-Kontext MUSS der referenzierte Patient konform zum [ISIKPatient](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient) des Basismoduls sein.\n\nBegründung zu Kardinalität und Must Support: Die teilnehmenden Patienten eines Termins sind von entscheidender Bedeutung, um die Verfügbarkeit und Planung des Termins zu gewährleisten. Daher ist dieses Feld verpflichtend (1..*) und muss unterstützt werden (MS).",
"min": 1,
"max": "*",
"mustSupport": true
@@ -293,7 +312,7 @@
"id": "Appointment.participant:AkteurPersonImGesundheitsberuf",
"path": "Appointment.participant",
"sliceName": "AkteurPersonImGesundheitsberuf",
- "comment": "Im ISIK-Kontext MUSS die referenzierte Practitioner-Ressource konform zum [ISiKPersonImGesundheitsberuf](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf) des Basismoduls sein.",
+ "comment": "Im ISIK-Kontext MUSS die referenzierte Practitioner-Ressource konform zum [ISiKPersonImGesundheitsberuf](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf) des Basismoduls sein.\n\nBegründung zu Kardinalität und Must Support: Die teilnehmenden Personen mit einem Gesundheitsberuf eines Termins sind entscheidend und müssen daher implementiert werden (MS), allerdings sind sie nicht zwingend erforderlich (0..*), da die Übernahme auch durch eine Behandlungseinheit erfolgen kann.",
"min": 0,
"max": "*",
"mustSupport": true
diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKTerminKontaktMitGesundheitseinrichtung.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKTerminKontaktMitGesundheitseinrichtung.json
index e1b51d0a..a1a0b09f 100644
--- a/Resources/fsh-generated/resources/StructureDefinition-ISiKTerminKontaktMitGesundheitseinrichtung.json
+++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKTerminKontaktMitGesundheitseinrichtung.json
@@ -2,11 +2,11 @@
"resourceType": "StructureDefinition",
"id": "ISiKTerminKontaktMitGesundheitseinrichtung",
"url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKTerminKontaktMitGesundheitseinrichtung",
- "version": "4.0.0",
+ "version": "4.0.1",
"name": "ISiKTerminKontaktMitGesundheitseinrichtung",
"status": "active",
"experimental": false,
- "date": "2024-10-01",
+ "date": "2024-12-02",
"publisher": "gematik GmbH",
"fhirVersion": "4.0.1",
"kind": "resource",
@@ -19,6 +19,7 @@
{
"id": "Encounter.appointment",
"path": "Encounter.appointment",
+ "comment": "**Hinweis:** Zur Umsetzung der Funktionalität zum Dokumentenaustausch gemäß ISiK ist der entsprechende [Implementation Guide zum Modul Dokumentenaustausch](https://simplifier.net/guide/isik-dokumentenaustausch-v4?version=current) zu beachten.\n \n Begründung Must Support: Die Referenz auf Appointment ermöglicht Portalen den Fallbezug aus dem Termin zu ermitteln und Dokumente an ein KIS zu senden. Das Element 'appointment' ist Must-Support, um sicherzustellen, dass ein Termin immer abrufbar ist, sofern er mit einem Fallkontaktverknüft ist.",
"mustSupport": true
}
]
diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKTerminPriorityExtension.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKTerminPriorityExtension.json
index 0f61467c..4ca5cdab 100644
--- a/Resources/fsh-generated/resources/StructureDefinition-ISiKTerminPriorityExtension.json
+++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKTerminPriorityExtension.json
@@ -2,19 +2,19 @@
"resourceType": "StructureDefinition",
"id": "ISiKTerminPriorityExtension",
"url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKTerminPriorityExtension",
- "version": "4.0.0",
+ "version": "4.0.1",
"name": "ISiKTerminPriorityExtension",
"status": "active",
"experimental": false,
- "date": "2024-10-01",
+ "date": "2024-12-02",
"publisher": "gematik GmbH",
"fhirVersion": "4.0.1",
"kind": "complex-type",
"abstract": false,
"context": [
{
- "type": "element",
- "expression": "Element"
+ "expression": "Appointment.priority",
+ "type": "element"
}
],
"type": "Extension",
diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKTerminblock.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKTerminblock.json
index 43a8d0df..db22925b 100644
--- a/Resources/fsh-generated/resources/StructureDefinition-ISiKTerminblock.json
+++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKTerminblock.json
@@ -2,11 +2,11 @@
"resourceType": "StructureDefinition",
"id": "ISiKTerminblock",
"url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKTerminblock",
- "version": "4.0.0",
+ "version": "4.0.1",
"name": "ISiKTerminblock",
"status": "active",
"experimental": false,
- "date": "2024-10-01",
+ "date": "2024-12-02",
"publisher": "gematik GmbH",
"fhirVersion": "4.0.1",
"kind": "resource",
@@ -32,7 +32,7 @@
{
"id": "Slot.schedule",
"path": "Slot.schedule",
- "comment": "Zur Referenzierung auf eine Schedule-Ressource MUSS eine Reference.reference mit einer URL verwendet werden. Das Termin-Repository muss so gestaltet sein, dass es aus Perspektive des Clients nur eine Service-BaseUrl gibt.",
+ "comment": "Begründung Kardinalität und MS: Die Kardinalität der reference-Eigenschaft wird auf 1..* festgelegt, um sicherzustellen, dass ein Kalender eindeutig referenziert und identifiziert werden kann.",
"mustSupport": true
},
{
@@ -44,16 +44,19 @@
{
"id": "Slot.status",
"path": "Slot.status",
+ "comment": "Begründung Must Support: Dies ist wichtig, um die Verfügbarkeit von Terminen zu gewährleisten, eine Überbuchung zu verhindern und zudem einem Termin-Requestor die Möglichkeit zu bieten nur freie Termine bei der Terminbuchung anzuzeigen.",
"mustSupport": true
},
{
"id": "Slot.start",
"path": "Slot.start",
+ "comment": "Begründung Must Support: Dies ist wichtig, um den Zeitpunkt des Termins an einen Termin-Requestor / Termin-Consumer zu kommunizieren.",
"mustSupport": true
},
{
"id": "Slot.end",
"path": "Slot.end",
+ "comment": "Begründung Must Support: Dies ist wichtig, um die Länge des Termins an einen Termin-Requestor / Termin-Consumer zu kommunizieren.",
"mustSupport": true
}
]
diff --git a/Resources/fsh-generated/resources/StructureDefinition-ScheduleName.json b/Resources/fsh-generated/resources/StructureDefinition-ScheduleName.json
index a063a093..0c815b58 100644
--- a/Resources/fsh-generated/resources/StructureDefinition-ScheduleName.json
+++ b/Resources/fsh-generated/resources/StructureDefinition-ScheduleName.json
@@ -2,19 +2,19 @@
"resourceType": "StructureDefinition",
"id": "ScheduleName",
"url": "http://hl7.org/fhir/5.0/StructureDefinition/extension-Schedule.name",
- "version": "4.0.0",
+ "version": "4.0.1",
"name": "ScheduleName",
"status": "active",
"experimental": false,
- "date": "2024-10-01",
+ "date": "2024-12-02",
"publisher": "gematik GmbH",
"fhirVersion": "4.0.1",
"kind": "complex-type",
"abstract": false,
"context": [
{
- "type": "element",
- "expression": "Element"
+ "expression": "Schedule",
+ "type": "element"
}
],
"type": "Extension",
diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKTerminCancelationReason.json b/Resources/fsh-generated/resources/ValueSet-ISiKTerminCancelationReason.json
index cffe2d1a..cd2153d9 100644
--- a/Resources/fsh-generated/resources/ValueSet-ISiKTerminCancelationReason.json
+++ b/Resources/fsh-generated/resources/ValueSet-ISiKTerminCancelationReason.json
@@ -4,11 +4,11 @@
"name": "ISiKTerminCancelationReason",
"id": "ISiKTerminCancelationReason",
"description": "Enthaelt alle erlaubten Gruende fuer eine Stornierung eines ISiKTermins",
- "version": "4.0.0",
+ "version": "4.0.1",
"url": "https://gematik.de/fhir/isik/ValueSet/ISiKTerminCancelationReason",
"experimental": false,
"publisher": "gematik GmbH",
- "date": "2024-10-01",
+ "date": "2024-12-02",
"compose": {
"include": [
{
diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKTerminPriority.json b/Resources/fsh-generated/resources/ValueSet-ISiKTerminPriority.json
index c403dccc..a57571d9 100644
--- a/Resources/fsh-generated/resources/ValueSet-ISiKTerminPriority.json
+++ b/Resources/fsh-generated/resources/ValueSet-ISiKTerminPriority.json
@@ -4,20 +4,83 @@
"name": "ISiKTerminPriority",
"id": "ISiKTerminPriority",
"description": "Enthaelt alle SNOMED Codes, die eine valide Priorität für den ISiKTermin sind",
- "version": "4.0.0",
+ "version": "4.0.1",
"url": "https://gematik.de/fhir/isik/ValueSet/ISiKTerminPriority",
"experimental": false,
"publisher": "gematik GmbH",
- "date": "2024-10-01",
+ "date": "2024-12-02",
"compose": {
"include": [
{
"system": "http://snomed.info/sct",
- "filter": [
+ "concept": [
{
- "property": "concept",
- "op": "descendent-of",
- "value": "272125009"
+ "code": "709122007",
+ "display": "ASAP"
+ },
+ {
+ "code": "441808003",
+ "display": "Delayed priority"
+ },
+ {
+ "code": "103390000",
+ "display": "Elective"
+ },
+ {
+ "code": "25876001",
+ "display": "Emergency"
+ },
+ {
+ "code": "394849002",
+ "display": "High priority"
+ },
+ {
+ "code": "88694003",
+ "display": "Immediate"
+ },
+ {
+ "code": "1251527002",
+ "display": "Low priority"
+ },
+ {
+ "code": "394848005",
+ "display": "Normal priority"
+ },
+ {
+ "code": "76561005",
+ "display": "Reclassified"
+ },
+ {
+ "code": "44408006",
+ "display": "Reclassified and rescheduled"
+ },
+ {
+ "code": "64695001",
+ "display": "Repeat elective"
+ },
+ {
+ "code": "21282002",
+ "display": "Repeat emergency"
+ },
+ {
+ "code": "58334001",
+ "display": "Rescheduled"
+ },
+ {
+ "code": "50811001",
+ "display": "Routine"
+ },
+ {
+ "code": "416774000",
+ "display": "Scheduled - priority"
+ },
+ {
+ "code": "49499008",
+ "display": "Stat"
+ },
+ {
+ "code": "103391001",
+ "display": "Urgent"
}
]
}
diff --git a/Resources/input/fsh/ISiKBookOperation.fsh b/Resources/input/fsh/ISiKBookOperation.fsh
index 2ee26d92..f1ee540b 100644
--- a/Resources/input/fsh/ISiKBookOperation.fsh
+++ b/Resources/input/fsh/ISiKBookOperation.fsh
@@ -6,7 +6,7 @@ Usage: #example
* name = "ISiKAppointmentBookOperation"
* url = "https://gematik.de/fhir/isik/OperationDefinition/AppointmentBook"
* kind = #operation
-* name = "book"
+* name = "Book"
* code = #book
* resource = #Appointment
* system = false
diff --git a/Resources/input/fsh/ISiKKalender.fsh b/Resources/input/fsh/ISiKKalender.fsh
index 101d916f..efac2b8f 100644
--- a/Resources/input/fsh/ISiKKalender.fsh
+++ b/Resources/input/fsh/ISiKKalender.fsh
@@ -3,36 +3,59 @@ Parent: Schedule
Id: ISiKKalender
* insert Meta
* active 1..1 MS
+ * ^comment = "Begründung Kardinalität und Must-Support-Flag (MS): Die Kardinalität 1..1 und das Must-Support-Flag (MS) für das 'active'-Element stellen sicher, dass jeder Kalender eindeutig als aktiv oder inaktiv gekennzeichnet ist. Dies ist entscheidend für die Ressourcenplanung und Verfügbarkeit von Terminen."
* serviceType 1..* MS
+ * ^comment = "Begründung zu Kardinalität und Must Support: Die Dienstleistungsart eines Termins ist von entscheidender Bedeutung, um die Verfügbarkeit und Planung des Termins zu gewährleisten. Daher ist dieses Feld verpflichtend (1..*) und muss unterstützt werden (MS). Aufgrund der Heterogenität von Dienstleistungen ist eine standardisierte Kodierung nicht zwingend notwendig, eine Freitextbeschreibung ist ausreichend."
+ * text MS
* specialty 1..* MS
+ * ^comment = "Hinweis: Ein Kalender kann für ein Akteur gepflegt werden. Dieser Akteur kann in einer oder mehreren Fachrichtungen agieren. Für die Ressourcenplanung (z.B. welche Akteure sind für einen Termin verfügbar) sollte auch auf die Speciality des Akteurs zurückgegriffen werden für den Fall, dass ein Kalender pro Fachbereich - d.h. Akteur-übergreifend - gepflegt wird.
+
+ Begründung Kardinalität Must-Support-Flag (MS): Die Kardinalität 1..* und das Must-Support-Flag (MS) für das 'specialty'-Element stellen sicher, dass jeder Kalender mindestens eine Fachrichtung angibt. Dies ist wichtig für die Ressourcenplanung und die Verfügbarkeit von Terminen, sodass angefragte Termine einem Fachbereich zugeordnet werden können.
+
+ Hintergrund: Die Festlegung hat in einer Expertengruppe am 4.6.2024 stattgefunden. Diese war zuvor in einer ISiK Arbeitsgruppe bekanntgegeben worden und stand damit allen Beteiligten offen.
+ "
+* specialty.coding 1..* MS
* ^slicing.discriminator.type = #pattern
* ^slicing.discriminator.path = "$this"
* ^slicing.rules = #open
-* specialty contains
+ * ^comment = "Begründung Kardinalität Fachrichtung: Die Kardinalität der Fachrichtung-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass genau eine Fachrichtung per IHE-XDS-Kodierung vorhanden ist. Dies ist notwendig, um die Spezialisierung des Kalenders eindeutig zu definieren und eine korrekte Zuordnung zu gewährleisten.
+
+ Begründung Kardinalität ErweiterterFachabteilungsschluessel: Die Kardinalität der ErweiterterFachabteilungsschluessel-Eigenschaft wird auf 0..1 festgelegt, um sicherzustellen, dass optional ein erweiterter Fachabteilungsschlüssel vorhanden sein kann."
+* specialty.coding contains
Fachrichtung 1..1 MS and
ErweiterterFachabteilungsschluessel 0..1
-* specialty[Fachrichtung] from $IHEpracticeSettingVS (required)
+* specialty.coding[Fachrichtung] from $IHEpracticeSettingVS (required)
* ^comment = "Die Wahl des hinterlegten ValueSets (http://ihe-d.de/ValueSets/IHEXDSpracticeSettingCode) wurde mit einem Mitglied der IHE Deutschland Arbeitsgruppe XDS ValueSets (https://www.ihe-d.de/projekte/xds-value-sets-fuer-deutschland/) sowie mit der KBV abgestimmt (Stand:13.6.2024)."
-* specialty[ErweiterterFachabteilungsschluessel] from $FachabteilungsschluesselErweitertCS (required)
+* specialty.coding[ErweiterterFachabteilungsschluessel] from $FachabteilungsschluesselErweitertVS (required)
* ^comment = "Dieses ValueSet KANN über ein Mapping (siehe Abschnitt https://wiki.hl7.de/index.php?title=IG:Value_Sets_f%C3%BCr_XDS#DocumentEntry.practiceSettingCode) mit dem ValueSet der Fachrichtung verknüpft werden und darüber ggf. die Integration von Systemen erleichtern."
-* actor 1..* MS
- * identifier 0..1 MS
- * display 1..1 MS
+* actor MS
+ * ^comment = "Begründung Must-Support-Flag (MS): Das MS-Flag für das 'actor'-Element stellt sicher, dass Systeme in der Lage sind, einen Akteur zu unterstützen, wenn er vorhanden ist. Dies ist wichtig für die Ressourcenplanung und die Verfügbarkeit von Terminen, da jeder Termin nach FHIR-Kernspezifikation einem spezifischen Akteur zugeordnet werden muss. Ohne diese Zuordnung wäre es schwierig, die Verfügbarkeit und Zuständigkeit der Akteure zu verwalten."
+ * identifier MS
+ * ^comment = "Begründung Must-Support-Flag (MS):
+ Das Must-Support-Flag (MS) für das 'identifier'-Element stellt sicher, dass Systeme in der Lage sind, einen Identifier zu unterstützen, wenn er vorhanden ist. Dies ist wichtig für die eindeutige Identifizierung und Verknüpfung von Akteuren in verschiedenen Systemen."
+ * display MS
+ * ^comment = "Hinweis und Begründung zum Must Support: Für alle Target-Ressourcen SOLL ein Displaywert für die Referenz angegeben werden, sodass Systeme eine Übersicht der am Termin beteiligten Akteure anzeigen können ohne die Referenzen auflösen zu müssen. Somit kann ein Termin-Consumer direkt anzeigen für welche Akteure ein Terminkalender existiert.
+
+"
* ^slicing.discriminator.type = #type
* ^slicing.discriminator.path = "$this"
* ^slicing.rules = #open
* actor contains Akteur 0..1 MS
+ * ^comment = "Begründung Kardinalität und Must-Support-Flag (MS): Die Kardinalität der Akteur-Eigenschaft wird auf 0..1 festgelegt, um sicherzustellen, dass ein Akteur eindeutig ist, falls dieser vorhanden ist. Durch das MS wird sichergestellt, dass Systeme in der Lage sind, einen Akteur zu unterstützen, wenn er vorhanden ist."
* actor[Akteur] only Reference(Practitioner or HealthcareService or Location)
* actor[Akteur] ^comment = "Im ISIK-Kontext MUSS die referenzierte Practitioner-Ressource konform zum [ISiKPersonImGesundheitsberuf](https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf) des Basismoduls sein. Zudem MUSS die referenzierte Location-Ressource konform zum [ISiKStandort](https://gematik.de/fhir/isik/StructureDefinition/ISiKStandort) des Basismoduls sein. Dieses Element dient dazu, um alle Akteure zu gruppieren, sodass für diese Einheit von Terminressourcen ein Terminblock herausgegeben werden kann. Unter 'Akteure' fallen hier auch Standorte und Dienstleistungen."
* actor[Akteur].reference 1..1 MS
+ * ^comment = "Begründung Kardinalität: Die Kardinalität der Akteur-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass ein eindeutiger Akteur vorhanden ist."
* extension MS
* extension contains http://hl7.org/fhir/5.0/StructureDefinition/extension-Schedule.name named KalenderName 0..1 MS
+ * ^comment = "Begründung Must-Support-Flag (MS): Die KalenderName-Extension ermöglicht es einen menschenlesbaren Namen zu definieren, welcher zur Wiedererkennbarkeit des Kalenders im Rahmen der Terminplanung dient."
* valueString 1..1
// This extension can be safely removed as soon as a package for R5 backport extensions is published and referenced by this project
//WIP
Extension: ScheduleName
Id: ScheduleName
+Context: Schedule
* insert Meta
* ^url = "http://hl7.org/fhir/5.0/StructureDefinition/extension-Schedule.name"
* value[x] only string
diff --git a/Resources/input/fsh/ISiKMedizinischeBehandlungseinheit.fsh b/Resources/input/fsh/ISiKMedizinischeBehandlungseinheit.fsh
index 117da80a..0812f10c 100644
--- a/Resources/input/fsh/ISiKMedizinischeBehandlungseinheit.fsh
+++ b/Resources/input/fsh/ISiKMedizinischeBehandlungseinheit.fsh
@@ -3,24 +3,48 @@ Parent: HealthcareService
Id: ISiKMedizinischeBehandlungseinheit
* insert Meta
* active 1..1 MS
+ * ^comment = "Bedeutung: Ist der HealthcareService in aktiver Verwendung.
+
+ Hinweis: Historische HealthcareServices können ebenfalls über die ISiK-Schnittstelle ausgetauscht werden. Für diese dürfen jedoch keine Termine vereinbart werden. Das terminführende System MUSS dies bei der Buchung überprüfen.
+
+ Begründung Kardinalität und Must-Support-Flag (MS): Die Kardinalität 1..1 und das Must-Support-Flag (MS) für das 'active'-Element stellen sicher, dass jede Behandlungseinheit eindeutig als aktiv oder inaktiv gekennzeichnet ist. Dies ist entscheidend für die Ressourcenplanung und Verfügbarkeit von Behandlungseinheiten."
* type 1.. MS
+* type ^comment = "**Bedeutung:** Klassifikation der Behandlungsleistung welche durch den HealthcareService erbracht wird
+
+**Hinweis:** Diese Klassifikation SOLL stets auch in Appointment.serviceType und Schedule.serviceType angegeben werden. Seitens der aktuellen Spezifikation werden keine Vorgaben bezüglich der zu verwendenden Terminologie gemacht. Entsprechend verwendete Kataloge müssen als CodeSystem- und ValueSet-Ressourcen exponiert werden. Siehe [Suchparameter 'context-type-value' in ISiK Basis - Datenobjekt ValueSet](https://simplifier.net/resolve?&scope=isik-basis-v4@current&canonical=https://gematik.de/fhir/isik/StructureDefinition/ISiKValueSet).
+
+**Begründung Kardinalität:** Eine Behandlungseinheit muss mindestens einen Typ haben, sodass im Rahmen der Terminplanung ermittelt werden kann welcher Akteur für die Durchführung eines Termins zur Verfügung steht."
* specialty 1.. MS
+ * ^comment = "**Bedeutung:** Fachrichtung der Behandlungsleistung welche durch den HealthcareService erbracht wird
+
+**Hinweis:** Diese Fachrichtung SOLL stets auch in Appointment.specialty und Schedule.specialty angegeben werden.
+
+**Begründung Kardinalität:** Eine Behandlungseinheit kann multiprofessionell sein und mehere Fachbereiche abdecken. Sie muss jedoch mindestens einem Fachbereich zugeordnet sein, sodass die Behandlungseinheit während der Terminplanung als Akteur miteinbezogen werden für passende Termine."
+* specialty.coding 1.. MS
* ^slicing.discriminator.type = #pattern
* ^slicing.discriminator.path = "$this"
* ^slicing.rules = #open
-* specialty contains
+ * ^comment = "Begründung Kardinalität Fachrichtung: Die Kardinalität der Fachrichtung-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass genau eine Fachrichtung per IHE-XDS-Kodierung vorhanden ist. Dies ist notwendig, um die Spezialisierung der Behandlungseinheit eindeutig zu definieren und eine korrekte Zuordnung zu gewährleisten.
+
+ Begründung Kardinalität ErweiterterFachabteilungsschluessel: Die Kardinalität der ErweiterterFachabteilungsschluessel-Eigenschaft wird auf 0..1 festgelegt, um sicherzustellen, dass optional ein erweiterter Fachabteilungsschlüssel vorhanden sein kann."
+* specialty.coding contains
Fachrichtung 1..1 MS and
ErweiterterFachabteilungsschluessel 0..1
-* specialty[Fachrichtung] from $IHEpracticeSettingVS (required)
+* specialty.coding[Fachrichtung] from $IHEpracticeSettingVS (required)
* ^comment = "Die Wahl des hinterlegten ValueSets (http://ihe-d.de/ValueSets/IHEXDSpracticeSettingCode) wurde mit einem Mitglied der IHE Deutschland Arbeitsgruppe XDS ValueSets (https://www.ihe-d.de/projekte/xds-value-sets-fuer-deutschland/) sowie mit der KBV abgestimmt (Stand:13.6.2024)."
-* specialty[ErweiterterFachabteilungsschluessel] from $FachabteilungsschluesselErweitertCS (required)
+* specialty.coding[ErweiterterFachabteilungsschluessel] from $FachabteilungsschluesselErweitertVS (required)
* ^comment = "Dieses ValueSet KANN über ein Mapping (siehe Abschnitt https://wiki.hl7.de/index.php?title=IG:Value_Sets_f%C3%BCr_XDS#DocumentEntry.practiceSettingCode) mit dem ValueSet der Fachrichtung verknüpft werden und darüber ggf. die Integration von Systemen erleichtern."
* name 1.. MS
+ * ^comment = "**Bedeutung:** Informeller Name der Behandlungseinheit
+
+**Hinweis:** Es wird im Rahmen dieser Spezifikation davon ausgegangen, dass für einen HealthcareService keine natürlichen Identifier vorliegen, die in einem realen Kontext vergeben werden. Somit kann durch den Namen ein informeller, jedoch identifizierender Bezeichner vergeben werden.
+
+**Begründung Kardinalität:** Eine Behandlungseinheit muss mindestens einen Namen haben, um eine Wiedererkennbarkeit im Rahmen der Terminplanung zu gewährleisten."
Instance: ISiKMedizinischeBehandlungseinheitExample
InstanceOf: ISiKMedizinischeBehandlungseinheit
Usage: #example
* active = true
* type = http://terminology.hl7.org/CodeSystem/service-type#124
-* specialty[Fachrichtung] = $IHEAerztlicheFachrichtungen#ALLG
-* name = "Allgemeine Beratungsstelle der Fachabteilung 0100"
\ No newline at end of file
+* specialty.coding[Fachrichtung] = $IHEAerztlicheFachrichtungen#ALLG
+* name = "Allgemeine Beratungsstelle der Fachabteilung 0100"
diff --git a/Resources/input/fsh/ISiKNachricht.fsh b/Resources/input/fsh/ISiKNachricht.fsh
index 585b78ea..165602b6 100644
--- a/Resources/input/fsh/ISiKNachricht.fsh
+++ b/Resources/input/fsh/ISiKNachricht.fsh
@@ -3,22 +3,29 @@ Parent: Communication
Id: ISiKNachricht
* insert Meta
* inResponseTo MS
+ * ^comment = "Begründung Must Support: Es wird hierdurch ermöglicht auf Nachrichten die der Patient vorab übermittelt hat zu beantworten."
* status MS
-* subject 1..1 MS
+* subject 1.. MS
+* subject ^comment = "Begründung Kardinalität: Das Element 'subject' ist obligatorisch (1..1) und muss immer angegeben werden, um sicherzustellen, dass jede Nachricht eindeutig auf einen Patienten bezogen wird."
* subject only Reference(Patient)
-* subject ^comment = "Im ISIK-Kontext MUSS der referenzierte Patient konform zum [ISIKPatient](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient) des Basismoduls sein."
+* subject ^comment = "Im ISIK-Kontext MUSS der referenzierte Patient konform zum [ISIKPatient](https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient) des Basismoduls sein."
* sent MS
+ * ^comment = "Begründung Must Support: Eine zeitlich korrekte Darstellung der Nachrichten wird hierdurch ermöglicht"
* recipient 1..* MS
+ * ^comment = "Begründung Kardinalität: Die Kardinalität der recipient-Eigenschaft wird auf 1..* festgelegt, um sicherzustellen, dass mindestens ein Empfänger vorhanden ist."
* identifier 0..1 MS
+ * ^comment = "Begründung Kardinalität und Must-Support-Flag (MS): Die Kardinalität der identifier-Eigenschaft wird auf 0..1 festgelegt, um sicherzustellen, dass ein Empfänger über einen eindeutigen Identifier referenzierbar ist."
* display 1..1 MS
+ * ^comment = "Begründung Kardinalität und Must Support: Die Kardinalität der display-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass ein Empfänger immer eindeutig benannt wird. Das Must Support wird auf 'true' gesetzt, um sicherzustellen, dass Systeme in der Lage sind, einen Empfänger anzuzeigen, ohne die Referenzen auflösen zu müssen. Somit kann ein Termin-Consumer direkt anzeigen für welche Empfänger eine Nachricht existiert."
* ^slicing.discriminator.type = #type
* ^slicing.discriminator.path = "$this"
* ^slicing.rules = #open
* recipient contains ISiKRecipient 1.. MS
* recipient[ISiKRecipient] only Reference(Practitioner or HealthcareService)
* recipient[ISiKRecipient].reference 1..1 MS
-* recipient ^comment = "Im ISIK-Kontext MUSS die referenzierte Practitioner-Ressource konform zum [ISiKPersonImGesundheitsberuf](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf) des Basismoduls sein."
+* recipient ^comment = "Im ISIK-Kontext MUSS die referenzierte Practitioner-Ressource konform zum [ISiKPersonImGesundheitsberuf](https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf) des Basismoduls sein."
* payload 1..* MS
+ * ^comment = "Begründung Kardinalität und Must Support: Die Kardinalität der payload-Eigenschaft wird auf 1..* festgelegt, um sicherzustellen, dass ein Inhalt vorhanden ist. Das Must Support wird auf 'true' gesetzt, um sicherzustellen, dass Systeme in der Lage sind, einen Inhalt zu unterstützen, wenn er vorhanden ist."
* content[x] MS
* contentString MS
* contentAttachment MS
@@ -27,7 +34,13 @@ Id: ISiKNachricht
* url 1.. MS
* creation 1.. MS
* sender 1.. MS
- * reference 1..1 MS
+ * ^comment = "Begründung Kardinalität und Must Support: Die Kardinalität der sender-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass mindestens ein Sender vorhanden ist. Das Must Support wird auf 'true' gesetzt, um sicherzustellen, dass Systeme in der Lage sind, einen Sender zu unterstützen, wenn er vorhanden ist."
+ * reference 0..1 MS
+ * ^comment = "Im ISIK-Kontext MUSS die referenzierte Practitioner-Ressource konform zum [ISiKPersonImGesundheitsberuf](https://gematik.de/fhir/isik/StructureDefinition/ISiKPersonImGesundheitsberuf) des Basismoduls sein. Im ISIK-Kontext MUSS die referenzierte RelatedPerson-Ressource konform zum [ISiKAngehoeriger](https://gematik.de/fhir/isik/StructureDefinition/ISiKAngehoeriger) des Basismoduls sein. Im ISIK-Kontext MUSS die referenzierte RelatedPerson-Ressource konform zum [ISiKPatient](https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient) des Basismoduls sein."
+ * identifier 0..1 MS
+ * ^comment = "Begründung Kardinalität und Must-Support-Flag (MS): Die Kardinalität der identifier-Eigenschaft wird auf 0..1 festgelegt, um sicherzustellen, dass höchstens ein Identifier vorhanden ist, damit ein Sender eindeutig über einen Identifier referenzierbar ist."
+ * display 1..1 MS
+ * ^comment = "Begründung Kardinalität und Must Support: Die Kardinalität der display-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass ein Sender immer eindeutig benannt wird. Das Must Support wird auf 'true' gesetzt, um sicherzustellen, dass Systeme in der Lage sind, einen Empfänger anzuzeigen, ohne die Referenzen auflösen zu müssen. Somit kann ein Termin-Consumer direkt anzeigen welche Sender eine Nachricht verfasst haben."
Instance: ISiKNachrichtExample
InstanceOf: ISiKNachricht
diff --git a/Resources/input/fsh/ISiKTermin.fsh b/Resources/input/fsh/ISiKTermin.fsh
index 3f60366f..6f466825 100644
--- a/Resources/input/fsh/ISiKTermin.fsh
+++ b/Resources/input/fsh/ISiKTermin.fsh
@@ -8,22 +8,32 @@ Id: ISiKTermin
* ^slicing.discriminator.path = "$this"
* ^slicing.rules = #open
* tag contains Source 0..1 MS
+ * ^comment = "Ein Tag kann verwendet werden um zu kennzeichnen, dass die Ressource von Extern erstellt worden ist."
* tag[Source] from http://fhir.de/ValueSet/common-meta-tag-de (required)
* insert Meta
* extension MS
* extension contains ISiKNachrichtExtension named Nachricht 0..* MS
- * ^definition = "Conditional Must Support - Einschränkung der übergreifenden MS-Definition: Falls ein bestätigungsrelevantes System das ISiK-Profil ISiKNachricht implementiert, MUSS das System auch dieses Element unterstützten. Andernfalls KANN das System dieses Element unterstützen."
-* extension contains http://hl7.org/fhir/5.0/StructureDefinition/extension-Appointment.replaces named replaces 0..1 MS
-* status 1..1 MS
-* cancelationReason 0..1 MS
+ * ^comment = "Einschränkung der übergreifenden MS-Definition: Falls ein bestätigungsrelevantes System das ISiK-Profil ISiKNachricht implementiert, MUSS das System auch dieses Element unterstützten. Andernfalls KANN das System dieses Element unterstützen.
+
+ Begründung zum Must Support: Nachrichten die für diesen Termin verfasst wurden können somit direkt abgerufen werden."
+* extension contains AppointmentReplaces named replaces 0..1 MS
+ * ^comment = "Begründung zum Must Support: Termineabsagen sollten verkettbar sein, da am originalen Termin noch weitere Informationen hängen können."
+* status MS
+ * ^comment = "Begründung zu Must Support : Im ISiK Kontext ist der Status eines Termins von entscheidender Bedeutung, um den aktuellen Stand und die Verfügbarkeit des Termins zu kommunizieren."
+* cancelationReason MS
+ * ^comment = "Begründung zu Must Support: Dieses Feld ist optional (0..1), muss jedoch implementiert werden (MS), um die Möglichkeit zu bieten, einen Grund für die Absage eines Termins zu hinterlegen."
* cancelationReason from ISiKTerminCancelationReason (required)
* start 1..1 MS
+ * ^comment = "Begründung zu Kardinalität und Must Support: Der Startzeitpunkt eines Termins ist von entscheidender Bedeutung, um die Verfügbarkeit und Planung des Termins zu gewährleisten. Daher ist dieses Feld verpflichtend (1..1) und muss unterstützt werden (MS)."
* end 1..1 MS
-* slot 0..* MS
+ * ^comment = "Begründung zu Kardinalität und Must Support: Der Endzeitpunkt eines Termins ist von entscheidender Bedeutung, um die Verfügbarkeit und Planung des Termins zu gewährleisten. Daher ist dieses Feld verpflichtend (1..1) und muss unterstützt werden (MS)."
+* slot MS
* reference 1.. MS
-* slot ^comment = "Zur Referenzierung auf eine Slot-Ressource MUSS eine Reference.reference mit einer URL verwendet werden. Das Termin-Repository muss so gestaltet sein, dass es aus Perspektive des Clients nur eine Service-BaseUrl gibt." //Zur Begründung: verschiedene Referenzierungs-Arten (z.B. mit Business-Identifiern) sind ggf. nicht interoperabel
+* slot ^comment = "Begründung zu Kardinalität und Must Support: Die Kardinalität der slot-Eigenschaft bleibt 0..*, sodass ein Termin-Requestor bei der Terminbuchung nur einen Termin und ein Verweis auf ein ISiKKalender übergeben kann. Es ist dann die Aufgabe des Termin-Repositories in Abhängigkeit der gebuchten Dienstleistung freie Terminblöcke zu finden. Diese sind im Appointment zu referenzieren."
* comment MS
- * ^comment = "Im ISiK Kontext sollte dieses Feld zur internen Kommunikation zwischen Leistungserbringern verwendet werden, z.B. für interne Notizen rund um den Termin.
+ * ^comment = "Hinweis: Im ISiK Kontext sollte dieses Feld zur internen Kommunikation zwischen Leistungserbringern verwendet werden, z.B. für interne Notizen rund um den Termin.
+
+Begründung zum Must Support: Dieses Feld ist optional (0..1), muss jedoch implementiert werden (MS), um die Möglichkeit zu bieten, zusätzliche Informationen zum Termin zu hinterlegen und abrufen zu können.
Es gilt weiterhin die Semantik des Elements nach FHIR-Kernspezifikation:
@@ -31,62 +41,97 @@ Es gilt weiterhin die Semantik des Elements nach FHIR-Kernspezifikation:
Where this is a planned appointment and the start/end dates are not set then this field can be used to provide additional guidance on the details of the appointment request, including any restrictions on when to book it.'"
* patientInstruction MS
- * ^comment = "Dieses Feld sollte im Kontext von ISIK verwendet werden für die Kommunikation im Sinne der Definition der FHIR-Kernspezifikation - sowohl von Systemseite (administrativ) als auch von Seiten des medizinischen Fachpersonals.
+ * ^comment = "Hinweis: Dieses Feld sollte im Kontext von ISIK verwendet werden für die Kommunikation im Sinne der Definition der FHIR-Kernspezifikation - sowohl von Systemseite (administrativ) als auch von Seiten des medizinischen Fachpersonals.
Beispiel für eine Nachricht: 'Bitte nüchtern erscheinen' etc.
+Begründung zum Must Support: Dieses Feld ist optional (0..1), muss jedoch implementiert werden (MS), um die Möglichkeit zu bieten, zusätzliche Informationen für Patienten zum Termin zu hinterlegen und abrufen zu können.
+
Es gilt weiterhin der Hinweis der FHIR Kernspezifikation:
'Note that FHIR strings SHALL NOT exceed 1MB in size'"
-* participant 1..* MS
+* participant MS
* actor 1..1 MS
- * actor.display 1..1 MS
+ * display MS
+ * ^comment = "Hinweis: Für alle Target-Ressourcen SOLL ein Displaywert für die Referenz angegeben werden, sodass Systeme eine Übersicht der am Termin beteiligten Akteure anzeigen können ohne die Referenzen auflösen zu müssen. Somit kann ein Termin-Consumer direkt anzeigen welche Akteure für den Termin relevant sind."
* status 1..1 MS
* ^slicing.discriminator.type = #type
* ^slicing.discriminator.path = "actor.resolve()"
* ^slicing.rules = #open
-* participant ^comment = "Die Kardinalität von actor.display und das MS-Flag von .status wird an die Slices vererbt und diese sind entsprechend zu implementieren."
+* participant ^comment = "Hinweis: Die Kardinalität von actor.display und das MS-Flag von .status wird an die Slices vererbt und diese sind entsprechend zu implementieren.
+
+Begründung zu Kardinalität und Must Support: Die Teilnehmer eines Termins sind von entscheidender Bedeutung, um die Verfügbarkeit und Planung des Termins zu gewährleisten. Daher muss dieses Feld unterstützt werden (MS)."
* participant contains AkteurPatient 1.. MS
* participant[AkteurPatient].actor only Reference(Patient)
* participant[AkteurPatient].actor MS
* participant[AkteurPatient].actor.reference 1..1 MS
-* participant[AkteurPatient] ^comment = "Im ISIK-Kontext MUSS der referenzierte Patient konform zum [ISIKPatient](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient) des Basismoduls sein."
+* participant[AkteurPatient] ^comment = "Hinweis: Im ISIK-Kontext MUSS der referenzierte Patient konform zum [ISIKPatient](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient) des Basismoduls sein.
+
+Begründung zu Kardinalität und Must Support: Die teilnehmenden Patienten eines Termins sind von entscheidender Bedeutung, um die Verfügbarkeit und Planung des Termins zu gewährleisten. Daher ist dieses Feld verpflichtend (1..*) und muss unterstützt werden (MS)."
* participant contains AkteurPersonImGesundheitsberuf 0.. MS
* participant[AkteurPersonImGesundheitsberuf].actor only Reference(Practitioner)
* participant[AkteurPersonImGesundheitsberuf].actor MS
* participant[AkteurPersonImGesundheitsberuf].actor.reference 1..1 MS
-* participant[AkteurPersonImGesundheitsberuf] ^comment = "Im ISIK-Kontext MUSS die referenzierte Practitioner-Ressource konform zum [ISiKPersonImGesundheitsberuf](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf) des Basismoduls sein."
+* participant[AkteurPersonImGesundheitsberuf] ^comment = "Im ISIK-Kontext MUSS die referenzierte Practitioner-Ressource konform zum [ISiKPersonImGesundheitsberuf](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPersonImGesundheitsberuf) des Basismoduls sein.
+
+Begründung zu Kardinalität und Must Support: Die teilnehmenden Personen mit einem Gesundheitsberuf eines Termins sind entscheidend und müssen daher implementiert werden (MS), allerdings sind sie nicht zwingend erforderlich (0..*), da die Übernahme auch durch eine Behandlungseinheit erfolgen kann."
* participant contains AkteurMedizinischeBehandlungseinheit 0.. MS
* participant[AkteurMedizinischeBehandlungseinheit].actor only Reference(HealthcareService)
* participant[AkteurMedizinischeBehandlungseinheit].actor MS
* participant[AkteurMedizinischeBehandlungseinheit].actor.reference 1..1 MS
-* specialty 0..* MS
+* specialty MS
+ * ^comment = "Optionale Angabe aller Fachbereiche aus denen ein oder mehrere Akteure für die Durchführung des Termins benötigt werden.
+
+ Begründung zu Kardinalität und Must Support: KANN auch anhand des Kalenders, in dem ein Termin gebucht wird, ermittelt werden.
+ Die Angabe der Fachbereiche ist optional (0..*), muss jedoch implementiert werden (MS), um die Spezialisierung hinsichtlich der zugeordneten Behandlungseinheit des Termins eindeutig zu definieren und eine korrekte Zuordnung zu gewährleisten.
+ "
+* specialty.coding 1..* MS
* ^slicing.discriminator.type = #pattern
* ^slicing.discriminator.path = "$this"
* ^slicing.rules = #open
-* specialty contains
+* specialty.coding contains
Fachrichtung 1..1 MS and
ErweiterterFachabteilungsschluessel 0..1
-* specialty[Fachrichtung] from $IHEpracticeSettingVS (required)
- * ^comment = "Die Wahl des hinterlegten ValueSets (http://ihe-d.de/ValueSets/IHEXDSpracticeSettingCode) wurde mit einem Mitglied der IHE Deutschland Arbeitsgruppe XDS ValueSets (https://www.ihe-d.de/projekte/xds-value-sets-fuer-deutschland/) sowie mit der KBV abgestimmt (Stand:13.6.2024)."
-* specialty[ErweiterterFachabteilungsschluessel] from $FachabteilungsschluesselErweitertCS (required)
+* specialty.coding[Fachrichtung] from $IHEpracticeSettingVS (required)
+ * ^comment = "Begründung zur Kardinalität: Die Kardinalität der Fachrichtung-Eigenschaft wird auf 1..1 festgelegt, um sicherzustellen, dass genau eine Fachrichtung vorhanden ist. Dies ist notwendig, um die Spezialisierung des Termins eindeutig zu definieren und eine korrekte Zuordnung zu gewährleisten.
+
+ Hintergrund zur Entscheidung: Die Wahl des hinterlegten ValueSets (http://ihe-d.de/ValueSets/IHEXDSpracticeSettingCode) wurde mit einem Mitglied der IHE Deutschland Arbeitsgruppe XDS ValueSets (https://www.ihe-d.de/projekte/xds-value-sets-fuer-deutschland/) sowie mit der KBV abgestimmt (Stand:13.6.2024)."
+* specialty.coding[ErweiterterFachabteilungsschluessel] from $FachabteilungsschluesselErweitertVS (required)
* ^comment = "Dieses ValueSet KANN über ein Mapping (siehe Abschnitt https://wiki.hl7.de/index.php?title=IG:Value_Sets_f%C3%BCr_XDS#DocumentEntry.practiceSettingCode) mit dem ValueSet der Fachrichtung verknüpft werden und darüber ggf. die Integration von Systemen erleichtern."
-* serviceType 1..* MS
+* serviceType 1..* MS
+ * ^comment = "Begründung zu Kardinalität und Must Support: Die Dienstleistungsart eines Termins ist von entscheidender Bedeutung, um die Verfügbarkeit und Planung des Termins zu gewährleisten. Daher ist dieses Feld verpflichtend (1..*) und muss unterstützt werden (MS). Aufgrund der Heterogenität von Dienstleistungen ist eine standardisierte Kodierung nicht zwingend notwendig, eine Freitextbeschreibung ist ausreichend."
+ * text MS
* priority MS
+ * ^comment = "Begründung Must Support: Die Priorität eines Termins ist von entscheidender Bedeutung, um die Dringlichkeit und Relevanz des Termins zu kommunizieren und zu priorisieren. Eine Priorität ist nicht zwingend erforderlich, muss jedoch implementiert werden (MS), um die Möglichkeit zu bieten, die Dringlichkeit und Relevanz des Termins abzurufen."
* priority.extension MS
* priority.extension contains ISiKTerminPriorityExtension named Priority 0..1 MS
+ * ^comment = "Hinweis: In R5 ist die Priority ein CodeableConcept.
+
+ Begründung zu Must Support: Dieses Element ist optional (0..1), muss jedoch implementiert werden (MS), um besonders einen Notfall als solchen ausweisen zu können."
Extension: ISiKNachrichtExtension
Id: ISiKNachrichtExtension
+Context: Appointment
* insert Meta
* value[x] only Reference(ISiKNachricht)
Extension: ISiKTerminPriorityExtension
Id: ISiKTerminPriorityExtension
+Context: Appointment.priority
* insert Meta
* value[x] only CodeableConcept
* valueCodeableConcept 1..1 MS
* valueCodeableConcept from ISiKTerminPriority (required)
+// This extension can be safely removed as soon as a package for R5 backport extensions is published and referenced by this project
+//WIP
+Extension: AppointmentReplaces
+Id: AppointmentReplaces
+Context: Appointment
+* insert Meta
+* ^url = "http://hl7.org/fhir/5.0/StructureDefinition/extension-Appointment.replaces"
+* value[x] only Reference(Appointment)
+* valueReference 0..1
+
Invariant: ISiK-app-1
Description: "Der Endzeitpunkt eines Termins MUSS nach dem Startzeitpunkt liegen"
Severity: #error
@@ -124,9 +169,9 @@ Usage: #example
* priority
* extension[ISiKTerminPriorityExtension].valueCodeableConcept = http://snomed.info/sct#25876001
* serviceType = http://terminology.hl7.org/CodeSystem/service-type#174
-* specialty[Fachrichtung] = $IHEAerztlicheFachrichtungen#INTM
-* specialty[ErweiterterFachabteilungsschluessel] = $FachabteilungsschluesselErweitertCS#3600
+* specialty.coding[Fachrichtung] = $IHEAerztlicheFachrichtungen#INTM
+* specialty.coding[ErweiterterFachabteilungsschluessel] = $FachabteilungsschluesselErweitertCS#3600
* participant
* actor.display = "Test Patient"
* actor.reference = "Patient/example"
- * status = #accepted
\ No newline at end of file
+ * status = #accepted
diff --git a/Resources/input/fsh/ISiKTerminKontaktMitGesundheitseinrichtung.fsh b/Resources/input/fsh/ISiKTerminKontaktMitGesundheitseinrichtung.fsh
index b9c626dc..024ce3d0 100644
--- a/Resources/input/fsh/ISiKTerminKontaktMitGesundheitseinrichtung.fsh
+++ b/Resources/input/fsh/ISiKTerminKontaktMitGesundheitseinrichtung.fsh
@@ -2,4 +2,7 @@ Profile: ISiKTerminKontaktMitGesundheitseinrichtung
Parent: ISiKKontaktGesundheitseinrichtung
Id: ISiKTerminKontaktMitGesundheitseinrichtung
* insert Meta
-* appointment MS
\ No newline at end of file
+* appointment MS
+* appointment ^comment = "**Hinweis:** Zur Umsetzung der Funktionalität zum Dokumentenaustausch gemäß ISiK ist der entsprechende [Implementation Guide zum Modul Dokumentenaustausch](https://simplifier.net/guide/isik-dokumentenaustausch-v4?version=current) zu beachten.
+
+ Begründung Must Support: Die Referenz auf Appointment ermöglicht Portalen den Fallbezug aus dem Termin zu ermitteln und Dokumente an ein KIS zu senden. Das Element 'appointment' ist Must-Support, um sicherzustellen, dass ein Termin immer abrufbar ist, sofern er mit einem Fallkontaktverknüft ist."
\ No newline at end of file
diff --git a/Resources/input/fsh/ISiKTerminblock.fsh b/Resources/input/fsh/ISiKTerminblock.fsh
index 4c079b3e..319338d0 100644
--- a/Resources/input/fsh/ISiKTerminblock.fsh
+++ b/Resources/input/fsh/ISiKTerminblock.fsh
@@ -3,13 +3,16 @@ Parent: Slot
Id: ISiKTerminblock
* insert Meta
* obeys ISiK-slot-1
-* schedule 1..1 MS
+* schedule MS
* schedule only Reference(Schedule)
- * reference 1.. MS
-* schedule ^comment = "Zur Referenzierung auf eine Schedule-Ressource MUSS eine Reference.reference mit einer URL verwendet werden. Das Termin-Repository muss so gestaltet sein, dass es aus Perspektive des Clients nur eine Service-BaseUrl gibt." //Zur Begründung: verschiedene Referenzierungs-Arten (z.B. mit Business-Identifiern) sind ggf. nicht interoperabel.
-* status 1..1 MS
-* start 1..1 MS
-* end 1..1 MS
+ * reference 1.. MS
+* schedule ^comment = "Begründung Kardinalität und MS: Die Kardinalität der reference-Eigenschaft wird auf 1..* festgelegt, um sicherzustellen, dass ein Kalender eindeutig referenziert und identifiziert werden kann."
+* status MS
+* status ^comment = "Begründung Must Support: Dies ist wichtig, um die Verfügbarkeit von Terminen zu gewährleisten, eine Überbuchung zu verhindern und zudem einem Termin-Requestor die Möglichkeit zu bieten nur freie Termine bei der Terminbuchung anzuzeigen."
+* start MS
+* start ^comment = "Begründung Must Support: Dies ist wichtig, um den Zeitpunkt des Termins an einen Termin-Requestor / Termin-Consumer zu kommunizieren."
+* end MS
+* end ^comment = "Begründung Must Support: Dies ist wichtig, um die Länge des Termins an einen Termin-Requestor / Termin-Consumer zu kommunizieren."
Invariant: ISiK-slot-1
Description: "Der Endzeitpunkt eines Terminsblocks MUSS nach dem Startzeitpunkt liegen"
@@ -22,4 +25,4 @@ Usage: #example
* schedule = Reference(ISiKKalenderExample)
* status = #busy
* start = "2022-12-10T09:00:00Z"
-* end = "2022-12-10T11:00:00Z"
\ No newline at end of file
+* end = "2022-12-10T11:00:00Z"
diff --git a/Resources/input/fsh/ISiKTerminplanungCapabilityStatement.fsh b/Resources/input/fsh/ISiKTerminplanungCapabilityStatement.fsh
index a434c5c9..526a7952 100644
--- a/Resources/input/fsh/ISiKTerminplanungCapabilityStatement.fsh
+++ b/Resources/input/fsh/ISiKTerminplanungCapabilityStatement.fsh
@@ -7,252 +7,373 @@ Usage: #definition
* title = "ISiK CapabilityStatement Terminplanung Server"
* contact.telecom.system = #url
* contact.telecom.value = "https://www.gematik.de"
-* description = "Das vorliegende CapabilityStatement beschreibt alle verpflichtenden Interaktionen die ein ISiK-konformes System unterstützen muss um das Bestätigungsverfahren des Moduls 'Terminplanung' zu bestehen."
+* description =
+ "Dieses CapabilityStatement beschreibt alle Interaktionen
+ die ein ISiK-konformes System unterstützen MUSS bzw. KANN,
+ um das Bestätigungsverfahren für dieses Modul zu bestehen.
+
+ Jede Instanz eines bestätigungsrelevanten Systems MUSS an ihrem Endpunkt eine CapabilityStatement-Ressource bereitstellen.
+Hierzu MUSS die [capabilities-Interaktion gemäß FHIR-Kernspezifikation](https://hl7.org/fhir/R4/http.html#capabilities) unterstützt werden.
+Der `MODE`-Parameter kann ignoriert werden.
+Das CapabilityStatement in dieser Spezifikation stellt die Anforderungen seitens der gematik dar (`kind = requirements`).
+Zur Unterscheidung von Anforderungen, die erfüllt werden MÜSSEN gegenüber jenen, die erfüllt werden KÖNNEN,
+wird die [CapabilityStatement-Expectation-Extension](https://hl7.org/fhir/R4/extension-capabilitystatement-expectation.html) mit den möglichen Werten `SHALL` (=MUSS) und `MAY` (=KANN) verwendet.
+
+Eine Server-Instanz MUSS ihrerseits ein CapabilityStatement vom `kind = instance` liefern und im Element `software` den Namen
+und die Versionsnummer angeben.
+Darüber hinaus MUSS in `CapabilityStatement.instantiates` die Canonical URL des nachfolgenden CapabilityStatements angegeben werden.
+
+Das CapabilityStatement der Instanz MUSS alle Funktionalitäten auflisten, die im folgenden CapabilityStatement mit `SHALL` gekennzeichnet sind.
+Das CapabilityStatement KANN darüber hinaus die mit `MAY` gekennzeichneten Funktionalitäten, sowie weitere Funktionalitäten auflisten,
+sofern diese in der Instanz implementiert wurden.
+
+Die Verwendung der CapabilityStatement-Expectation-Extension ist im CapabilityStatement der Server-Instanz nicht erforderlich.
+
+Dieses CapabilityStatement repräsentiert die Anforderungen an ein Termin-Repository."
* jurisdiction = urn:iso:std:iso:3166#DE "Germany"
* kind = #requirements
* fhirVersion = #4.0.1
* format[0] = #application/fhir+xml
* format[+] = #application/fhir+json
-* instantiates = Canonical(ISiKCapabilityStatementTerminplanungServer)
-* rest.mode = #server
+//Das CS instantiiert sich selbst !?!?
+//* instantiates = Canonical(ISiKCapabilityStatementTerminplanungServer)
+* rest
+ * mode = #server
+ * resource[+]
+ * type = #Schedule
+ * insert Expectation (#SHALL)
+ * supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKKalender"
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #read
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #search-type
+ * insert CommonSearchParameters
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "active"
+ * definition = "http://hl7.org/fhir/SearchParameter/Schedule-active"
+ * type = #token
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Schedule?active=true`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "service-type"
+ * definition = "http://hl7.org/fhir/SearchParameter/Schedule-service-type"
+ * type = #token
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Schedule?service-type=http://example.org/fhir/CodeSystem/ScheduleServiceType|CT`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "specialty"
+ * definition = "http://hl7.org/fhir/SearchParameter/Schedule-specialty"
+ * type = #token
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Schedule?specialty=urn:oid:1.2.276.0.76.5.114|535`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "actor"
+ * definition = "http://hl7.org/fhir/SearchParameter/Schedule-actor"
+ * type = #reference
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Schedule?actor=Practitioner/ISiKPractitionerExample`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
+
+ * searchRevInclude[+] = "Slot:schedule"
+ * insert Expectation (#MAY)
+ * searchRevInclude[+] = "Schedule:actor"
+ * insert Expectation (#MAY)
+
+ * resource[+]
+ * type = #Slot
+ * insert Expectation (#SHALL)
+ * supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKTerminblock"
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #read
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #search-type
+ * insert CommonSearchParameters
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "schedule"
+ * definition = "http://hl7.org/fhir/SearchParameter/Slot-schedule"
+ * type = #reference
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Slot?schedule=Schedule/ISiKKalenderExample&start=2022-12-10T09:00:00Z`
+ `GET [base]/Slot?schedule=Schedule/ISiKKalenderExample`
+ **Anwendungshinweis:**
+ Der Suchparameter `schedule` MUSS in Kombination mit einem definierten Startzeitpunkt mittels Suchparameter `start` unterstützt werden.
+ Der Suchparameter `schedule` KANN alleinstehend unterstützt werden. Beim Fehlen des `start`-Suchparameters SOLL der aktuelle Zeitpunkt des Servers
+ als Startzeitpunkt per Default verwendet werden.
+ In diesem Fall ist auch ein Chaining auf weitere verknüpfte Akteure möglich:
+ `GET https://example.org/fhir/Slot?schedule.actor:HealthcareService.type=https://example.org/fhir/CodeSystem/Behandlungsleistung|CT`
+ Dies kann notwendig sein, falls interdisziplinäre Kalender durch das Termin-Repository gepflegt werden (z.B. ein Kalender pro Station).
+ In solchen Fälle wäre es sinnvoll, wenn das Termin-Repository einem Termin-Requestor eine Verknüpfung zwischen Kalender (Schedule)
+ und Behandlungsleistung (HealthcareService) bereitstellen würde.
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "status"
+ * definition = "http://hl7.org/fhir/SearchParameter/Slot-status"
+ * type = #token
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Slot?status=free&schedule=Schedule/ISiKTerminExample`
+ `GET [base]/Slot?status=free&schedule.actor:Practitioner.name=Musterarzt`
+ **Anwendungshinweis:**
+ Der Suchparameter `status` MUSS in Kombination ('&') mit dem Parameter `schedule` unterstützt werden.
+ Diese Abfrage KANN entweder eine direkte Angabe einer Referenz oder eine Angabe von weiteren Chaining-Parametern sein.
+ Der Suchparameter MUSS NICHT alleinstehend unterstützt werden.
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "start"
+ * definition = "http://hl7.org/fhir/SearchParameter/Slot-start"
+ * type = #date
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Slot?start=2022-12-10T09:00:00Z&schedule=Schedule/ISiKTerminExample`
+ `GET [base]/Slot?start=2022-12-10T09:00:00Z&schedule.actor:Practitioner.name=Musterarzt`
+ **Anwendungshinweis:**
+ Der Suchparameter `start` MUSS in Kombination ('&') mit dem Parameter `schedule` unterstützt werden.
+ Diese Abfrage KANN entweder eine direkte Angabe einer Referenz oder eine Angabe von weiteren Chaining-Parametern sein.
+ Der Suchparameter MUSS NICHT alleinstehend unterstützt werden.
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#date). "
+
+ * searchInclude[+] = "Slot:schedule"
+ * insert Expectation (#MAY)
+ * searchRevInclude[+] = "Appointment:slot"
+ * insert Expectation (#MAY)
+
+
+ * resource[+]
+ * type = #Appointment
+ * insert Expectation (#SHALL)
+ * supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKTermin"
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #read
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #search-type
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #patch
+ * insert CommonSearchParameters
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "status"
+ * definition = "http://hl7.org/fhir/SearchParameter/Appointment-status"
+ * type = #token
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Appointment?status=booked`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "service-type"
+ * definition = "http://hl7.org/fhir/SearchParameter/Appointment-service-type"
+ * type = #token
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Appointment?service-type=http://example.org/fhir/CodeSystem/ScheduleServiceType|CT`
+ **Anwendungshinweis:**
+ Anwendungshinweise: Bei einer Suche mit dem `:not`-Modifier MÜSSEN Ressourcen, die keinen Wert für `Appointment.serviceType` enthalten,
+ im Suchergebnis enthalten sein.
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "specialty"
+ * definition = "http://hl7.org/fhir/SearchParameter/Appointment-service-type"
+ * type = #token
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Appointment?specialty=urn:oid:1.2.276.0.76.5.114|535`
+ **Anwendungshinweis:**
+ Anwendungshinweise: Bei einer Suche mit dem `:not`-Modifier MÜSSEN Ressourcen, die keinen Wert für `Appointment.specialty` enthalten,
+ im Suchergebnis enthalten sein.
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "date"
+ * definition = "http://hl7.org/fhir/SearchParameter/Appointment-date"
+ * type = #date
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Appointment?date=2022-12-10T09:00:00Z`
+ **Anwendungshinweis:**
+ Die Suche wird gegen das Element `Appointment.start` ausgewertet.
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#date). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "slot"
+ * definition = "http://hl7.org/fhir/SearchParameter/Appointment-slot"
+ * type = #reference
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Appointment?slot=Slot/ISiKSlotExample`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "actor"
+ * definition = "http://hl7.org/fhir/SearchParameter/Appointment-actor"
+ * type = #reference
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Appointment?actor=Patient/ISiKPatientExample`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
+
+ * operation[+]
+ * insert Expectation (#SHALL)
+ * name = "book"
+ * definition = Canonical(ISiKAppointmentBookOperation)
+ * documentation = "Die $book-Operation ermöglicht einem Termin-Requestor einen Termin in einem Termin-Repository zu buchen bzw. zu verschieben."
+
+ * searchInclude[+] = "Appointment:slot"
+ * insert Expectation (#MAY)
+ * searchInclude[+] = "Appointment:actor"
+ * insert Expectation (#MAY)
+
+
+ * resource[+]
+ * type = #Communication
+ * insert Expectation (#MAY)
+ * supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKNachricht"
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #read
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #create
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #update
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #search-type
+ * insert CommonSearchParameters
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "subject"
+ * definition = "http://hl7.org/fhir/SearchParameter/Communication-subject"
+ * type = #reference
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Communication?subject=Patient/ISiKPatientExample`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "recipient"
+ * definition = "http://hl7.org/fhir/SearchParameter/Communication-recipient"
+ * type = #reference
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Communication?recipient=Practitioner/ISiKPractitionerExample`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "sender"
+ * definition = "http://hl7.org/fhir/SearchParameter/Communication-sender"
+ * type = #reference
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/Communication?sender=Practitioner/ISiKPractitionerExample`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#reference). "
-* rest.resource[0].extension.url = $capabilitystatement-expectation
-* rest.resource[=].extension.valueCode = #SHALL
-* rest.resource[=].type = #Schedule
-* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKKalender"
-* rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation
-* rest.resource[=].interaction[=].extension.valueCode = #SHALL
-* rest.resource[=].interaction[=].code = #read
-* rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].interaction[=].extension.valueCode = #SHALL
-* rest.resource[=].interaction[=].code = #search-type
-* rest.resource[=].searchParam[0].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "_id"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-id"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "active"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Schedule-active"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "service-type"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Schedule-service-type"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "specialty"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Schedule-specialty"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "actor"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Schedule-actor"
-* rest.resource[=].searchParam[=].type = #reference
-* rest.resource[=].searchRevInclude = "Slot:schedule"
-* rest.resource[=].searchRevInclude[=].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchRevInclude[=].extension.valueCode = #SHALL
-* rest.resource[=].searchInclude = "Schedule:actor"
-* rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchInclude[=].extension.valueCode = #SHALL
+ * searchInclude[+] = "Communication:recipient"
+ * insert Expectation (#MAY)
+ * searchInclude[+] = "Communication:sender"
+ * insert Expectation (#MAY)
+ * searchInclude[+] = "Communication:subject"
+ * insert Expectation (#MAY)
-* rest.resource[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].extension.valueCode = #SHALL
-* rest.resource[=].type = #Slot
-* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKTerminblock"
-* rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation
-* rest.resource[=].interaction[=].extension.valueCode = #SHALL
-* rest.resource[=].interaction[=].code = #read
-* rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].interaction[=].extension.valueCode = #SHALL
-* rest.resource[=].interaction[=].code = #search-type
-* rest.resource[=].searchParam[0].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "_id"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-id"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "schedule"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Slot-schedule"
-* rest.resource[=].searchParam[=].type = #reference
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "status"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Slot-status"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "start"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Slot-start"
-* rest.resource[=].searchParam[=].type = #date
-* rest.resource[=].searchInclude = "Slot:schedule"
-* rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchInclude[=].extension.valueCode = #SHALL
-* rest.resource[=].searchRevInclude = "Appointment:slot"
-* rest.resource[=].searchRevInclude[=].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchRevInclude[=].extension.valueCode = #SHALL
-* rest.resource[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].extension.valueCode = #SHALL
-* rest.resource[=].type = #Appointment
-* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKTermin"
-* rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation
-* rest.resource[=].interaction[=].extension.valueCode = #SHALL
-* rest.resource[=].interaction[=].code = #read
-* rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].interaction[=].extension.valueCode = #SHALL
-* rest.resource[=].interaction[=].code = #search-type
-* rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].interaction[=].extension.valueCode = #SHALL
-* rest.resource[=].interaction[=].code = #patch
-* rest.resource[=].searchParam[0].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "_id"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-id"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "status"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Appointment-status"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "service-type"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Appointment-service-type"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "specialty"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Appointment-service-type"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "date"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Appointment-date"
-* rest.resource[=].searchParam[=].type = #date
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "slot"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Appointment-slot"
-* rest.resource[=].searchParam[=].type = #reference
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "actor"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Appointment-actor"
-* rest.resource[=].searchParam[=].type = #reference
-* rest.resource[=].operation[0].extension.url = $capabilitystatement-expectation
-* rest.resource[=].operation[=].extension.valueCode = #SHALL
-* rest.resource[=].operation[=].name = "book"
-* rest.resource[=].operation[=].definition = Canonical(ISiKAppointmentBookOperation)
-* rest.resource[=].searchInclude = "Appointment:slot"
-* rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchInclude[=].extension.valueCode = #SHALL
-* rest.resource[=].searchInclude[+] = "Appointment:actor"
-* rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchInclude[=].extension.valueCode = #SHALL
-* rest.resource[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].extension.valueCode = #MAY
-* rest.resource[=].type = #Communication
-* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKNachricht"
-* rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation
-* rest.resource[=].interaction[=].extension.valueCode = #SHALL
-* rest.resource[=].interaction[=].code = #read
-* rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].interaction[=].extension.valueCode = #SHALL
-* rest.resource[=].interaction[=].code = #create
-* rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].interaction[=].extension.valueCode = #SHALL
-* rest.resource[=].interaction[=].code = #update
-* rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].interaction[=].extension.valueCode = #SHALL
-* rest.resource[=].interaction[=].code = #search-type
-* rest.resource[=].searchParam[0].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "_id"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-id"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "subject"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Communication-subject"
-* rest.resource[=].searchParam[=].type = #reference
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "recipient"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Communication-recipient"
-* rest.resource[=].searchParam[=].type = #reference
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "sender"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Communication-sender"
-* rest.resource[=].searchParam[=].type = #reference
-* rest.resource[=].searchInclude = "Communication:recipient"
-* rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchInclude[=].extension.valueCode = #SHALL
-* rest.resource[=].searchInclude = "Communication:sender"
-* rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchInclude[=].extension.valueCode = #SHALL
-* rest.resource[=].searchInclude[+] = "Communication:subject"
-* rest.resource[=].searchInclude[=].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchInclude[=].extension.valueCode = #SHALL
+ * resource[+]
+ * type = #HealthcareService
+ * insert Expectation (#SHALL)
+ * supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKMedizinischeBehandlungseinheit"
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #read
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #search-type
+ * insert CommonSearchParameters
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "active"
+ * definition = "http://hl7.org/fhir/SearchParameter/HealthcareService-active"
+ * type = #token
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/HealthcareService?active=true`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "service-type"
+ * definition = "http://hl7.org/fhir/SearchParameter/HealthcareService-service-type"
+ * type = #token
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/HealthcareService?service-type=http://example.org/fhir/CodeSystem/ScheduleServiceType|CT`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "specialty"
+ * definition = "http://hl7.org/fhir/SearchParameter/HealthcareService-specialty"
+ * type = #token
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/HealthcareService?specialty=urn:oid:1.2.276.0.76.5.114|535`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#token). "
+ * searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "name"
+ * definition = "http://hl7.org/fhir/SearchParameter/HealthcareService-name"
+ * type = #string
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/HealthcareService?name=Medizinische Behandlungseinheit Des Fachbereichs 0100`
+ **Anwendungshinweis:**
+ Weitere Details siehe [FHIR-Kernspezifikation](https://hl7.org/fhir/R4/search.html#string). "
+ * searchInclude[+] = "Schedule:actor"
+ * insert Expectation (#MAY)
+ * searchInclude[+] = "Communication:recipient"
+ * insert Expectation (#MAY)
+ * searchInclude[+] = "Appointment:actor"
+ * insert Expectation (#MAY)
-* rest.resource[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].extension.valueCode = #SHALL
-* rest.resource[=].type = #HealthcareService
-* rest.resource[=].supportedProfile[0] = "https://gematik.de/fhir/isik/StructureDefinition/ISiKMedizinischeBehandlungseinheit"
-* rest.resource[=].interaction[0].extension.url = $capabilitystatement-expectation
-* rest.resource[=].interaction[=].extension.valueCode = #SHALL
-* rest.resource[=].interaction[=].code = #read
-* rest.resource[=].interaction[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].interaction[=].extension.valueCode = #SHALL
-* rest.resource[=].interaction[=].code = #search-type
-* rest.resource[=].searchParam[0].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "_id"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/Resource-id"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "active"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/HealthcareService-active"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "service-type"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/HealthcareService-service-type"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "specialty"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/HealthcareService-specialty"
-* rest.resource[=].searchParam[=].type = #token
-* rest.resource[=].searchParam[+].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchParam[=].extension.valueCode = #SHALL
-* rest.resource[=].searchParam[=].name = "name"
-* rest.resource[=].searchParam[=].definition = "http://hl7.org/fhir/SearchParameter/HealthcareService-name"
-* rest.resource[=].searchParam[=].type = #string
-* rest.resource[=].searchRevInclude = "Schedule:actor"
-* rest.resource[=].searchRevInclude[=].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchRevInclude[=].extension.valueCode = #SHALL
-* rest.resource[=].searchRevInclude[+] = "Communication:recipient"
-* rest.resource[=].searchRevInclude[=].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchRevInclude[=].extension.valueCode = #SHALL
-* rest.resource[=].searchRevInclude[+] = "Appointment:actor"
-* rest.resource[=].searchRevInclude[=].extension.url = $capabilitystatement-expectation
-* rest.resource[=].searchRevInclude[=].extension.valueCode = #SHALL
-* rest.resource[+]
- * extension.url = $capabilitystatement-expectation
- * extension.valueCode = #MAY
- * type = #Binary
- * supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBinary"
- * interaction[+]
- * extension.url = $capabilitystatement-expectation
- * extension.valueCode = #SHALL
- * code = #read
- * interaction[+]
- * extension.url = $capabilitystatement-expectation
- * extension.valueCode = #SHALL
- * code = #create
+ * resource[+]
+ * insert Expectation (#MAY)
+ * type = #Binary
+ * supportedProfile = Canonical(ISiKBinary)
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #read
+ * interaction[+]
+ * insert Expectation (#SHALL)
+ * code = #create
diff --git a/Resources/input/fsh/aliases.fsh b/Resources/input/fsh/aliases.fsh
index 6311df99..f59c9c45 100644
--- a/Resources/input/fsh/aliases.fsh
+++ b/Resources/input/fsh/aliases.fsh
@@ -1,4 +1,5 @@
Alias: $appointmentStatus = http://hl7.org/fhir/appointmentstatus
+Alias: $sct = http://snomed.info/sct
Alias: $cancelationReason = http://terminology.hl7.org/CodeSystem/appointment-cancellation-reason
Alias: $authorSpecialtyVS = http://ihe-d.de/ValueSets/IHEXDSauthorSpeciality
Alias: $IHEpracticeSettingVS = http://ihe-d.de/ValueSets/IHEXDSpracticeSettingCode
diff --git a/Resources/input/fsh/ruleset.fsh b/Resources/input/fsh/ruleset.fsh
index 228e5ae7..b247b798 100644
--- a/Resources/input/fsh/ruleset.fsh
+++ b/Resources/input/fsh/ruleset.fsh
@@ -1,18 +1,71 @@
-RuleSet: Meta
-* ^status = #active
-* ^experimental = false
-* ^publisher = "gematik GmbH"
-* ^version = "4.0.0"
-* ^date = "2024-10-01"
-
-RuleSet: MetaInstance
-* status = #active
-* experimental = false
-* publisher = "gematik GmbH"
-* version = "4.0.0"
-* date = "2024-10-01"
-
-RuleSet: Meta-CapabilityStatement
-* insert MetaInstance
-* implementationGuide = "https://gematik.de/fhir/isik/ImplementationGuide/ISiK-Terminplanung"
-* url = "https://gematik.de/fhir/isik/CapabilityStatement/ISiKCapabilityStatementTerminplanungServer"
\ No newline at end of file
+RuleSet: Meta
+* ^status = #active
+* ^experimental = false
+* ^publisher = "gematik GmbH"
+* ^version = "4.0.1"
+* ^date = "2024-12-02"
+
+RuleSet: MetaInstance
+* status = #active
+* experimental = false
+* publisher = "gematik GmbH"
+* version = "4.0.1"
+* date = "2024-12-02"
+
+RuleSet: Meta-CapabilityStatement
+* insert MetaInstance
+* implementationGuide = "https://gematik.de/fhir/isik/ImplementationGuide/ISiK-Terminplanung"
+* url = "https://gematik.de/fhir/isik/CapabilityStatement/ISiKCapabilityStatementTerminplanungServer"
+
+RuleSet: Expectation (expectation)
+* extension.url = $capabilitystatement-expectation
+* extension.valueCode = {expectation}
+
+RuleSet: CommonSearchParameters
+* searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "_id"
+ * definition = "http://hl7.org/fhir/SearchParameter/Resource-id"
+ * type = #token
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/[Resourcetype]?_id=103270`
+ **Anwendungshinweis:**
+ Der Parameter `_id` wird selten alleinstehend verwendet, da sich zum Abruf einer Ressource
+ anhand der `id` die `READ`-Interaktion besser anbietet. Der Parameter kann jedoch verwendet werden,
+ um den Abruf einer Ressource bspw. mit einem `_include` weiterer Ressourcen zu verbinden,
+ z.B. zum Abruf eines Encounters in Verbindung mit dem zugehörigen Patienten:
+ `GET [base]/Encounter?_id=103270&_include=Encounter:patient`
+ Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Parameters for all resources](https://hl7.org/fhir/R4/search.html#all).
+ Dieser Suchparameter ist für die Umsetzung des IHE PDQm Profils verpflichtend."
+* searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "_tag"
+ * definition = "http://hl7.org/fhir/SearchParameter/Resource-tag"
+ * type = #token
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/[Resourcetype]?_tag=https://example.org/codes|needs-review`
+ **Anwendungshinweis:**
+ Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Parameters for all resources](https://hl7.org/fhir/R4/search.html#all)
+ sowie Abschnitt [Tags](https://www.hl7.org/fhir/R4/resource.html#simple-tags). "
+* searchParam[+]
+ * insert Expectation (#SHALL)
+ * name = "_count"
+ * type = #number
+ * documentation =
+ "**Beispiel:**
+ `GET [base]/[Resourcetype]?_count=100`
+ **Anwendungshinweis:**
+ Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Page Count](https://www.hl7.org/fhir/R4/search.html#count). "
+* searchParam[+]
+ * insert Expectation (#MAY)
+ * name = "_has"
+ * type = #string
+ * documentation =
+ "**Beispiel:** Suche nach allen Patienten, die eine Observation mit dem Code '1234-5' haben
+ `GET [base]/Patient?_has:Observation:patient:code=1234-5`
+ **Beispiel:** Suche nach allen Encountern, bei denen die Diagnose 'A12.3' gestellt wurde
+ `GET [base]/Encounter?_has:Condition:encounter:code=A12.3`
+ **Anwendungshinweis:**
+ Weitere Details siehe FHIR-Kernspezifikation, Abschnitt [Reverse Chaining](https://hl7.org/fhir/R4/search.html#has). "
\ No newline at end of file
diff --git a/Resources/input/fsh/valueSets.fsh b/Resources/input/fsh/valueSets.fsh
index 5ccef6bc..0df4cdb4 100644
--- a/Resources/input/fsh/valueSets.fsh
+++ b/Resources/input/fsh/valueSets.fsh
@@ -12,4 +12,20 @@ ValueSet: ISiKTerminPriority
Id: ISiKTerminPriority
Description: "Enthaelt alle SNOMED Codes, die eine valide Priorität für den ISiKTermin sind"
* insert Meta
-* include codes from system SNOMED_CT where concept descendent-of #272125009
\ No newline at end of file
+* $sct#709122007 "ASAP"
+* $sct#441808003 "Delayed priority"
+* $sct#103390000 "Elective"
+* $sct#25876001 "Emergency"
+* $sct#394849002 "High priority"
+* $sct#88694003 "Immediate"
+* $sct#1251527002 "Low priority"
+* $sct#394848005 "Normal priority"
+* $sct#76561005 "Reclassified"
+* $sct#44408006 "Reclassified and rescheduled"
+* $sct#64695001 "Repeat elective"
+* $sct#21282002 "Repeat emergency"
+* $sct#58334001 "Rescheduled"
+* $sct#50811001 "Routine"
+* $sct#416774000 "Scheduled - priority"
+* $sct#49499008 "Stat"
+* $sct#103391001 "Urgent"
\ No newline at end of file
diff --git a/Resources/sushi-config.yaml b/Resources/sushi-config.yaml
index a9b99727..b8aa5b9f 100644
--- a/Resources/sushi-config.yaml
+++ b/Resources/sushi-config.yaml
@@ -1,9 +1,9 @@
-canonical: https://gematik.de/fhir/isik
-fhirVersion: 4.0.1
-FSHOnly: true
-applyExtensionMetadataToRoot: false
-version: 4.0.0
-dependencies:
- de.gematik.isik-basismodul: 4.0.0
- de.ihe-d.terminology: 3.0.0
- hl7.fhir.extensions.r5: 4.0.1
+canonical: https://gematik.de/fhir/isik
+fhirVersion: 4.0.1
+FSHOnly: true
+applyExtensionMetadataToRoot: false
+version: 4.0.1
+dependencies:
+ de.gematik.isik-basismodul: 4.0.x
+ de.ihe-d.terminology: 3.0.1
+ hl7.fhir.extensions.r5: 4.0.1
diff --git a/package.json b/package.json
index 37b6b74b..d06dcc40 100644
--- a/package.json
+++ b/package.json
@@ -1,12 +1,12 @@
-{
- "name": "de.gematik.isik-terminplanung",
- "version": "4.0.0",
- "description": "Package Release des ISiK Modul Terminplanung",
- "fhirVersions": [
- "4.0.1"
- ],
- "dependencies": {
- "de.gematik.isik-basismodul": "4.0.0",
- "de.ihe-d.terminology": "3.0.0"
- }
-}
+{
+ "name": "de.gematik.isik-terminplanung",
+ "version": "4.0.1",
+ "description": "Package Release des ISiK Modul Terminplanung",
+ "fhirVersions": [
+ "4.0.1"
+ ],
+ "dependencies": {
+ "de.gematik.isik-basismodul": "4.0.x",
+ "de.ihe-d.terminology": "3.0.1"
+ }
+}