diff --git a/README.adoc b/README.adoc index 9d9f99ab..bb41f276 100644 --- a/README.adoc +++ b/README.adoc @@ -95,6 +95,7 @@ TI-Messenger Dokumentation | ├──── link:docs/IDP[IDP] | ├──── link:docs/Primaersystem[Primaersystem] | ├──── link:docs/anwendungsfaelle[Anwendungsfälle] +| ├──── link:docs/Test/Test.adoc[Testkonzept] | └──── link:docs/FAQ[FAQ] ├─ link:images[images] (Bildarchiv) │ └──── link:images/drawio[drawio] (gerenderte draw.io Diagramme) diff --git a/docs/Test/Test.adoc b/docs/Test/Test.adoc new file mode 100644 index 00000000..208955b6 --- /dev/null +++ b/docs/Test/Test.adoc @@ -0,0 +1,159 @@ +ifdef::env-github[] +:tip-caption: :bulb: +:note-caption: :information_source: +:important-caption: :heavy_exclamation_mark: +:caution-caption: :fire: +:warning-caption: :warning: +endif::[] + +:imagesdir: ../../images +:docsdir: ../ +:toc: macro +:toclevels: 6 +:toc-title: Table of Contents +:numbered: +:sectnumlevels: 6 + +image:meta/gematik_logo.svg[width=70%] + += Testkonzept TI-Messenger-Dienst +gematik +| Version 1.0 | Stand: 26.03.2024 + +Dokumentenhistorie +[cols='10%,10%,10%,60%,10%'] +|=== +| *Version* |*Stand* | *Kap.* | *Grund der Änderung, besondere Hinweise* | *Bearbeiter* +| 1.0 | 26.03.2024 | | initiale Erstellung | gematik +|=== + +toc::[] + +== Test und Zertifizierung der TI-Messenger +Für die Produkt- und die Anbieter-Zulassung MÜSSEN die TI-Messenger-Fachdienste (TI-M FD) und TI-Messenger-Clients (TI-M Client) bereitgestellt werden, um einen automatisierten Test für den TI-Messenger-Dienst (TI-M Dienst) zu ermöglichen, MUSS die Test-App des TI-M Clients zusätzlich ein Testtreiber-Modul intern oder extern zur Verfügung stellen. Dieses MUSS die Funktionalitäten der produktspezifischen Schnittstelle des TI-M Clients über eine standardisierte Schnittstelle von außen zugänglich machen und einen Fernzugriff ermöglichen. Das Testtreiber-Modul MUSS die Ausgaben des TI-M Clients gemäß der technischen Schnittstelle aufarbeiten, aber DARF NICHT die Inhalte verfälschen. + +=== Testvorgehen + +Das Testvorgehen für TI-Messenger ePA (TI-M ePA) und TI-Messenger Pro (TI-M Pro) setzt auf das Testvorgehen des TI-M Dienst 1.1.1-1 [gemSpec_TI-Messenger-Dienst] auf. Die existierende Testtreiberschnittstelle und Testsuite wird entsprechend erweitert. Alle Tests innerhalb der Testsuite sind separat ausführbar. Somit ist es möglich, die TI-M Pro und das TI-M ePA-FdV zusammen oder einzeln zu testen. Die erweiterte Testtreiberschnittstelle link:../../src/openapi/TiMessengerTestTreiber.yaml[Testtreiber API] und die Testsuite https://github.com/gematik/TI-Messenger-Testsuite[TI-Messenger-Testsuite] werden auf github veröffentlicht und sind für alle Hersteller zugänglich. Während der Zulassungstests werden genau die veröffentlichten Testfälle geprüft. Die Testfälle bilden die definierten Anwendungsfälle aus der Spezifikation ab. Produkttests zur Sicherstellung der Konformität mit der Spezifikation liegen vollständig in der Verantwortung der Anbieter/Hersteller. Die gematik konzentriert sich bei der Zulassung auf das Zusammenspiel der Produkte durch E2E- und IOP-Tests. + +=== Testtreiber Modul +Um einen automatisierten Test für den TI-Messenger-Dienst zu ermöglichen, MUSS die Test-App des TI-M Clients zusätzlich ein Testtreiber-Modul intern oder extern zur Verfügung stellen. Das Testtreiber-Modul MUSS die Funktionalitäten der produktspezifischen Schnittstellen des TI-M Clients über eine standardisierte Schnittstelle von außen zugänglich machen und einen Fernzugriff ermöglichen. Das Testtreiber Modul wird vom Hersteller entwickelt und betrieben. + +Dieses Testtreiber-Module MUSS Bestandteil der Test-APP sein (internes Testtreiber-Modul) oder einen Zugang zum Test-Environment des Herstellers gewährleisten (externes Testtreiber-Modul). Die Schnittstelle wird gemäß link:../../src/openapi/TiMessengerTestTreiber.yaml[Testtreiber API] durch die gematik spezifiziert und bereitgestellt. Das Testtreiber-Modul MUSS die durch den TI-M Client über eine produktspezifische Schnittstelle angebotene Funktionalität nutzen, um die Operationen des TI-M Clients umzusetzen. Für die Ausführung der Tests werden Organisationen und Messenger-Services benötigt. Diese Organisationen und Messenger-Services MÜSSEN von den Herstellern vor Beginn der Testphase eingerichtet und die Daten (Organisationsnamen usw.) MÜSSEN an die gematik übermittelt werden. In den folgenden Abbildungen wird das interne sowie das externe Testtreiber-Modul dargestellt. Wenn ein Client in mehreren Ausprägungen zur Verfügung gestellt wird, wird für jede Ausprägung eine Zulassung mit einem eigenen Testtreiber-Modul benötigt. + + +*Cert bereitstellen* + +==== internes Testtreiber-Modul +Bei einem internen Testtreiber-Modul wird die REST-Schnittstelle in die Test-App integriert (der Zugriff erfolgt hierbei direkt über das Endgerät). + +.Abbildung{counter:abbildung: 1}: internes Testtreiber Modul +image:diagrams/Test/testtreiber-internes-Modul.png[align="left",width="100%", title="internes Testtreiber Modul"] + +==== externes Testtreiber-Modul +Bei einem externen Testtreiber-Modul erhält die REST-Schnittstelle Zugang zum Test-Environment des Herstellers. + +.Abbildung{counter:abbildung: 1}: externes Testtreiber Modul +image:diagrams/Test/testtreiber-externes-Modul.png[align="left",width="100%", title="externes Testtreiber Modul"] + +=== TI-Messenger Testtreiber Anschaltung + +Das folgende Bild zeigt die Anschaltung der Testtreiber Clients. Die Clients können über eine externe oder interne Testtreiber-Schnittstelle mit der Testsuite remote oder local verbunden werden. Diese Leistung MUSS von jedem Hersteller erbracht werden. Welche Clients eingesetzt werden, können die Hersteller selbstständig entscheiden. Es werden nur bereitgestellte Clients zugelassen. Clients mit den gleichen Eigenschaften werden unter einer URL zusammengefasst. Diese URL wird dann in die Konfigurationsdatei 'combine_items.json' eingetragen. In dieser Datei werden alle Testobjekte verwaltet. + +.Abbildung{counter:abbildung: 1}: Anschaltung der Testtreiber Clients +image:diagrams/Test/Anschaltung der Testtreiber Clients-1.png[align="left",width="100%", title="Anschaltung der Testtreiber Clients"] + +Die unterschiedlichen Testtreibeschnittstellen werden mit mTLS gesichert. Die gematik stellt für den zugriff auf die Schnittstelle entsprechende Zertifikate bereit. Weiterführende Informationen zur Testsuite und zur Testtreiber-Schnittstelle findet man in der +https://github.com/gematik/TI-Messenger-Testsuite/blob/main/doc/userguide/Testsuite.adoc[Testsuite TI-M Dienst Release 1.1.1]. + +== Test der Hersteller + +=== Herstellerverantwortung +Produkttests zur Sicherstellung der Konformität mit der Spezifikation sind vollständig in der Verantwortung der Anbieter/Hersteller des TI-Messenger-Clients (TI-M Client). Die gematik konzentriert sich bei der Zulassung auf das Zusammenspiel der Produkte durch E2E- und IOP Tests. + +Die eigenverantwortlichen Produkttests bei den Industriepartnern umfassen: + + Testumgebung entwickeln, + Testfallkatalog erstellen (für eigene Produkttests) und + Produkttest durchführen und dokumentieren. + +Die Hersteller der TI-Messenger-Dienste (TI-M Dienst) MÜSSEN zusichern, dass die gematik die Produkttests der Industriepartner in Form von Reviews der Testkonzepte, der Testspezifikationen, der Testfälle und mit dem Review der Testprotokolle (Log- und Trace-Daten) überprüfen kann. + +Die gematik fördert eine enge Zusammenarbeit und unterstützt Industriepartner dabei, die Qualität der Produkte zu verbessern. Dies erfolgt durch die Organisation zeitnaher IOP-Tests, die Synchronisierung von Meilensteinen sowie regelmäßige industriepartnerübergreifende Test-Sessions. Die Test-Sessions umfassen gegenseitige IOP- und E2E Tests. + +Die gematik stellt eine TI-M Dienst Referenzimplementierung zur Verfügung. Zur Sicherstellung der Interoperabilität zwischen verschiedenen TI-Messenger-Fachdiensten (TI-M FD) und TI-M Clients MÜSSEN alle TI-M Dienste gegen diese Referenzimplementierung getestet werden. Der Sourcecode für die in der Referenzimplementierung verwendeten Artefakte wird regelmäßig von der gematik unter https://github.com/tim-ref[TI-Messenger [Referenzimplementierung] veröffentlicht. + +=== Referenz-Instanz + +Vor der Zulassung können sich die Hersteller eine Referenz-Instanz über die gematik bestellen. Die Referenz-Instanz hilft den Herstellern bei der Entwicklung neuer TI-M Clients, FdV und TI-M FD Versionen. Für die IOP-Tests zwischen den verschiedenen TI-Messenger-Anbietern bzw. -Herstellern können sowohl die Test-Instanzen als auch die Referenz-Instanzen genutzt werden. Die TI-M Dienste müssen gegen die Referenz-Instanz erfolgreich getestet werden. Die Testergebnisse sind der gematik vorzulegen. + +.Abbildung{counter:abbildung: 1}: Referenz-Instanz +image:diagrams/Test/HerstellerInstanz-1.png[align="left",width="100%", title="Referenz-Instanz"] + +=== Hersteller IOP Tests + +Alle Anbieter MÜSSEN bereits im Vorfeld diesen IOP- und E2E-Tests selbständig und eigenverantwortlich durchführen. Bei Problemen im Rahmen der Zulassung MÜSSEN die Anbieter bei der Analyse unterstützen. In der folgenden Abbildung ist eine Systemumgebung für Herstellertests dargestellt. + +.Abbildung{counter:abbildung: 1}: IOP Testumgebung Hersteller +image:diagrams/Test/testumgebung-Hersteller.png[align="left",width="100%", title="IOP Testumgebung Hersteller"] + +== Zulassung + +=== Zulassungstests durch die gematik +Die gematik testet im Rahmen der Zulassungsverfahren auf Basis von Anwendungsfällen. Dabei wird sich auf die link:{docsdir}anwendungsfaelle/TI-Messenger-Anwendungsfaelle.adoc [Anwendungsfälle] bezogen. Hierbei wird versucht, möglichst viele Funktionsbereiche der Komponenten des TI-Messenger-Dienstes (TI-M Dienst) einzubeziehen. + +==== Tests gegen die Referenzimplementierung +Die Tests werden zunächst gegen die Referenzimplementierung der gematik durchgeführt. In diesem Schritt wird die Funktionalität des Zulassungsobjektes "TI-Messenger-Dienst" geprüft. + +==== Zulassung TI-Messenger Pro + +Die Hersteller von TI-M Diensten müssen wie zuvor erwähnt die Testtreiberschnittstelle und den Fachdienst bereitstellen. Bei Problemen im Rahmen der Zulassung müssen die Anbieter bei der Analyse unterstützen. In der folgenden Abbildung ist eine Systemumgebung für den Zulassungstest TI-Messenger Pro (TI-M Pro) dargestellt. + +.Abbildung{counter:abbildung: 1}: Zulassung TI-Messenger Pro +image:diagrams/Test/Zulassung TIM-Basis.png[align="left",width="100%", title="Zulassung TI-Messenger Pro"] + +==== Zulassung TI-Messenger ePA + +Die Hersteller von Versicherten-Frontends müssen ebenfalls das FdV, die Testtreiberschnittstelle und den Fachdienst für Versicherte bereitstellen. Bei Problemen im Rahmen der Zulassung müssen die Anbieter bei der Analyse unterstützen. In der folgenden Abbildung ist eine Systemumgebung für den Zulassungstest TI-Messerger ePA (TI-M ePA) dargestellt. + +.Abbildung{counter:abbildung: 1}: Zulassung TI-Messenger ePA +image:diagrams/Test/Zulassung TIM-ePA.png[align="left",width="100%", title="Zulassung TI-Messenger ePA"] + +=== IOP Tests zwischen Anbietern durch die gematik +Zusätzlich zu den bereits durchgeführten IOP- und E2E-Tests werden weitere Interoperabilitätstests verschiedener TI-Messenger-Lösungen vor und nach der Zulassung durch die gematik durchgeführt. Die folgende Abbildung zeigt die Nutzung der existierenden Testumgebung durch die gematik während der Zulassungs- und Interoperabilitätstests. + +.Abbildung{counter:abbildung: 1}: IOP Tests +image:diagrams/Test/testumgebung-Gematik.png[align="left",width="100%", title="IOP Tests"] + +IOP- und E2E-Tests für die Interoperabilität MÜSSEN zwischen den verschiedenen TI-Messenger-Anbietern nachgewiesen werden. Hierfür werden dann alle bereits zur Verfügung stehenden TI-M Dienste (die Test-Instanzen der einzelnen Hersteller) zusammengeschlossen und anschließend gegeneinander getestet. + +==== IOP Tests TI-Messenger Pro + +Im Anschluss der Zulassung wird mit den IOP- und E2E-Tests die Interoperabilität zwischen den verschiedenen TI-Messenger-Anbietern nachgewiesen. Hierfür werden dann alle bereits zur Verfügung stehenden TI-M Dienste (die Test-Instanzen der einzelnen Hersteller) zusammengeschlossen und anschließen gegeneinander getestet. Alle Anbieter MÜSSEN bereits im Vorfeld diesen IOP- und E2E-Tests selbständig und eigenverantwortlich durchführen. Bei Problemen im Rahmen der IOP Tests MÜSSEN die Anbieter bei der Analyse unterstützen. In der folgenden Abbildung ist eine Systemumgebung für Herstellertests TI-M Pro dargestellt. + +.Abbildung{counter:abbildung: 1}: IOP Test TI-Messenger Pro +image:diagrams/Test/Testumgebung Basis-1.png[align="left",width="100%", title="IOP Test TI-Messenger Pro"] + +Weiterhin wird ein dauerhaftes Continuous Testing eingeführt. Das Continuous Testing wird dann in der Folge erweitert Dadurch wird auch ein Test unterschiedlicher Messenger Versionen und Ausprägungen ermöglicht. + +==== IOP Tests TI-Messenger ePA + +Für den TI-M ePA gelten ebenso die im Kap. 3.2.1 beschriebenen Anforderungen an den IOP Test. In der folgenden Abbildung ist eine Systemumgebung für Herstellertests TI-M ePA dargestellt. Bei Problemen im Rahmen der IOP Tests MÜSSEN die Anbieter des Fachdienstes und des FdVs bei der Analyse unterstützen. + +.Abbildung{counter:abbildung: 1}: IOP Test TI-Messenger ePA +image:diagrams/Test/Testumgebung ePA-1.png[align="left",width="100%", title="IOP Test TI-Messenger ePA"] + +==== IOP Tests Pools + +Um eine größere Abdeckung zu erhalten werden die Hersteller in Pools eingeteilt. Somit können mehrere Hersteller gleichzeitig getestet werden. Anschließend werden die Pools erneut gemischt. + +.Abbildung{counter:abbildung: 1}: IOP Test Pools +image:diagrams/Test/IOP Pools-1.png[align="left",width="100%", title="Verpflichtung nach der Zulassung"] + +== Verpflichtung nach der Zulassung +Der TI-Messenger-Anbieter MUSS eine Referenz-Instanz und mindestens eine Test-Instanz des TI-Messenger-Fachdienstes (TI-M FD) und TI-Messenger-Clients (TI-M Client) bereitstellen und betreiben. Die Referenz-Instanz hat die gleiche Version wie die Produktionsumgebung. Weiterhin wird die Referenz-Instanz für die Reproduktion aktueller Fehler/Probleme aus der Produktionsumgebung genutzt. Der Zugriff auf die Referenz-Instanz MUSS für die gematik zur Fehleranalyse gewährleistet sein. Die Test-Instanz dient den Herstellern bei der Entwicklung neuer TI-M Clients und TI-M FD Versionen, bei den IOP-Tests zwischen den verschiedenen TI-Messenger-Anbietern und wird zudem von der gematik für die Zulassung genutzt. Der TI-Messenger-Anbieter MUSS die verschiedenen Benutzer der Referenz-Instanz und der Test-Instanz koordinieren (Verwaltung eines Test-/Nutzungsplans). Bei Bedarf (Entwicklung verschiedener Versionen, hoher Auslastung durch andere Hersteller oder durch die gematik) MUSS der TI-Messenger-Anbieter auch mehrere Test-Instanzen mit der gleichen oder mit verschiedenen Versionen bereitstellen und betreiben. + +.Abbildung{counter:abbildung: 1}: Verpflichtung nach der Zulassung +image:diagrams/Test/nach_der_Zulassung-1.png[align="left",width="100%", title="Verpflichtung nach der Zulassung"] + +Die Referenz-Instanz und die Test-Instanz wird auch im Anschluss der Zulassung weiter für IOP Test und Continuous Testing genutzt. \ No newline at end of file diff --git a/docs/anwendungsfaelle/COM-chatbot.adoc b/docs/anwendungsfaelle/COM-chatbot.adoc new file mode 100644 index 00000000..183292e0 --- /dev/null +++ b/docs/anwendungsfaelle/COM-chatbot.adoc @@ -0,0 +1,64 @@ +ifdef::env-github[] +:tip-caption: :bulb: +:note-caption: :information_source: +:important-caption: :heavy_exclamation_mark: +:caution-caption: :fire: +:warning-caption: :warning: +endif::[] + +:imagesdir: ../../images + +image:meta/gematik_logo.svg[width=70%] + +=== Kommunikation mit einem Chatbot +Im Folgenden wird ein Beispiel für eine mögliche Zuordnung für die Abbildung von Funktionsaccounts mit Hilfe von Chatbots und eines Akteurs der stellvertretend für die Organisation auftritt. +Der Chatbot kann automatisiert Anfragen von Akteuren (z. B. für Terminanfragen, Medikationsentscheidung) bearbeiten oder bei Bedarf die zugeordneten und zu diesem Zeitpunkt verfügbaren Akteure in den Chatraum einladen. Die dem Chatbot zur Verfügung stehenden Akteure (in der Spalte "Akteur (MXID)") sind in der Konfiguration des Chatbots zu hinterlegen. Im letzte Beispiel in der Tabelle ist ein Akteur (natürliche Person) als Endpoint hinterlegt und tritt stellvertretend für die Organisation in den Chat ein. + +.Übersicht der Zuordnung von Funktionsaccounts und Akteuren +|=== +|Abteilung |Funktionsaccount |Endpoint.address |Akteur (MXID) |Displayname im Chatraum + +|Kardiologie |Labor_Kardiologie |@MXID_Bot01:.de |@MXID_01:.de @MXID_02:.de a| +* Empfang_Kardiologie (Chatbot) +* Dennert, Maltilde +* Fritsche, Sarah + +|Neurologie |Ambulanz_Neurologie |@MXID_Bot02:.de |@MXID_03:.de a| +* Ambulanz_Neurologie (Chatbot) +* Gotsch, Gerd + +|Radiologie |Empfang_Radiologie |@MXID_04:.de |- |Fruechtl, Wilfried +|=== + +=== Beispiel: Einladung durch einen Chatbot +Die folgende Grafik zeigt den Ablauf beim Kontaktieren eines Funktionsaccounts durch einen Akteur. Der Funktionsaccount wird durch den Chatbot repräsentiert. Der Chatbot kann automatisiert Anfragen von Akteuren bearbeiten oder bei Bedarf die zugeordneten und zu diesem Zeitpunkt verfügbaren Akteure in den Chatraum einladen. Die dem Chatbot zur Verfügung stehenden Akteure sind in der Konfiguration des Chatbots zu definieren. + +A. Vorbedingung: +* Die Organisation Klinikum X verfügt über einen TI-Messenger-Client mit Administrationsfunktion und einen Messenger-Service +* Chatbots stehen zur Verfügung und können vom Akteur in der Rolle "Org-Admin" verwaltet werden + +B. Konfiguration von Funktionsaccounts: +* Der Akteur in der Rolle "Org-Admin" legt einen Funktionsaccount (organisationsbezogene MXID) als einen Endpoint des gewünschten HealthcareService der Organisation an und ordnet dieser MXID einen Chatbot zu. +* Der Akteur in der Rolle "Org-Admin" weist zuständige Akteure der Organisation (personenbezogene MXIDs) dem Chatbot zu. +* Die Zuordnung von Akteuren zu einzelnen Anfragen innerhalb eines Funktionsaccounts (z. B. Terminanfragen, Medikationsentscheidung) erfolgt durch die Konfiguration im Chatbot. + +C. Beispielhafter Ablauf (siehe Abbildung "Kommunikation mit einem Chatbot"): +. Es liegt ein kardiologisches Problem vor und der Akteur sucht nach einer Organisation und/oder Unterstruktur dieser Organisation. (z. B. in seinem Krankenhaus die Abteilung Kardiologie) +. Der Akteur öffnet einen Chatraum mit dem Funktionsaccount der Abteilung Kardiologie. +. Der Chatbot des Funktionsaccounts der Abteilung Kardiologie betritt den Raum und erfragt das Anliegen vom Akteur (z. B. Terminanfrage, Rückfrage an Arzt etc.) abfragen. +. Der Akteur antwortet dem Chatbot. +. Der Chatbot lädt je nach Anliegen die ihm zugeordneten und verfügbaren Akteure in den Chatraum ein. +. Eingeladene Akteure betreten den Chatraum mit ihrem Displaynamen und kommunizieren mit dem Akteur. + +.Kommunikation mit einem Chatbot +[%collapsible%open] +==== +++++ +

+ +

+++++ +==== + + + diff --git a/docs/anwendungsfaelle/TI-M_ePA/MS-AF10233-versicherteneinladung-unterbinden.adoc b/docs/anwendungsfaelle/TI-M_ePA/MS-AF10233-versicherteneinladung-unterbinden.adoc new file mode 100644 index 00000000..d119bb5f --- /dev/null +++ b/docs/anwendungsfaelle/TI-M_ePA/MS-AF10233-versicherteneinladung-unterbinden.adoc @@ -0,0 +1,41 @@ +ifdef::env-github[] +:tip-caption: :bulb: +:note-caption: :information_source: +:important-caption: :heavy_exclamation_mark: +:caution-caption: :fire: +:warning-caption: :warning: +endif::[] + +:imagesdir: ../../../images + +image:meta/gematik_logo.svg[width=70%] + +=== AF_10233 - Versicherteneinladung unterbinden +Dieser Anwendungsfall erweitert die in der TI-M_Basis definierte Prüflogik für den Messenger-Proxy, neben der Föderationsprüfung ist zusätzlich zu prüfen, dass der Einladende und der Eingeladene nicht der Gruppe Versicherte zuzuordnen sind. Für die Prüfung der Zugehörigkeit verwendet der Messenger-Proxy die Information isInsurance aus der Föderationsliste. + +.Anwendungsfallbeschreibung +[%collapsible%open] +==== +[caption=] +Versicherteneinladung unterbinden +[%header, cols="1,1"] +|=== +| |Beschreibung +|*Auslöser* |Anfrage am Messenger Proxy +|*Komponenten* a| + * Messenger-Proxy +|*Vorbedingungen* a| Die Domain wurde in die Föderationsliste eingetragen und als Versichertendomain markiert. +|*Eingangsdaten* |Matrix-Invite-Event +|*Ergebnis* a|Ablehnung der Einladung, wenn Sender und der Empfänger beide Akteure in der Rolle Versicherter sind. +Weiterleitung der Einladung, wenn der Sender oder der Empfänger kein Akteur in der Rolle Versicherter ist. +|=== +==== +.Sequenzdiagramm +[%collapsible%open] +==== +++++ +

+ +

+++++ +==== diff --git a/docs/anwendungsfaelle/TI-Messenger-Anwendungsfaelle.adoc b/docs/anwendungsfaelle/TI-Messenger-Anwendungsfaelle.adoc index 36c63ea9..2c163fe7 100644 --- a/docs/anwendungsfaelle/TI-Messenger-Anwendungsfaelle.adoc +++ b/docs/anwendungsfaelle/TI-Messenger-Anwendungsfaelle.adoc @@ -55,3 +55,5 @@ Die folgenden Anwendungsfälle beschreiben den Anmeldevorgang, die Einladung and * link:COM-AF10061-einladung-ausserhalb.adoc[AF_10061 - Einladung von Akteuren außerhalb einer Organisation] * link:COM-AF10062-events-ausserhalb.adoc[AF_10062 - Austausch von Events zwischen Akteuren ausserhalb einer Organisation] + +* link:COM-chatbot.adoc[Kommunikation mit einem Chatbot] diff --git a/images/diagrams/System_Overview-Allgemein.png b/images/diagrams/System_Overview-Allgemein.png index a161cf0e..04746e95 100644 Binary files a/images/diagrams/System_Overview-Allgemein.png and b/images/diagrams/System_Overview-Allgemein.png differ diff --git a/images/diagrams/System_Overview-Allgemein.svg b/images/diagrams/System_Overview-Allgemein.svg index b0d68411..d613bb46 100644 --- a/images/diagrams/System_Overview-Allgemein.svg +++ b/images/diagrams/System_Overview-Allgemein.svg @@ -1,3 +1,3 @@ -
VZD-FHIR-Directory
VZD-FHIR-Directory
TI-Messenger-Fachdienst
TI-Messenger-Fachdienst
Messenger-Service
Messenger-Service
Registrierungs-
Dienst
Registrierungs-...

TI-Messenger- Client
TI-Messenger- Cli...
Messenger-
Proxy
Messenger-...
Push-
Gateway
Push-...
FHIR-Directory
FHIR-Directory
FHIR-Proxy
FHIR-Proxy
IDP-
Dienst
IDP-...
OAuth
OAuth
Matrix-
Homeserver
Matrix-...
Auth-Service
Auth-Service
Messenger-Service
Messenger-Service
Messenger-
Proxy
Messenger-...
Matrix-
Homeserver
Matrix-...
R
R
R
R
R
R
R
R
R
R
Text is not SVG - cannot display
\ No newline at end of file +
VZD-FHIR-Directory
VZD-FHIR-Directory
TI-M-Fachdienst
TI-M-Fachdienst
Registrierungs-
Dienst
Registrierungs-...
TI-M-Client
TI-M-Client
Push-
Gateway
Push-...
FHIR-Directory
FHIR-Directory
FHIR-Proxy
FHIR-Proxy
IDP-Dienst
IDP-Dienst
OAuth
OAuth
Auth-Service
Auth-Service
Messenger-Service
Messenger-Service
Messenger-
Proxy
Messenger-...
Matrix-
Homeserver
Matrix-...
R
R
R
R
R
R
R
R
R
R
Komponenten-PKI
Komponenten-PKI
R
R
R
R
Push-Provider
Push-Provider
R
R
R
R
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-M_Pro/API-Messenger-Service-API-Messenger-Service.png b/images/diagrams/TI-M_Pro/API-Messenger-Service-API-Messenger-Service.png new file mode 100644 index 00000000..1e583443 Binary files /dev/null and b/images/diagrams/TI-M_Pro/API-Messenger-Service-API-Messenger-Service.png differ diff --git a/images/diagrams/TI-M_Pro/API-Messenger-Service-API-Messenger-Service.svg b/images/diagrams/TI-M_Pro/API-Messenger-Service-API-Messenger-Service.svg new file mode 100644 index 00000000..112a082a --- /dev/null +++ b/images/diagrams/TI-M_Pro/API-Messenger-Service-API-Messenger-Service.svg @@ -0,0 +1,3 @@ + + +

extern

extern

extern

extern

intern

intern
Messenger-Service
Messenger-Service
Matrix- Homeserver
Matrix- Homese...
Messenger-
Proxy
Messenger-...

Matrix - Server

Server API

Matrix - Serve...
R
R
R
R

Matrix - Server

Server API

Matrix - Serve...
R
R
R
R

Matrix - Server

Server API

Matrix - Serve...

Matrix - Client

Server API

Matrix - Clien...
R
R
R
R

TiMessengerContactManagement

TiMessengerContactManagement

Matrix - Client

Server API

Matrix - Clien...
R
R

Authentifizierungsverfahren

Authentifizierungsverfahren
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-M_Pro/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.png b/images/diagrams/TI-M_Pro/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.png new file mode 100644 index 00000000..c4acc956 Binary files /dev/null and b/images/diagrams/TI-M_Pro/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.png differ diff --git a/images/diagrams/TI-M_Pro/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.svg b/images/diagrams/TI-M_Pro/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.svg new file mode 100644 index 00000000..a9c23f76 --- /dev/null +++ b/images/diagrams/TI-M_Pro/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.svg @@ -0,0 +1,3 @@ + + +
Ausstellung von RegService-OpenID-Token
Ausstellung von RegSe...
Registrierungs-
Dienst
Registrierungs-...
Administration
Administration
Messenger-Service in die TI-Föderation aufnehmen
Messenger-Service in die...
I_Registration
I_Registratio...
I_internVerification
I_internVerificat...
VZD-FHIR-Directory
VZD-FHIR-Directory
Messenger-Proxy
Messenger-Proxy
Frontend des
Registrierungs-Dienstes
Frontend des...
Authentifizierung am
VZD-FHIR-Directory
Authentifizierung am...
OAuth / Auth-Service
(/token,
/ti-provider-authenticate)
OAuth / Auth-Service...
I_requestToken
I_requestToken
Org-Admin-Client
Org-Admin-Client
R
R
I_VZD_TIM_Provider_Services
(/tim-provider-services)
I_VZD_TIM_Provider_Services...
R
R
Bereitstellung der Föderationsliste
Bereitstellung der Föderationsli...
R
R
R
R
R
R
Internet
Internet
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-M_Pro/UC_org_admin.png b/images/diagrams/TI-M_Pro/UC_org_admin.png new file mode 100644 index 00000000..b4a4724e Binary files /dev/null and b/images/diagrams/TI-M_Pro/UC_org_admin.png differ diff --git a/images/diagrams/TI-M_Pro/UC_org_admin.svg b/images/diagrams/TI-M_Pro/UC_org_admin.svg new file mode 100644 index 00000000..95778b30 --- /dev/null +++ b/images/diagrams/TI-M_Pro/UC_org_admin.svg @@ -0,0 +1 @@ +RolleAnwendungsfällez. B. Beauftragter Mitarbeiter in einerOrganisationOrg-Admin«AF_10103» Authentisieren einer Organisationam TI-Messenger-Dienst«AF_10060» Bereitstellung eines Messenger-Servicefür eine Organisation«AF_10059» Organisationsressourcen imVerzeichnisdienst hinzufügen \ No newline at end of file diff --git a/images/diagrams/TI-M_ePA/Berechtigung_fdv-Overview.png b/images/diagrams/TI-M_ePA/Berechtigung_fdv-Overview.png new file mode 100644 index 00000000..b92d1780 Binary files /dev/null and b/images/diagrams/TI-M_ePA/Berechtigung_fdv-Overview.png differ diff --git a/images/diagrams/TI-M_ePA/Berechtigung_fdv-Overview.svg b/images/diagrams/TI-M_ePA/Berechtigung_fdv-Overview.svg new file mode 100644 index 00000000..7e0a7b35 --- /dev/null +++ b/images/diagrams/TI-M_ePA/Berechtigung_fdv-Overview.svg @@ -0,0 +1,3 @@ + + +
TI-Messenger für Versicherte 
TI-Messenger für Versicherte 
TI-Messenger 1.1.1
TI-Messenger 1.1.1
TI-Messenger-Service
TI-Messenger-Service
Matrix-Homeserver
Matrix-Homeserver
TI-Messenger-Client
TI-Messenger-Client
Messenger-Proxy
Messenger-Proxy
Berechtigungsprüfung
Berechtigungsprüfung
Freigabeliste
Freigabeliste
TI-Messenger-Service
TI-Messenger-Service
Matrix-Homeserver
Matrix-Homeserver
TI-Messenger-Client
TI-Messenger-Client
Messenger-Proxy
Messenger-Proxy
Berechtigungsstufe 1 
(Föderationsprüfung)
Berechtigungsstufe 1...
Berechtigungsstufe 2
Berechtigungsstufe 2
Allow-/Blocklist
Allow-/Blocklist
Allow-/Blocklist
Allow-/Blocklist
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-M_ePA/Komponentendiagramm_Client_fdv-Overview.png b/images/diagrams/TI-M_ePA/Komponentendiagramm_Client_fdv-Overview.png new file mode 100644 index 00000000..8528c350 Binary files /dev/null and b/images/diagrams/TI-M_ePA/Komponentendiagramm_Client_fdv-Overview.png differ diff --git a/images/diagrams/TI-M_ePA/Komponentendiagramm_Client_fdv-Overview.svg b/images/diagrams/TI-M_ePA/Komponentendiagramm_Client_fdv-Overview.svg new file mode 100644 index 00000000..063bf686 --- /dev/null +++ b/images/diagrams/TI-M_ePA/Komponentendiagramm_Client_fdv-Overview.svg @@ -0,0 +1,3 @@ + + +
TI-M Client ePA
TI-M Client ePA
TI-Messenger
Modul
TI-Messenger...
Auth
Modul
Auth...
Messenger-Proxy
Messenger-Proxy
Sektoraler 
IDP
Sektoraler...
TI-M Homeserver
TI-M Homeserver
VZD-FHIR-Directory
Modul
VZD-FHIR-Directory...
Auth-Services
Auth-Services
FHIR-Proxy
FHIR-Proxy
VZD-FHIR-DIR
VZD-FHIR-DIR
Matrix - Client - Server API
Matrix - Client - Server API
Client - Server -API
Modul
Client - Server -API...
Invite Authorization
Modul
Invite Authorization...
/fdv/search
/fdv/search
/tim-authenticate
/tim-authenticate
{authorization_endpoint}
{authorization_endpoint}
R
R
R
R
R
R
R
R
Push-Provider
Push-Provider
R
R
Push Notifications
Push Notifications
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-M_ePA/Komponentendiagramm_fdv-Fachdienst.png b/images/diagrams/TI-M_ePA/Komponentendiagramm_fdv-Fachdienst.png new file mode 100644 index 00000000..f7c7208e Binary files /dev/null and b/images/diagrams/TI-M_ePA/Komponentendiagramm_fdv-Fachdienst.png differ diff --git a/images/diagrams/TI-M_ePA/Komponentendiagramm_fdv-Fachdienst.svg b/images/diagrams/TI-M_ePA/Komponentendiagramm_fdv-Fachdienst.svg new file mode 100644 index 00000000..c15b71fe --- /dev/null +++ b/images/diagrams/TI-M_ePA/Komponentendiagramm_fdv-Fachdienst.svg @@ -0,0 +1,3 @@ + + +
VZD-FHIR-Directory
VZD-FHIR-Directory
TI-M FD ePA
TI-M FD ePA
Registrierungs-
Dienst
Registrierungs-...
TI-M
Client ePA
TI-M...
Push-
Gateway
Push-...
FHIR-Directory
FHIR-Directory
FHIR-Proxy
FHIR-Proxy
Sektoraler IDP
Sektoraler IDP
OAuth
OAuth
Auth-Service
Auth-Service
Messenger-Service
Messenger-Service
Messenger-
Proxy
Messenger-...
Matrix-
Homeserver
Matrix-...
R
R
R
R
R
R
R
R
R
R
Komponenten-PKI
Komponenten-PKI
R
R
R
R
Push-Provider
Push-Provider
R
R
R
R
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv-Overview.png b/images/diagrams/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv-Overview.png new file mode 100644 index 00000000..3d7006a9 Binary files /dev/null and b/images/diagrams/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv-Overview.png differ diff --git a/images/diagrams/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv-Overview.svg b/images/diagrams/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv-Overview.svg new file mode 100644 index 00000000..de09c5ed --- /dev/null +++ b/images/diagrams/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv-Overview.svg @@ -0,0 +1,3 @@ + + +
Matrix-Client-
Server-API
Matrix-Cli...

TI-Messenger-
Client
TI-Messenger-...


Messenger-Proxy
Messenger-Proxy...

TI-Messenger-
Client
TI-Messenger-...


Messenger-Proxy
Messenger-Proxy...

TI-Messenger-
Client
TI-Messenger-...

  • Prüfung auf Föderation und Versichertenbeteiligung

Prüfung auf Föderation und Versicher...
Client-Server Proxy
Client-Server Proxy
Server-Server Proxy
Server-Server Proxy
Client-Server Proxy
Client-Server Proxy
Server-Server Proxy
Server-Server Proxy

TI-Messenger-
Client
TI-Messenger-...
Matrix-Server-
Server-API
Matrix-Serv...
R
R
R
R
R
R
Matrix-Client-
Server-API
Matrix-Cli...
R
R
R
R

  • Prüfung auf Föderation und Versichertenbeteiligung

Prüfung auf Föderation und Versicher...

  • Prüfung auf Föderation und Versichertenbeteiligung

Prüfung auf Föderation und Versicher...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-M_ePA/Push_Komponeten_fdv-Seite-1.png b/images/diagrams/TI-M_ePA/Push_Komponeten_fdv-Seite-1.png new file mode 100644 index 00000000..0e36cbcf Binary files /dev/null and b/images/diagrams/TI-M_ePA/Push_Komponeten_fdv-Seite-1.png differ diff --git a/images/diagrams/TI-M_ePA/Push_Komponeten_fdv-Seite-1.svg b/images/diagrams/TI-M_ePA/Push_Komponeten_fdv-Seite-1.svg new file mode 100644 index 00000000..98ed0a52 --- /dev/null +++ b/images/diagrams/TI-M_ePA/Push_Komponeten_fdv-Seite-1.svg @@ -0,0 +1,3 @@ + + +
eRezept API
eRe...
TI-Messenger
[Fachdienst]

TI-Messenger...
ePA
[Fachdienst]

ePA...
FDV
[Push Gateway]

FDV...
TI-M API
TI-...
ePA API
ePA...
eRezept
[Fachdienst]

eRezept...
eRezept
[Push-Gateway]

eRezept...
eRezept API
eRe...
eRezept App
[Component: iOS]

eRezept App...
eRezept-Token +
eRezept-Gateway
eRezept-Token +...
Push Anbieter
[z.B. Apple / Google]

Push Anbieter...
Server API
Ser...
Push-Notification
Push-Notification
Push-Notification
Push-Notification
Client API
Cli...
FDV App
[Component: Android]

FDV App...
FDV-Token +
FDV-Gateway
FDV-Token +...
FDV-Token +
FDV-Gateway
FDV-Token +...
FDV-Token +
FDV-Gateway
FDV-Token +...
AppToken Request &
Push-Notifications
AppToken Request &...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-M_ePA/TI-M_Kontextabgrenzung_fdv-Seite-1.png b/images/diagrams/TI-M_ePA/TI-M_Kontextabgrenzung_fdv-Seite-1.png new file mode 100644 index 00000000..6b79580e Binary files /dev/null and b/images/diagrams/TI-M_ePA/TI-M_Kontextabgrenzung_fdv-Seite-1.png differ diff --git a/images/diagrams/TI-M_ePA/TI-M_Kontextabgrenzung_fdv-Seite-1.svg b/images/diagrams/TI-M_ePA/TI-M_Kontextabgrenzung_fdv-Seite-1.svg new file mode 100644 index 00000000..28ac5383 --- /dev/null +++ b/images/diagrams/TI-M_ePA/TI-M_Kontextabgrenzung_fdv-Seite-1.svg @@ -0,0 +1,3 @@ + + +
TI-M_Client_ePA
[Software System]

für Versicherte im FDV
TI-M_Client_ePA...
Versicherter
[Person]

Versicherter bei einer Krankenkasse
Versicherter...
TI-M_FD_ePA
[Software System]

für Versicherte
TI-M_FD_ePA...
TI-Messenger-Client
[Software System]

für LE
TI-Messenger-Client...
TI-Messenger-Fachdienst
[Software System]

für LEI und KT
TI-Messenger-Fachdienst...
Sektoraler IDP
[Software System]

Identitätsserver für die Versicherten
Sektoraler IDP...
TI-Messenger für Versicherte
[Matrix Messenger]
TI-Messenger für Versicherte...
uses
uses
VZD-FHIR-Directory
[Software System]

zentraler Verzeichnisdienst für LE&LEI
VZD-FHIR-Directory...
Push-Provider
[Software System]

z.B. FCM, APN
Push-Provider...
Komponenten PKI
[Software System]

Signaturprüfung
Komponenten PKI...
Push-Gateway
[Software System]

Push-Gateway
Push-Gateway...
Text is not SVG - cannot display
\ No newline at end of file diff --git "a/images/diagrams/TI-M_ePA/TI-Messenger_2.0_f\303\274r_Versicherte_Verteilungssicht-Seite-1.png" "b/images/diagrams/TI-M_ePA/TI-Messenger_2.0_f\303\274r_Versicherte_Verteilungssicht-Seite-1.png" new file mode 100644 index 00000000..996080ba Binary files /dev/null and "b/images/diagrams/TI-M_ePA/TI-Messenger_2.0_f\303\274r_Versicherte_Verteilungssicht-Seite-1.png" differ diff --git "a/images/diagrams/TI-M_ePA/TI-Messenger_2.0_f\303\274r_Versicherte_Verteilungssicht-Seite-1.svg" "b/images/diagrams/TI-M_ePA/TI-Messenger_2.0_f\303\274r_Versicherte_Verteilungssicht-Seite-1.svg" new file mode 100644 index 00000000..8a18f684 --- /dev/null +++ "b/images/diagrams/TI-M_ePA/TI-Messenger_2.0_f\303\274r_Versicherte_Verteilungssicht-Seite-1.svg" @@ -0,0 +1,3 @@ + + +
TI-Messenger FdV App
[Mobile Device: iOS / Android]

TI-Messenger FdV App...
Smartphone oder Tablet des Versicherten
[Device]
Smartphone oder Tablet des Versicherten...
FCM und/oder APS
[Cloud]
FCM und/oder APS...
Push Provider
[Component: Container oder VM]

Push Provider...
VZD FHIR-Directory
[Component: Container oder VM]

VZD FHIR-Directory...
Anbieter sektoraler IDP
[Cloud oder RZ]
Anbieter sektoraler IDP...
Sektoraler IDP
[Component: Container oder VM]

Sektoraler IDP...
Anbieter zentrale Plattform-Dienste
[TI RZ]
Anbieter zentrale Plattform-Dienste...
Push-Gateway
[Component: Container oder VM]

Push-Gateway...
Komponenten PKI
[Component: Container oder VM]

Komponenten PKI...
TI-Messenger Anbieter
[Cloud oder RZ]
TI-Messenger Anbieter...
TI-Messenger Service
[Component: Container oder VM]

TI-Messenger Service...
Hersteller/Anbieter TI-Messenger FdV App
[Cloud oder RZ]
Hersteller/Anbieter TI-Messenger FdV App...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-M_ePA/TI-Messenger_OIDC_Login.png b/images/diagrams/TI-M_ePA/TI-Messenger_OIDC_Login.png new file mode 100644 index 00000000..af3714b2 Binary files /dev/null and b/images/diagrams/TI-M_ePA/TI-Messenger_OIDC_Login.png differ diff --git a/images/diagrams/TI-M_ePA/TI-Messenger_OIDC_Login.svg b/images/diagrams/TI-M_ePA/TI-Messenger_OIDC_Login.svg new file mode 100644 index 00000000..254aa588 --- /dev/null +++ b/images/diagrams/TI-M_ePA/TI-Messenger_OIDC_Login.svg @@ -0,0 +1 @@ +Endgerät TI-Messenger Service VersicherterVersicherterTI-M Client(Browser)TI-M Client(Browser)TI-M ProxyTI-M ProxyMatrixHomeserver(Relying party für IDP)MatrixHomeserver(Relying party für IDP)WebserverliefertTIM-Web-App ausWebserverliefertTIM-Web-App ausSektoralerIDPSektoralerIDP1starte App2Lade Matrix-Web-Client3WebanwendungOIDC Login4GET https://client.homeserver-tim.de/_matrix/client/v3/login5200 OK{"flows":[{"type":"m.login.sso","identity_providers":[    {"id":"sektoraler-idp","name":"Sektoraler-IDP","icon":"mxc://..","brand":"sektoraler-idp"},    {"type":"m.login.token"}]}opt[Registration]6POST https://client.homeserver-tim.de/_matrix/client/v3/register    {"initial_device_display_name":"TIM-Web-App: Firefox auf Windows","refresh_token":true}7401 Unauthorized{"session":"...","flows":[    {"stages":["m.login.recaptcha","m.login.terms","m.login.email.identity"]}],    "params":{"m.login.recaptcha":{"public_key":"..."},    "m.login.terms":{"policies":{"privacy_policy":{"version":"1.0","en":{"name":"Terms and Conditions",    "url":"https://client.homeserver-tim.de/_matrix/consent?v=1.0"}}}}}}8GET https://client.homeserver-tim.de/_matrix/client/v3/login/sso/redirect/sektoraler-idpChanged behavior because OIDC PAR is required9302 Redirect      location: https://sektoraler-idp.de/login/oauth?      response_type=code&      client_id=example-client-id&      redirect_uri=https%3A%2F%2Fclient.homeserver-tim.de%2F_synapse%2Fclient%2Foidc%2Fcallback&      scope=openid+urn:telematik:display_name+urn:telematik:given_name+urn:telematik:versicherter      &state=example-state&nonce=example-nonce      code_challenge=...&code_challenge_method=S256      set-cookie: ...=...; ...      ...10POST https://sektoraler-idp.de/par       Content-Type: application/x-www-form-urlencoded       response_type=code&client_id=example-client-id&state=example-state&       redirect_uri=https%3A%2F%2Fclient.homeserver-tim.de%2F_synapse%2Fclient%2Foidc%2Fcallback       &code_challenge=...&code_challenge_method=S256&       scope=openid+urn:telematik:display_name+urn:telematik:given_name+urn:telematik:versicherter&11200 OK       Content-Type: application/json       {"request_uri":"urn:example:bwc4JK-ESC0w8acc191e-Y1LTC2","expires_in": 90}12302 Redirect       location: https://sektoraler-idp.de/login/oauth/authorize?       request_uri=urn%3Aexample%3Abwc4JK-ESC0w8acc191e-Y1LTC2IDP authentication13GEThttps://sektoraler-idp.de/login/oauth/authorize?request_uri=urn%3Aexample%3Abwc4JK-ESC0w8acc191e-Y1LTC2Black box with example14Challenge15Consent Page16Approval17Response18302 Redirectlocation: https://client.homeserver-tim.de/_synapse/client/oidc/callback?code=example-auth-code&state=example-state19GET https://client.homeserver-tim.de/_synapse/client/oidc/callback?code=example-auth-code&state=example-state     Cookie: ...=...20POST https://sektoraler-idp.de/token-endpoint     Content-Type: application/x-www-form-urlencoded     authorization_code=code&code_verifier=...21200 OK     Content-Type: application/json     {"id_token":"...","expires_in": 90}22200 OK HTML Consent Page, Zugriff TIM-Web-App auf Matrix Account    <a href="https://TIM-Web-App/?loginToken=example-matrix-login-token" class="primary-button">Continue</a>23GET https://TIM-Web-App/?loginToken=example-matrix-login-token24200 OK HTML...25POST https://client.homeserver-tim.de/_matrix/client/v3/login    {"token":"example-matrix-login-token",    "initial_device_display_name":"TIM-Web-App: Firefox on macOS",    "type":"m.login.token"}26200 OK    {"user_id":"@username:homeserver-tim.de",    "access_token":"example-matrix-access-token",    "home_server":"homeserver-tim.de",    "device_id":"example-device-id",    "well_known":{"m.homeserver":{"base_url":"https://client.homeserver-tim.de/"}}}27Login successful \ No newline at end of file diff --git a/images/diagrams/TI-M_ePA/TI-Messenger_OIDC_Login_simplified.png b/images/diagrams/TI-M_ePA/TI-Messenger_OIDC_Login_simplified.png new file mode 100644 index 00000000..83621bc2 Binary files /dev/null and b/images/diagrams/TI-M_ePA/TI-Messenger_OIDC_Login_simplified.png differ diff --git a/images/diagrams/TI-M_ePA/TI-Messenger_OIDC_Login_simplified.svg b/images/diagrams/TI-M_ePA/TI-Messenger_OIDC_Login_simplified.svg new file mode 100644 index 00000000..5bee848c --- /dev/null +++ b/images/diagrams/TI-M_ePA/TI-Messenger_OIDC_Login_simplified.svg @@ -0,0 +1 @@ +Endgerät TI-Messenger Service Akteur in derRolle VersicherterAkteur in derRolle VersicherterePA-FdVTI-M ClientePA-FdVTI-M ClientePA-FdVAuthenticator-ModulePA-FdVAuthenticator-ModulMessenger-ProxyMessenger-ProxyMatrix-Homeserver(Relying party für IDP)Matrix-Homeserver(Relying party für IDP)SektoralerIDPSektoralerIDP1starte AppOIDC Login2GET {homeserver_client_api_url}/login3200 OK (:Login Types)enthalten: ID des sektoralen IDP: {sidp}opt[Auswahl durch Akteur: Registrierungs- statt Login-Funktion]4POST {homeserver_client_api_url}/register(initial_device_display_name, refresh_token)5401 UnauthorizedHomeserver benötigt zusätzlicheAuthentisierungsinformationen6GET{homeserver_client_api_url}/login/sso/redirect/{sidp}Verhaltensänderung, da der sektorale IDP OIDC PAR erfordert7302 Redirect (:location, :response_type,:client_id, :redirect_uri, :scope, :state,:code_challenge)8POST {sektoraler_idp_url}/par(response_type, redirect_uri, code_challenge,scope)9201 CREATED (:request_uri)10302 Redirect{sektoraler_idp_url}/login/oauth/authorize(:request_uri)IDP Authentisierung mit nutzerspezifischer Authentifizierung11Authorization Request(request_uri)Authenticator Modul IDP-sek12GET{sektoraler_idp_url}/login/oauth/authorize(request_uri)13Challenge14Consent Page15Approval16ResponseNutzung von Identifikationsmerkmalen,die vom IDP vorgegeben sind17302 Redirect {redirect_uri} (:auth_code,:state)18Redirect(redirect_uri, AUTH_CODE)19GET {redirect_uri} (auth_code, state)20POST {sektoraler_idp_url}/token-endpoint(auth_code, code_verifier)21200 OK (:id_token)opt[kein passender Benutzer-Account zum id_token vorhanden]22/register  (initial_device_display_name,refresh_token, id_token)Benutzer-Account anlegen23200 OK (:loginToken)HTML Consent Page, ZugriffTIM-Web-App auf Matrix Account24POST {homeserver_client_api_url}/login(loginToken, initial_device_display_name)25200 OK (:user_id, :access_token, :home_server,:device_id, :well_known)26Login erfolgreich \ No newline at end of file diff --git a/images/diagrams/TI-M_ePA/UC_10104_Seq_fdv.png b/images/diagrams/TI-M_ePA/UC_10104_Seq_fdv.png new file mode 100644 index 00000000..50cd9720 Binary files /dev/null and b/images/diagrams/TI-M_ePA/UC_10104_Seq_fdv.png differ diff --git a/images/diagrams/TI-M_ePA/UC_10104_Seq_fdv.svg b/images/diagrams/TI-M_ePA/UC_10104_Seq_fdv.svg new file mode 100644 index 00000000..8ce983c2 --- /dev/null +++ b/images/diagrams/TI-M_ePA/UC_10104_Seq_fdv.svg @@ -0,0 +1 @@ +Messenger-Service Akteur - AAkteur - ATI-Messenger-Client ATI-Messenger-Client AMessenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverTI-Messenger-Client BTI-Messenger-Client BAkteur - BAkteur - B Die Akteure sind auf demselben Messenger-Service angemeldet und im Besitz eines zugelassenen TI-Messenger-Clients.Ein Chatraum wurde durch den Einladenen eingerichtet. Akteur B einladenPOST /_matrix/client/v3/rooms/{roomId}/inviteClient-Server-Prüfungenbreak[Client-Server Prüfung ist fehlgeschlagen]Verbindung wird abgelehntHTTP(S) FowardInvite verarbeitenInvite RequestHTTP(S) ForwardEinladung anzeigenEinladung annehmenEinladung angenommenHTTP(S) ForwardStatusStatusNutzer in denRaum hinzugefügt \ No newline at end of file diff --git a/images/diagrams/TI-M_ePA/UC_10233_Seq.png b/images/diagrams/TI-M_ePA/UC_10233_Seq.png new file mode 100644 index 00000000..cc0c6fe2 Binary files /dev/null and b/images/diagrams/TI-M_ePA/UC_10233_Seq.png differ diff --git a/images/diagrams/TI-M_ePA/UC_10233_Seq.svg b/images/diagrams/TI-M_ePA/UC_10233_Seq.svg new file mode 100644 index 00000000..ac0c1231 --- /dev/null +++ b/images/diagrams/TI-M_ePA/UC_10233_Seq.svg @@ -0,0 +1 @@ +Messenger-Service Messenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-Homeserver1prüfe den Sender und den Empfänger des Invite-Eventauf Zugehörigkeit zu einer Versichertendomainbreak[Sender und Empfänger sind beide Versicherte]2HTTP 403 Forbidden3HTTP(S) Forward4Status \ No newline at end of file diff --git a/images/diagrams/TI-M_ePA/UC_Approvel_List_Seq_fdv.png b/images/diagrams/TI-M_ePA/UC_Approvel_List_Seq_fdv.png new file mode 100644 index 00000000..ac428be7 Binary files /dev/null and b/images/diagrams/TI-M_ePA/UC_Approvel_List_Seq_fdv.png differ diff --git a/images/diagrams/TI-M_ePA/UC_Approvel_List_Seq_fdv.svg b/images/diagrams/TI-M_ePA/UC_Approvel_List_Seq_fdv.svg new file mode 100644 index 00000000..7679b69b --- /dev/null +++ b/images/diagrams/TI-M_ePA/UC_Approvel_List_Seq_fdv.svg @@ -0,0 +1 @@ +Messenger-Servicedes einladenden Akteurs Messenger-Servicedes eingeladenen Akteurs Messenger Clientdes eingeladenen Akteurs Messenger-ServiceMessenger-ServiceMessenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverPush-DienstPush-DienstMessenger-ClientMessenger-ClientMatrix-Invite-EventBerechtigungskonzept - Stufe 1  break[Matrix-Domain nicht in der Föderation enthalten]Abbruch,Verbindung wirdabgelehntHTTP 403break[Einladender und der Eingeladene sind beide Versicherte]Abbruch,Verbindung wirdabgelehntHTTP 403HTTP(S) ForwardInvite-EventverarbeitenPush NotificationPush NotificationResponseResponseBerechtigungskonzept - Stufe 2  Abfrage neuer EventsHTTP(S) ForwardBereitstellung neuer EventsHTTP(S) ForwardExtrahieren der Invite-EventsPrüfung, ob die Einladung erlaubt istbreak[Der Akteur hat "allow all" konfiguriert und der einladende Akteurist auf der BlockedUser-Liste (Direkt oder als Teil einer Gruppe/Domain)]Einladung ist abzulehnenbreak[Der Akteur hat "block all" konfiguriert und der einladende Akteurist nicht auf der AllowedUser-Liste (Direkt oder als Teil einer Gruppe/Domain)]Einladung ist abzulehnenErgebnis der EinladungsprüfungHTTP(S) ForwardErgebnis der EinladungsprüfungHTTP(S) Forward \ No newline at end of file diff --git a/images/diagrams/TI-M_ePA/push_notifications_fdv_delivery.png b/images/diagrams/TI-M_ePA/push_notifications_fdv_delivery.png new file mode 100644 index 00000000..ad41d192 Binary files /dev/null and b/images/diagrams/TI-M_ePA/push_notifications_fdv_delivery.png differ diff --git a/images/diagrams/TI-M_ePA/push_notifications_fdv_delivery.svg b/images/diagrams/TI-M_ePA/push_notifications_fdv_delivery.svg new file mode 100644 index 00000000..f85ff872 --- /dev/null +++ b/images/diagrams/TI-M_ePA/push_notifications_fdv_delivery.svg @@ -0,0 +1 @@ +VersicherterVersicherterFrontend des VersichertenInhaber eines DeviceTokensFrontend des VersichertenInhaber eines DeviceTokensPush-AnbieterPush-AnbieterPush-GatewayPush-GatewayFachdienstFachdienst1Benachrichtigungfür DeviceToken(EventID)2Benachrichtigungfür DeviceToken(EventID,SenderID)3Response4Response5Benachrichtigung anEmpfänger(EventID, SenderID)6ermittle Fachdienst(SenderID)7Abfrage der Daten zuEvent(EventID)8VerschlüsselteBenachrichtigungsinhalte9Entschlüssele(VerschlüsselteBenachrichtigungsinhalte)10erzeugeAnwenderbenachrichtigung mit den entschlüsselten Inhalten11Zeige Benachrichtigung \ No newline at end of file diff --git a/images/diagrams/TI-M_ePA/push_notifications_fdv_registration.png b/images/diagrams/TI-M_ePA/push_notifications_fdv_registration.png new file mode 100644 index 00000000..727f5398 Binary files /dev/null and b/images/diagrams/TI-M_ePA/push_notifications_fdv_registration.png differ diff --git a/images/diagrams/TI-M_ePA/push_notifications_fdv_registration.svg b/images/diagrams/TI-M_ePA/push_notifications_fdv_registration.svg new file mode 100644 index 00000000..7befeba4 --- /dev/null +++ b/images/diagrams/TI-M_ePA/push_notifications_fdv_registration.svg @@ -0,0 +1 @@ +VersicherterVersicherterFrontend des VersichertenFrontend des VersichertenPush-AnbieterPush-AnbieterPush-GatewayPush-GatewayFachdienstFachdienst1installiert FdV auf dem Smartphone2registriert sich beim Push-Anbieter(SenderID, APIKey,AppID)3eindeutiges DeviceToken für die app Instanz4speichere DeviceToken5konfiguriere zu verwendendesGateway(Gateway-Information, DeviceToken)6Konfiguration übernommen \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Client/Berechtigungen_setzen.png b/images/diagrams/TI-Messenger-Client/Berechtigungen_setzen.png new file mode 100644 index 00000000..16b05689 Binary files /dev/null and b/images/diagrams/TI-Messenger-Client/Berechtigungen_setzen.png differ diff --git a/images/diagrams/TI-Messenger-Client/Berechtigungen_setzen.svg b/images/diagrams/TI-Messenger-Client/Berechtigungen_setzen.svg new file mode 100644 index 00000000..fe8369bb --- /dev/null +++ b/images/diagrams/TI-Messenger-Client/Berechtigungen_setzen.svg @@ -0,0 +1 @@ +Setzen von Berechtigungen im ClientClient startenBerechtigungen einrichten"Allow all" or "Block all"Allow allBlock allBlockedUser-Liste bearbeitenHinzufügenEntfernenUser/Gruppe/Domain hinzufügenUser/Gruppe/Domain entfernenJaBeschränkungen einrichtenNeinAllowedUser-Liste bearbeitenHinzufügenEntfernenUser/Gruppe/Domain hinzufügenUser/Gruppe/Domain entfernenJaErlaubnisse einrichtenNeinKonfiguration auf dem Server sichern \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Client/Modules-Overview.png b/images/diagrams/TI-Messenger-Client/Modules-Overview.png new file mode 100644 index 00000000..f6045a42 Binary files /dev/null and b/images/diagrams/TI-Messenger-Client/Modules-Overview.png differ diff --git a/images/diagrams/TI-Messenger-Client/Modules-Overview.svg b/images/diagrams/TI-Messenger-Client/Modules-Overview.svg new file mode 100644 index 00000000..fcb73f0a --- /dev/null +++ b/images/diagrams/TI-Messenger-Client/Modules-Overview.svg @@ -0,0 +1,3 @@ + + +
TI-Messenger-Client
TI-Messenger-Client
TI-Messenger
Modul
TI-Messenger...
Auth
Modul
Auth...
Messenger-Proxy
Messenger-Proxy
IDP-Dienst
IDP-Dienst
TI-Messenger-Fachdienst
TI-Messenger-Fachdienst
VZD-FHIR-Directory
Modul
VZD-FHIR-Directory...
Auth-Services
Auth-Services
FHIR-Proxy
FHIR-Proxy
VZD-FHIR-DIR
VZD-FHIR-DIR
Matrix - Client - Server API
Matrix - Client - Server API
/search
/search
/tim-authenticate
/tim-authenticate
{authorization_endpoint}
{authorization_endpoint}
R
R
R
R
R
R
R
R
I_Ti_MessengerContactManagement
I_Ti_MessengerContactManagement
R
R
/owner
/owner
R
R
/owner-authenticate
/owner-authenticate
R
R
/signin-gematik-idp-dienst
/signin-gematik-idp-dienst
R
R
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Client/System_Overview-Client.png b/images/diagrams/TI-Messenger-Client/System_Overview-Client.png index 01fc77d3..4f5c91e2 100644 Binary files a/images/diagrams/TI-Messenger-Client/System_Overview-Client.png and b/images/diagrams/TI-Messenger-Client/System_Overview-Client.png differ diff --git a/images/diagrams/TI-Messenger-Client/System_Overview-Client.svg b/images/diagrams/TI-Messenger-Client/System_Overview-Client.svg index 13cce1a9..9f2a2c14 100644 --- a/images/diagrams/TI-Messenger-Client/System_Overview-Client.svg +++ b/images/diagrams/TI-Messenger-Client/System_Overview-Client.svg @@ -1,3 +1,3 @@ -
VZD-FHIR-Directory
VZD-FHIR-Directory
TI-Messenger-Fachdienst
TI-Messenger-Fachdienst
Messenger-Service
Messenger-Service
Registrierungs-
Dienst
Registrierungs-...

TI-Messenger- Client
TI-Messenger- Cli...
Messenger-
Proxy
Messenger-...
Push-
Gateway
Push-...
FHIR-Directory
FHIR-Directory
FHIR-Proxy
FHIR-Proxy
IDP-
Dienst
IDP-...
OAuth
OAuth
Matrix-
Homeserver
Matrix-...
Auth-Service
Auth-Service
Messenger-Service
Messenger-Service
Messenger-
Proxy
Messenger-...
Matrix-
Homeserver
Matrix-...
R
R
R
R
R
R
R
R
R
R
Text is not SVG - cannot display
\ No newline at end of file +
VZD-FHIR-Directory
VZD-FHIR-Directory
TI-M-Fachdienst
TI-M-Fachdienst
Registrierungs-
Dienst
Registrierungs-...
TI-M-
Client
TI-M-...
Push-
Gateway
Push-...
FHIR-Directory
FHIR-Directory
FHIR-Proxy
FHIR-Proxy
Auth-Dienst
Auth-Dienst
OAuth
OAuth
Auth-Service
Auth-Service
Messenger-Service
Messenger-Service
Messenger-
Proxy
Messenger-...
Matrix-
Homeserver
Matrix-...
R
R
R
R
R
R
R
R
R
R
R
R
Push-Provider
Push-Provider
R
R
R
R
Text is not SVG - cannot display
\ No newline at end of file diff --git "a/images/diagrams/TI-Messenger-Dienst/Ressourcen/Eintr\303\244ge im VZD-FHIR-Directory suchen.png" "b/images/diagrams/TI-Messenger-Dienst/Ressourcen/Eintr\303\244ge im VZD-FHIR-Directory suchen.png" new file mode 100644 index 00000000..24e18989 Binary files /dev/null and "b/images/diagrams/TI-Messenger-Dienst/Ressourcen/Eintr\303\244ge im VZD-FHIR-Directory suchen.png" differ diff --git "a/images/diagrams/TI-Messenger-Dienst/Ressourcen/Eintr\303\244ge im VZD-FHIR-Directory suchen.svg" "b/images/diagrams/TI-Messenger-Dienst/Ressourcen/Eintr\303\244ge im VZD-FHIR-Directory suchen.svg" new file mode 100644 index 00000000..3b5c00f3 --- /dev/null +++ "b/images/diagrams/TI-Messenger-Dienst/Ressourcen/Eintr\303\244ge im VZD-FHIR-Directory suchen.svg" @@ -0,0 +1 @@ +VZD-FHIR-Directory Akteur in der RolleUserAkteur in der RolleUserTI-Messenger-ClientTI-Messenger-ClientMessenger ProxyMessenger ProxyMatrix-HomeserverMatrix-HomeserverFHIR-ProxyFHIR-ProxyAuth-ServiceAuth-ServiceFHIR-DirectoryFHIR-Directory Der Akteur ist erfolgreich beim Messenger-Service angemeldet 1Suchparameter fürFHIR-Ressourceneingeben2prüfe ob noch gültigessearch-accesstokenvorliegtalt[kein gültiges search-accesstoken vorhanden]3GET /_matrix/client/user/{userId}/openid/request_token4HTTP Forward5Matrix-OpenID-Token6HTTP(S) Forward7GET /tim-authenticate?mxId=... (Auth Header mit Matrix-OpenID-Token)8Prüfe obMatrix Server Name inder Föderation enthalten istbreak[Matrix Server Name nicht in der Föderation enthalten]9Fehlermeldung10GET /openid/userinfo?access_token=Matrix-OpenID-Token11HTTP(S) Forward12prüfe Matrix-OpenID-Token13MXID des Nutzers14HTTP(S) Forward15erzeugesearch-accesstoken16search-accesstoken17POST /search?... (Auth Header mit search-accesstoken)18prüfe search-accesstokenbreak[kein gültiges search-accesstoken]19HTTP 401 Fehlermeldungalt[HealthcareService-Einträge werden gesucht]20POST /search/HealthcareService/?Finde Datensatz für TelematikID21Suchergebnis (FHIR Bundle)alt[PractitionerRole-Einträge werden gesucht]22POST /search/PractitionerRole/?Finde Datensatz für MXID23Suchergebnis (FHIR Bundle)24Suchergebnis (FHIR Bundle)25Suchergebnis (FHIR Bundle) \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/TI-M spezifische Kommunikation.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/TI-M spezifische Kommunikation.png new file mode 100644 index 00000000..00b70cac Binary files /dev/null and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/TI-M spezifische Kommunikation.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/TI-M spezifische Kommunikation.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/TI-M spezifische Kommunikation.svg new file mode 100644 index 00000000..9f40aa60 --- /dev/null +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/TI-M spezifische Kommunikation.svg @@ -0,0 +1 @@ +RolleTI-M spezifische Kommunikationjeder Akteur, der an der Kommunikationin der TI-M Föderation teilnimmtUserBasis-Anwendungsfall fürTI-M spezifische Kommunikation Nutzung zusätzlicher Chatroom-Eigenschaften(Custom State Events und/oderCustom Room Types)MerkmaleUnterstützung von FHIR-Resourceszur strukturierten KommunikationFallbezogeneKommunikationFöderierte und intersektoraleKommunikation«include»«include» \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.png index 4cc0a8d5..bff5ae52 100644 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.png and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.svg index 0fbcc879..7f7f63c8 100644 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.svg +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.svg @@ -1 +1 @@ -Messenger-Service VZD-FHIR-Directory Akteur in der RolleUser / User-HBAAkteur in der RolleUser / User-HBATI-Messenger-ClientTI-Messenger-ClientMessenger ProxyMessenger ProxyMatrix-HomeserverMatrix-HomeserverAuth-ServiceAuth-ServiceEingabe Messenger-ServiceGET /_matrix/client/loginTLS-Terminierungprüfe client_idalt[TI-Messenger Client wird vom Anbieter nicht unterstützt (kein gültiges client_secret)]HTTP 401 UnauthroizedAnmeldungnicht erfolgreich[TI-Messenger Client wird vom Anbieter unterstützt (gültiges client_secret)]HTTP(S) ForwardDie Authentifizierungsverfahren werden für jedenMessenger-Service durch die Organisation festgelegtunterstützteAuthentifizierungs-verfahrenHTTP(S) ForwardZeigeAuthentifizierungsmaskeStarte AuthentifizierungAnmeldungPOST /_matrix/client/loginHTTP(S) ForwardprüfeClient-Credentialsopt[Abbruch]FehlerhafteAnmeldedatenHTTP(S) ForwardAnmeldedatensind nicht korrektDie Überprüfung ist abhängig vomgewählten AuthentifizierungsverfahrenerstelleMatrix-ACCESS_TOKEN,device_id,MXIDMatrix-ACCESS_TOKEN,device_ID, MXIDHTTP(S) ForwardSpeichereMatrix-ACCESS_TOKENPOST /_matrix/client/user/{userId}/openid/request_tokenHTTP(S) ForwardErstelleMatrix-OpenID-TokenMatrix-OpenID-TokenHTTP(S) ForwardGET /tim-authenticate (Matrix-OpenID-Token)Prüfung, obMatrix-Domainin Föderationenthalten istalt[nicht valider Messenger-Service, da Matrix-Homeserver nicht in der Föderations enthalten ist]HTTP 401UnauthorizedAbmelden SessionMatrix-ACCESS_TOKENlöschenAnmeldungnicht erfolgreich[valider Messenger-Service, da Matrix-Homeserver in der Föderation enthalten ist]HTTP 200Anmeldungerfolgreich \ No newline at end of file +Messenger-Service VZD-FHIR-Directory Akteur in der RolleUserAkteur in der RolleUserTI-Messenger-ClientTI-Messenger-ClientMessenger ProxyMessenger ProxyMatrix-HomeserverMatrix-HomeserverAuth-ServiceAuth-Service1Eingabe Messenger-Service2GET /_matrix/client/login3TLS-Terminierung4prüfe client_idalt[TI-Messenger Client wird vom Anbieter nicht unterstützt (kein gültiges client_secret)]5HTTP 401 Unauthroized6Anmeldungnicht erfolgreich[TI-Messenger Client wird vom Anbieter unterstützt (gültiges client_secret)]7HTTP(S) ForwardDie Authentifizierungsverfahren werden für jedenMessenger-Service durch die Organisation festgelegt8unterstützteAuthentifizierungs-verfahren9HTTP(S) Forward10ZeigeAuthentifizierungsmaske11Starte Authentifizierung12Anmeldung13POST /_matrix/client/login14HTTP(S) Forward15prüfeClient-Credentialsopt[Abbruch]16FehlerhafteAnmeldedaten17HTTP(S) Forward18Anmeldedatensind nicht korrektDie Überprüfung ist abhängig vomgewählten Authentifizierungsverfahren19erstelleMatrix-ACCESS_TOKEN,device_id,MXID20Matrix-ACCESS_TOKEN,device_ID, MXID21HTTP(S) Forward22SpeichereMatrix-ACCESS_TOKEN23POST /_matrix/client/user/{userId}/openid/request_token24HTTP(S) Forward25ErstelleMatrix-OpenID-Token26Matrix-OpenID-Token27HTTP(S) Forward28GET /tim-authenticate (Matrix-OpenID-Token)29Prüfung, obMatrix-Domainin Föderationenthalten istalt[nicht valider Messenger-Service, da Matrix-Homeserver nicht in der Föderations enthalten ist]30HTTP 401Unauthorized31Abmelden SessionMatrix-ACCESS_TOKENlöschen32Anmeldungnicht erfolgreich[valider Messenger-Service, da Matrix-Homeserver in der Föderation enthalten ist]33HTTP 20034Anmeldungerfolgreich \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.png index 99afdfa2..f516e967 100644 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.png and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.svg index 8a3bc1a0..cf9f7d79 100644 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.svg +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.svg @@ -1 +1 @@ -Endgerät VZD-FHIR-Directory Ti-Messenger-Fachdienst Akteur in der RolleOrg-AdminAkteur in der RolleOrg-AdminTI-Messenger-Clientmit Org-AdminFunktionalitätTI-Messenger-Clientmit Org-AdminFunktionalitätFHIR-ProxyFHIR-ProxyAuth-ServiceAuth-ServiceFHIR-DirectoryFHIR-DirectoryRegistrierungs-DienstRegistrierungs-DienstDie Organisation hat einen Messenger-Servicebereitgestellt bekommen, der Teil der Föderation istFHIR Ressourcen imVZD-FHIR-DirectoryhinzufügenPrüfung, ob gültigesowner-accesstokenvorliegtalt[kein gültiges owner-accesstoken vorhanden]alt[Akteur ist nicht am Registrierungs-Dienst angemeldet]Mit Admin-Accountam Registrierungs-DienstanmeldenLogin mit Client-Credentials + 2.FaktorSchnittstelle wird nichtdurch die gematik spezifiziertprüfe Client-Credentialsund 2. FaktorstatusErfolgreich angemeldetRegService-OpenID-Token anfragen (z. B. GET /regserv/request_Token)Schnittstelle wird nichtdurch die gematik spezifiziertVerifizierung desangemeldeten AkteursRegService-OpenID-Token {telematikID, professionOID, Signaturzertifikat (x5c)}GET /owner-authenticate (Auth Header mit RegService-OpenID-Token)Prüfung des TokenDie Prüfschritte sind dergemSpec_VZD_FHIR_Directoryzu entnehmenopt[Abbruch]Tokenprüfung fehlgeschlagenkeine Berechtigungerzeugeowner-accesstokenowner-accesstokenFHIR-Directory Eintrag erstellenFHIR-Ressource der Organisation anzeigenFHIR-Operation um eigenen Datensatz anzuzeigenAuthorization Bearer owner-accesstokenprüfeowner-accesstokenHTTPS ForwardEintrag suchenFHIR BundleHTTPS ForwardFHIR-Ressource der Organisation erstellen/ändernFHIR-Operationen um eigenen Datensatz zu bearbeitenAuthorization Bearer owner-accesstokenprüfeowner-accesstokenHTTPS ForwardEintrag bearbeitenStatusHTTPS Forwardstatus \ No newline at end of file +Endgerät VZD-FHIR-Directory Ti-Messenger-Fachdienst Akteur in der RolleOrg-AdminAkteur in der RolleOrg-AdminTI-Messenger-Clientmit Org-AdminFunktionalitätTI-Messenger-Clientmit Org-AdminFunktionalitätFHIR-ProxyFHIR-ProxyAuth-ServiceAuth-ServiceFHIR-DirectoryFHIR-DirectoryRegistrierungs-DienstRegistrierungs-DienstDie Organisation hat einen Messenger-Servicebereitgestellt bekommen, der Teil der Föderation ist1FHIR Ressourcen imVZD-FHIR-Directoryhinzufügen2Prüfung, ob gültigesowner-accesstokenvorliegtalt[kein gültiges owner-accesstoken vorhanden]alt[Akteur ist nicht am Registrierungs-Dienst angemeldet]3Mit Admin-Accountam Registrierungs-Dienstanmelden4Login mit Client-Credentials + 2.FaktorSchnittstelle wird nichtdurch die gematik spezifiziert5prüfe Client-Credentialsund 2. Faktor6status7Erfolgreich angemeldet8RegService-OpenID-Token anfragen (z. B. GET /regserv/request_Token)Schnittstelle wird nichtdurch die gematik spezifiziert9Verifizierung desangemeldeten Akteurs10RegService-OpenID-Token {telematikID, professionOID, Signaturzertifikat (x5c)}11GET /owner-authenticate (Auth Header mit RegService-OpenID-Token)12Prüfung des TokenDie Prüfschritte sind dergemSpec_VZD_FHIR_Directoryzu entnehmenopt[Abbruch]13Tokenprüfung fehlgeschlagen14keine Berechtigung15erzeugeowner-accesstoken16owner-accesstokenFHIR-Directory Eintrag erstellenFHIR-Ressource der Organisation anzeigen17FHIR-Operation um eigenen Datensatz anzuzeigenAuthorization Bearer owner-accesstoken18prüfeowner-accesstoken19HTTPS Forward20Eintrag suchen21FHIR Bundle22HTTPS ForwardFHIR-Ressource der Organisation erstellen/ändern23FHIR-Operationen um eigenen Datensatz zu bearbeitenAuthorization Bearer owner-accesstoken24prüfeowner-accesstoken25HTTPS Forward26Eintrag bearbeiten27Status28HTTPS Forward29status \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.png index e54b9a4e..95f35d0d 100644 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.png and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.svg index dac15baf..0fa99157 100644 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.svg +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.svg @@ -1 +1 @@ -Messenger-Service A Messenger-Service B  Akteur - A in der RolleUser / User-HBA  Akteur - A in der RolleUser / User-HBA TI-Messenger-ClientTI-Messenger-ClientMessenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverMessenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverPush-GatewayPush-GatewayTI-Messenger-ClientTI-Messenger-Client Akteur - B in der RolleUser / User-HBA  Akteur - B in der RolleUser / User-HBA  Der Akteur A ist erfolgreich beim Messenger Service A angemeldet  Der Akteur B ist erfolgreich beim Messenger Service B angemeldet alt[Suche über VZD-FHIR-Directory]refAnhang B - Einträge im VZD-FHIR-Directory suchen [Direktaustausch über QR-Code Scan] Akteur A und Akteur B treffen sich persönlich 1QR-Code teilen2QR-Code scannen3GET /scan4MXID von Akteur AMXID in Freigabeliste eintragen5POST /tim-contact-mgmt/createContactSetting(MXID, start, end, Matrix-OpenID-Token)6GET /openid/userinfo/?Matrix-OpenID-Token7prüfeMatrix-OpenID-Token8status9MXID von Akteur Ain Freigabelistefür Akteur Baufnehmen10status11QR-Code teilen12QR-Code scannen13GET /scan14MXID von Akteur BMXID in Freigabeliste eintragen15POST /tim-contact-mgmt/createContactSetting(MXID, start, end, Matrix-OpenID-Token)16GET /openid/userinfo/?Matrix-OpenID-Token17prüfeMatrix-OpenID-Token18status19MXID von Akteur Bin Freigabelistefür Akteur Aaufnehmen20status Ein Chatraum wurde bereits durch den Akteur A eingerichtet. 21POST /_matrix/client/r0/rooms/{roomId}/inviterefAF_10064-Föderationszugehörigkeit eines        Messenger-Service prüfen Stufe 1 - Prüfung gemäßClient-Server Kommunikationbreak[Abbruch]22HTTP 403Forbidden23Einladung nichterfolgreich24HTTP(S) Forward25Invite verarbeiten26POST /_matrix/federation/v1/invite/{roomId}/{eventId}refAF_10064-Föderationszugehörigkeit eines        Messenger-Service prüfen Stufe 1 - Prüfung gemäßServer-Server Kommunikation27HTTP(S) ForwardStufe 1 - Prüfung gemäßServer-Server KommunikationrefAF_10064-Föderationszugehörigkeit eines        Messenger-Service prüfen break[Abbruch]28HTTP 403Forbidden29HTTP(S) forward30Einladung nichterfolgreichrefAnhang B - Stufen der Berechtigungsprüfung Stufe 2 und 3 31HTTP(S) Forward32Invite verarbeitenopt[Pushbenachrichtigung]33POST /_matrix/push/notify34Notification35Status36Invite Request37HTTP(S) Forward38Einladung anzeigen39Einladung bestätigen40commit41TLS Terminierung42HTTP(S) Forward43Invite auslösen44Status45Status46Nutzer ist demRaum beigetreten47Status48Nutzer in denRaum hinzugefügt \ No newline at end of file +Messenger-Service A Messenger-Service B  Akteur Ain der Rolle User Akteur Ain der Rolle UserTI-Messenger-ClientTI-Messenger-ClientMessenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverMessenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverPush-GatewayPush-GatewayTI-Messenger-ClientTI-Messenger-Client Akteur Bin der Rolle User Akteur Bin der Rolle User Der Akteur A ist erfolgreich beim Messenger Service A angemeldet  Der Akteur B ist erfolgreich beim Messenger Service B angemeldet alt[Suche über VZD-FHIR-Directory]refEinträge im VZD-FHIR-Directory suchen [Direktaustausch über QR-Code Scan] Akteur A und Akteur B treffen sich persönlich 1QR-Code teilen2QR-Code scannen3GET /scan4MXID von Akteur AMXID in Freigabeliste eintragen5POST /tim-contact-mgmt/createContactSetting(MXID, start, end, Matrix-OpenID-Token)6GET /openid/userinfo/?Matrix-OpenID-Token7prüfeMatrix-OpenID-Token8status9MXID von Akteur Ain Freigabelistefür Akteur Baufnehmen10status11QR-Code teilen12QR-Code scannen13GET /scan14MXID von Akteur BMXID in Freigabeliste eintragen15POST /tim-contact-mgmt/createContactSetting(MXID, start, end, Matrix-OpenID-Token)16GET /openid/userinfo/?Matrix-OpenID-Token17prüfeMatrix-OpenID-Token18status19MXID von Akteur Bin Freigabelistefür Akteur Aaufnehmen20status Ein Chatraum wurde bereits durch den Akteur A eingerichtet. 21POST /_matrix/client/r0/rooms/{roomId}/inviterefBerechtigungsprüfung break[Abbruch]22HTTP 403Forbidden23Einladung nichterfolgreich24HTTP(S) Forward25Invite verarbeiten26POST /_matrix/federation/v1/invite/{roomId}/{eventId}refBerechtigungsprüfung 27HTTP(S) ForwardrefBerechtigungsprüfung break[Abbruch]28HTTP 403Forbidden29HTTP(S) forward30Einladung nichterfolgreich31HTTP(S) Forward32Invite verarbeitenopt[Pushbenachrichtigung]33POST /_matrix/push/notify34Notification35Status36Invite Request37HTTP(S) Forward38Einladung anzeigen39Einladung bestätigen40commit41HTTP(S) Forward42Invite auslösen43Status44Status45Nutzer ist demRaum beigetreten46Status47Nutzer in denRaum hinzugefügt \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.png index b721bc26..e8480c21 100644 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.png and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.svg index 82d838ab..376b46d5 100644 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.svg +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.svg @@ -1 +1 @@ -Messenger-Service A Messenger-Service B  Akteur - A in der RolleUser / User-HBA  Akteur - A in der RolleUser / User-HBA TI-Messenger-ClientTI-Messenger-ClientMessenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverMessenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverPush-GatewayPush-GatewayTI-Messenger-ClientTI-Messenger-Client Akteur - B in der RolleUser / User-HBA  Akteur - B in der RolleUser / User-HBA  Die Akteure sind auf dem selben Messenger-Service angemeldet und im Besitz eines zugelassenen TI-Messenger-Clients.Ebenfalls sind beide Akteure einem gemeinsamen Raum beigetreten. Akteur A löstMatrix-Event ausMatrix-RequestHTTP(S) ForwardEventverarbeitenMatrix-RequestrefAF_10064-Föderationszugehörigkeit eines        Messenger-Service prüfen Stufe 1 - Prüfung gemäßServer-Server KommunikationHTTP(S) ForwardrefAF_10064-Föderationszugehörigkeit eines        Messenger-Service prüfen Stufe 1 - Prüfung gemäßServer-Server KommunikationHTTP(S) FowardEventverarbeitenopt[Pushbenachrichtigung]POST /_matrix/push/notifyNotificationStatusMatrix-Requestan Client-B)HTTP(S) ForwardEvent verarbeitenStatusHTTP(S) Forward(Status Client-B)Status (Matrix-Request)HTTP(S) ForwardStatusHTTP(S) ForwardStatus \ No newline at end of file +Messenger-Service A Messenger-Service B  Akteur Ain der Rolle User Akteur Ain der Rolle UserTI-Messenger-ClientTI-Messenger-ClientMessenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverMessenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverPush-GatewayPush-GatewayTI-Messenger-ClientTI-Messenger-Client Akteur Bin der Rolle User Akteur Bin der Rolle User Der Akteur A ist erfolgreich beim Messenger Service A angemeldet  Der Akteur B ist erfolgreich beim Messenger Service B angemeldet 1Akteur A löstMatrix-Event aus2Matrix-Request3HTTP(S) Forward4Eventverarbeiten5Matrix-RequestrefBerechtigungsprüfung 6HTTP(S) ForwardrefBerechtigungsprüfung 7HTTP(S) Forward8Eventverarbeitenopt[Pushbenachrichtigung]9POST /_matrix/push/notify10Notification11Status12Matrix-Requestan Client B13HTTP(S) Forward14Event verarbeiten15Status16HTTP(S) Forward(Status Client B)17Status (Matrix-Request)18HTTP(S) Forward19Status20HTTP(S) Forward21Status \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.png index 09a89ece..f5ecf142 100644 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.png and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.svg index d9571ee4..b4f3f696 100644 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.svg +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.svg @@ -1 +1 @@ -Messenger-Service Akteur - A in der RolleUser / User-HBAAkteur - A in der RolleUser / User-HBATI-Messenger-Client ATI-Messenger-Client AMessenger-ProxyMessenger-ProxyMatrix-Homeserver(inklusive Nutzerverzeichnis)Matrix-Homeserver(inklusive Nutzerverzeichnis)Push-GatewayPush-GatewayTI-Messenger-Client BTI-Messenger-Client BAkteur - B in der RolleUser / User-HBAAkteur - B in der RolleUser / User-HBA Die Akteure sind auf dem selben Messenger-Service angemeldet und im Besitz eines zugelassenen TI-Messenger-Clients.Ebenfalls sind beide Akteure einem gemeinsamen Raum beigetreten. Akteur A löstMatrix-Event ausMatrix-RequestHTTP(S) FowardEventverarbeitenopt[Pushbenachrichtigung]POST /_matrix/push/notifyNotificationStatusMatrix-Requestan Client-BHTTP(S) ForwardEventverarbeitenStatusHTTP(S) Forward(Status Client-B)Status (Matrix-Request)HTTP(S) ForwardStatusHTTP(S) ForwardStatus \ No newline at end of file +Messenger-Service Akteur A in der RolleUserAkteur A in der RolleUserTI-Messenger-Client ATI-Messenger-Client AMessenger-ProxyMessenger-ProxyMatrix-Homeserver(inklusive Nutzerverzeichnis)Matrix-Homeserver(inklusive Nutzerverzeichnis)Push-GatewayPush-GatewayTI-Messenger-Client BTI-Messenger-Client BAkteur B in der RolleUserAkteur B in der RolleUser Die Akteure sind auf dem selben Messenger-Service angemeldet und im Besitz eines zugelassenen TI-Messenger-Clients.Ebenfalls sind beide Akteure einem gemeinsamen Raum beigetreten. 1Akteur A löstMatrix-Event aus2Matrix-Request3HTTP(S) Forward4Eventverarbeitenopt[Push-Benachrichtigung]5POST /_matrix/push/notify6Notification7Status8Matrix-Requestan Client-B9HTTP(S) Forward10Eventverarbeiten11Status12HTTP(S) Forward(Status Client-B)13Matrix-Request Status14HTTP(S) Forward15Status16HTTP(S) Forward17Status \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.png index 94d95b8c..8aac191e 100644 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.png and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.svg index 83606dfb..049f98d7 100644 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.svg +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.svg @@ -1 +1 @@ -Messenger-Service Messenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverRegistrierungs-DienstRegistrierungs-DienstVZD-FHIR-DirectoryVZD-FHIR-Directory1prüfe im Eventob Matrix-Domain(s)in der Föderationslistevorhanden ist/sindalt[Matrix-Domain ist in der Föderationsliste enthalten ODER Matrix-Domain des Senders = Matrix-Domain des Empfängers]2HTTP(S) Forward3Status[Matrix-Domain ist nicht in der Föderationsliste enthalten]refAnhang B- Aktualisierung der Föderationsliste 4prüfe ob Matrix-Domainder MXIDin deraktualisierten Föderationsliste vorhanden istalt[Matrix-Domain ist nicht in der aktualisierten Föderationsliste enthalten]5Abbruch, Verbindung wird abgelehnt[Matrix-Domain ist in der aktualisierten Föderationsliste enthalten]6HTTP(S) Forward7Status \ No newline at end of file +Messenger-Service Messenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverRegistrierungs-DienstRegistrierungs-DienstVZD-FHIR-DirectoryVZD-FHIR-Directory1prüfe im Eventob Matrix-Domain(s)in der Föderationslistevorhanden ist/sindalt[Matrix-Domain ist in der Föderationsliste enthalten ODER Matrix-Domain des Senders = Matrix-Domain des Empfängers]2HTTP(S) Forward3Status[Matrix-Domain ist nicht in der Föderationsliste enthalten]refAktualisierung der Föderationsliste 4prüfe ob Matrix-Domainder MXIDin deraktualisierten Föderationsliste vorhanden istalt[Matrix-Domain ist nicht in der aktualisierten Föderationsliste enthalten]5Abbruch, Verbindung wird abgelehnt[Matrix-Domain ist in der aktualisierten Föderationsliste enthalten]6HTTP(S) Forward7Status \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.png index 4335cf1d..2235bbe5 100644 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.png and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.svg index b7ac0137..41a0441a 100644 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.svg +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.svg @@ -1 +1 @@ -Messenger-Service Akteur - A in der RolleUser / User-HBAAkteur - A in der RolleUser / User-HBATI-Messenger-Client ATI-Messenger-Client AMessenger-ProxyMessenger-ProxyMatrix-Homeserver(inklusive Nutzerverzeichnis)Matrix-Homeserver(inklusive Nutzerverzeichnis)Push-GatewayPush-GatewayTI-Messenger-Client BTI-Messenger-Client BAkteur - B in der RolleUser / User-HBAAkteur - B in der RolleUser / User-HBA Die Akteure sind auf dem selben Messenger-Service angemeldet und im Besitz eines zugelassenen TI-Messenger-Clients.Ein Chatraum wurde durch den Einladenen eingerichtet. opt[Akteur suchen]Suche Akteur BPOST /_matrix/client/user_directory/searchTLS-TerminierungHTTP(S) ForwardNutzerverzeichnisdurchsuchenMXIDHTTP(S) ForwardAkteur B einladenPOST /_matrix/client/r0/rooms/{roomId}/invite (roomId)refAF_10064- Föderationszugehörigkeit eines Messenger-Service prüfen alt[Matrix-Domain nicht in der Föderation enthalten]HTTP 401UnauthorizedAbmeldung der SessionAnmeldung nichterfolgreich[Matrix-Domain in der Föderation enthalten]HTTP(S) FowardInvite verarbeitenopt[Pushbenachrichtigung]POST /_matrix/push/notifyNotificationStatusInvite RequestHTTP(S) ForwardEinladung anzeigenEinladung bestätigencommitTLS TerminierungHTTP(S) ForwardInvite auslösenStatusStatusNutzer in denRaum hinzugefügtStatusNutzer ist demRaum beigetreten \ No newline at end of file +Messenger-Service Akteur - A in der RolleUserAkteur - A in der RolleUserTI-Messenger-Client ATI-Messenger-Client AMessenger-ProxyMessenger-ProxyMatrix-Homeserver(inklusive Nutzerverzeichnis)Matrix-Homeserver(inklusive Nutzerverzeichnis)Push-GatewayPush-GatewayTI-Messenger-Client BTI-Messenger-Client BAkteur - B in der RolleUserAkteur - B in der RolleUser Die Akteure sind auf dem selben Messenger-Service angemeldet und im Besitz eines zugelassenen TI-Messenger-Clients.Ein Chatraum wurde durch den Einladenen eingerichtet. opt[Akteur suchen]1Suche Akteur B2POST /_matrix/client/user_directory/search3HTTP(S) Forward4Nutzerverzeichnisdurchsuchen5MXID6HTTP(S) Forward7Akteur B einladen8POST /_matrix/client/r0/rooms/{roomId}/invite (roomId)refBerechtigungsprüfung alt[Matrix-Domain nicht in der Föderation enthalten]9HTTP 401Unauthorized10Einladung nichterfolgreich[Matrix-Domain in der Föderation enthalten]11HTTP(S) Forward12Invite verarbeiten13HTTP 200opt[Push-Benachrichtigung]14POST /_matrix/push/notify15Notification16Status17Sync Request18HTTP(S) Forward19Sync Response20HTTP(S) Forward21Einladung anzeigen22Einladung bestätigen23join24HTTP(S) Forward25join verarbeiten26Room ID27HTTP(S) Forward28Nutzer ist demRaum beigetreten29Sync Request30HTTP(S) Forward31Sync Response32HTTP(S) Forward33Akteur B ist dem RaumRaum beigetreten \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.png index 186c4f22..102661ce 100644 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.png and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.svg index 4bc5ce10..bdc11888 100644 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.svg +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.svg @@ -1 +1 @@ -Messenger-Service Messenger-Service TI-Messenger-ClientTI-Messenger-ClientMessenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverMessenger-ProxyMessenger-ProxyRegistrierungs-DienstRegistrierungs-DienstMatrix-HomeserverMatrix-HomeserverVZD-FHIR-DirectoryVZD-FHIR-DirectoryInvite-EventBerechtigungskonzept - Stufe 1 refAF_10064-Föderationszugehörigkeit eines        Messenger-Service prüfen Stufe 1 - Prüfung gemäßClient-Server Kommunikationalt[Matrix-Domain nicht in der Föderation enthalten]HTTP 403ForbiddenAbmeldung der SessionHTTP(S) ForwardPrüfung aufOrganisationszugehörigkeitalt[Akteure gehören einer gemeinsamen Organisation an]Invite wirdverarbeitetstatusstatus[Akteure gehören nicht einer gemeinsamen Organisation an]Matrix-Invite-Eventwird weitergeleitetrefAF_10064-Föderationszugehörigkeit eines        Messenger-Service prüfen Stufe 1 - Prüfung gemäßServer-Server KommunikationMatrix-Invite-Eventwird weitergeleitetBerechtigungskonzept - Stufe 1  refAF_10064-Föderationszugehörigkeit eines        Messenger-Service prüfen Stufe 1 - Prüfung gemäßServer-Server Kommunikationalt[Matrix-Domain nicht in der Föderation enthalten]HTTP 403ForbiddenHTTP(S) forwardAbmeldung der SessionBerechtigungskonzept - Stufe 2   Prüfung, ob MXIDdes Einladendenin der Freigabelisteenthalten istalt[MXID des Einladenden ist in der Freigabeliste enthalten]HTTP(S) Forward[MXID des Einladenden ist nicht in der Freigabeliste enthalten]Berechtigungskonzept - Stufe 3   Prüfung, ob MXIDder Akteure imVZD-FHIR-Dirctoryenthalten istPOST /tim-provider-services/whereIsSucheErgebnis, statusPrüfungErgebnis, statusalt[MXID ist im VZD-FHIR-Directory und Ergebnis == true]HTTP(S) Forward[MXID ist nicht im VZD-FHIR-Directory enthalten]Abbruch,Verbindung wirdabgelehntInvite-Eventverarbeitenstatusstatusstatus \ No newline at end of file +Messenger-Servicedes einladenden Akteurs Messenger-Servicedes eingeladenen Akteurs Messenger Clientdes eingeladenen Akteurs Messenger-ServiceMessenger-ServiceMessenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverPush-DienstPush-DienstMessenger-ClientMessenger-ClientMatrix-Invite-EventBerechtigungskonzept - Stufe 1  break[Matrix-Domain nicht in der Föderation enthalten]Abbruch,Verbindung wirdabgelehntHTTP 403HTTP(S) ForwardInvite-EventverarbeitenPush NotificationPush NotificationResponseResponseBerechtigungskonzept - Stufe 2  Abfrage neuer EventsHTTP(S) ForwardBereitstellung neuer EventsHTTP(S) ForwardExtrahieren der Invite-EventsPrüfung, ob die Einladung erlaubt istbreak[Der Akteur hat "allow all" konfiguriert und der einladende Akteurist auf der BlockedUser-Liste (Direkt oder als Teil einer Gruppe/Domain)]Einladung ist abzulehnenbreak[Der Akteur hat "block all" konfiguriert und der einladende Akteurist nicht auf der AllowedUser-Liste (Direkt oder als Teil einer Gruppe/Domain)]Einladung ist abzulehnenErgebnis der EinladungsprüfungHTTP(S) ForwardErgebnis der EinladungsprüfungHTTP(S) Forward \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.png deleted file mode 100644 index 197f030a..00000000 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.png and /dev/null differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.svg deleted file mode 100644 index 8cdc5c32..00000000 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.svg +++ /dev/null @@ -1 +0,0 @@ -VZD-FHIR-Directory Akteur in der RolleUser / User-HBAAkteur in der RolleUser / User-HBATI-Messenger-ClientTI-Messenger-ClientMessenger ProxyMessenger ProxyMatrix-HomeserverMatrix-HomeserverFHIR-ProxyFHIR-ProxyAuth-ServiceAuth-ServiceFHIR-DirectoryFHIR-Directory Der Akteur ist erfolgreich beim Messenger-Service angemeldet 1Suchparameter fürFHIR-Ressourceneingeben2prüfe ob noch gültigessearch-accesstokenvorliegtalt[kein gültiges search-accesstoken vorhanden]3GET /_matrix/client/user/{userId}/openid/request_token4HTTP Forward5Matrix-OpenID-Token6HTTP(S) Forward7GET /tim-authenticate?mxId=... (Auth Header mit Matrix-OpenID-Token)8Prüfe obMatrix Server Name inder Föderation enthalten istopt[Abbruch]9Matrix Server Name nicht in der Föderation enthalten10GET /openid/userinfo?access_token=Matrix-OpenID-Token11HTTP(S) Forward12prüfe Matrix-OpenID-Token13MXID des Nutzers14HTTP(S) Forward15erzeugesearch-accesstoken16search-accesstoken17POST /search?... (Auth Header mit search-accesstoken)18prüfe search-accesstokenopt[Abbruch]19kein gültiges search-accesstokenalt[HealthcareService-Einträge werden gesucht]20POST /search/HealthcareService/?Finde Datensatz für TelematikID21Suchergebnis (FHIR Bundle)alt[PractitionerRole-Einträge werden gesucht]22POST /search/PractitionerRole/?Finde Datensatz für MXID23Suchergebnis (FHIR Bundle)24Suchergebnis (FHIR Bundle)25Suchergebnis (FHIR Bundle) \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.png index 14a213e9..1054f445 100644 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.png and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.svg index 7576d558..a9471f84 100644 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.svg +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.svg @@ -1 +1 @@ -Messenger-Service VZD-FHIR-Directory Messenger-ProxyMessenger-ProxyRegistrierungs-DienstRegistrierungs-DienstFHIR-ProxyFHIR-ProxyOAuth-ServiceOAuth-Servicescheduled loop[alle 1h]alt[HealthState_VZD=gesund ODER Alter_Föderationsliste>=1h]refProvider authentifizieren und Föderationsliste abrufen[HealthState_VZD!=gesund]1HealthStateCheck einleiten(HealthStateCheck_VZD=0)loop[alle 5min UND HealthStateCheck_VZD<=3]refProvider authentifizieren und Föderationsliste abrufenalt[HealthState_VZD=gesund]break2HealthStateCheck_VZD abbrechen()[HealthState_VZD!=gesund]3HealthStateCheck_VZD erhöhen(HealthStateCheck_VZD+1)alt[HealthStateCheck_VZD=3]4Incident-Event erzeugen()5letzte vorhandene Föderationsliste puffern()6Föderationslisteon request 7Föderationslisteaktualisieren()8GET /I_internVerification(FLVersion_MP)Schnittstelle wird nichtdurch die gematik spezifiziertalt[HealthState_VZD=gesund UND Alter_Föderationsliste>=1h]refProvider authentifizieren und Föderationsliste abrufenbreak[Alter_Föderationsliste>TTL_Föderationsliste]9FLStatus_RD=veraltet10Incident-Event erzeugen()11unterbinde Registrierungsdienst-Requests(Dauer=1h)12blockiere Kommunikation zu anderen Homeservern()13vergleiche Versionen(FLVersion_MP, FLVersion_RD)14Vergleichsergebnis_RDalt[Vergleichsergebnis_RD=identisch]15FLStatus_MP=aktuell[Vergleichsergebnis_RD!=identisch]16Föderationsliste, x5c-ZertifikatslisterefSignatur der Föderationsliste prüfen \ No newline at end of file +Messenger-Service VZD-FHIR-Directory Messenger-ProxyMessenger-ProxyRegistrierungs-DienstRegistrierungs-DienstFHIR-ProxyFHIR-ProxyOAuth-ServiceOAuth-Servicescheduled loop[alle 1h]alt[HealthState_VZD=gesund ODER Alter_Föderationsliste>=1h]refProvider authentifizieren und Föderationsliste abrufen[HealthState_VZD!=gesund]1HealthStateCheck einleiten(HealthStateCheck_VZD=0)loop[alle 5min UND HealthStateCheck_VZD<=3]refProvider authentifizieren und Föderationsliste abrufenalt[HealthState_VZD=gesund]break2HealthStateCheck_VZD abbrechen()[HealthState_VZD!=gesund]3HealthStateCheck_VZD erhöhen(HealthStateCheck_VZD+1)alt[HealthStateCheck_VZD=3]4Incident-Event erzeugen()5letzte vorhandene Föderationsliste puffern()6Föderationslisteon request 7Föderationslisteaktualisieren()8GET /I_internVerification(FLVersion_MP)Schnittstelle wird nichtdurch die gematik spezifiziertalt[HealthState_VZD=gesund UND Alter_Föderationsliste>=1h]refProvider authentifizieren und Föderationsliste abrufenbreak[Alter_Föderationsliste>TTL_Föderationsliste]9FLStatus_RD=veraltet10Incident-Event erzeugen()11unterbinde Registrierungsdienst-Requests(Dauer=1h)12blockiere Kommunikation zu anderen Homeservern()13vergleiche Versionen(FLVersion_MP, FLVersion_RD)14Vergleichsergebnis_RDalt[Vergleichsergebnis_RD=identisch]15FLStatus_MP=aktuell[Vergleichsergebnis_RD!=identisch]16Föderationsliste, x5c-ZertifikatslisterefSignatur der Föderationsliste prüfen \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.png index 333f1acb..3142605d 100644 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.png and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.svg index 4273425f..f347828e 100644 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.svg +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.svg @@ -1 +1 @@ -Messenger-Service Messenger-ProxyMessenger-ProxyPublic OCSP-ResponderPublic OCSP-Responder1Signatur der Föderationsliste prüfen(Föderationsliste, x5c-Zertifikatsliste[1])2Signaturprüfergebnisloop[für jeden Eintrag von x5c-Zertifikatsliste]3Public-OCSP-Zertifikatsprüf-Request stellen(x5c-Zertifikat)4OCSP-Responsealt[Signaturprüfergebnis=gültigUND jeder OCSP-Response.CertificateStatusValue=good]5Föderationsliste aktualisieren(Föderationsliste)Legendenicht anzuwenden in dieser Spezifikationsversion,sondern erst, sobald der Public OCSP-Responder verfügbar ist(bezieht sich auf die im diesem Diagramm blau dargestellten Prüfungen und Komponenten) \ No newline at end of file +Messenger-Service Messenger-ProxyMessenger-ProxyPublic OCSP-ResponderPublic OCSP-Responder1Signatur der Föderationsliste prüfen(Föderationsliste, x5c-Zertifikatsliste[1])2Signaturprüfergebnisloop[für jeden Eintrag von x5c-Zertifikatsliste]3Public-OCSP-Zertifikatsprüf-Request stellen(x5c-Zertifikat)4OCSP-Responsealt[Signaturprüfergebnis=gültig UND jeder OCSP-Response.CertificateStatusValue=good]5Föderationsliste aktualisieren(Föderationsliste) \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.png index a1f3a907..3bbd0bcb 100644 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.png and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.svg index 038e8454..7c5f6c90 100644 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.svg +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.svg @@ -1 +1 @@ -VZD-FHIR-Directory Registrierungs-DienstRegistrierungs-DienstOAuth-ServiceOAuth-ServiceAuth-ServiceAuth-ServiceFHIR-ProxyFHIR-Proxyalt[kein gültiges provider-accesstoken vorhanden]alt[Benötigt IDP-TI-Provider-Accesstoken]1POST /auth/realms/TI-Provider/protocol/openid-connect/token(client_id, client_secret){<10s := HealthState_VZD=gesund}2Credentials prüfen(client_id, client_secret)3ti-provider-accesstoken4GET /ti-provider-authenticate(ti-provider-accesstoken){<10s := HealthState_VZD=gesund}5Token prüfen(ti-provider-accesstoken)6provider-accesstoken7GET /tim-provider-services/FederationList/federationList.jws(provider-accesstoken, FLVersion_RD){<10s := HealthState_VZD=gesund}8Token prüfen(provider-accesstoken)break[Abruf der Föderationsliste nicht möglich]9ResponseType=Bad Request ODERResponseType=Unauthorized ODERResponseType=Forbidden ODERResponseType=Not Found10Auf neuere Version derFöderationsliste prüfen(FLVersion_RD)alt[keine neuere Version der Föderationsliste vorhanden]11ResponseType=No Content12Alter_Föderationsliste zurücksetzen(Alter_Föderationsliste=0s)[neuere Version der Föderationsliste vorhanden ODER FLVersion_RD=NULL]13Föderationsliste, x5c-Zertifikatsliste14Föderationsliste aktualisieren(Föderationsliste)15Föderationsliste16Alter_Föderationsliste zurücksetzen(Alter_Föderationsliste=0s) \ No newline at end of file +VZD-FHIR-Directory Registrierungs-DienstRegistrierungs-DienstOAuth-ServiceOAuth-ServiceAuth-ServiceAuth-ServiceFHIR-ProxyFHIR-Proxyalt[kein gültiges provider-accesstoken vorhanden]alt[Benötigt IDP-TI-Provider-Accesstoken]1POST /auth/realms/TI-Provider/protocol/openid-connect/token(client_id, client_secret){<10s := HealthState_VZD=gesund}2Credentials prüfen(client_id, client_secret)3ti-provider-accesstoken4GET /ti-provider-authenticate(ti-provider-accesstoken){<10s := HealthState_VZD=gesund}5Token prüfen(ti-provider-accesstoken)6provider-accesstoken7GET /tim-provider-services/FederationList/federationList.jws(provider-accesstoken, FLVersion_RD){<10s := HealthState_VZD=gesund}8Token prüfen(provider-accesstoken)break[Abruf der Föderationsliste nicht möglich]9ResponseType=Bad Request ODERResponseType=Unauthorized ODERResponseType=Forbidden ODERResponseType=Not Found10Auf neuere Version derFöderationsliste prüfen(FLVersion_RD)alt[keine neuere Version der Föderationsliste vorhanden]11ResponseType=No Content12Alter_Föderationsliste zurücksetzen(Alter_Föderationsliste=0s)[neuere Version der Föderationsliste vorhanden ODER FLVersion_RD=NULL]13Föderationsliste, x5c-Zertifikatsliste14Föderationsliste aktualisieren(Föderationsliste)15Föderationsliste16Alter_Föderationsliste zurücksetzen(Alter_Föderationsliste=0s) \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.png index 713f794d..4687032f 100644 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.png and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.svg index cc176b14..5a89741c 100644 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.svg +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.svg @@ -1 +1 @@ -RolleAnwendungsfälleOrg-Admin«AF_10103» Authentisieren einer Organisationam TI-Messenger-Dienst«AF_10060» Bereitstellung eines Messenger-Servicefür eine Organisation«AF_10059» Organisationsressourcen imVerzeichnisdienst hinzufügenz. B. Beauftragter Mitarbeiter in einerOrganisation \ No newline at end of file +RolleAnwendungsfällez. B. Beauftragter Mitarbeiter in einerOrganisationOrg-Admin«AF_10103» Authentisieren einer Organisationam TI-Messenger-Dienst«AF_10060» Bereitstellung eines Messenger-Servicefür eine Organisation \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user.png new file mode 100644 index 00000000..001b6245 Binary files /dev/null and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user.svg new file mode 100644 index 00000000..b43bc8a3 --- /dev/null +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user.svg @@ -0,0 +1 @@ +RolleAnwendungsfälleMitarbeiter einer Organisationim GesundheitswesenUser«AF_10057» Anmeldung eines Akteurs amMessenger-Service«AF_10104» Einladung von Akteureninnerhalb einer Organisation«AF_10063» Austausch von Eventszwischen Akteureninnerhalb einer Organisation«AF_10061» Einladung von Akteurenaußerhalb einer Organisation«AF_10062» Austausch von Eventszwischen Akteurenaußerhalb einer Organisation«AF_10235» Einträge im VZD-FHIR-Directory suchen \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.png index 42da8c81..efd0b7be 100644 Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.png and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.svg index 1b243987..dacb0eb1 100644 --- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.svg +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.svg @@ -1 +1 @@ -RolleAnwendungsfälleUser / User-HBA«AF_10057» Anmeldung eines Akteurs amMessenger-Service«AF_10058» Akteur (User-HBA) imVerzeichnisdienst hinzufügen«AF_10104» Einladung von Akteureninnerhalb einer Organisation«AF_10063» Austausch von Eventszwischen Akteureninnerhalb einer Organisation«AF_10061» Einladung von Akteurenaußerhalb einer Organisation«AF_10062» Austausch von Eventszwischen Akteurenaußerhalb einer Organisationz. B. Leistungserbringer im Besitzeines HBAs \ No newline at end of file +RolleAnwendungsfällez. B. Leistungserbringer im Besitzeines HBAsUser / User-HBA«AF_10057» Anmeldung eines Akteurs amMessenger-Service«AF_10058» Akteur (User-HBA) imVerzeichnisdienst hinzufügen«AF_10104» Einladung von Akteureninnerhalb einer Organisation«AF_10063» Austausch von Eventszwischen Akteureninnerhalb einer Organisation«AF_10061» Einladung von Akteurenaußerhalb einer Organisation«AF_10062» Austausch von Eventszwischen Akteurenaußerhalb einer Organisation \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/auth_insured_person.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/auth_insured_person.png new file mode 100644 index 00000000..ded8b5da Binary files /dev/null and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/auth_insured_person.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/auth_insured_person.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/auth_insured_person.svg new file mode 100644 index 00000000..9025e830 --- /dev/null +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/auth_insured_person.svg @@ -0,0 +1 @@ +Messenger-Service TI-Messenger Actor ATI-Messenger Actor AMessenger-ProxyMessenger-ProxyMatrix-HomeserverMatrix-HomeserverRegistrierungs-DienstRegistrierungs-DienstVZD-FHIR-DirectoryVZD-FHIR-Directory1prüfe im Eventob Matrix-Domain(s)in der Föderationslistevorhanden ist/sindalt[Matrix-Domain ist in der Föderationsliste enthalten]break[Matrix-Domain des Senders und Empfängers sind beide von einem Versicherten-Server]2Abbruch, Verbindung wird abgelehnt3HTTP(S) Forward4Status[Matrix-Domain ist nicht in der Föderationsliste enthalten]refAnhang B- Aktualisierung der Föderationsliste 5prüfe ob Matrix-Domainder MXIDin deraktualisierten Föderationsliste vorhanden istalt[Matrix-Domain ist nicht in der aktualisierten Föderationsliste enthalten]6Abbruch, Verbindung wird abgelehnt[Matrix-Domain ist in der aktualisierten Föderationsliste enthalten]break[Matrix-Domain des Senders und Empfängers sind beide von einem Versicherten-Server]7Abbruch, Verbindung wird abgelehnt8HTTP(S) Forward9Status \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/push_notifications_delivery.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/push_notifications_delivery.png new file mode 100644 index 00000000..86d5d3b8 Binary files /dev/null and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/push_notifications_delivery.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/push_notifications_delivery.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/push_notifications_delivery.svg new file mode 100644 index 00000000..dc018281 --- /dev/null +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/push_notifications_delivery.svg @@ -0,0 +1 @@ +Akteur in der Rolle UserAkteur in der Rolle UserTI-Messenger Client AppInhaber PushAnbieter-App TokenTI-Messenger Client AppInhaber PushAnbieter-App TokenPush-AnbieterPush-AnbieterPush-GatewayPush-GatewayFachdienstFachdienst1Benachrichtigung(App_ID,PushAnbieter-AppToken, EventID)2Benachrichtigung(PushAnbieter-AppToken,EventID)3Response4Response5Benachrichtigung anEmpfänger(PushAnbieter-AppToken,EventID)6Abfrage der Daten zuEvent(EventID)7VerschlüsselteBenachrichtigungsinhalte8Entschlüssele(VerschlüsselteBenachrichtigungsinhalte)9erzeugeAnwenderbenachrichtigung mit den entschlüsselten Inhalten10Zeige Benachrichtigung \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/push_notifications_registration.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/push_notifications_registration.png new file mode 100644 index 00000000..946400d3 Binary files /dev/null and b/images/diagrams/TI-Messenger-Dienst/Ressourcen/push_notifications_registration.png differ diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/push_notifications_registration.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/push_notifications_registration.svg new file mode 100644 index 00000000..68653f47 --- /dev/null +++ b/images/diagrams/TI-Messenger-Dienst/Ressourcen/push_notifications_registration.svg @@ -0,0 +1 @@ +Akteur in der Rolle UserAkteur in der Rolle UserTI-Messenger Client AppTI-Messenger Client AppPush-AnbieterPush-AnbieterFachdienstFachdienstPush-GatewayPush-GatewayErsteller TI-Messenger Client AppErsteller TI-Messenger Client App1konfiguriert unter einer eindeutigen App_ID denZugang zum Push-Anbieter2speichere Konfiguration3hinterlege App_ID & Push-Gateway URL in der App4installiert TI-Messenger Client App auf dem Smartphone5Wollen Sie Push-Nachrichten empfangen?6stimmt dem Empfang von Push-Nachrichten zu7registriert die App beim Push-Anbieter8eindeutiges PushAnbieter-AppTokenfür die App Instanz9speichere PushAnbieter-AppToken10konfiguriere zu verwendendesGateway(Gateway-Url,App_ID,PushAnbieter-AppToken)11Konfiguration übernommen \ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.png b/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.png index decb92f8..378a03e6 100644 Binary files a/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.png and b/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.png differ diff --git a/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.svg b/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.svg index b925f168..3b90a47e 100644 --- a/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.svg +++ b/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.svg @@ -1,3 +1,3 @@ -

extern

extern

extern

extern

intern

intern
Messenger-Service
Messenger-Service
Matrix- Homeserver
Matrix- Homese...
Messenger-
Proxy
Messenger-...

Matrix - Server

Server API

Matrix - Serve...
R
R
R
R

Matrix - Server

Server API

Matrix - Serve...
R
R
R
R

Matrix - Server

Server API

Matrix - Serve...

Matrix - Client

Server API

Matrix - Clien...
R
R
R
R

TiMessengerContactManagement

TiMessengerContactManagement

Matrix - Client

Server API

Matrix - Clien...
R
R

Authentifizierungsverfahren

Authentifizierungsverfahren
Text is not SVG - cannot display
\ No newline at end of file +

extern

extern

extern

extern

intern

intern
Messenger-Service
Messenger-Service
Matrix- Homeserver
Matrix- Homese...
Messenger-
Proxy
Messenger-...

Matrix - Server

Server API

Matrix - Serve...
R
R
R
R

Matrix - Server

Server API

Matrix - Serve...
R
R
R
R

Matrix - Server

Server API

Matrix - Serve...

Matrix - Client

Server API

Matrix - Clien...
R
R

Matrix - Client

Server API

Matrix - Clien...
R
R

Authentifizierungsverfahren

Authentifizierungsverfahren
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Fachdienst/Pruefungen_Messenger_Proxy-Overview.png b/images/diagrams/TI-Messenger-Fachdienst/Pruefungen_Messenger_Proxy-Overview.png new file mode 100644 index 00000000..bf335544 Binary files /dev/null and b/images/diagrams/TI-Messenger-Fachdienst/Pruefungen_Messenger_Proxy-Overview.png differ diff --git a/images/diagrams/TI-Messenger-Fachdienst/Pruefungen_Messenger_Proxy-Overview.svg b/images/diagrams/TI-Messenger-Fachdienst/Pruefungen_Messenger_Proxy-Overview.svg new file mode 100644 index 00000000..c0f1db51 --- /dev/null +++ b/images/diagrams/TI-Messenger-Fachdienst/Pruefungen_Messenger_Proxy-Overview.svg @@ -0,0 +1,3 @@ + + +
Matrix-Client-
Server-API
Matrix-Cli...

TI-Messenger-
Client
TI-Messenger-...


Messenger-Proxy
Messenger-Proxy...

TI-Messenger-
Client
TI-Messenger-...


Messenger-Proxy
Messenger-Proxy...

TI-Messenger-
Client
TI-Messenger-...

  • Client-Server
  • Prüfungen

Client-ServerPrüfungen...
Client-Server Proxy
Client-Server Proxy
Server-Server Proxy
Server-Server Proxy
Client-Server Proxy
Client-Server Proxy
Server-Server Proxy
Server-Server Proxy

TI-Messenger-
Client
TI-Messenger-...
Matrix-Server-
Server-API
Matrix-Serv...
R
R
R
R
R
R
Matrix-Client-
Server-API
Matrix-Cli...
R
R
R
R
Server-Server
Prüfungen
Server-Server...

  • Client-Server
  • Prüfungen

Client-ServerPrüfungen...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.png b/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.png index 6b1fc55f..63eb1905 100644 Binary files a/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.png and b/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.png differ diff --git a/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.svg b/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.svg index 4e2544c6..73bc5262 100644 --- a/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.svg +++ b/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.svg @@ -1,3 +1,3 @@ -
Ausstellung von RegService-OpenID-Token
Ausstellung von RegSe...
Registrierungs-
Dienst
Registrierungs-...
Administration
Administration
Messenger-Service in die TI-Föderation aufnehmen
Messenger-Service in die...
I_Registration
I_Registratio...
I_internVerification
I_internVerificat...
VZD-FHIR-Directory
VZD-FHIR-Directory
Messenger-Proxy
Messenger-Proxy
Frontend des
Registrierungs-Dienstes
Frontend des...
Authentifizierung am
VZD-FHIR-Directory
Authentifizierung am...
OAuth / Auth-Service
(/token,
/ti-provider-authenticate)
OAuth / Auth-Service...
I_requestToken
I_requestToken
Org-Admin-Client
Org-Admin-Client
R
R
I_VZD_TIM_Provider_Services
(/tim-provider-services)
I_VZD_TIM_Provider_Services...
R
R
Bereitstellung der Föderationsliste und
Berechtigungsprüfung – Stufe 3
Bereitstellung der Föderationsli...
R
R
R
R
R
R
Internet
Internet
Text is not SVG - cannot display
\ No newline at end of file +
Org-Admin Services
Org-Admin Services
Registrierungs-
Dienst
Registrierungs-...
Administration
Administration
Messenger-Service in die TI-Föderation aufnehmen
Messenger-Service in die...
I_Registration
I_Registratio...
I_internVerification
I_internVerificat...
VZD-FHIR-Directory
VZD-FHIR-Directory
Messenger-Proxy
Messenger-Proxy
Frontend des
Registrierungs-Dienstes
Frontend des...
Authentifizierung am
VZD-FHIR-Directory
Authentifizierung am...
OAuth / Auth-Service
(/token,
/ti-provider-authenticate)
OAuth / Auth-Service...
I_Admin
I_Admin
Org-Admin-Client
Org-Admin-Client
R
R
I_VZD_TIM_Provider_Services
(/tim-provider-services)
I_VZD_TIM_Provider_Services...
R
R
Bereitstellung der Föderationsliste
Bereitstellung der Föderationsli...
R
R
R
R
R
R
Internet
Internet
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.png b/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.png index cd1f7283..302e475f 100644 Binary files a/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.png and b/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.png differ diff --git a/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.svg b/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.svg index b5911841..6068face 100644 --- a/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.svg +++ b/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.svg @@ -1,3 +1,3 @@ -
VZD-FHIR-Directory
VZD-FHIR-Directory
TI-Messenger-Fachdienst
TI-Messenger-Fachdienst
Messenger-Service
Messenger-Service
Registrierungs-
Dienst
Registrierungs-...

TI-Messenger- Client
TI-Messenger- Cli...
Messenger-
Proxy
Messenger-...
Push-
Gateway
Push-...
FHIR-Directory
FHIR-Directory
FHIR-Proxy
FHIR-Proxy
IDP-
Dienst
IDP-...
OAuth
OAuth
Matrix-
Homeserver
Matrix-...
Auth-Service
Auth-Service
Messenger-Service
Messenger-Service
Messenger-
Proxy
Messenger-...
Matrix-
Homeserver
Matrix-...
R
R
R
R
R
R
R
R
R
R
Text is not SVG - cannot display
\ No newline at end of file +
VZD-FHIR-Directory
VZD-FHIR-Directory
TI-M FD
TI-M FD
Registrierungs-
Dienst
Registrierungs-...
TI-M Client
TI-M Client
Push-
Gateway
Push-...
FHIR-Directory
FHIR-Directory
FHIR-Proxy
FHIR-Proxy
IDP-Dienst
IDP-Dienst
OAuth
OAuth
Auth-Service
Auth-Service
Messenger-Service
Messenger-Service
Messenger-
Proxy
Messenger-...
Matrix-
Homeserver
Matrix-...
R
R
R
R
R
R
R
R
R
R
Komponenten-PKI
Komponenten-PKI
R
R
R
R
Push-Provider
Push-Provider
R
R
R
R
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Fachdienst/chatbot-Seite-1.png b/images/diagrams/TI-Messenger-Fachdienst/chatbot-Seite-1.png new file mode 100644 index 00000000..df4692da Binary files /dev/null and b/images/diagrams/TI-Messenger-Fachdienst/chatbot-Seite-1.png differ diff --git a/images/diagrams/TI-Messenger-Fachdienst/chatbot-Seite-1.svg b/images/diagrams/TI-Messenger-Fachdienst/chatbot-Seite-1.svg new file mode 100644 index 00000000..f7f76e51 --- /dev/null +++ b/images/diagrams/TI-Messenger-Fachdienst/chatbot-Seite-1.svg @@ -0,0 +1,3 @@ + + +
2
2
3
3
4
4
6
6
5
5
180 zu 140…
wie kann ich den Blutdruck meines Patienten am besten therapieren?
180 zu 140…...
1
1
Invite Kardiologie Klinikum X
Invite Kardiologie Klinikum X
Hallo, wie kann ich Ihnen helfen?
Hallo, wie kann ich Ihnen helfen?
Kann ich den diensthabenden Arzt sprechen?
Kann ich den diensthabenden Arzt sprechen?
Invite Dr. Mueller
Invite Dr. Mueller
Hallo Dr. Meier, wie kann ich Ihnen helfen?
Hallo Dr. Meier, wie kann ich Ihnen helfen?
Dr. Meier
(Orthopäde Klinikum X)
Dr. Meier...
Pfleger Martin
Pfleger Ma...
Dr. Mueller
(Kardiologe Klinikum X)
Dr. Muelle...
Dr. Mueller
(Kardiologe Klinikum X)
Dr. Muelle...
ChatBot (Kardiologie)
ChatBot (...
Kardiologie Klinikum X
Kardiolo...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.png b/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.png index cd31de6d..06e8bc13 100644 Binary files a/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.png and b/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.png differ diff --git a/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.svg b/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.svg index 1c603348..541a5cd6 100644 --- a/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.svg +++ b/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.svg @@ -1,3 +1,3 @@ -
Client
Client
Server
Server
Forward-
Proxy
Forward-...
Internet
Internet
Reverse-
Proxy
Reverse-...
In das Internet
 ausgehende Kommunikation
In das Internet...
Aus dem Internet
eingehende Kommunikation
Aus dem Internet...
Text is not SVG - cannot display
\ No newline at end of file +
Client
Client
Server
Server
Forward-
Proxy
Forward-...
Internet
Internet
Reverse-
Proxy
Reverse-...
In das Internet
 ausgehende Kommunikation
In das Internet...
Aus dem Internet
eingehende Kommunikation
Aus dem Internet...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/diagrams/Test/Anschaltung der Testtreiber Clients-1.png b/images/diagrams/Test/Anschaltung der Testtreiber Clients-1.png new file mode 100644 index 00000000..2a5c7125 Binary files /dev/null and b/images/diagrams/Test/Anschaltung der Testtreiber Clients-1.png differ diff --git a/images/diagrams/Test/Anschaltung der Testtreiber Clients-1.svg b/images/diagrams/Test/Anschaltung der Testtreiber Clients-1.svg new file mode 100644 index 00000000..a2d4897f --- /dev/null +++ b/images/diagrams/Test/Anschaltung der Testtreiber Clients-1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/images/diagrams/Test/HerstellerInstanz-1.png b/images/diagrams/Test/HerstellerInstanz-1.png new file mode 100644 index 00000000..10b93efd Binary files /dev/null and b/images/diagrams/Test/HerstellerInstanz-1.png differ diff --git a/images/diagrams/Test/HerstellerInstanz-1.svg b/images/diagrams/Test/HerstellerInstanz-1.svg new file mode 100644 index 00000000..c6beec7a --- /dev/null +++ b/images/diagrams/Test/HerstellerInstanz-1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/images/diagrams/Test/IOP Pools-1.png b/images/diagrams/Test/IOP Pools-1.png new file mode 100644 index 00000000..9a7e9751 Binary files /dev/null and b/images/diagrams/Test/IOP Pools-1.png differ diff --git a/images/diagrams/Test/IOP Pools-1.svg b/images/diagrams/Test/IOP Pools-1.svg new file mode 100644 index 00000000..ab356bc9 --- /dev/null +++ b/images/diagrams/Test/IOP Pools-1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/images/diagrams/Test/Testumgebung Basis-1.png b/images/diagrams/Test/Testumgebung Basis-1.png new file mode 100644 index 00000000..10e9e229 Binary files /dev/null and b/images/diagrams/Test/Testumgebung Basis-1.png differ diff --git a/images/diagrams/Test/Testumgebung Basis-1.svg b/images/diagrams/Test/Testumgebung Basis-1.svg new file mode 100644 index 00000000..d9510a08 --- /dev/null +++ b/images/diagrams/Test/Testumgebung Basis-1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/images/diagrams/Test/Testumgebung ePA-1.png b/images/diagrams/Test/Testumgebung ePA-1.png new file mode 100644 index 00000000..7ae4b25d Binary files /dev/null and b/images/diagrams/Test/Testumgebung ePA-1.png differ diff --git a/images/diagrams/Test/Testumgebung ePA-1.svg b/images/diagrams/Test/Testumgebung ePA-1.svg new file mode 100644 index 00000000..4fbef307 --- /dev/null +++ b/images/diagrams/Test/Testumgebung ePA-1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/images/diagrams/Test/Zulassung TIM-Basis.png b/images/diagrams/Test/Zulassung TIM-Basis.png new file mode 100644 index 00000000..a2926c4a Binary files /dev/null and b/images/diagrams/Test/Zulassung TIM-Basis.png differ diff --git a/images/diagrams/Test/Zulassung TIM-Basis.svg b/images/diagrams/Test/Zulassung TIM-Basis.svg new file mode 100644 index 00000000..a7066303 --- /dev/null +++ b/images/diagrams/Test/Zulassung TIM-Basis.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/images/diagrams/Test/Zulassung TIM-ePA.png b/images/diagrams/Test/Zulassung TIM-ePA.png new file mode 100644 index 00000000..f8a96abc Binary files /dev/null and b/images/diagrams/Test/Zulassung TIM-ePA.png differ diff --git a/images/diagrams/Test/Zulassung TIM-ePA.svg b/images/diagrams/Test/Zulassung TIM-ePA.svg new file mode 100644 index 00000000..40ed7ae0 --- /dev/null +++ b/images/diagrams/Test/Zulassung TIM-ePA.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/images/diagrams/Test/nach_der_Zulassung-1.png b/images/diagrams/Test/nach_der_Zulassung-1.png new file mode 100644 index 00000000..599d9637 Binary files /dev/null and b/images/diagrams/Test/nach_der_Zulassung-1.png differ diff --git a/images/diagrams/Test/nach_der_Zulassung-1.svg b/images/diagrams/Test/nach_der_Zulassung-1.svg new file mode 100644 index 00000000..75edda79 --- /dev/null +++ b/images/diagrams/Test/nach_der_Zulassung-1.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/images/diagrams/Test/testtreiber-externes-Modul.png b/images/diagrams/Test/testtreiber-externes-Modul.png new file mode 100644 index 00000000..efde165e Binary files /dev/null and b/images/diagrams/Test/testtreiber-externes-Modul.png differ diff --git a/images/diagrams/Test/testtreiber-externes-Modul.svg b/images/diagrams/Test/testtreiber-externes-Modul.svg new file mode 100644 index 00000000..438a3e40 --- /dev/null +++ b/images/diagrams/Test/testtreiber-externes-Modul.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/images/diagrams/Test/testtreiber-internes-Modul.png b/images/diagrams/Test/testtreiber-internes-Modul.png new file mode 100644 index 00000000..4f2aba04 Binary files /dev/null and b/images/diagrams/Test/testtreiber-internes-Modul.png differ diff --git a/images/diagrams/Test/testtreiber-internes-Modul.svg b/images/diagrams/Test/testtreiber-internes-Modul.svg new file mode 100644 index 00000000..f6d28656 --- /dev/null +++ b/images/diagrams/Test/testtreiber-internes-Modul.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/images/diagrams/Test/testumgebung-Gematik.png b/images/diagrams/Test/testumgebung-Gematik.png new file mode 100644 index 00000000..6e4e525f Binary files /dev/null and b/images/diagrams/Test/testumgebung-Gematik.png differ diff --git a/images/diagrams/Test/testumgebung-Gematik.svg b/images/diagrams/Test/testumgebung-Gematik.svg new file mode 100644 index 00000000..439a7f20 --- /dev/null +++ b/images/diagrams/Test/testumgebung-Gematik.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/images/diagrams/Test/testumgebung-Hersteller.png b/images/diagrams/Test/testumgebung-Hersteller.png new file mode 100644 index 00000000..01725dff Binary files /dev/null and b/images/diagrams/Test/testumgebung-Hersteller.png differ diff --git a/images/diagrams/Test/testumgebung-Hersteller.svg b/images/diagrams/Test/testumgebung-Hersteller.svg new file mode 100644 index 00000000..0be69f60 --- /dev/null +++ b/images/diagrams/Test/testumgebung-Hersteller.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/drawio/System_Overview.drawio b/src/drawio/System_Overview.drawio index d281f39a..050e0378 100644 --- a/src/drawio/System_Overview.drawio +++ b/src/drawio/System_Overview.drawio @@ -1,256 +1,340 @@ - + - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - + - - - - - - + - - - + + + - + - + - + - + - + - + - - - + + + - - - + + + - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - + + - - - - + - + - + - + - + - + - - + + - + - - + + - - + + - + - - + + - + - + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + diff --git a/src/drawio/TI-M_Pro/API-Messenger-Service.drawio b/src/drawio/TI-M_Pro/API-Messenger-Service.drawio new file mode 100644 index 00000000..282e3395 --- /dev/null +++ b/src/drawio/TI-M_Pro/API-Messenger-Service.drawio @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/drawio/TI-M_Pro/Schnittstellen_am_Registrierungs-Dienst.drawio b/src/drawio/TI-M_Pro/Schnittstellen_am_Registrierungs-Dienst.drawio new file mode 100644 index 00000000..fcdeea04 --- /dev/null +++ b/src/drawio/TI-M_Pro/Schnittstellen_am_Registrierungs-Dienst.drawio @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/drawio/TI-M_ePA/Berechtigung_fdv.drawio b/src/drawio/TI-M_ePA/Berechtigung_fdv.drawio new file mode 100644 index 00000000..5140cee3 --- /dev/null +++ b/src/drawio/TI-M_ePA/Berechtigung_fdv.drawio @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/drawio/TI-M_ePA/Komponentendiagramm_Client_fdv.drawio b/src/drawio/TI-M_ePA/Komponentendiagramm_Client_fdv.drawio new file mode 100644 index 00000000..83bb1ca9 --- /dev/null +++ b/src/drawio/TI-M_ePA/Komponentendiagramm_Client_fdv.drawio @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/drawio/TI-M_ePA/Komponentendiagramm_fdv.drawio b/src/drawio/TI-M_ePA/Komponentendiagramm_fdv.drawio new file mode 100644 index 00000000..aa2200f0 --- /dev/null +++ b/src/drawio/TI-M_ePA/Komponentendiagramm_fdv.drawio @@ -0,0 +1,341 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/drawio/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv.drawio b/src/drawio/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv.drawio new file mode 100644 index 00000000..55a0b657 --- /dev/null +++ b/src/drawio/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv.drawio @@ -0,0 +1,461 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/drawio/TI-M_ePA/Push_Komponeten_fdv.drawio b/src/drawio/TI-M_ePA/Push_Komponeten_fdv.drawio new file mode 100644 index 00000000..09cb3d81 --- /dev/null +++ b/src/drawio/TI-M_ePA/Push_Komponeten_fdv.drawio @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/drawio/TI-M_ePA/TI-M_Kontextabgrenzung_fdv.drawio b/src/drawio/TI-M_ePA/TI-M_Kontextabgrenzung_fdv.drawio new file mode 100644 index 00000000..5c36e92b --- /dev/null +++ b/src/drawio/TI-M_ePA/TI-M_Kontextabgrenzung_fdv.drawio @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/src/drawio/TI-M_ePA/TI-Messenger_2.0_f\303\274r_Versicherte_Verteilungssicht.drawio" "b/src/drawio/TI-M_ePA/TI-Messenger_2.0_f\303\274r_Versicherte_Verteilungssicht.drawio" new file mode 100644 index 00000000..e995ab57 --- /dev/null +++ "b/src/drawio/TI-M_ePA/TI-Messenger_2.0_f\303\274r_Versicherte_Verteilungssicht.drawio" @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/drawio/TI-Messenger-Client/Modules.drawio b/src/drawio/TI-Messenger-Client/Modules.drawio new file mode 100644 index 00000000..4fd55e7e --- /dev/null +++ b/src/drawio/TI-Messenger-Client/Modules.drawio @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/drawio/TI-Messenger-Client/System_Overview.drawio b/src/drawio/TI-Messenger-Client/System_Overview.drawio index c10c8373..3364681e 100644 --- a/src/drawio/TI-Messenger-Client/System_Overview.drawio +++ b/src/drawio/TI-Messenger-Client/System_Overview.drawio @@ -1,256 +1,308 @@ - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - + + - + - + - + - + - + - + - - + + - + - - + + - - + + - + - - + + - + - + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + diff --git a/src/drawio/TI-Messenger-Fachdienst/API-Messenger-Service.drawio b/src/drawio/TI-Messenger-Fachdienst/API-Messenger-Service.drawio index 282e3395..cf0be6c7 100644 --- a/src/drawio/TI-Messenger-Fachdienst/API-Messenger-Service.drawio +++ b/src/drawio/TI-Messenger-Fachdienst/API-Messenger-Service.drawio @@ -1,6 +1,6 @@ - + @@ -163,23 +163,6 @@ - - - - - - - - - - - - - - - - - @@ -200,36 +183,30 @@ - - - - - - - + - + - + - + - + - + diff --git a/src/drawio/TI-Messenger-Fachdienst/Pruefungen_Messenger_Proxy.drawio b/src/drawio/TI-Messenger-Fachdienst/Pruefungen_Messenger_Proxy.drawio new file mode 100644 index 00000000..beffb591 --- /dev/null +++ b/src/drawio/TI-Messenger-Fachdienst/Pruefungen_Messenger_Proxy.drawio @@ -0,0 +1,461 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/drawio/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst.drawio b/src/drawio/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst.drawio index 7b2c5875..034ed362 100644 --- a/src/drawio/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst.drawio +++ b/src/drawio/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst.drawio @@ -1,317 +1,317 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/drawio/TI-Messenger-Fachdienst/System_Overview.drawio b/src/drawio/TI-Messenger-Fachdienst/System_Overview.drawio index 85ccdc7c..f4872a2e 100644 --- a/src/drawio/TI-Messenger-Fachdienst/System_Overview.drawio +++ b/src/drawio/TI-Messenger-Fachdienst/System_Overview.drawio @@ -1,256 +1,340 @@ - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - + + - - - - + - + - + - + - + - + - - + + - + - - + + - - + + - + - - + + - + - + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + diff --git a/src/drawio/TI-Messenger-Fachdienst/chatbot.drawio b/src/drawio/TI-Messenger-Fachdienst/chatbot.drawio new file mode 100644 index 00000000..4957c9ce --- /dev/null +++ b/src/drawio/TI-Messenger-Fachdienst/chatbot.drawio @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/drawio/Test/Anschaltung der Testtreiber Clients.drawio b/src/drawio/Test/Anschaltung der Testtreiber Clients.drawio new file mode 100644 index 00000000..e403f965 --- /dev/null +++ b/src/drawio/Test/Anschaltung der Testtreiber Clients.drawio @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/drawio/Test/HerstellerInstanz.drawio b/src/drawio/Test/HerstellerInstanz.drawio new file mode 100644 index 00000000..c28cdb94 --- /dev/null +++ b/src/drawio/Test/HerstellerInstanz.drawio @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/drawio/Test/IOP Pools.drawio b/src/drawio/Test/IOP Pools.drawio new file mode 100644 index 00000000..b43ea1de --- /dev/null +++ b/src/drawio/Test/IOP Pools.drawio @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/drawio/Test/Testumgebung Basis.drawio b/src/drawio/Test/Testumgebung Basis.drawio new file mode 100644 index 00000000..5601e13c --- /dev/null +++ b/src/drawio/Test/Testumgebung Basis.drawio @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/drawio/Test/Testumgebung ePA.drawio b/src/drawio/Test/Testumgebung ePA.drawio new file mode 100644 index 00000000..fe7e6130 --- /dev/null +++ b/src/drawio/Test/Testumgebung ePA.drawio @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/drawio/Test/Zulassung TIM.drawio b/src/drawio/Test/Zulassung TIM.drawio new file mode 100644 index 00000000..9d171507 --- /dev/null +++ b/src/drawio/Test/Zulassung TIM.drawio @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/drawio/Test/nach_der_Zulassung.drawio b/src/drawio/Test/nach_der_Zulassung.drawio new file mode 100644 index 00000000..ca191b62 --- /dev/null +++ b/src/drawio/Test/nach_der_Zulassung.drawio @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/drawio/Test/testtreiber.drawio b/src/drawio/Test/testtreiber.drawio new file mode 100644 index 00000000..47d42571 --- /dev/null +++ b/src/drawio/Test/testtreiber.drawio @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/drawio/Test/testumgebung.drawio b/src/drawio/Test/testumgebung.drawio new file mode 100644 index 00000000..cf005bae --- /dev/null +++ b/src/drawio/Test/testumgebung.drawio @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/openapi/TiMessengerContactManagement.yaml b/src/openapi/TiMessengerContactManagement.yaml index 3ac5b037..eaa0aa9f 100644 --- a/src/openapi/TiMessengerContactManagement.yaml +++ b/src/openapi/TiMessengerContactManagement.yaml @@ -101,7 +101,7 @@ paths: $ref: "#/components/schemas/Contact" responses: "200": - description: "Contact setting for {mxid successfully created" + description: "Contact setting for {mxid} successfully created" content: application/json: schema: diff --git a/src/openapi/TiMessengerInformation.yaml b/src/openapi/TiMessengerInformation.yaml new file mode 100644 index 00000000..6639479c --- /dev/null +++ b/src/openapi/TiMessengerInformation.yaml @@ -0,0 +1,169 @@ +openapi: 3.0.3 +info: + title: I_TiMessengerInformation + description: | + # Overview + This is a TI-Messenger REST interface that provides Informations for the TI-Messenger Client. + # Context + ## Authentication + The TI-Messenger-Client uses a Matrix-OpenID-Token from his Messenger-Service for + authentication on all REST operations. The bearer token can be obtained from the + homeserver. (POST /_matrix/client/r0/user/{userId}/openid/request_token). + + + TI-Messenger-Client ---> Messenger-Proxy ---> Homeserver + ## REST operations + The interface provides read informations for a TI-Messenger-Client + TI-Messenger-Client ---> Messenger-Proxy + + # Information + version: 1.0.0 + ### 1.0.0 + # - initial version + contact: + name: gematik GmbH + email: software-development@gematik.de + url: "https://www.gematik.de" + license: + name: Apache 2.0 + url: "https://www.apache.org/licenses/LICENSE-2.0" + +externalDocs: + description: TI-Messenger-API + url: https://github.com/gematik/api-ti-messenger + +servers: + - url: https://localhost/tim-information/v1.0.0/ +tags: + - name: info + description: This operation returns meta data about this interface and the status of available resources + - name: contacts + description: Operations for contact management + +paths: + /: + get: + tags: + - info + description: Returns the meta data of this interface. + operationId: getInfo + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/InfoObject" + "403": + $ref: "#/components/responses/Forbidden" + default: + $ref: "#/components/responses/DefaultResponse" + + /domain/findByIk: + parameters: + - in: query + name: iknumber + description: "IK number to lookup the domain for." + required: true + schema: + type: string + get: + tags: + - lookUpDomain + description: "Returns the domain that hosts user which belong to the given ik number." + operationId: getDomain + responses: + "200": + description: "The domain hosting users for the given ik number." + content: + application/json: + schema: + type: string + description: "the domain for the given ik number" + example: "gematiker-kk.de" + "400": + $ref: "#/components/responses/BadRequest" + "404": + $ref: "#/components/responses/NotFound" + default: + $ref: "#/components/responses/DefaultResponse" + +# Descriptions of common components +components: + responses: + DefaultResponse: + description: "The default error response" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + NotFound: + description: "The specified resource was not found" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + Unauthorized: + description: "Unauthorized" + Forbidden: + description: "Forbidden - you are not allowed to do this" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + BadRequest: + description: "Bad Request" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + + schemas: + + InfoObject: + description: "" + required: + - title + - version + readOnly: true + type: object + properties: + title: + type: string + description: "Der Titel der Anwendung" + example: "Contact Management des TI-Messengers" + description: + type: string + description: "Short description of the application" + example: "Contact Management des TI-Messengers. Betreiber: " + contact: + type: string + description: "Contact information" + version: + type: string + description: "Version der implementierten TiMessengerContactManagement.yaml Schnittstelle (Version der TiMessengerContactManagement.yaml Datei)" + example: "1.0.0" + + Error: + description: "Default error object with information about the occurred error" + type: object + properties: + errorCode: + description: "a code identifying this error" + type: string + errorMessage: + description: "a readable message describing the error" + type: string + required: + - errorCode + - errorMessage + + securitySchemes: + bearerMatrixOpenIdTokenAuth: # arbitrary name for the security scheme + type: http + scheme: bearer + bearerFormat: JWT # optional, arbitrary value for documentation purposes + +# the security applies to all operations +security: + - bearerMatrixOpenIdTokenAuth: [] # use the same name as above diff --git a/src/plantuml/TI-M_Pro/UC_org_admin.puml b/src/plantuml/TI-M_Pro/UC_org_admin.puml new file mode 100644 index 00000000..4b0d9d64 --- /dev/null +++ b/src/plantuml/TI-M_Pro/UC_org_admin.puml @@ -0,0 +1,53 @@ +@startuml +/' +# TI-Messenger 1.1 +# TI-Messenger-Dienst +# Use Case Diagram +# Name: Org-Admin - Anwendungsfaelle +'/ +!pragma layout smetana + +skinparam actorStyle awesome +left to right direction +scale 6/3 + +skinparam sequence { +ArrowColor black +ArrowFontSize 17 +ActorBorderColor black +LifeLineBorderColor black +LifeLineBackgroundColor Gainsboro + +ParticipantBorderColor Motivation +ParticipantBackgroundColor Motivation +ParticipantFontName Impact +ParticipantFontSize 20 +ParticipantFontColor black +ParticipantBorderColor Black +ParticipantBackgroundColor MOTIVATION + +ActorBackgroundColor Gainsboro +ActorFontColor black +ActorFontSize 13 +ActorFontName Aapex +} + +package Rolle { + actor "Org-Admin" as oa +} + +package Anwendungsfälle { + usecase "**<>** \nAuthentisieren einer Organisation \nam TI-Messenger-Dienst" as UC1 #AliceBlue + usecase "**<>** \nBereitstellung eines Messenger-Service \nfür eine Organisation" as UC2 #AliceBlue + usecase "**<>** \nOrganisationsressourcen im \nVerzeichnisdienst hinzufügen" as UC3 +} + +oa --> UC1 +oa --> UC2 +oa --> UC3 + +note top of (oa) + z. B. Beauftragter Mitarbeiter in einer + Organisation +end note +@enduml diff --git a/src/plantuml/TI-M_ePA/TI-Messenger_OIDC_login_fdv.puml b/src/plantuml/TI-M_ePA/TI-Messenger_OIDC_login_fdv.puml new file mode 100644 index 00000000..497b767c --- /dev/null +++ b/src/plantuml/TI-M_ePA/TI-Messenger_OIDC_login_fdv.puml @@ -0,0 +1,144 @@ +@startuml "TI-Messenger_OIDC_Login" +skinparam sequenceMessageAlign direction +skinparam WrapWidth 300 +skinparam minClassWidth 150 +skinparam BoxPadding 1 +skinparam ParticipantPadding 50 +skinparam sequenceReferenceHeaderBackgroundColor palegreen +scale max 2048 width + +skinparam sequence { +ArrowColor black +ArrowFontSize 17 +ActorBorderColor black +LifeLineBorderColor black +LifeLineBackgroundColor Gainsboro + +ParticipantBorderColor Motivation +ParticipantBackgroundColor Motivation +ParticipantFontSize 20 +ParticipantFontColor black +ParticipantBorderColor Black +ParticipantBackgroundColor MOTIVATION + +ActorBackgroundColor Gainsboro +ActorFontColor black +ActorFontSize 20 +} + +autonumber + +actor us as "Versicherter" +box Endgerät #WhiteSmoke + participant app as "TI-M Client\n(Browser)" +end box +box TI-Messenger Service #WhiteSmoke + participant pr as "TI-M Proxy" + participant hs as "Matrix\nHomeserver\n(Relying party für IDP)" +end box +participant mc as "Webserver\nliefert\nTIM-Web-App aus" +participant idp as "Sektoraler\nIDP" + +||| + +us -> app: starte App + +activate app + app -> mc: Lade Matrix-Web-Client + activate mc + mc --> app --: Webanwendung + group OIDC Login + app -> hs ++: GET https://client.homeserver-tim.de/_matrix/client/v3/login + hs --> app --: 200 OK ""{"flows":[{"type":"m.login.sso","identity_providers":[""\n\ + ""{"id":"sektoraler-idp","name":"Sektoraler-IDP","icon":"mxc://..","brand":"sektoraler-idp"},""\n\ + ""{"type":"m.login.token"}]}"" + ||| + opt #LightYellow Registration + app -> hs ++: POST https://client.homeserver-tim.de/_matrix/client/v3/register\n\ + ""{"initial_device_display_name":"TIM-Web-App: Firefox auf Windows","refresh_token":true}"" + hs --> app --: 401 Unauthorized ""{"session":"...","flows":[""\n\ + ""{"stages":["m.login.recaptcha","m.login.terms","m.login.email.identity"]}],""\n\ + """params":{"m.login.recaptcha":{"public_key":"..."},""\n\ + """m.login.terms":{"policies":{"privacy_policy":{"version":"1.0","en":{"name":"Terms and Conditions",""\n\ + """url":"https://client.homeserver-tim.de/_matrix/consent?v=1.0"}}}}}}"" + ||| + end 'opt + ||| + app -> hs++: GET https://client.homeserver-tim.de/_matrix/client/v3/login/sso/redirect/sektoraler-idp + ||| + group #Linen Changed behavior because OIDC PAR is required + hs --> pr --++: 302 Redirect\n\ + ""location: https://sektoraler-idp.de/login/oauth?""\n\ + ""response_type=code&""\n\ + ""client_id=example-client-id&""\n\ + ""redirect_uri=https%3A%2F%2Fclient.homeserver-tim.de%2F_synapse%2Fclient%2Foidc%2Fcallback&""\n\ + ""scope=openid+urn:telematik:display_name+urn:telematik:given_name+urn:telematik:versicherter""\n\ + ""&state=example-state&nonce=example-nonce""\n\ + ""code_challenge=...&code_challenge_method=S256""\n\ + ""set-cookie: ...=...; ...""\n\ + ""..."" + + ||| + pr -> idp ++: POST https://sektoraler-idp.de/par\n\ + ""Content-Type: application/x-www-form-urlencoded""\n\ + ""response_type=code&client_id=example-client-id&state=example-state&""\n\ + ""redirect_uri=https%3A%2F%2Fclient.homeserver-tim.de%2F_synapse%2Fclient%2Foidc%2Fcallback""\n\ + ""&code_challenge=...&code_challenge_method=S256&""\n\ + ""scope=openid+urn:telematik:display_name+urn:telematik:given_name+urn:telematik:versicherter&"" + + idp --> pr --: 200 OK\n\ + ""Content-Type: application/json""\n\ + ""{"request_uri":"urn:example:bwc4JK-ESC0w8acc191e-Y1LTC2","expires_in": 90}"" + ||| + pr --> app --: 302 Redirect\n\ + ""location: https://sektoraler-idp.de/login/oauth/authorize? ""\n\ + ""request_uri=urn%3Aexample%3Abwc4JK-ESC0w8acc191e-Y1LTC2"" + ||| + end 'group + ||| + group #LightBlue IDP authentication + app -> idp ++: GET https://sektoraler-idp.de/login/oauth/authorize?request_uri=urn%3Aexample%3Abwc4JK-ESC0w8acc191e-Y1LTC2 + ||| + group #DarkGray Black box with example + idp --> app: Challenge + app -> us: Consent Page + us --> app: Approval + app -> idp: Response + + ||| + end 'group + ||| + idp --> app --: 302 Redirect ""location: https://client.homeserver-tim.de/_synapse/client/oidc/callback?code=example-auth-code&state=example-state"" + ||| + end 'group + ||| + app -> hs ++: GET https://client.homeserver-tim.de/_synapse/client/oidc/callback?code=example-auth-code&state=example-state\n\ + ""Cookie: ...=..."" + ||| + hs -> idp ++: POST https://sektoraler-idp.de/token-endpoint\n\ + ""Content-Type: application/x-www-form-urlencoded""\n\ + ""authorization_code=code&code_verifier=..."" + idp --> hs --: 200 OK\n\ + ""Content-Type: application/json""\n\ + ""{"id_token":"...","expires_in": 90}"" + ||| + hs --> app --: 200 OK HTML Consent Page, Zugriff TIM-Web-App auf Matrix Account\n\ + ""Continue"" + ||| + app -> mc ++: GET https://TIM-Web-App/?loginToken=example-matrix-login-token + mc --> app--: 200 OK HTML ""..."" + ||| + app -> hs ++: POST https://client.homeserver-tim.de/_matrix/client/v3/login\n\ + ""{"token":"example-matrix-login-token",""\n\ + """initial_device_display_name":"TIM-Web-App: Firefox on macOS",""\n\ + """type":"m.login.token"}"" + hs --> app --: 200 OK\n\ + ""{"user_id":"@username:homeserver-tim.de",""\n\ + """access_token":"example-matrix-access-token",""\n\ + """home_server":"homeserver-tim.de",""\n\ + """device_id":"example-device-id",""\n\ + """well_known":{"m.homeserver":{"base_url":"https://client.homeserver-tim.de/"}}}"" + ||| + end 'group + app --> us: Login successful +@enduml diff --git a/src/plantuml/TI-M_ePA/TI-Messenger_OIDC_login_fdv_simplified.puml b/src/plantuml/TI-M_ePA/TI-Messenger_OIDC_login_fdv_simplified.puml new file mode 100644 index 00000000..4fdf4aa3 --- /dev/null +++ b/src/plantuml/TI-M_ePA/TI-Messenger_OIDC_login_fdv_simplified.puml @@ -0,0 +1,129 @@ +@startuml "TI-Messenger_OIDC_Login_simplified" +skinparam sequenceMessageAlign direction +skinparam WrapWidth 300 +skinparam BoxPadding 1 +skinparam ParticipantPadding 25 +skinparam sequenceReferenceHeaderBackgroundColor palegreen +scale max 2048 width +skinparam maxMessageSize 400 + +skinparam sequence { +ArrowColor black +ArrowFontSize 17 +ActorBorderColor black +LifeLineBorderColor black +LifeLineBackgroundColor Gainsboro + +ParticipantBorderColor Motivation +ParticipantBackgroundColor Motivation +ParticipantFontSize 20 +ParticipantFontColor black +ParticipantBorderColor Black +ParticipantBackgroundColor MOTIVATION + +ActorBackgroundColor Gainsboro +ActorFontColor black +ActorFontSize 20 +} + +autonumber + +actor us as "Akteur in der\nRolle Versicherter" +box Endgerät #WhiteSmoke + participant app [ + ePA-FdV + ---- + TI-M Client + ] + participant auth [ + ePA-FdV + ---- + Authenticator-Modul + ] +end box +box TI-Messenger Service #WhiteSmoke + participant pr as "Messenger-Proxy" + participant hs as "Matrix-Homeserver\n(Relying party für IDP)" +end box +participant idp as "Sektoraler\nIDP" + +||| + +us -> app: starte App + +activate app + group OIDC Login + app -> hs ++: GET ""{homeserver_client_api_url}""/login + hs --> app --: 200 OK (:Login Types) + note right + enthalten: ID des sektoralen IDP: ""{sidp}"" + end note + ||| + opt #LightYellow Auswahl durch Akteur: Registrierungs- statt Login-Funktion + app -> hs ++: POST ""{homeserver_client_api_url}""/register (initial_device_display_name, refresh_token) + hs --> app --: 401 Unauthorized + note right + Homeserver benötigt zusätzliche Authentisierungsinformationen + end note + ||| + end + ||| + app -> hs++: GET ""{homeserver_client_api_url}""/login/sso/redirect/""{sidp}"" + ||| + group #Linen Verhaltensänderung, da der sektorale IDP OIDC PAR erfordert + hs --> pr --++: 302 Redirect (:location, :response_type, :client_id, :redirect_uri, :scope, :state, :code_challenge) + ||| + pr -> idp ++: POST ""{sektoraler_idp_url}""/par (response_type, redirect_uri, code_challenge, scope) + + idp --> pr --: 201 CREATED (:request_uri) + ||| + pr --> app --: 302 Redirect ""{sektoraler_idp_url}""/login/oauth/authorize (:request_uri) + ||| + end + ||| + group #LightBlue IDP Authentisierung mit nutzerspezifischer Authentifizierung + app -> auth ++ : Authorization Request(request_uri) + + ||| + group #DarkGray Authenticator Modul IDP-sek + auth -> idp ++: GET ""{sektoraler_idp_url}""/login/oauth/authorize (request_uri) + idp --> auth: Challenge + auth -> us: Consent Page + us --> auth: Approval + auth -> idp: Response + note left + Nutzung von Identifikationsmerkmalen, + die vom IDP vorgegeben sind + end note + idp --> auth --: 302 Redirect ""{redirect_uri}"" (:auth_code, :state) + ||| + end + ||| + auth ->app: Redirect(redirect_uri, AUTH_CODE) + ||| + end + ||| + app -> hs ++: GET ""{redirect_uri}"" (auth_code, state) + ||| + hs -> idp ++: POST ""{sektoraler_idp_url}""/token-endpoint (auth_code, code_verifier) + idp --> hs --: 200 OK (:id_token) + opt #LightYellow kein passender Benutzer-Account zum id_token vorhanden + hs -> hs: /register (initial_device_display_name, refresh_token, id_token) + note left + Benutzer-Account anlegen + end note + ||| + end + ||| + hs --> app --: 200 OK (:loginToken) + note right + HTML Consent Page, Zugriff + TIM-Web-App auf Matrix Account + end note + ||| + app -> hs ++: POST ""{homeserver_client_api_url}""/login (loginToken, initial_device_display_name) + hs --> app --: 200 OK (:user_id, :access_token, :home_server, :device_id, :well_known) + ||| + end + app --> us: Login erfolgreich +@enduml diff --git a/src/plantuml/TI-M_ePA/UC_10104_Seq_fdv.puml b/src/plantuml/TI-M_ePA/UC_10104_Seq_fdv.puml new file mode 100644 index 00000000..d6181934 --- /dev/null +++ b/src/plantuml/TI-M_ePA/UC_10104_Seq_fdv.puml @@ -0,0 +1,80 @@ +/' +# TI-Messenger 1.1 +# TI-Messenger-Dienst +# UC - 10104 +# Sequence Diagram +# Name: Einladung von Akteuren innerhalb einer Organisation +'/ + +@startuml +skinparam sequenceMessageAlign direction +skinparam minClassWidth 200 +skinparam BoxPadding 1 +skinparam sequenceReferenceHeaderBackgroundColor palegreen +scale max 2048 width + +skinparam sequence { +ArrowColor black +ArrowFontSize 17 +ActorBorderColor black +LifeLineBorderColor black +LifeLineBackgroundColor Gainsboro + +ParticipantBorderColor Motivation +ParticipantBackgroundColor Motivation +ParticipantFontName Impact +ParticipantFontSize 20 +ParticipantFontColor black +ParticipantBorderColor Black +ParticipantBackgroundColor MOTIVATION + +ActorBackgroundColor Gainsboro +ActorFontColor black +ActorFontSize 20 +ActorFontName Aapex +} + actor U1 as "Akteur - A" + participant C1 as "TI-Messenger-\nClient A" #AliceBlue + box Messenger-Service #WhiteSmoke + participant MP as "Messenger-\nProxy" + participant MH as "Matrix-\nHomeserver" + end box + participant C2 as "TI-Messenger-\nClient B" #AliceBlue + actor U2 as "Akteur - B" + +||| +note over U1, U2: \nDie Akteure sind auf demselben Messenger-Service angemeldet und im Besitz eines zugelassenen TI-Messenger-Clients.\nEin Chatraum wurde durch den Einladenen eingerichtet.\n +||| + U1->C1: Akteur B einladen + activate C1 + C1->MP: POST /_matrix/client/v3/rooms/{roomId}/invite + activate MP + ||| + MP->MP: Client-Server-Prüfungen + ||| + break #MistyRose Client-Server Prüfung ist fehlgeschlagen + MP->C1: Verbindung wird abgelehnt + end + + MP->MH: HTTP(S) Foward + activate MH + MH->MH: Invite verarbeiten + ||| + MH-->MP: Invite Request + MP->C2: HTTP(S) Forward + activate C2 + C2->U2: Einladung anzeigen + U2-->C2: Einladung annehmen + C2-->MP: Einladung angenommen + deactivate C2 + ||| + MP->MH: HTTP(S) Forward + MH-->MP: Status + deactivate MH + MP-->C1: Status + deactivate MP + C1-->U1: Nutzer in den \nRaum hinzugefügt + deactivate C1 + ||| + ||| +@enduml diff --git a/src/plantuml/TI-M_ePA/UC_10233_Seq.puml b/src/plantuml/TI-M_ePA/UC_10233_Seq.puml new file mode 100644 index 00000000..2d237b80 --- /dev/null +++ b/src/plantuml/TI-M_ePA/UC_10233_Seq.puml @@ -0,0 +1,57 @@ +/' +# TI-Messenger 1.1 +# TI-Messenger-Dienst +# UC - XXX +# Sequence Diagram +# Name: Versichertenzugehörigkeit prüfen +'/ + +@startuml +skinparam sequenceMessageAlign direction +skinparam minClassWidth 200 +skinparam BoxPadding 1 +skinparam sequenceReferenceHeaderBackgroundColor palegreen +scale max 2048 width + +skinparam sequence { +ArrowColor black +ArrowFontSize 17 +ActorBorderColor black +LifeLineBorderColor black +LifeLineBackgroundColor Gainsboro + +ParticipantBorderColor Motivation +ParticipantBackgroundColor Motivation +ParticipantFontSize 20 +ParticipantFontColor black +ParticipantBorderColor Black +ParticipantBackgroundColor MOTIVATION + +ActorBackgroundColor Gainsboro +ActorFontColor black +ActorFontSize 20 + +} + +autonumber + + box Messenger-Service\n#WhiteSmoke + participant MP as "Messenger-Proxy" + participant MH as "Matrix-Homeserver" + end box + + +||| +Activate MP +MP->MP: prüfe den Sender und den Empfänger des Invite-Event\n auf Zugehörigkeit zu einer Versichertendomain +||| +break #MistyRose Sender und Empfänger sind beide Versicherte +MP->MP: HTTP 403 Forbidden +end + +MP->MH: HTTP(S) Forward +Activate MH +MH-->MP: Status +Deactivate MH + +@enduml diff --git a/src/plantuml/TI-M_ePA/UC_Approvel_List_Seq_fdv.puml b/src/plantuml/TI-M_ePA/UC_Approvel_List_Seq_fdv.puml new file mode 100644 index 00000000..4065a650 --- /dev/null +++ b/src/plantuml/TI-M_ePA/UC_Approvel_List_Seq_fdv.puml @@ -0,0 +1,112 @@ +/' +# TI-Messenger für Versicherte +# TI-Messenger-Dienst +# Sequence Diagram +# Name: Stufen der Berechtigungsprüfung ePA +'/ + +@startuml +skinparam sequenceMessageAlign direction +skinparam minClassWidth 200 +skinparam BoxPadding 15 +skinparam sequenceReferenceHeaderBackgroundColor palegreen +scale max 2048 width + +skinparam sequence { + ArrowColor black + ArrowFontSize 17 + ActorBorderColor black + LifeLineBorderColor black + LifeLineBackgroundColor Gainsboro + + ParticipantBorderColor Motivation + ParticipantBackgroundColor Motivation + + ParticipantFontSize 20 + ParticipantFontColor black + ParticipantBorderColor Black + ParticipantBackgroundColor MOTIVATION + + ActorBackgroundColor Gainsboro + ActorFontColor black + ActorFontSize 20 + ActorFontName Aapex +} +box Messenger-Service\ndes einladenden Akteurs\n #WhiteSmoke +participant MS as "Messenger-Service" +end box +box Messenger-Service\ndes eingeladenen Akteurs\n #WhiteSmoke +participant MP2 as "Messenger-\nProxy" +participant MH2 as "Matrix-\nHomeserver" +participant PG as "Push-\nDienst" +end box +box Messenger Client\ndes eingeladenen Akteurs\n #WhiteSmoke +participant MC2 as "Messenger-Client" +end box +MS->MP2:Matrix-Invite-Event +activate MP2 +activate MS +||| +== Berechtigungskonzept - Stufe 1 == +||| +break #MistyRose Matrix-Domain nicht in der Föderation enthalten + MP2->MP2:Abbruch, \nVerbindung wird \nabgelehnt + MP2-->MS: HTTP 403 + ||| + end +break #MistyRose Einladender und der Eingeladene sind beide Versicherte + MP2->MP2:Abbruch, \nVerbindung wird \nabgelehnt + MP2->MS: HTTP 403 + ||| + end + + MP2->MH2: HTTP(S) Forward + activate MH2 + MH2-->MH2: Invite-Event \nverarbeiten + MH2->PG++: Push Notification + PG->MC2--: Push Notification + activate MC2 + MH2-->MP2: Response + deactivate MH2 + MP2-->MS: Response + deactivate MP2 + deactivate MS + +== Berechtigungskonzept - Stufe 2 == + MC2->MP2: Abfrage neuer Events + activate MP2 + MP2->MH2: HTTP(S) Forward + activate MH2 + MH2-->MP2: Bereitstellung neuer Events + deactivate MH2 + MP2-->MC2: HTTP(S) Forward + deactivate MP2 + + MC2->MC2: Extrahieren der Invite-Events + MC2->MC2: Prüfung, ob die Einladung erlaubt ist + + break #MistyRose Der Akteur hat "allow all" konfiguriert und der einladende Akteur\n ist auf der BlockedUser-Liste (Direkt oder als Teil einer Gruppe/Domain) + ||| + MC2->MC2:Einladung ist abzulehnen + ||| + end + + break #MistyRose Der Akteur hat "block all" konfiguriert und der einladende Akteur\n ist nicht auf der AllowedUser-Liste (Direkt oder als Teil einer Gruppe/Domain) + ||| + MC2->MC2:Einladung ist abzulehnen + ||| + end + + +||| +MC2-->MP2: Ergebnis der Einladungsprüfung +deactivate MC2 +activate MP2 +MP2->MH2: HTTP(S) Forward +activate MH2 +MH2-->MP2: Ergebnis der Einladungsprüfung +deactivate MH2 +MP2-->MS: HTTP(S) Forward +deactivate MP2 +||| +@enduml \ No newline at end of file diff --git a/src/plantuml/TI-M_ePA/push_notifications_fdv_delivery.puml b/src/plantuml/TI-M_ePA/push_notifications_fdv_delivery.puml new file mode 100644 index 00000000..cfa4c318 --- /dev/null +++ b/src/plantuml/TI-M_ePA/push_notifications_fdv_delivery.puml @@ -0,0 +1,59 @@ +@startuml +skinparam sequenceMessageAlign direction +skinparam minClassWidth 200 +skinparam BoxPadding 1 +skinparam sequenceReferenceHeaderBackgroundColor palegreen +scale max 2048 width +skinparam maxMessageSize 300 + +skinparam sequence { +ArrowColor black +ArrowFontSize 17 +ActorBorderColor black +LifeLineBorderColor black +LifeLineBackgroundColor Gainsboro + +ParticipantBorderColor Motivation +ParticipantBackgroundColor Motivation +ParticipantFontSize 20 +ParticipantFontColor black +ParticipantBorderColor Black +ParticipantBackgroundColor MOTIVATION + +ActorBackgroundColor Gainsboro +ActorFontColor black +ActorFontSize 20 +} + +autonumber + + actor v as "Versicherter" + participant fdv [ + Frontend des Versicherten + ---- + Inhaber eines DeviceTokens + ] + participant pa as "Push-Anbieter" + participant pg as "Push-Gateway" + participant fd as "Fachdienst" + +activate fd +fd->pg: Benachrichtigung \nfür DeviceToken(EventID) +activate pg +pg->pa: Benachrichtigung \nfür DeviceToken(EventID, SenderID) +activate pa +pa-->pg: Response +pg-->fd: Response +deactivate pg +pa->fdv: Benachrichtigung an Empfänger(EventID, SenderID) +deactivate pa +activate fdv +fdv->fdv: ermittle Fachdienst(SenderID) +fdv->fd: Abfrage der Daten zu Event(EventID) +fd-->fdv: Verschlüsselte Benachrichtigungsinhalte +deactivate fd +fdv->fdv:Entschlüssele \n(Verschlüsselte Benachrichtigungsinhalte) +fdv->fdv:erzeuge Anwenderbenachrichtigung mit\n den entschlüsselten Inhalten +fdv->v:Zeige Benachrichtigung + +@enduml diff --git a/src/plantuml/TI-M_ePA/push_notifications_fdv_registration.puml b/src/plantuml/TI-M_ePA/push_notifications_fdv_registration.puml new file mode 100644 index 00000000..e1e2d64e --- /dev/null +++ b/src/plantuml/TI-M_ePA/push_notifications_fdv_registration.puml @@ -0,0 +1,52 @@ +@startuml +skinparam sequenceMessageAlign direction +skinparam minClassWidth 200 +skinparam BoxPadding 1 +skinparam sequenceReferenceHeaderBackgroundColor palegreen +scale max 2048 width +skinparam maxMessageSize 450 + +skinparam sequence { +ArrowColor black +ArrowFontSize 17 +ActorBorderColor black +LifeLineBorderColor black +LifeLineBackgroundColor Gainsboro + +ParticipantBorderColor Motivation +ParticipantBackgroundColor Motivation +ParticipantFontSize 20 +ParticipantFontColor black +ParticipantBorderColor Black +ParticipantBackgroundColor MOTIVATION + +ActorBackgroundColor Gainsboro +ActorFontColor black +ActorFontSize 20 +} +autonumber + +actor v as "Versicherter" +participant fdv as "Frontend des Versicherten" +'box Messenger-Service\n#WhiteSmoke +participant pa as "Push-Anbieter" +participant pg as "Push-Gateway" +participant fd as "Fachdienst" +'end box + +||| + activate fd + v->fdv: installiert FdV auf dem Smartphone + activate fdv + fdv->pa: registriert sich beim Push-Anbieter(SenderID, APIKey, AppID) + activate pa + pa-->fdv: eindeutiges DeviceToken für die app Instanz + deactivate pa + fdv->fdv: speichere \n DeviceToken + fdv->fd: konfiguriere zu verwendendes Gateway(Gateway-Information, DeviceToken) + fd-->fdv: Konfiguration übernommen +||| + + deactivate fd + deactivate fdv +@enduml diff --git a/src/plantuml/TI-Messenger-Client/Berechtigungen_setzen.puml b/src/plantuml/TI-Messenger-Client/Berechtigungen_setzen.puml new file mode 100644 index 00000000..fca9ff2e --- /dev/null +++ b/src/plantuml/TI-Messenger-Client/Berechtigungen_setzen.puml @@ -0,0 +1,30 @@ +@startuml +title Setzen von Berechtigungen im Client +skinparam ConditionEndStyle hline +start +:Client starten; +:Berechtigungen einrichten; + +if ("Allow all" or "Block all") then (Allow all) + if(Beschränkungen einrichten) then (Ja) + if(BlockedUser-Liste bearbeiten) then (Hinzufügen) + :User/Gruppe/Domain hinzufügen; + else (Entfernen) + :User/Gruppe/Domain entfernen; + endif + else(Nein) + endif +else (Block all) + if(Erlaubnisse einrichten) then (Ja) + if(AllowedUser-Liste bearbeiten) then (Hinzufügen) + :User/Gruppe/Domain hinzufügen; + else (Entfernen) + :User/Gruppe/Domain entfernen; + endif + else(Nein) + endif +endif +:Konfiguration auf dem Server sichern; +stop + +@enduml diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.puml index 5182bc5a..aac0f15e 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.puml @@ -12,6 +12,7 @@ skinparam minClassWidth 200 skinparam BoxPadding 1 skinparam sequenceReferenceHeaderBackgroundColor palegreen scale max 2048 width +autonumber skinparam sequence { ArrowColor black @@ -22,18 +23,19 @@ LifeLineBackgroundColor Gainsboro ParticipantBorderColor Motivation ParticipantBackgroundColor Motivation -ParticipantFontName Impact ParticipantFontSize 20 ParticipantFontColor black ParticipantBorderColor Black ParticipantBackgroundColor MOTIVATION + + ActorBackgroundColor Gainsboro ActorFontColor black ActorFontSize 20 ActorFontName Aapex } - actor U as "Akteur in der Rolle\nUser / User-HBA" + actor U as "Akteur in der Rolle\nUser" participant C as "TI-Messenger-Client" box Messenger-Service #WhiteSmoke participant MP as "Messenger Proxy" diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.puml index 95e2e872..81fef36a 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.puml @@ -12,6 +12,7 @@ skinparam minClassWidth 200 skinparam BoxPadding 5 skinparam sequenceReferenceHeaderBackgroundColor palegreen scale max 2048 width +autonumber skinparam sequence { ArrowColor black @@ -27,6 +28,8 @@ ParticipantFontColor black ParticipantBorderColor Black ParticipantBackgroundColor MOTIVATION + + ActorBackgroundColor Gainsboro ActorFontColor black ActorFontSize 20 diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.puml index 31ac0ea6..fdb9efff 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.puml @@ -1,8 +1,6 @@ /' -# TI-Messenger 1.1 # TI-Messenger-Dienst # UC - 10061 -# Sequence Diagram # Name: Einladung von Akteuren außerhalb einer Organisation '/ @@ -11,6 +9,8 @@ skinparam sequenceMessageAlign direction skinparam minClassWidth 200 skinparam BoxPadding 15 skinparam sequenceReferenceHeaderBackgroundColor palegreen +skinparam sequenceReferenceBackgroundColor Beige + scale max 2048 width skinparam sequence { @@ -31,28 +31,28 @@ ActorBackgroundColor Gainsboro ActorFontColor black ActorFontSize 20 } - actor U1 as "\nAkteur - A in der Rolle\nUser / User-HBA\n" + actor U1 as "\nAkteur A \nin der Rolle User" #AliceBlue participant C1 as "TI-Messenger-\nClient" #AliceBlue box Messenger-Service A #WhiteSmoke participant MP1 as "Messenger-\nProxy" participant MH1 as "Matrix-\nHomeserver" end box box Messenger-Service B #WhiteSmoke - participant MP2 as "Messenger-\nProxy" - participant MH2 as "Matrix-\nHomeserver" - participant PG2 as "Push-\nGateway" + participant MP2 as "Messenger-\nProxy" + participant MH2 as "Matrix-\nHomeserver" + participant PG2 as "Push-\nGateway" end box participant C2 as "TI-Messenger-\nClient" #TECHNOLOGY - actor U2 as "\nAkteur - B in der Rolle\nUser / User-HBA\n" + actor U2 as "\nAkteur B \nin der Rolle User" #TECHNOLOGY ||| note over U1, MH1: \nDer Akteur A ist erfolgreich beim Messenger Service A angemeldet\n note over U2, MP2: \nDer Akteur B ist erfolgreich beim Messenger Service B angemeldet\n ||| - alt#LightGrey #AliceBlue Suche über VZD-FHIR-Directory + alt#LightGrey #AliceBlue Suche über VZD-FHIR-Directory ||| - ref over U1, MH1 : Anhang B - Einträge im VZD-FHIR-Directory suchen\n + ref over U1, MH1 : Einträge im VZD-FHIR-Directory suchen\n ||| else Direktaustausch über QR-Code Scan @@ -116,8 +116,7 @@ note over U2, MP2: \nDer Akteur B ist erfolgreich beim Messenger Servic ||| C1->MP1: POST /_matrix/client/r0/\nrooms/{roomId}/invite ||| - ref over MP1, MP1: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n - note right: Stufe 1 - Prüfung gemäß \nClient-Server Kommunikation + ref over MP1, MP1: Berechtigungsprüfung\n ||| break#LightGrey #MistyRose Abbruch ||| @@ -134,14 +133,12 @@ note over U2, MP2: \nDer Akteur B ist erfolgreich beim Messenger Servic MH1->MP1: POST /_matrix/federation/v1\n/invite/{roomId}/{eventId} deactivate MH1 ||| - ref over MP1, MP1: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n - note left: Stufe 1 - Prüfung gemäß \nServer-Server Kommunikation + ref over MP1, MP1: Berechtigungsprüfung\n ||| MP1->MP2: HTTP(S) Forward - note right: Stufe 1 - Prüfung gemäß \nServer-Server Kommunikation ||| activate MP2 - ref over MP2, MP2: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n + ref over MP2, MP2: Berechtigungsprüfung\n ||| break#LightGrey #MistyRose Abbruch @@ -153,9 +150,6 @@ note over U2, MP2: \nDer Akteur B ist erfolgreich beim Messenger Servic C1-->U1: Einladung nicht \nerfolgreich ||| end - - ||| - ref over MP2, MH2 : Anhang B - Stufen der Berechtigungsprüfung\n Stufe 2 und 3\n ||| MP2->MH2: HTTP(S) Forward activate MH2 @@ -177,7 +171,6 @@ note over U2, MP2: \nDer Akteur B ist erfolgreich beim Messenger Servic C2->U2: Einladung anzeigen U2-->C2: Einladung bestätigen C2->MP2: commit - MP2->MP2: TLS Terminierung MP2-->MH2: HTTP(S) Forward MH2-->MH2: Invite auslösen MH2-->MP2: Status diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.puml index 35ae61b1..c5bd4b99 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.puml @@ -1,8 +1,6 @@ /' -# TI-Messenger 1.1 # TI-Messenger-Dienst # UC - 10062 -# Sequence Diagram # Name: Austausch von Events zwischen Akteuren außerhalb einer Organisation '/ @@ -11,6 +9,7 @@ skinparam sequenceMessageAlign direction skinparam minClassWidth 200 skinparam BoxPadding 15 skinparam sequenceReferenceHeaderBackgroundColor palegreen +skinparam sequenceReferenceBackgroundColor Beige scale max 2048 width skinparam sequence { @@ -22,7 +21,6 @@ LifeLineBackgroundColor Gainsboro ParticipantBorderColor Motivation ParticipantBackgroundColor Motivation -ParticipantFontName Impact ParticipantFontSize 20 ParticipantFontColor black ParticipantBorderColor Black @@ -31,9 +29,11 @@ ParticipantBackgroundColor MOTIVATION ActorBackgroundColor Gainsboro ActorFontColor black ActorFontSize 20 -ActorFontName Aapex } - actor U1 as "\nAkteur - A in der Rolle\nUser / User-HBA\n" + +autonumber + + actor U1 as "\nAkteur A \nin der Rolle User" #AliceBlue participant C1 as "TI-Messenger-\nClient" #AliceBlue box Messenger-Service A #WhiteSmoke participant MP1 as "Messenger-\nProxy" @@ -45,10 +45,11 @@ ActorFontName Aapex participant PG2 as "Push-\nGateway" end box participant C2 as "TI-Messenger-\nClient" #TECHNOLOGY - actor U2 as "\nAkteur - B in der Rolle\nUser / User-HBA\n" + actor U2 as "\nAkteur B \nin der Rolle User" #TECHNOLOGY ||| -note over U1, U2: \nDie Akteure sind auf dem selben Messenger-Service angemeldet und im Besitz eines zugelassenen TI-Messenger-Clients.\nEbenfalls sind beide Akteure einem gemeinsamen Raum beigetreten.\n +note over U1, MH1: \nDer Akteur A ist erfolgreich beim Messenger Service A angemeldet\n +note over U2, MP2: \nDer Akteur B ist erfolgreich beim Messenger Service B angemeldet\n ||| U1->C1: Akteur A löst\nMatrix-Event aus @@ -62,24 +63,20 @@ note over U1, U2: \nDie Akteure sind auf dem selben Messenger-Service a MH1->MP1: Matrix-Request deactivate MH1 ||| - ref over MP1, MP1: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n - note left: Stufe 1 - Prüfung gemäß \nServer-Server Kommunikation + ref over MP1, MP1: Berechtigungsprüfung\n ||| MP1-[#red]>MP2: HTTP(S) Forward activate MP2 ||| - ref over MP2, MP2: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n - note right: Stufe 1 - Prüfung gemäß \nServer-Server Kommunikation + ref over MP2, MP2: Berechtigungsprüfung\n ||| - MP2-[#red]>MH2: HTTP(S) Foward + MP2-[#red]>MH2: HTTP(S) Forward ||| activate MH2 MH2->MH2: Event \nverarbeiten ||| - - opt#LightGrey #AliceBlue Pushbenachrichtigung - ||| + opt#LightGrey #AliceBlue Pushbenachrichtigung MH2->PG2: POST /_matrix/push/notify activate PG2 PG2->C2: Notification @@ -89,14 +86,14 @@ note over U1, U2: \nDie Akteure sind auf dem selben Messenger-Service a end ||| - MH2->MP2: Matrix-Request \nan Client-B) + MH2->MP2: Matrix-Request \nan Client B MP2->C2: HTTP(S) Forward activate C2 #TECHNOLOGY C2->C2: Event verarbeiten C2-->MP2: Status ||| - MP2-->MH2: HTTP(S) Forward \n(Status Client-B) + MP2-->MH2: HTTP(S) Forward \n(Status Client B) MH2--[#red]>MP2: Status (Matrix-Request) deactivate MH2 MP2-->C2: HTTP(S) Forward diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.puml index 159a8e06..207c0c81 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.puml @@ -1,12 +1,8 @@ /' -# TI-Messenger 1.1 -# TI-Messenger-Dienst # UC - 10063 -# Sequence Diagram # Name: Austausch von Events zwischen Akteuren innerhalb einer Organisation '/ - -@startuml +@startuml skinparam sequenceMessageAlign direction skinparam minClassWidth 200 skinparam BoxPadding 1 @@ -22,7 +18,6 @@ LifeLineBackgroundColor Gainsboro ParticipantBorderColor Motivation ParticipantBackgroundColor Motivation -ParticipantFontName Impact ParticipantFontSize 20 ParticipantFontColor black ParticipantBorderColor Black @@ -31,9 +26,8 @@ ParticipantBackgroundColor MOTIVATION ActorBackgroundColor Gainsboro ActorFontColor black ActorFontSize 20 -ActorFontName Aapex } - actor U1 as "Akteur - A in der Rolle\nUser / User-HBA" + actor U1 as "Akteur A in der Rolle\nUser" participant C1 as "TI-Messenger-\nClient A" #AliceBlue box Messenger-Service #WhiteSmoke participant MP as "Messenger-\nProxy" @@ -41,23 +35,24 @@ ActorFontName Aapex participant PG as "Push-Gateway" end box participant C2 as "TI-Messenger-\nClient B" #TECHNOLOGY - actor U2 as "Akteur - B in der Rolle\nUser / User-HBA" - + actor U2 as "Akteur B in der Rolle\nUser" + +autonumber + ||| note over U1, U2: \nDie Akteure sind auf dem selben Messenger-Service angemeldet und im Besitz eines zugelassenen TI-Messenger-Clients.\nEbenfalls sind beide Akteure einem gemeinsamen Raum beigetreten.\n ||| - U1->C1: Akteur A löst \nMatrix-Event aus activate C1 #AliceBlue - C1-[#red]>MP: Matrix-Request + C1->MP: Matrix-Request activate MP - MP-[#red]>MH: HTTP(S) Foward + MP->MH: HTTP(S) Forward activate MH MH->MH: Event \nverarbeiten ||| - opt#LightGrey #AliceBlue Pushbenachrichtigung + opt#LightGrey #AliceBlue Push-Benachrichtigung ||| MH->PG: POST /_matrix/push/notify activate PG @@ -75,7 +70,7 @@ note over U1, U2: \nDie Akteure sind auf dem selben Messenger-Service a C2-->MP: Status MP-->MH: HTTP(S) Forward \n(Status Client-B) ||| - MH-[#red]->MP: Status (Matrix-Request) + MH-->MP: Matrix-Request Status deactivate MH ||| MP-->C2: HTTP(S) Forward diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.puml index e6ffe320..66030546 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.puml @@ -22,16 +22,11 @@ LifeLineBackgroundColor Gainsboro ParticipantBorderColor Motivation ParticipantBackgroundColor Motivation -'ParticipantFontName Impact ParticipantFontSize 20 ParticipantFontColor black ParticipantBorderColor Black ParticipantBackgroundColor MOTIVATION -ActorBackgroundColor Gainsboro -ActorFontColor black -ActorFontSize 20 -'ActorFontName Aapex } autonumber @@ -60,7 +55,7 @@ alt#LightGrey Matrix-Domain ist in der Föderationsliste enthalten ODE else Matrix-Domain ist nicht in der Föderationsliste enthalten ||| - ref over MP, VZD: **Anhang B** - Aktualisierung der Föderationsliste\n + ref over MP, VZD: Aktualisierung der Föderationsliste\n ||| MP->MP: prüfe ob Matrix-Domain \nder MXID \nin der **aktualisierten** \nFöderationsliste vorhanden ist ||| diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.puml index 095ea29f..ed0c6006 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.puml @@ -1,8 +1,5 @@ /' -# TI-Messenger 1.1 -# TI-Messenger-Dienst # UC - 10104 -# Sequence Diagram # Name: Einladung von Akteuren innerhalb einer Organisation '/ @@ -22,7 +19,6 @@ LifeLineBackgroundColor Gainsboro ParticipantBorderColor Motivation ParticipantBackgroundColor Motivation -ParticipantFontName Impact ParticipantFontSize 20 ParticipantFontColor black ParticipantBorderColor Black @@ -31,9 +27,10 @@ ParticipantBackgroundColor MOTIVATION ActorBackgroundColor Gainsboro ActorFontColor black ActorFontSize 20 -ActorFontName Aapex } - actor U1 as "Akteur - A in der Rolle\nUser / User-HBA" +autonumber + + actor U1 as "Akteur - A in der Rolle\nUser" participant C1 as "TI-Messenger-\nClient A" #AliceBlue box Messenger-Service #WhiteSmoke participant MP as "Messenger-\nProxy" @@ -41,7 +38,7 @@ ActorFontName Aapex participant PG as "Push-Gateway" end box participant C2 as "TI-Messenger-\nClient B"#TECHNOLOGY - actor U2 as "Akteur - B in der Rolle\nUser / User-HBA" + actor U2 as "Akteur - B in der Rolle\nUser" ||| note over U1, U2: \nDie Akteure sind auf dem selben Messenger-Service angemeldet und im Besitz eines zugelassenen TI-Messenger-Clients.\nEin Chatraum wurde durch den Einladenen eingerichtet.\n @@ -50,10 +47,9 @@ note over U1, U2: \nDie Akteure sind auf dem selben Messenger-Service a opt#LightGrey #AliceBlue Akteur suchen ||| U1->C1: Suche Akteur B - activate C1 #AliceBlue + activate C1 C1->MP: POST /_matrix/client/\nuser_directory/search activate MP - MP->MP: TLS-Terminierung MP->MH: HTTP(S) Forward activate MH MH-->MH: Nutzerverzeichnis \ndurchsuchen @@ -68,54 +64,58 @@ note over U1, U2: \nDie Akteure sind auf dem selben Messenger-Service a C1->MP: POST /_matrix/client/r0/rooms/\n{roomId}/invite (roomId) ||| - ref over MP, MP: **AF_10064** - Föderationszugehörigkeit eines Messenger-Service prüfen\n + ref over MP, MH: Berechtigungsprüfung\n ||| alt#LightGrey #AliceBlue Matrix-Domain nicht in der Föderation enthalten ||| MP-->C1: HTTP 401 \nUnauthorized - ||| - C1-->C1: Abmeldung der Session - ||| - C1-->U1: Anmeldung nicht \nerfolgreich - ||| + C1-->U1: Einladung nicht \nerfolgreich + ||| + else Matrix-Domain in der Föderation enthalten - MP->MH: HTTP(S) Foward + MP->MH: HTTP(S) Forward activate MH MH->MH: Invite verarbeiten + MH-->C1: HTTP 200 ||| - opt#LightGrey #LightBlue Pushbenachrichtigung + opt#LightGrey #LightBlue Push-Benachrichtigung ||| MH->PG: POST /_matrix/push/notify activate PG PG->C2: Notification + activate C2 PG-->MH: Status deactivate PG ||| end ||| - MH->MP: Invite Request - MP->C2: HTTP(S) Forward - activate C2 #TECHNOLOGY + + C2->MP: Sync Request + MP->MH: HTTP(S) Forward + MH-->MP: Sync Response + MP-->C2: HTTP(S) Forward + C2->U2: Einladung anzeigen U2-->C2: Einladung bestätigen - C2->MP: commit + C2->MP: join ||| - MP->MP: TLS Terminierung MP-->MH: HTTP(S) Forward - MH-->MH: Invite auslösen - MH-->MP: Status - deactivate MH - MP-->C1: Status - C1-->U1: Nutzer in den \nRaum hinzugefügt - deactivate C1 - MP-->C2: Status - deactivate MP + MH->MH: join verarbeiten + MH-->MP: Room ID + MP-->C2: HTTP(S) Forward C2-->U2: Nutzer ist dem \nRaum beigetreten - deactivate C2 - + deactivate C2 + C1->MP: Sync Request + MP->MH: HTTP(S) Forward + MH-->MP: Sync Response + deactivate MH + MP-->C1: HTTP(S) Forward + deactivate MP + C1-->U1: Akteur B ist dem Raum\nRaum beigetreten + deactivate C1 ||| end ||| diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10235_Seq.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10235_Seq.puml new file mode 100644 index 00000000..759e7cf8 --- /dev/null +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10235_Seq.puml @@ -0,0 +1,108 @@ +@startuml "Einträge im VZD-FHIR-Directory suchen" +skinparam sequenceMessageAlign direction +skinparam minClassWidth 200 +skinparam BoxPadding 1 +skinparam sequenceReferenceHeaderBackgroundColor palegreen +skinparam sequenceReferenceBackgroundColor Beige +scale max 2048 width + +skinparam sequence { +ArrowColor black +ArrowFontSize 17 +ActorBorderColor black +LifeLineBorderColor black +LifeLineBackgroundColor Gainsboro + +ParticipantBorderColor Motivation +ParticipantBackgroundColor Motivation +ParticipantFontSize 20 +ParticipantFontColor black +ParticipantBorderColor Black +ParticipantBackgroundColor MOTIVATION + +ActorBackgroundColor Gainsboro +ActorFontColor black +ActorFontSize 20 +} + +autonumber + +actor U as "Akteur in der Rolle\nUser" +participant cl as "TI-Messenger-Client" +participant mp as "Messenger Proxy" +participant hs as "Matrix-Homeserver" +box VZD-FHIR-Directory #WhiteSmoke + participant fp as "FHIR-Proxy" + participant au as "Auth-Service" + participant fd as "FHIR-Directory" +end box + +||| +note over U, hs: \nDer Akteur ist erfolgreich beim Messenger-Service angemeldet\n +||| +activate cl +U->cl:Suchparameter für \nFHIR-Ressourcen \n eingeben +||| +group#LightGrey Prüfung/Erhalt search-accesstoken + ||| + note over U + dieser Akteur entspricht + dem "Nutzer" im folgenden + referenzierten Anwendungsfall + end note + ref over U, cl, mp, hs, fp, au, fd + gemSpec_VZD_FHIR_Directory#AF_10036-01 + ||| + end ref + ||| +end group + +alt#LightGrey gültiges search-accesstoken erhalten +||| + alt#LightGrey #AliceBlue HealthcareService-Einträge werden gesucht + ||| + cl->fp: GET /search/HealthcareService/?organization.active=true&... (search-accesstoken) + note left + Finde Datensatz für TelematikID + end note + activate fp + fp->fp: prüfe search-accesstoken + ||| + fp->fd: GET /search/HealthcareService/?organization.active=true&... + activate fd + fd-->fp: HTTP 200 (:Suchergebnis FHIR-Bundle) + deactivate fd + fp-->cl: HTTP 200 (:Suchergebnis FHIR-Bundle) + deactivate fp + cl-->U: Suchergebnis + ||| + else PractitionerRole-Einträge werden gesucht + ||| + cl->fp: GET /search/PractitionerRole/?practitioner.active=true&... (search-accesstoken) + note left + Finde Datensatz für MXID + end note + activate fp + fp->fp: prüfe search-accesstoken + ||| + fp->fd: GET /search/PractitionerRole/?practitioner.active=true&... + activate fd + fd-->fp: HTTP 200 (:Suchergebnis FHIR-Bundle) + deactivate fd + fp-->cl: HTTP 200 (:Suchergebnis FHIR-Bundle) + deactivate fp + cl-->U: Suchergebnis + ||| + end +||| +else kein gültiges search-accesstoken + break#LightGrey #MistyRose + cl->fp++: GET /search/.../?... (search-accesstoken) + fp-->cl--: HTTP 401 + cl-->U: Fehlermeldung + ||| + end +||| +end + +@enduml diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.puml index 7dd27031..76f0167d 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.puml @@ -1,8 +1,8 @@ -/' -# TI-Messenger 1.1 +/' +# TI-Messenger für Versicherte # TI-Messenger-Dienst # Sequence Diagram -# Name: Stufen der Berechtigungsprüfung +# Name: Stufen der Berechtigungsprüfung ePA '/ @startuml @@ -13,155 +13,96 @@ skinparam sequenceReferenceHeaderBackgroundColor palegreen scale max 2048 width skinparam sequence { -ArrowColor black -ArrowFontSize 17 -ActorBorderColor black -LifeLineBorderColor black -LifeLineBackgroundColor Gainsboro - -ParticipantBorderColor Motivation -ParticipantBackgroundColor Motivation -ParticipantFontName Impact -ParticipantFontSize 20 -ParticipantFontColor black -ParticipantBorderColor Black -ParticipantBackgroundColor MOTIVATION - -ActorBackgroundColor Gainsboro -ActorFontColor black -ActorFontSize 20 -ActorFontName Aapex + ArrowColor black + ArrowFontSize 17 + ActorBorderColor black + LifeLineBorderColor black + LifeLineBackgroundColor Gainsboro + + ParticipantBorderColor Motivation + ParticipantBackgroundColor Motivation + + ParticipantFontSize 20 + ParticipantFontColor black + ParticipantBorderColor Black + ParticipantBackgroundColor MOTIVATION + + ActorBackgroundColor Gainsboro + ActorFontColor black + ActorFontSize 20 + ActorFontName Aapex } - participant C as "TI-Messenger-\nClient" - box Messenger-Service\n #WhiteSmoke - participant MP as "Messenger-\nProxy" - participant MH as "Matrix-\nHomeserver" - end box - box Messenger-Service\n #WhiteSmoke - participant MP2 as "Messenger-\nProxy" - participant RD2 as "Registrierungs-\nDienst" - participant MH2 as "Matrix-\nHomeserver" - end box - participant VZD as "VZD-FHIR-\nDirectory" - +box Messenger-Service\ndes einladenden Akteurs\n #WhiteSmoke +participant MS as "Messenger-Service" +end box +box Messenger-Service\ndes eingeladenen Akteurs\n #WhiteSmoke +participant MP2 as "Messenger-\nProxy" +participant MH2 as "Matrix-\nHomeserver" +participant PG as "Push-\nDienst" +end box +box Messenger Client\ndes eingeladenen Akteurs\n #WhiteSmoke +participant MC2 as "Messenger-Client" +end box +MS->MP2:Matrix-Invite-Event +activate MP2 +activate MS ||| -C->MP: Invite-Event - activate MP #LIGHTGREEN - -== Berechtigungskonzept - Stufe 1 == +== Berechtigungskonzept - Stufe 1 == +||| +break #MistyRose Matrix-Domain nicht in der Föderation enthalten + MP2->MP2:Abbruch, \nVerbindung wird \nabgelehnt + MP2-->MS: HTTP 403 + ||| + end + + MP2->MH2: HTTP(S) Forward + activate MH2 + MH2-->MH2: Invite-Event \nverarbeiten + MH2->PG++: Push Notification + PG->MC2--: Push Notification + activate MC2 + MH2-->MP2: Response + deactivate MH2 + MP2-->MS: Response + deactivate MP2 + deactivate MS + +== Berechtigungskonzept - Stufe 2 == + MC2->MP2: Abfrage neuer Events + activate MP2 + MP2->MH2: HTTP(S) Forward + activate MH2 + MH2-->MP2: Bereitstellung neuer Events + deactivate MH2 + MP2-->MC2: HTTP(S) Forward + deactivate MP2 + + MC2->MC2: Extrahieren der Invite-Events + MC2->MC2: Prüfung, ob die Einladung erlaubt ist + + break #MistyRose Der Akteur hat "allow all" konfiguriert und der einladende Akteur\n ist auf der BlockedUser-Liste (Direkt oder als Teil einer Gruppe/Domain) ||| - ref over MP, MP: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n - note right: Stufe 1 - Prüfung gemäß \nClient-Server Kommunikation + MC2->MC2:Einladung ist abzulehnen ||| + end -alt#LightGrey #MISTYROSE Matrix-Domain nicht in der Föderation enthalten -||| + break #MistyRose Der Akteur hat "block all" konfiguriert und der einladende Akteur\n ist nicht auf der AllowedUser-Liste (Direkt oder als Teil einer Gruppe/Domain) ||| - MP-->C: HTTP 403 \nForbidden - activate C + MC2->MC2:Einladung ist abzulehnen ||| - C-->C: Abmeldung der Session - deactivate C -||| -end - -||| -MP->MH: HTTP(S) Forward - activate MH - -||| -MH->MH: Prüfung auf \nOrganisationszugehörigkeit - -||| - alt#LightGrey #AliceBlue Akteure gehören einer gemeinsamen Organisation an - ||| - MH->MH: Invite wird \nverarbeitet - MH-->MP: status - MP-->C: status - ||| - - else Akteure gehören nicht einer gemeinsamen Organisation an - ||| - MH->MP: Matrix-Invite-Event \nwird weitergeleitet - deactivate MH - ||| - ref over MP, MP: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n - note left: Stufe 1 - Prüfung gemäß \nServer-Server Kommunikation - ||| - MP->MP2: Matrix-Invite-Event \nwird weitergeleitet - activate MP2 #SALMON - - ||| - == Berechtigungskonzept - Stufe 1 == - ||| + end - ref over MP2, MP2: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n - note right: Stufe 1 - Prüfung gemäß \nServer-Server Kommunikation - ||| - - alt#LightGrey #MISTYROSE Matrix-Domain nicht in der Föderation enthalten - ||| - ||| - MP2-->MP: HTTP 403 \nForbidden - MP-->C: HTTP(S) forward - activate C - ||| - C-->C: Abmeldung der Session - deactivate C - ||| - end - - ||| - == Berechtigungskonzept - Stufe 2 == - - activate MP2 - MP2->MP2: \nPrüfung, ob MXID \ndes Einladenden \nin der Freigabeliste \nenthalten ist - ||| - - alt#LightGrey #MOTIVATION MXID des Einladenden ist in der Freigabeliste enthalten - ||| - MP2->MH2: HTTP(S) Forward - activate MH2 - ||| - else MXID des Einladenden ist nicht in der Freigabeliste enthalten - ||| - == Berechtigungskonzept - Stufe 3 == - MP2->RD2: \nPrüfung, ob MXID \nder Akteure im \nVZD-FHIR-Dirctory \nenthalten ist - activate RD2 - RD2->VZD: POST /tim-provider-services/whereIs - activate VZD - VZD->VZD: Suche - VZD-->RD2: Ergebnis, status - deactivate VZD - RD2->RD2: Prüfung - RD2-->MP2: Ergebnis, status - deactivate RD2 - ||| - alt#LightGrey #LightBlue MXID ist im VZD-FHIR-Directory und Ergebnis == true - ||| - MP2->MH2: HTTP(S) Forward - ||| - else MXID ist nicht im VZD-FHIR-Directory enthalten - ||| - MP2->MP2: Abbruch, \nVerbindung wird \nabgelehnt - ||| - end - ||| - end - ||| - end - ||| -MH2-->MH2: Invite-Event \nverarbeiten ||| -MH2-->MP2: status +MC2-->MP2: Ergebnis der Einladungsprüfung +deactivate MC2 +activate MP2 +MP2->MH2: HTTP(S) Forward +activate MH2 +MH2-->MP2: Ergebnis der Einladungsprüfung deactivate MH2 -MP2-->MP: status +MP2-->MS: HTTP(S) Forward deactivate MP2 - -MP-->C: status -deactivate MP - ||| @enduml \ No newline at end of file diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.puml index 029ddd97..e0282068 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.puml @@ -1,11 +1,4 @@ -/' -# TI-Messenger 1.1 -# TI-Messenger-Dienst -# Sequence Diagram -# Name: Einträge im VZD-FHIR-Directory suchen -'/ - -@startuml +@startuml "Einträge im VZD-FHIR-Directory suchen" skinparam sequenceMessageAlign direction skinparam minClassWidth 200 skinparam BoxPadding 1 @@ -33,7 +26,7 @@ ActorFontSize 20 } autonumber -actor U as "Akteur in der Rolle\nUser / User-HBA" +actor U as "Akteur in der Rolle\nUser" participant cl as "TI-Messenger-Client" participant mp as "Messenger Proxy" participant hs as "Matrix-Homeserver" @@ -73,9 +66,9 @@ alt#LightGrey #AliceBlue kein gültiges search-accesstoken vorhandenau: Prüfe ob \nMatrix Server Name in \nder Föderation enthalten ist ||| -opt#LightGrey #MistyRose Abbruch +break#LightGrey #MistyRose Matrix Server Name nicht in der Föderation enthalten ||| - au-->cl: Matrix Server Name nicht in der Föderation enthalten + au-->cl: Fehlermeldung end ||| @@ -102,16 +95,19 @@ end activate fp fp->fp: prüfe search-accesstoken ||| - opt#LightGrey #MistyRose Abbruch - fp-->cl: kein gültiges search-accesstoken + break#LightGrey #MistyRose kein gültiges search-accesstoken + fp-->cl: HTTP 401 Fehlermeldung ||| end ||| alt#LightGrey #AliceBlue HealthcareService-Einträge werden gesucht ||| - fp->fd: POST /search/HealthcareService/? \nFinde Datensatz für TelematikID + fp->fd: POST /search/HealthcareService/? activate fd + note left + Finde Datensatz für TelematikID + end note fd-->fp: Suchergebnis (FHIR Bundle) deactivate fd ||| @@ -120,8 +116,11 @@ end ||| alt#LightGrey #AliceBlue PractitionerRole-Einträge werden gesucht ||| - fp->fd: POST /search/PractitionerRole/? \n Finde Datensatz für MXID + fp->fd: POST /search/PractitionerRole/? activate fd + note left + Finde Datensatz für MXID + end note fd-->fp: Suchergebnis (FHIR Bundle) deactivate fd ||| diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.puml index b2c503d1..c0f1c7c8 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.puml @@ -16,22 +16,16 @@ scale max 2048 width skinparam sequence { ArrowColor black ArrowFontSize 17 -ActorBorderColor black LifeLineBorderColor black LifeLineBackgroundColor Gainsboro ParticipantBorderColor Motivation ParticipantBackgroundColor Motivation -'ParticipantFontName Impact ParticipantFontSize 20 ParticipantFontColor black ParticipantBorderColor Black ParticipantBackgroundColor MOTIVATION -ActorBackgroundColor Gainsboro -ActorFontColor black -ActorFontSize 20 -'ActorFontName Aapex } autonumber diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.puml index 8a0f929a..c12cd468 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.puml @@ -16,7 +16,6 @@ scale max 2048 width skinparam sequence { ArrowColor black ArrowFontSize 17 -ActorBorderColor black LifeLineBorderColor black LifeLineBackgroundColor Gainsboro @@ -27,9 +26,6 @@ ParticipantFontColor black ParticipantBorderColor Black ParticipantBackgroundColor MOTIVATION -ActorBackgroundColor Gainsboro -ActorFontColor black -ActorFontSize 20 } autonumber @@ -37,24 +33,17 @@ autonumber box Messenger-Service\n #WhiteSmoke participant MP as "Messenger-Proxy" end box -participant OCSP as "Public OCSP-Responder" - -legend bottom right - __Legende__ - nicht anzuwenden in dieser Spezifikationsversion, - sondern erst, sobald der Public OCSP-Responder verfügbar ist - (bezieht sich auf die im diesem Diagramm blau dargestellten Prüfungen und Komponenten) -endlegend +participant OCSP as "Public OCSP-Responder" activate MP MP->MP++: Signatur der Föderationsliste prüfen\n(Föderationsliste, x5c-Zertifikatsliste[1]) return Signaturprüfergebnis ||| -loop#LightGrey für jeden Eintrag von x5c-Zertifikatsliste - MP->OCSP: Public-OCSP-Zertifikatsprüf-Request stellen(x5c-Zertifikat) - MP<--OCSP: OCSP-Response +loop#LightGrey für jeden Eintrag von x5c-Zertifikatsliste + MP->OCSP: Public-OCSP-Zertifikatsprüf-Request stellen(x5c-Zertifikat) + MP<--OCSP: OCSP-Response end -alt#LightGrey Signaturprüfergebnis=gültig UND jeder OCSP-Response.CertificateStatusValue=good +alt#LightGrey Signaturprüfergebnis=gültig UND jeder OCSP-Response.CertificateStatusValue=good MP->MP: Föderationsliste aktualisieren(Föderationsliste) end deactivate MP diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.puml index 132d8676..328eddc5 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.puml @@ -16,7 +16,6 @@ scale max 2048 width skinparam sequence { ArrowColor black ArrowFontSize 17 -ActorBorderColor black LifeLineBorderColor black LifeLineBackgroundColor Gainsboro @@ -27,9 +26,6 @@ ParticipantFontColor black ParticipantBorderColor Black ParticipantBackgroundColor MOTIVATION -ActorBackgroundColor Gainsboro -ActorFontColor black -ActorFontSize 20 } autonumber diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_org_admin.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_org_admin.puml index 8d66044e..ae2395e5 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_org_admin.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_org_admin.puml @@ -5,7 +5,7 @@ # Use Case Diagram # Name: Org-Admin - Anwendungsfaelle '/ - +!pragma layout smetana skinparam actorStyle awesome left to right direction @@ -39,12 +39,10 @@ package Rolle { package Anwendungsfälle { usecase "**<>** \nAuthentisieren einer Organisation \nam TI-Messenger-Dienst" as UC1 #AliceBlue usecase "**<>** \nBereitstellung eines Messenger-Service \nfür eine Organisation" as UC2 #AliceBlue - usecase "**<>** \nOrganisationsressourcen im \nVerzeichnisdienst hinzufügen" as UC3 } oa --> UC1 oa --> UC2 -oa --> UC3 note top of (oa) z. B. Beauftragter Mitarbeiter in einer diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_tim_specific_comm.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_tim_specific_comm.puml new file mode 100644 index 00000000..daf50b67 --- /dev/null +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_tim_specific_comm.puml @@ -0,0 +1,58 @@ +@startuml "TI-M spezifische Kommunikation" +!pragma layout smetana +skinparam actorStyle awesome +left to right direction +scale 6/3 + +skinparam sequence { +ArrowColor black +ArrowFontSize 17 +ActorBorderColor black +LifeLineBorderColor black +LifeLineBackgroundColor Gainsboro + +ParticipantBorderColor Motivation +ParticipantBackgroundColor Motivation +ParticipantFontName Impact +ParticipantFontSize 20 +ParticipantFontColor black +ParticipantBorderColor Black +ParticipantBackgroundColor MOTIVATION + +ActorBackgroundColor Gainsboro +ActorFontColor black +ActorFontSize 13 +} + +package Rolle { +actor "User" as u +} + +package "TI-M spezifische Kommunikation" { + +usecase ucbasis as "Basis-Anwendungsfall für\nTI-M spezifische Kommunikation + +--Merkmale-- +Nutzung zusätzlicher Chatroom-Eigenschaften +(Custom State Events und/oder +Custom Room Types) +.. +Unterstützung von FHIR-Resources +zur strukturierten Kommunikation +" + +usecase "Fallbezogene\nKommunikation" as ucfallbezug +usecase "Föderierte und intersektorale\nKommunikation" as ucfedcomm +} + +u --> ucbasis +ucbasis <. ucfallbezug : <> +ucbasis <. ucfedcomm : <> + + +note bottom of (u) +jeder Akteur, der an der Kommunikation +in der TI-M Föderation teilnimmt +end note + +@enduml diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_user.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_user.puml new file mode 100644 index 00000000..e119a164 --- /dev/null +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_user.puml @@ -0,0 +1,60 @@ +/' +# TI-Messenger 1.1 +# TI-Messenger-Dienst +# Use Case Diagram +# Name: User / User-HBA - Anwendungsfaelle +'/ + +@startuml +!pragma layout smetana +skinparam actorStyle awesome +left to right direction +scale 6/3 + +skinparam sequence { +ArrowColor black +ArrowFontSize 17 +ActorBorderColor black +LifeLineBorderColor black +LifeLineBackgroundColor Gainsboro + +ParticipantBorderColor Motivation +ParticipantBackgroundColor Motivation +ParticipantFontName Impact +ParticipantFontSize 20 +ParticipantFontColor black +ParticipantBorderColor Black +ParticipantBackgroundColor MOTIVATION + +ActorBackgroundColor Gainsboro +ActorFontColor black +ActorFontSize 13 +ActorFontName Aapex +} + +package Rolle { +actor "User" as u +} + +package Anwendungsfälle { +usecase "**<>** \nAnmeldung eines Akteurs am \nMessenger-Service" as UC1 +usecase "**<>** \nEinladung von Akteuren \ninnerhalb einer Organisation" as UC2 #AliceBlue +usecase "**<>** \nAustausch von Events \nzwischen Akteuren \ninnerhalb einer Organisation" as UC3 #AliceBlue +usecase "**<>** \nEinladung von Akteuren \naußerhalb einer Organisation" as UC4 #Ivory +usecase "**<>** \nAustausch von Events \nzwischen Akteuren \naußerhalb einer Organisation" as UC5 #Ivory +usecase "**<>** \nEinträge im VZD-FHIR-Directory suchen" as UC6 #IndianRed +} + +u --> UC1 +u --> UC2 +u --> UC3 +u --> UC4 +u --> UC5 +u --> UC6 + +note top of (u) +Mitarbeiter einer Organisation +im Gesundheitswesen +end note + +@enduml diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.puml index 894be4e0..18f0dddd 100644 --- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.puml +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.puml @@ -6,6 +6,7 @@ '/ @startuml +!pragma layout smetana skinparam actorStyle awesome left to right direction scale 6/3 diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/auth_insured_person.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/auth_insured_person.puml new file mode 100644 index 00000000..b1d6ce80 --- /dev/null +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/auth_insured_person.puml @@ -0,0 +1,93 @@ +/' +# TI-Messenger 1.1 +# TI-Messenger-Dienst +# UC - 10064 +# Sequence Diagram +# Name: Föderationszugehörigkeit eines Messenger-Service prüfen +'/ + +@startuml +skinparam sequenceMessageAlign direction +skinparam minClassWidth 200 +skinparam BoxPadding 1 +skinparam sequenceReferenceHeaderBackgroundColor palegreen +scale max 2048 width + +skinparam sequence { +ArrowColor black +ArrowFontSize 17 +ActorBorderColor black +LifeLineBorderColor black +LifeLineBackgroundColor Gainsboro + +ParticipantBorderColor Motivation +ParticipantBackgroundColor Motivation +'ParticipantFontName Impact +ParticipantFontSize 20 +ParticipantFontColor black +ParticipantBorderColor Black +ParticipantBackgroundColor MOTIVATION + +ActorBackgroundColor Gainsboro +ActorFontColor black +ActorFontSize 20 +'ActorFontName Aapex +} + +autonumber + + participant MC as "TI-Messenger Actor A" + box Messenger-Service\n#WhiteSmoke + participant MP as "Messenger-Proxy" + participant MH as "Matrix-Homeserver" + participant RD as "Registrierungs-Dienst" + end box + participant VZD as "VZD-FHIR-Directory" + +||| + Activate MP + MP->MP: prüfe im Event\nob Matrix-Domain(s) \nin der Föderationsliste \nvorhanden ist/sind + +||| +alt#LightGray Matrix-Domain ist in der Föderationsliste enthalten + ||| + break#MistyRose Matrix-Domain des Senders und Empfängers sind beide von einem Versicherten-Server + MP->MP: Abbruch, Verbindung wird abgelehnt + end + + MP->MH: HTTP(S) Forward + Activate MH + MH-->MP: Status + Deactivate MH + 'Deactivate MP + ||| + + + else Matrix-Domain ist nicht in der Föderationsliste enthalten + ||| + ref over MP, VZD: **Anhang B** - Aktualisierung der Föderationsliste\n + ||| + MP->MP: prüfe ob Matrix-Domain \nder MXID \nin der **aktualisierten** \nFöderationsliste vorhanden ist + ||| + + alt#LightGrey #LightBlue Matrix-Domain ist nicht in der aktualisierten Föderationsliste enthalten + ||| + MP->MP: Abbruch, Verbindung wird abgelehnt + ||| + else Matrix-Domain ist in der aktualisierten Föderationsliste enthalten + ||| + break#MistyRose Matrix-Domain des Senders und Empfängers sind beide von einem Versicherten-Server + MP->MP: Abbruch, Verbindung wird abgelehnt + end + MP->MH: HTTP(S) Forward + Activate MH + MH-->MP: Status + Deactivate MH + ||| + end + + ||| + +end +||| +@enduml diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/push_notifications_delivery.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/push_notifications_delivery.puml new file mode 100644 index 00000000..d6f176ed --- /dev/null +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/push_notifications_delivery.puml @@ -0,0 +1,58 @@ +@startuml +skinparam sequenceMessageAlign direction +skinparam minClassWidth 200 +skinparam BoxPadding 1 +skinparam sequenceReferenceHeaderBackgroundColor palegreen +scale max 2048 width +skinparam maxMessageSize 300 + +skinparam sequence { +ArrowColor black +ArrowFontSize 17 +ActorBorderColor black +LifeLineBorderColor black +LifeLineBackgroundColor Gainsboro + +ParticipantBorderColor Motivation +ParticipantBackgroundColor Motivation +ParticipantFontSize 20 +ParticipantFontColor black +ParticipantBorderColor Black +ParticipantBackgroundColor MOTIVATION + +ActorBackgroundColor Gainsboro +ActorFontColor black +ActorFontSize 20 +} + +autonumber + + actor v as "Akteur in der Rolle User" + participant fdv [ + TI-Messenger Client App + ---- + Inhaber PushAnbieter-App Token + ] + participant pa as "Push-Anbieter" + participant pg as "Push-Gateway" + participant fd as "Fachdienst" + +activate fd +fd->pg: Benachrichtigung(App_ID, PushAnbieter-AppToken, EventID) +activate pg +pg->pa: Benachrichtigung(PushAnbieter-AppToken, EventID) +activate pa +pa-->pg: Response +pg-->fd: Response +deactivate pg +pa->fdv: Benachrichtigung an Empfänger(PushAnbieter-AppToken, EventID) +deactivate pa +activate fdv +fdv->fd: Abfrage der Daten zu Event(EventID) +fd-->fdv: Verschlüsselte Benachrichtigungsinhalte +deactivate fd +fdv->fdv:Entschlüssele \n(Verschlüsselte Benachrichtigungsinhalte) +fdv->fdv:erzeuge Anwenderbenachrichtigung mit\n den entschlüsselten Inhalten +fdv->v:Zeige Benachrichtigung + +@enduml diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/push_notifications_registration.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/push_notifications_registration.puml new file mode 100644 index 00000000..30ec2778 --- /dev/null +++ b/src/plantuml/TI-Messenger-Dienst/Ressourcen/push_notifications_registration.puml @@ -0,0 +1,60 @@ +@startuml +skinparam sequenceMessageAlign direction +skinparam minClassWidth 200 +skinparam BoxPadding 1 +skinparam sequenceReferenceHeaderBackgroundColor palegreen +scale max 2048 width +skinparam maxMessageSize 450 + +skinparam sequence { +ArrowColor black +ArrowFontSize 17 +ActorBorderColor black +LifeLineBorderColor black +LifeLineBackgroundColor Gainsboro + +ParticipantBorderColor Motivation +ParticipantBackgroundColor Motivation +ParticipantFontSize 20 +ParticipantFontColor black +ParticipantBorderColor Black +ParticipantBackgroundColor MOTIVATION + +ActorBackgroundColor Gainsboro +ActorFontColor black +ActorFontSize 20 +} +autonumber + +actor v as "Akteur in der Rolle User" + +participant c as "TI-Messenger Client App" +participant pa as "Push-Anbieter" +participant fd as "Fachdienst" +participant g as "Push-Gateway" +actor a as "Ersteller TI-Messenger Client App" + +||| +activate fd +a->g: konfiguriert unter einer eindeutigen App_ID den Zugang zum Push-Anbieter + activate g + g->g: speichere Konfiguration + deactivate g + a->c: hinterlege App_ID & Push-Gateway URL in der App + + v->c: installiert TI-Messenger Client App\n auf dem Smartphone + activate c + c-->v: Wollen Sie Push-Nachrichten empfangen? + v->c: stimmt dem Empfang von Push-Nachrichten zu + c->pa: registriert die App beim Push-Anbieter + activate pa + pa-->c: eindeutiges PushAnbieter-AppToken\nfür die App Instanz + deactivate pa + c->c: speichere \n PushAnbieter-AppToken + c->fd: konfiguriere zu verwendendes Gateway(Gateway-Url,App_ID, PushAnbieter-AppToken) + fd-->c: Konfiguration übernommen +||| + + deactivate fd + deactivate c +@enduml diff --git a/src/schema/permissionConfig.json b/src/schema/permissionConfig.json new file mode 100644 index 00000000..0c98d4c1 --- /dev/null +++ b/src/schema/permissionConfig.json @@ -0,0 +1,53 @@ +{ + "$id": "https://gematik.de/ti-m/permissionConfig.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Permission Configuration", + "type": "object", + "properties": { + "defaultSetting": { + "type": "string", + "enum": [ + "allow all", + "block all" + ] + }, + "groupException": { + "type": "array", + "uniqueItems": true, + "items": { + "groupName": { + "description": "The name of the group to be in-/excluded", + "type": "string", + "enum": [ + "myLocalContactList" + ] + } + } + }, + "domainException": { + "type": "array", + "uniqueItems": true, + "items": { + "domain": { + "description": "The name of the domain to be in-/excluded", + "type": "string", + "pattern": "^((?!-)[A-Za-z0-9-]{1, 63}(?