gemSpec_VZD_FHIR_Directory_V1.1.0_Aend
Elektronische Gesundheitskarte und Telematikinfrastruktur
Spezifikation
Verzeichnisdienst FHIR-Directory
Version |
1. |
Revision |
|
Stand |
|
Status |
freigegeben |
Klassifizierung |
öffentlich |
Referenzierung |
gemSpec_VZD_FHIR_Directory |
Dokumentinformationen
Änderungen zur Vorversion
Anpassungen des vorliegenden Dokumentes im Vergleich zur Vorversion können Sie der nachfolgenden Tabelle entnehmen.
Dokumentenhistorie
Version |
Stand |
Kap./ Seite |
Grund der Änderung, besondere Hinweise |
Bearbeitung |
||
1.0.0 |
01.10.2021 |
|
Erstversion des Dokumentes |
gematik |
||
1.1.0 |
29.07.2022 |
|
Fortschreibung und insbesondere Anpassungen gemäß TI-Messenger-Spezifikation Version 1.1.0 |
gematik |
||
|
|
|
|
|
||
Inhaltsverzeichnis
DokumentinformationenDokumentinformationen
InhaltsverzeichnisInhaltsverzeichnis
3 Systemkontext2.1 Nutzer und Rollen
3.1 Akteure und Rollen2.2 Nachbarsysteme
3.2 User Stories3 Zerlegung des Produkttyps
3.3 Nachbarsysteme4 Funktionsmerkmale
4 Zerlegung des Produkttyps4.1 FHIR-Directory
5 Funktionsmerkmale4.1.1 Datenmodell
5.1 FHIR-Directory4.1.2 Mapping von LDAP auf FHIR-Ressourcen
5.1.1 Datenmodell4.1.3 FHIR RESTful API
5.1.2 Mapping von LDAP auf FHIR-Ressourcen4.2 FHIR-Proxy
5.1.3 FHIR RESTful API4.2.1 Schnittstellen
5.2 FHIR-Proxy und PASSporT-Service4.2.1.1 TLS-Verbindungsaufbau
5.2.1 Schnittstellen4.2.1.2 FHIR Schnittstelle für TI-Messenger-Nutzer
5.2.1.1 TLS-Verbindungsaufbau4.2.1.3 FHIR-Schnittstelle für Besitzer
5.2.1.2 FHIR Schnittstelle für TI-Messenger-Nutzer4.2.1.4 Schnittstelle I_VZD_TIM_Provider_Services
5.2.1.3 FHIR-Schnittstelle für Besitzer4.2.2 Aktualisierung der Basiseinträge
5.2.1.4 Schnittstelle I_VZD_TIM_Provider_Services4.2.3 Erzeugung und Bereitstellung der Föderationsliste
5.2.2 Aktualisierung der Basiseinträge4.2.4 Lokalisierung einer MXID (Operation whereIs)
5.2.3 Erzeugung und Verteilung der Föderationsliste4.3 Übergreifende Vorgaben
5.3 Übergreifende Vorgaben4.3.1 Sicherheit
5.3.1 Sicherheit4.3.2 Betrieb
5.3.2 Betrieb5 Anwendungsfälle
6 Anwendungsfälle5.1 TI-Messenger-Nutzer sucht Einträge im FHIR-Directory
6.1 TI-Messenger-Nutzer sucht TIOrganization- und TIPractitioner-Einträge im VZD-FHIR-Directory5.2 Eigentümer ändert seinen Eintrag im FHIR-Directory
6.2 TIOrganization-Einträge oder TIPractitioner-Einträge im VZD-FHIR-Directory ändern5.3 Anwendungsfälle der TI-Messenger-Anbieter im VZD-FHIR-Directory
6.3 Anwendungsfälle der TI-Messenger-Anbieter im VZD-FHIR-Directory5.4 Einträge mit dem VZD-LDAP-Directory abgleichen
6.4 Einträge mit dem VZD-LDAP-Directory abgleichen6 Verteilungssicht
7 VerteilungssichtAnhang A – Verzeichnisse
8 Anhang A – Verzeichnisse7.1 Abkürzungen
8.1 Abkürzungen7.2 Glossar
8.2 Glossar7.3 Abbildungsverzeichnis
8.3 Abbildungsverzeichnis7.4 Tabellenverzeichnis
8.4 Tabellenverzeichnis7.5 Referenzierte Dokumente
8.5 Referenzierte Dokumente7.5.1 Dokumente der gematik
8.5.1 Dokumente der gematik7.5.2 Weitere Dokumente
8.5.2 Weitere Dokumente7.6 Versionierung Datenmodell
9 Anhang B - Beispiele8 Anhang B - Beispiele
9.1 FHIR Operationen8.1 FHIR Operationen
9.1.1 Abfrage von TIOrganisation Einträgen8.1.1 Abfrage von OrganizationDirectory Einträgen
9.1.1.1 Client Code8.1.1.1 Client Code
9.1.1.2 Request8.1.1.2 Request
9.1.1.3 Request Headers8.1.1.3 Request Headers
9.1.1.4 Response8.1.1.4 Response
9.1.1.5 Response Headers8.1.1.5 Response Headers
9.1.1.6 Response Body8.1.1.6 Response Body
1 Einordnung des Dokumentes
Dieses Dokument beschreibt das FHIR-Directory des Verzeichnisdienstes der TI. Die Spezifikation umfasst Schnittstellen zum Abruf von Informationen der im FHIR-Directory eingetragenen Organization-FHIR-Ressourcen und der Practitioner-FHIR-Ressourcen durch Clientsysteme sowie Schnittstellen und Prozesse zur Pflege der Informationen innerhalb des VZD-FHIR-Directories.
1.1 Zielsetzung
Die Spezifikation soll die Entwicklung und den Betrieb eines VZD-FHIR-Directories für die Telematikinfrastruktur unterstützen, indem die funktionalen und nicht-funktionalen Anforderungen sowie die Sicherheits-Anforderungen an den Dienst festgelegt werden.
1.2 Zielgruppe
Das Dokument richtet sich zwecks der Realisierung an den Hersteller des VZD-FHIR-Directories sowie an den Anbieter, welcher dieses Produkt betreibt [gemKPT_Betr]. Alle Hersteller und Anbieter von TI-Anwendungen, die das VZD-FHIR-Directory nutzen, müssen dieses Dokument ebenso berücksichtigen. Gleichfalls ist das Dokument auch für die Nutzer relevant welche die Daten im VZD-FHIR-Directory eintragen, abfragen, ändern und löschen wollen.
1.3 Geltungsbereich
Dieses Dokument enthält normative Festlegungen zur Telematikinfrastruktur des deutschen Gesundheitswesens. Der Gültigkeitszeitraum der vorliegenden Version und deren Anwendung in Zulassungs- oder Abnahmeverfahren wird durch die gematik GmbH in gesonderten Dokumenten (z. B. gemPTV_ATV_Festlegungen, Produkttypsteckbrief, Anbietertypsteckbrief, u.a.) oder Webplattformen (z.B. gitHub, u.a.) festgelegt und bekanntgegeben.
Schutzrechts-/Patentrechtshinweis
Die nachfolgende Spezifikation ist von der gematik allein unter technischen Gesichtspunkten erstellt worden. Im Einzelfall kann nicht ausgeschlossen werden, dass die Implementierung der Spezifikation in technische Schutzrechte Dritter eingreift. Es ist allein Sache des Anbieters oder Herstellers, durch geeignete Maßnahmen dafür Sorge zu tragen, dass von ihm aufgrund der Spezifikation angebotene Produkte und/oder Leistungen nicht gegen Schutzrechte Dritter verstoßen und sich ggf. die erforderlichen Erlaubnisse/Lizenzen von den betroffenen Schutzrechtsinhabern einzuholen. Die gematik GmbH übernimmt insofern keinerlei Gewährleistungen.
1.4 Abgrenzungen
Spezifiziert werden in dem Dokument nur die mit dem VZD-FHIR-Directory neu eingeführten Komponenten und Schnittstellen des Verzeichnisdienstes der TI. Das VZD-LDAP-Directory ist in [gemSpec_VZD] spezifiziert.
Benutzte Schnittstellen werden in der Spezifikation desjenigen Produkttypen beschrieben, der diese Schnittstelle bereitstellt. Auf die entsprechenden Dokumente wird referenziert (siehe auch Anhang, Kapitel ).
Die vollständige Anforderungslage für den Produkttyp ergibt sich aus weiteren Konzept- und Spezifikationsdokumenten, diese sind in dem Produkttypsteckbrief des Produkttyps VZD-FHIR-Directory verzeichnet.
1.5 Methodik
Die Spezifikation ist im Stil einer RFC-Spezifikation verfasst. Dies bedeutet:
- Der gesamte Text in der Spezifikation ist sowohl für den Hersteller des Produktes VZD-FHIR-Directory als auch für den betreibenden Anbieter entsprechend [gemKPT_Betr] verbindlich zu betrachten und gilt sowohl als Zulassungskriterium beim Produkt und Anbieter.
- Auch für technisch mit dem Produkt und Dienst verbundene Anwendungen ist dieses Dokument verbindlich. Gleichfalls für die Nutzer, welche zur Datenpflege im VZD-FHIR-Directory beitragen oder Daten abfragen.
- Die Verbindlichkeit SOLL durch die dem RFC 2119 [RFC2119] entsprechenden, in Großbuchstaben geschriebenen deutschen Schlüsselworte MUSS, DARF NICHT, SOLL, SOLL NICHT, KANN gekennzeichnet werden.
- Da in dem Beispielsatz „Eine leere Liste DARF NICHT ein Element besitzen.“ die Phrase „DARF NICHT“ semantisch irreführend wäre (wenn nicht ein, dann vielleicht zwei?), wird in diesem Dokument stattdessen „Eine leere Liste DARF KEIN Element besitzen.“ verwendet.
- Die Schlüsselworte KÖNNEN außerdem um Pronomen in Großbuchstaben ergänzt werden, wenn dies den Sprachfluss verbessert oder die Semantik verdeutlicht.
Anwendungsfälle und Akzeptanzkriterien als Ausdruck normativer Festlegungen werden als Grundlage für Erlangung der Zulassung durch Tests geprüft und nachgewiesen. Sie besitzen eine eindeutige, permanente ID, welche als Referenz verwendet werden SOLL. Die Tests werden gegen eine von der gematik gestellte Referenz-Implementierung durchgeführt.
Anwendungsfälle und Akzeptanzkriterien werden im Dokument wie folgt dargestellt:
<ID> - <Titel des Anwendungsfalles / Akzeptanzkriteriums>
Text / Beschreibung
[<=]
Die einzelnen Elemente beschreiben:
- ID: einen eindeutigen Identifier.
- Bei einem Anwendungsfall besteht der Identifier aus der Zeichenfolge 'AF_' gefolgt von einer Zahl,
- Der Identifier eines Akzeptanzkriteriums wird von System vergeben, z.B. die Zeichenfolge 'ML_' gefolgt von einer Zahl
- Titel des Anwendungsfalles / Akzeptanzkriteriums: Ein Titel, welcher zusammenfassend den Inhalt beschreibt
- Text / Beschreibung: Ausführliche Beschreibung des Inhalts. Kann neben Text Tabellen, Abbildungen und Modelle enthalten
Dabei umfasst der Anwendungsfall bzw. das Akzeptanzkriterium sämtliche zwischen ID und Textmarke [<=] angeführten Inhalte.
Der für die Erlangung einer Zulassung notwendige Nachweis der Erfüllung des Anwendungsfalls wird in den jeweiligen Steckbriefen festgelegt, in denen jeweils der Anwendungsfall gelistet ist. Akzeptanzkriterien werden in der Regel nicht im Steckbrief gelistet.
Hinweis auf offene Punkte
Offener Punkt: Das Kapitel wird in einer späteren Version des Dokumentes ergänzt. |
2 Systemüberblick
Das VZD-FHIR-Directory ist eine Erweiterung des bisherigen Verzeichnisdienstes der TI. Im VZD-FHIR-Directory werden Einträge von Organisationen und Leistungserbringern gespeichert. Die VZD-LDAP-Directory Einträge werden mit den Einträgen im VZD-LDAP-Directoryin das VZD-FHIR-Verzeichnis synchronisiert. Bei diesem Vorgang erfolgt eine Umsetzung von der LDAP-Datenstruktur auf die Datenstruktur der FHIR-Ressourcen. Personeneinträge der Leistungserbringer werden auf die TIPractitionerPractitionerDirectory-Ressource und Organisations-Einträge auf die TIOrganizationOrganizationDirectory-Ressource abgebildet. Die synchronisierten Einträge bilden die Basis-Einträge, die durch die Besitzer um zusätzliche Daten ergänzt bzw. erweitert werden können. TIPractitionerPractitionerDirectory und TIOrganization sind Profilierungen der FHIR-Ressourcen Practitioner und Organization. Die Anbieter von Fachanwendungen werden ebenfalls als TIOrganization-Einträge im FHIR-Directory eingetragen um Daten der Fachanwendung zu dieser Organisation zuordnen zu können.
Der Besitzer einer Telematik-ID erhält das Recht seinen Eintrag zu erweitern (um z. B. Unterstrukturen für eine Organisation einzutragen) und Fachdaten zu ergänzen (z. B. TI-Messenger-Adressen). Die von den Kartenherausgebern eingetragenen Daten dürfen durch die Besitzer nicht verändert werden. Zusätzliche FHIR-Ressourcen (wie z. B. Location und HealthcareService) können durch die Besitzer ergänzt werden, um den Komfort bei der Suche nach Einträgen zu erhöhen.
Alle vom VZD-FHIR-Directory bereitgestellten Schnittstellen sind über das Internet erreichbar und TLS-gesichert. Die Authentisierung erfolgt mit:
- OpenID Connect Authorization Code Flow für Schreibzugriffe der Besitzer von Einträgen
- OAuth2 Client Credential Flow für Schreibzugriffe der Fachdienste
- Matrix-OpenID-Token für Lesezugriffe von TI-Messenger-Nutzern
Eine Nutzung der Schnittstellen des VZD-FHIR-Directory ohne Authentisierung der Nutzer ist nicht zulässigMUSS durch das VZD-FHIR-Directory verhindert werden.
Als erste Anwendung wird der TI-Messenger-Dienst das VZD-FHIR-Directory nutzen.
Abbildung 1: Systemüberblick VZD-FHIR-Directory
Das VZD-FHIR-Directory besteht aus den logischen Komponenten FHIR-Directory, FHIR-Proxy und PASSporT-Service.
Das FHIR-Directory ist eine Implementierung der FHIR-Spezifikation (http://hl7.org/fhir/summary.html ).
Der FHIR-Proxy terminiert die TLS-Verbindungen, prüft die Zugriffsberechtigung der Nutzer und verteilt die Anfragen der Nutzer auf die Instanzen des FHIR-Directory sowie des PASSporT-Service. Zusätzlich übernimmt und aktualisiert der FHIR-Proxy die Basiseinträge im VZD-FHIR-Directory mit den geänderten Daten des VZD-LDAP-Directories.
Der PASSporT-Service ist eine Komponente, die Personal Assertion Token gemäß [RFC8225] ausstellt. Die Token bestätigen, dass ein Leistungserbringer oder eine Organisation durch die Eintragung der TI-Messenger-Adresse im VZD-FHIR-Directory damit einverstanden ist, dass eine TI-Messenger-Kommunikation zu dieser Adresse aufgebaut werden darf. Für die Signatur des PASSporT wird ein Zertifikat aus der Komponenten PKI der TI verwendet.
3 Systemkontext
3.1 Akteure und Rollen
Das VZD-FHIR-Directory ist ein Dienst der Telematikinfrastruktur und kann von allen Nutzern der TI abgefragt werden. Zusätzlich ist es erforderlich, dass die Einträge gepflegt werden. Dies erfolgt durch die Kartenherausgeber, die Fachanwendungen, falls spezifische Fachdaten den Einträgen zugeordnet sind, und optional durch die Besitzer der Einträge.
Tabelle 1: VZD_FHIR_Directory_Akteure_und_Rollen2.1 Nutzer und Rollen
Tabelle 1: Nutzer und Rollen
|
Nutzer und Rolle |
Beschreibung |
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
|
|
|
|||||
3.2 User Stories
1. Als TI-Messenger-Nutzer möchte ich komfortabel nach Leistungserbringern und Organisationen suchen können, so dass ich keine Zeit und Nerven damit verschwenden muss, einen geeigneten TI-Messenger-Kommunikationspartner zu finden.
2. Als TI-Messenger-Nutzer möchte ich die Ortungsfunktion meines Geräts nutzen können, um nahegelegene Leistungserbringer und Organisationen finden zu können, so dass ich spontan den für mich bestgelegene Organisation auswählen kann.
3. Als TI-Messenger-Nutzer möchte ich in der Lage sein, Organisationen herauszufiltern, die gerade geöffnet haben oder die bald öffnen werden, so dass ich nicht vor verschlossenen Türen stehe, wenn ich die Organisation aufsuchen will.
4. Als TI-Messenger-Nutzer möchte ich in der Lage sein, mir von meiner bevorzugten Navigations-App eine Route zur ausgewählten Organisation berechnen zu lassen, so dass ich nicht Adressen in meine Navigations-App kopieren muss, um den Weg zu finden.
5. Als TI-Messenger-Nutzer möchte ich, dass die Suchfunktion meiner App fehlertolerant ist, wenn ich mich beim Eingeben des Organisationsnamens vertippe oder es mehrere Organisationen mit ähnlichem Namen gibt.
6. Als TI-Messenger-Nutzer möchte ich in meiner App verschiedene Such- und Filterfunktionen kombinieren können wie z.B. die Ortungsfunktion und die Filterung nach Öffnungszeiten, um eine Organisation zu finden.
7. Als TI-Messenger-Nutzer möchte ich weitere Informationen zu einer Organisation erhalten, um mich mit ihr in Verbindung setzen bzw. über sie informieren zu können (z.B. TI-Messenger-Adresse, Webseite, E-Mail-Adresse, Telefonnummer, Fax).
• Als Besitzer eines Eintrags im VZD-FHIR-Directory, brauche ich einen supportverantwortlichen Ansprechpartner mit entsprechenden Serviceleveln für die technische Schnittstelle.
• Als Kartenherausgeber brauche ich eine einfache (technische) Möglichkeit, die Daten für die ich verantwortlich bin, im VZD-FHIR-Directory editieren zu können (einstellen, lesen, verändern, löschen).
• Als Kartenherausgeber brauche ich einen supportverantwortlichen Ansprechpartner mit entsprechenden Serviceleveln für die technische Schnittstelle.
• Als Kartenherausgeber möchte ich komfortabel und in angemessener Antwortzeit nach Leistungserbringern bzw. Organisationen in meinem Verantwortungsbereich suchen können, so dass ich keine Zeit und Nerven damit verschwenden muss, die Einträge adäquat verwalten zu können.
• Als Kartenherausgeber möchte ich meinen Account zum VZD-FHIR-Directory komfortabel erhalten und verwalten können, so dass ich keine Zeit und Nerven damit verschwenden muss.
• Als Kartenherausgeber möchte ich, dass bei einem Ausfall oder Störungen des VZD-FHIR-Directory die Nutzer und die Kartenherausgeber entsprechendes Feedback und Support erhalten und ggf. Fehlermeldungen korrekt eingestellt und weitergeleitet werden.
• Als Anbieter einer Fachanwendung brauche ich eine einfache (technische) Möglichkeit, die fachlichen Daten meiner Fachanwendung im VZD-FHIR-Directory editieren zu können (einstellen, lesen, verändern, löschen).
• Als Anbieter einer Fachanwendung brauche ich einen supportverantwortlichen Ansprechpartner mit entsprechenden Serviceleveln für die technische Schnittstelle.
• Als Gesamtverantwortlicher für die TI möchte ich steuern können, wer einen Zugriff auf die Pflegeschnittstelle des VZD-FHIR-Directory erhält und jederzeit eine aktuelle Übersicht für alle Umgebungen (RU/TU/PU) haben.
• Als Gesamtverantwortlicher für die TI möchte ich jederzeit wissen, welche Daten im VZD-FHIR-Directory hinterlegt sind und ob diese korrekt sind bzw. Fehlermeldungen vorliegen.
• Als Gesamtverantwortlicher für die TI möchte ich, dass nur berechtigte Institutionen für die Pflege der Informationen im VZD-FHIR-Directory die entsprechenden Berechtigungen (er)halten.
• Als Gesamtverantwortlicher für die TI muss ich sicherstellen, dass bei einem Ausfall oder Störungen des VZD-FHIR-Directory die Nutzer und die Kartenherausgeber entsprechendes Feedback und Support erhalten und ggf. Fehlermeldungen korrekt eingestellt und weitergeleitet werden.
3.3
Tabelle 2: Kommunikationsbeziehungen zu IT-Systemen
IT-Systeme |
Beschreibung |
Kartenherausgeber |
Die Kartenherausgeber nutzen die Schnittstelle (3) um die Einträge ihrer Mitglieder im LDAP-Directory und zukünftig im FHIR-Directory zu pflegen. |
TI-Messenger-Anbieter |
Die TI-Messenger-Anbieter nutzen die Schnittstelle (4) um die Föderationsliste des TI-Messengers abzufragen und um die Domains der von ihnen betriebenen Messenger-Services als Teil der TI-Messenger Föderation zu verwalten. |
gematik |
Die gematik kann über die Schnittstelle (5) lesend auf die Einträge im FHIR-Directory und im LDAP-Directory zugreifen um die Daten-Qualität der Einträge zu prüfen und um Fehler zu analysieren. |
LDAP-Directory |
Die Schnittstelle (6) zwischen FHIR-Directory und LDAP-Directory wird vom Verzeichnisdienst genutzt, um die Einträge zu synchronisieren. |
Alle Schnittstellen mit Ausnahme (6) sind über das Internet erreichbar. Die Schnittstellen stellen folgende Funktionen bereit:
- Für Nutzer gibt es eine Schnittstelle zur Suche nach Einträgen im FHIR-Directory Organisationsverzeichnis und Personenverzeichnis. Die Schnittstelle kann nur nach erfolgreicher Authentisierung genutzt werden. Alle TI-Messenger Nutzer können sich authentisieren und bekommen vom FHIR-Directory ein Accesstoken ausgestellt, dass für die Suchanfragen verwendet wird. Die Suche ermöglicht es komfortabel nach Volltext oder nach bestimmten Werten der einzelnen Attribute über die verlinkten Ressourcen zu suchen. Gefundene Ressourcen werden in einem Bundle von FHIR Ressourcen zurück geliefert. Das Datenformat ist json.
- Für Administratoren der Organisationen des Gesundheitswesens und für LE gibt es eine Schnittstelle zur Änderung Ihres Eintrags im Organisationsverzeichnis. Zur Nutzung der Schnittstelle ist eine Authentifizierung mit OIDC Authorization Code Flow erforderlich. Über diese Schnittstelle kann im Organisationsverzeichnis der eigene Eintrag der Organisation über eine Verlinkung um zusätzliche Einträge erweitert werden. TI-Messenger Nutzer die auch LE sind, können diese Schnittstelle nutzen, um ihre TI-Messenger-Adresse in ihrem Eintrag im Personenverzeichnis zu speichern, sodass sie von anderen LE gefunden werden können. Auch hier erfolgt die Authentifizierung über OIDC. Das FHIR-Datenformat ist json.
- Für Kartenherausgeber gibt es eine die Schnittstelle I_Directory_Administration um Einträge im LDAP-Directory anzulegen und zu pflegen. Das Datenformat ist json und ist in der OpenAPI-yaml-Datei DirectoryAdministration.yaml festgelegt. Zukünftig ist vorgesehen, dass die Kartenherausgeber auch direkt die Schnittstelle zum FHIR-Directory nutzen können. Dann ist das Datenformat FHIR in der Ausprägung JSON. Die Authentifizierung der Kartenherausgeber erfolgt mit OAuth Client Credential Flow.
- TI-Messenger-Fachdienste pflegen im FHIR-Directory für die von ihnen angebotenen Messenger-Services die TI-Messenger-Domänen. Zusätzlich können die TI-Messenger-Anbieter die Föderationsliste abfragen. Sie beinhaltet alle an der Föderation des TI-Messengers beteiligte Domains. Um die Kommunikationskontrolle zu ermöglichen, fragen TI-Messenger-Fachdienste auch ab, in welchem Verzeichnis (Personen- oder Organisationsverzeichnis) sich die Hashes von TI-Messenger-Adressen befinden. Die Authentifizierung der TI-Messenger-Fachdienste erfolgt mit OAuth Client Credential Flow.
- Die gematik hat Schnittstellen, um die Daten-Qualität der Einträge zu prüfen. Dazu wird die Schnittstelle der Kartenherausgeber genutzt. Die gematik hat aber nur Leserechte.
- Die Einträge im LDAP-Directory werden in das FHIR-Directory Organisations- und Personenverzeichnis synchronisiert. Es handelt sich um eine interne Schnittstelle des Verzeichnisdienstes der TI.
2.2 Nachbarsysteme
Die Nachbarsysteme des VZD-FHIR-Directory sind Client- und Serverkomponenten des TI-MessengersMessenger-Dienstes, das VZD-LDAP-Directory, die IDPs aus der TI-IDP-Föderation und die Betriebsdatenerfassung der gematik.
ML-123876 - Test gegen die Referenzimplementierung der Nachbarsysteme (VZD-FHIR-Directory)
Es MÜSSEN alle Anwendungsfälle des VZD-FHIR-Directories erfolgreich gegen die Referenzimplementierung der Nachbarsysteme getestet sein.
[<=]
43 Zerlegung des Produkttyps
Die folgende Abbildung zeigt die Teilkomponenten des bisherigen VZD-LDAP-Directory und die rot dargestellten neuen Komponenten des VZD-FHIR-Directory.
Abbildung 2: Zerlegung des VZD
Das VZD-FHIR-Directory besteht aus den Komponenten FHIR-Proxy und FHIR-Directory sowie PASSPorT-Service. Die Schnittstelle zwischen FHIR-Proxy und PASSporT-Service wird nicht vorgegebenAuth-Service.
Die vom VZD-FHIR-Directory zu liefernden Rohdaten zur Ermittlung der Auslastung und Performance werden in den bereits vorhandenen Betriebsdaten-Erfassungs-Client (BDE-Client) des Verzeichnisdienstes integriert.
54 Funktionsmerkmale
In diesem Kapitel werden die Komponenten des VZD-FHIR-Directories beschrieben.
54.1 FHIR-Directory
Das FHIR-Directory ist eine Implementierung der HL7-FHIR-Spezifikation Release 4.0.1 (https://www.hl7.org/fhir/http.html ).
Das FHIR-Directory ist nur über den FHIR-Proxy erreichbar.
54.1.1 Datenmodell
Es werden die FHIR-Ressourcen nach folgender Tabelle verwendet.
Alle Änderungen und Erweiterungen der FHIR Ressourcen sind in https://simplifier.net/vzd-fhir-directory veröffentlicht.
Tabelle 23: VZD-FHIR-Directory, FHIR-Ressourcen
FHIR-Ressource |
Beschreibung |
|
Profil der Organization Ressource. code value="tim-domain" display value="TI-Messenger domain name" verwendet. Im Element "name" wird der TI-Messenger Domainname eingetragen. In "managingOrganization" wird die |
|
Profil der Practitioner Ressource. Lediglich das Element Identifier wurde so geändert, dass Telematik-IDs als Identifier verwendet werden können. ( |
Endpoint in gematik Directory (EndpointDirectory) |
Endpoint Ressource ( |
Location in gematik Directory (LocationDirectory) |
Location ( |
HealthcareService |
HealthcareService ( |
PractitionerRole in gematik Directory (PractitionerRoleDirectory) |
PractitionerRole ( |
ML-123880 - Einschränkung der nutzbaren FHIR-Ressourcen (VZD-FHIR-Directory)
Nur die in Tabelle "VZD-FHIR-Directory, FHIR-Ressourcen" angegebenen Ressourcen dürfen im VZD-FHIR-Directory erzeugt werden. [<=]
54.1.2 Mapping von LDAP auf FHIR-Ressourcen
Die TIOrganization- und TIPractitionerOrganizationDirectory- und PractitionerDirectory-Basiseinträge werden durch den FHIR Proxy mit den Daten aus dem VZD-LDAP-Directory initial erzeugt und anschließend fortlaufend aktualisiert. Die synchronisierten Daten können nicht durch die Besitzer (Leistungserbringer und Organisationen) geändert werden.
Die Daten aus dem VZD-LDAP-Directory werden wie folgt den FHIR-Ressourcen zugeordnet.
Tabelle 3: VZD-FHIR-Directory_Mapping_LDAP_to_FHIR
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5: https://github.com/gematik/api-vzd/blob/master/docs/LDAP2FHIR_Sync.adoc
4.1.3 FHIR RESTful API
Die Operationen der FHIR-Schnittstelle sind durch die FHIR-Spezifikation festgelegt (https://www.hl7.org/fhir/http.html ).
5.2 FHIR-Proxy und PASSporT-Service
5.2.1 Schnittstellen
5Die Anzahl der mittels /search Operation gefundenen und zurückgegebenen Einträge wird initial auf 100 begrenzt. Dieser Wert MUSS konfigurierbar sein. Die zurückgegebenen Einträge werden in einem FHIR-Ressource-Bundle zusammengefasst. Im Attribut Bundle.total MUSS die Gesamtanzahl der gefundenen Einträge (total number of matches) zurück gegeben werden.
Zusätzlich MUSS konfigurierbar sein, ob Paging eingesetzt wird und wie groß die page_size ist. Paging ist initial eingeschaltet mit page_size = 10. Wenn eine Suche mehr Treffer enthält, als in page_size angegeben, dann enthält die Response ein bundle mit den gefundenen Einträgen gemäß page_size und einen Link auf die nächste page.
4.2 FHIR-Proxy
4.2.1 Schnittstellen
4.2.1.1 TLS-Verbindungsaufbau
Der FHIR-Proxy MUSS sich beim TLS-Verbindungsaufbau an den Endpunkten gegenüber Clients mit einem Extended Validation TLS-Zertifikat eines Herausgebers gemäß [CAB-Forum] authentisieren. Das Zertifikat MUSS an die Schnittstelle des Eingangspunkts für Clientsysteme gebunden werden, damit Clientsysteme beim TLS-Verbindungsaufbau eine vereinfachte Zertifikatsprüfung mit TLS-Standardbibliotheken durchführen können.
54.2.1.2 FHIR Schnittstelle für TI-Messenger-Nutzer
Endpunkte für die Suche von Einträgen im VZD-FHIR-Directory durch TI-Messenger-Clients
In der Produktionsumgebung ist die URL: https://vzd-fhir-directory.vzd.ti-dienste.de/tim-searchhttps://fhir-directory.vzd.ti-dienste.de/search
In der Referenzumgebung ist die URL: https://ru-vzd-fhir-directory-test.vzd.ti-dienste.de/tim-searchhttps://fhir-directory-ref.vzd.ti-dienste.de/search
In der Testumgebung ist die URL: https://tu-vzd-fhir-directory-test.vzd.ti-dienste.de/tim-searchhttps://fhir-directory-test.vzd.ti-dienste.de/search
Authentisierung
Um die Schnittstelle nutzen zu können MÜSSEN sich die Clients mit einem gültigen AccesstokenToken authentisieren, das von einem Matrix-Homeserver aus der TI-Messenger-Föderation ausgestellt wurde. Im folgendenFolgenden werden diese Accesstoken Matrix-OpenID-Token genannt. Nach erfolgreicher Prüfung des Matrix-OpenID-Token stellt der FHIR-Proxy dem TI-Messenger-Client ein neues OAuth Accesstoken aus (tim-accesstoken), dass für Suchanfragen des TI-Messenger-Clients verwendet wird. Die Gültigkeitsdauer ist 24 Stunden.
Das Accesstoken enthält folgende Attribute:
{ |
Das Attribut "iss" enthält die URL des Endpunktes für die Authentisierung in der jeweiligen Umgebung RU, TU oder PU.
Das Attribut "aud" enthält die URL des Endpunktes in der jeweiligen Umgebung RU, TU oder PU.
Endpunkte für die Authentisierung
In der Produktionsumgebung ist die URL: https://vzd-fhir-directory.vzd.ti-dienste.de/tim-authenticatehttps://fhir-directory.vzd.ti-dienste.de/tim-authenticate
In der Referenzumgebung ist die URL: https://ru-vzd-fhir-directory-test.vzd.ti-dienste.de/tim-authenticatehttps://fhir-directory-ref.vzd.ti-dienste.de/tim-authenticate
In der Testumgebung ist die URL: https://tu-vzd-fhir-directory-test.vzd.ti-dienste.de/tim-authenticatehttps://fhir-directory-test.vzd.ti-dienste.de/tim-authenticate
Operationen
Die FHIR Operationen für die Suche nach Einträgen im VZD-FHIR-Directory sind in der HL7 FHIR Spezifikation (https://www.hl7.org/fhir/http.html ) festgelegt.
PASSporT-Service
Das VZD-FHIR-Directory MUSS für alle gefundenen MXIDs PASSporT erzeugen und in die Response einfügen (siehe AF_10036).
Der Aufbau des PASSporT MUSS wie im RFC[8225] beschrieben erfolgen. Die Befüllung der gezeigten Header Elemente MUSS wie im RFC[8225] gefordert erfolgen und wie folgt aufgebaut sein:
|
Die TI-Messenger spezifischen PASSporT-Claims sind durch den PASSporT-Service wie folgt zu befüllen. Der Claim mit dem Bezeichner "orig" ist die MXID des Nutzers der den GET /tim_search Request ausgeführt hat. Der Claim "dest" wird mit der MXID des gefundenen Eintrags befüllt. Die MXIDs werden in url Notation angegeben. Das folgende Beispiel zeigt eine solche Struktur.
|
Dieses erzeugte PASSporT wird dann durch den PASSporT-Service signiert und anschließend an die gefundene MXID angefügt (matrix:u/you:example.org/?PASSporT=[PASSporT-String]).
Die ausgestellten PASSporT werden mit einem Zertifikat aus der Komponenten PKI der TI signiert. Die Zertifikate haben die keyUsage = digitalSignature.
54.2.1.3 FHIR-Schnittstelle für Besitzer
Die Schnittstelle ermöglicht es den Besitzern einer Telematik-ID, ihren Eintrag im VZD-FHIR-Directory zu ändern. Im, bei der Authentifizierung, verwendeten Accesstoken ist die Telematik-ID des Nutzers enthalten. Nur der Eintrag (TIPractitioner oder TIOrganizationPractitionerDirectory oder OrganizationDirectory) mit der eigenen Telematik-ID darf verändert werden. Dabei dürfen nur die Attribute verändert werden, die nicht vom VZD-LDAP-Directory synchronisiert werden.
Endpunkte für das Ändern von eigenen Einträgen im VZD-FHIR-Directory durch TI-Messenger Clients und Org-Admin-Clients
In der Produktionsumgebung ist die URL: https://vzd-fhir-directory.vzd.ti-dienste.de/ownerhttps://fhir-directory.vzd.ti-dienste.de/owner
In der Referenzumgebung ist die URL: https://ru-vzd-fhir-directory-test.vzd.ti-dienste.de/ownerhttps://fhir-directory-ref.vzd.ti-dienste.de/owner
In der Testumgebung ist die URL: https://tu-vzd-fhir-directory-test.vzd.ti-dienste.de/ownerhttps://fhir-directory-test.vzd.ti-dienste.de/owner
Authentisierung
Um die Schnittstelle nutzen zu können, MÜSSEN sich die Clients mit einem gültigen Accesstoken authentisieren, das vom FHIR-Proxy ausgestellt wurde. Wenn kein gültiges Accesstoken im Client vorhanden ist, dann muss sich der Client an einem IDP der TI-IDP-Föderation authentisieren.
Nur der eigene Eintrag mit einem Identifier passend zur Telematik-ID aus dem Accesstoken KANN bearbeitet werden. Für einen eigenen TIOrganizationOrganizationDirectory-Eintrag KÖNNEN weitere TIOrganizationOrganizationDirectory-Einträge erstellt und mit dem eigenen Eintrag verlinkt werden.
Das Accesstoken enthält folgende Attribute:
{ |
Das Attribut "iss" enthält die URL des Endpunktes für die Authentisierung in der jeweiligen Umgebung RU, TU oder PU.
Das Attribut "aud" enthält die URL des Endpunktes in der jeweiligen Umgebung RU, TU oder PU.
Endpunkte für die Authentisierung
In der Produktionsumgebung ist die URL: https://vzd-fhir-directory.vzd.ti-dienste.de/owner-authenticatehttps://fhir-directory.vzd.ti-dienste.de/owner-authenticate
In der Referenzumgebung ist die URL: https://ru-vzd-fhir-directory-test.vzd.ti-dienste.de/owner-authenticatehttps://vzd-fhir-directory-ref.vzd.ti-dienste.de/owner-authenticate
In der Testumgebung ist die URL: https://tu-vzd-fhir-directory-test.vzd.ti-dienste.de/owner-authenticatehttps://vzd-fhir-directory-test.vzd.ti-dienste.de/owner-authenticate
Operationen
Die FHIR-Operationen für das Ändern von eigenen Einträgen im VZD-FHIR-Directory sind in der HL7-FHIR-Spezifikation (https://www.hl7.org/fhir/http.html ) festgelegt.
54.2.1.4 Schnittstelle I_VZD_TIM_Provider_Services
Endpunkte
In der Produktionsumgebung ist die URL: https://vzd-fhir-directory.vzd.ti-dienste.de/tim-provider-serviceshttps://fhir-directory.vzd.ti-dienste.de/tim-provider-services
In der Referenzumgebung ist die URL: https://ru-vzd-fhir-directory-test.vzd.ti-dienste.de/tim-provider-serviceshttps://fhir-directory-ref.vzd.ti-dienste.de/tim-provider-services
In der Testumgebung ist die URL: https://tu-vzd-fhir-directory-test.vzd.ti-dienste.de/tim-provider-serviceshttps://fhir-directory-test.vzd.ti-dienste.de/tim-provider-services
Authentisierung
Um die Schnittstelle nutzen zu können muss sich der Registrierungsdienst des TI-Messenger-Anbieters mit einem Accesstoken authentisieren, das vom OAuth-Server des VZD-Anbieters ausgestellt wurde. Das Accesstoken hat eine Gültigkeitsdauer von 30 Minuten.
Das Accesstoken enthält folgende Attribute:
{ |
Das Attribut "iss" enthält die URL des Endpunktes für die Authentisierung in der jeweiligen Umgebung RU, TU oder PU.
Das Attribut "aud" enthält die URL des Endpunktes in der jeweiligen Umgebung RU, TU oder PU.
Endpunkte für die Authentisierung
In der Produktionsumgebung ist die URL: https://oauth.vzd.ti-dienste.de/authenticate
In der Referenzumgebung ist die URL: https://ru-oauth-test.vzd.ti-dienste.de/authenticate
In der Testumgebung ist die URL: https://tu-oauth-test.vzd.ti-dienste.de/authenticate
Registrierung
Für dieden Zugriff auf den OAuth-Server MUSS der TI-Messenger-Anbieter für seinen Registrierungsdienst beim VZD-Anbieter Client-Credentials beantragen. Die Beantragung erfolgt über einen genehmigungspflichtigen Service-Request an betrieb@gematik.de mit dem Betreff "VZD-FHIR-Directory (De-)/Registrierung" notwendigim TI-ITSM-System.
Die Registrierung und Vergabe der Credentials erfolgt dabei auf OrganisationsebeneAnbieterebene.
Der Antrag MUSS folgende Informationen enthalten um weiter bearbeitet werden zu können:
- Angaben zur Rolle (hier
Admin_TI_-Messenger_Data-Anbieter) und Organisation des Antragstellers, Erläuterung der Berechtigung und des Bedarfs (zur Verifikation notwendig) - Kontaktdaten zu Ansprechpartnern beim Antragsteller (2 Personen) inkl. Telefonnummer, E-Mail-Adresse, Anschrift
- Angabe der Betriebsumgebung (RU/PU)
- E-Mail-Adresse und dazugehöriges S/MIME-Zertifikat (in einer ZIP-Datei als Anhang) an welche die Zugangsdaten verschlüsselt übermittelt werden können (kostenlose Zertifikate sind z.B. beim DGN erhältlich)
- falls bereits vorhanden, eine entsprechende Ticketnummer
- nur bei Deregistrierung durch den Antragsteller: vorab vergebene Client-ID
- gewünschte Bezeichnung im OAuth2-Server ID_TOKEN claim scope
Nach Prüfung der Angaben, werden die Zugangsdaten direkt vom Anbieter Zentrale Plattformdienste (vgl. gemKPT_Betr) an die gewünschte E-Mail-Adresse übermittelt.
Es ist zu beachten, dass dieser Prozess ausschließlich für Neuanlagen und Löschungen vorgesehen ist. Änderungen oder der Neuversand von Zugangsdaten können nicht bearbeitet werden.
Operationen
Die Schnittstelle ist in I_VZD_TIM_Provider_Services.yaml als OpenAPI RESTful Service spezifiziert.
https://github.com/gematik/api-vzd/blob/master/src/I_VZD_TIM_Provider_Services.yamlhttps://github.com/gematik/api-vzd/blob/main/src/openapi/I_VZD_TIM_Provider_Services.yaml
Tabelle 4: Tab_VZD_TIM-Provider-Services_Operations
Operation |
Beschreibung |
GET / |
Mit dieser Operation können Metadaten (insbesondere auch die Version und das verwendete yaml-File) dieser Schnittstelle abgefragt werden. |
GET /FederationList/federationList.json |
Mit dieser Operation wird die Liste der an der TI-Messenger-Föderation beteiligten Matrix-Domainnamen abgefragt (Föderationsliste). |
GET / |
|
POST /federation |
Eine Domaine zur Föderation hinzufügen. |
GET /federation |
Lesen einer oder aller eigener Domains. |
PUT /federation |
Aktualisierung einer Domaine. |
DELETE /federation |
Löschen einer Domaine. |
GET |
|
Im Attribut "sub" des Accesstoken ist die client_id des TI-Messenger-Registrierungsdienstes enthalten. Wenn der TI-Messenger-Registrierungsdienst einen TIOrganizationOrganizationDirectory-Eintrag erzeugt, dann MUSS die client_id im Element alias des EintrageEintrags enthalten sein
54.2.2 Aktualisierung der Basiseinträge
Der FHIR-Proxy aktualisiert regelmäßig die Basiseinträge im VZD-FHIR-Directory mit den geänderten Daten des VZD-LDAP-Directories (siehe AF_10047 Einträge mit dem VZD-LDAP-Directory abgleichen). Das Intervall für die regelmäßige Aktualisierung MUSS konfigurierbar sein und wird initial auf 2 Stunden festgelegt.
Es MUSS (analog dem Background-Sync-Verfahren in die LDAP flache Liste) eine weitere Synchronisation mittels PUSH in den FHIR VZD möglich sein.
Zukünftig ist vorgesehen, dass Kartenherausgeber direkt die Basiseinträge ihrer Mitglieder im VZD-FHIR-Directory über eine FHIR-Schnittstelle verwalten können.
54.2.3 Erzeugung und VerteilungBereitstellung der Föderationsliste
Der FHIR-ProxyDie Föderationsliste MUSS bei jeder Änderung an den Endpoint-Einträgen der TIM-Anbieter über die Schnittstelle I_VZD_TIM_Provider_Services die Föderationsliste aktualisieren und dabei die Versionsnummer erhöhen und anschließend über ein internes Netzwerk des Anbieters auf alle FHIR-Proxy-Instanzen verteilen sowie für die Abfrage über die Schnittstelle I_VZD_TIM_Provider_Services bereithaltender Domains durch TI-Messenger-Anbieter oder regelmäßig (7 Tage vor Ablauf der Gültigkeit) neu erzeugt und zum Download über die Schnittstelle I_VZD_TIM_Provider_Services bereitgestellt werden.
Die Föderationsliste wird vollständig erzeugt, indem alle Endpoint Einträge abgefragt werden, die das CodeSystem connectionType.System = https://gematik.de/fhir/VZD-FHIR-Directory/CodeSystem/TIMessengerCS hat folgende Struktur:
und den connectionType.code == "tim-domain" haben.
Für jeden Endpoint-Eintrag wird aus dem Wert des Elements "name" mit dem Hash-Algorithmus "SHA-256" ein hash gebildet und in die Föderationsliste eingetragen. In der Föderationsliste MUSS das Element hashAlgorithm den Wert "SHA-256" haben
(siehe I_VZD_TIM_Provider_Services.yaml).
{ |
Die Aktualisierung der Föderationsliste KANN so implementiert werden, dass nur die geänderten Endpoint-Einträge in der Föderationsliste aktualisiert werden (z. B. über FHIR R4.5.1 Subscriptions; siehe https://build.fhir.org/subscription.html )Die Föderationsliste MUSS mit einer JWS gemäß RFC7515 signiert werden. Der zu verwendende Signatur-Algorithmus MUSS "ES256" sein. Dazu MUSS ein Signatur-Zertifikat der Komponenten-PKI der TI (C.FD.SIG) verwendet werden. Das Signatur-Zertifikat und das ausstellende CA-Zertifikat MÜSSEN im Signatur-Header enthalten sein.
Der Anbieter des VZD-FHIR-Directories MUSS geeignete Maßnahmen vorsehen, die verhindern, dass die Föderationsliste manipuliert werden kann.Signatur-Header hat folgende Struktur:
{ |
Die signierte Föderationsliste hat gemäß RFC7515 folgende Struktur:
{ |
ML-123677 - Maßnahmen gegen die Manipulation der Föderationsliste (VZD-FHIR-Directory, Sicherheitsgutachten)
Im Sicherheitsgutachten des VZD-FHIR-Directories sind geeignete Maßnahmen gegen die Manipulation der Föderationsliste beschrieben. [<=]
5.3 Übergreifende Vorgaben
54.2.4 Lokalisierung einer MXID (Operation whereIs)
Der FHIR-Proxy MUSS die Lokalisierung einer MXID über Operation whereIs performant bereitstellen. Dazu MUSS der FHIR-Proxy bei jeder Änderung an den Endpoint-Einträgen (der MXID darin) die benötigten Daten für die performante Antwort der whereIs Operation aktualisieren. Der FHIR-Proxy DARF NICHT die originalen FHIR-Daten für die Ausführung der whereIs Operation durchsuchen.
4.3 Übergreifende Vorgaben
4.3.1 Sicherheit
Schutz vor Sicherheits-Risiken
Das VZD-FHIR-Directory MUSS Maßnahmen zum Schutz vor Sicherheits-Risiken gemäß der aktuellen Version der OWASP-Top-10 umsetzen (https://owasp.org/www-project-top-ten/ ).
Es gelten Diedie Anforderungen an TLS-Verbindungen gemäß [gemSpec_Krypt#3.3.2] TLS-Verbindungen.
ML-123682 - Maßnahmen zum Schutz vor Sicherheits-Risiken (VZD-FHIR-Directory, Sicherheitsgutachten)
Im Sicherheitsgutachten des VZD-FHIR-Directories sind geeignete Maßnahmen zum Schutz vor Sicherheits-Risiken gemäß der aktuellen Version der OWASP-Top-10 beschrieben. [<=]
54.3.2 Betrieb
Das VZD-FHIR-Directory wird betrieblich als eine weitere Servicekomponente im Sinne der Weiterentwicklung des Verzeichnisdienstes betrachtet. Diese Servicekomponente kann, bis auf die Schnittstellen, unabhängig vom VZD-LDAP-Directory entwickelt und deployt werden. Aus Nutzersicht ist weniger die interne, logische Struktur der Verzeichnisdienste relevant, sondern die Verfügbarkeit der Schnittstellen und die im Verzeichnis enthaltenen Daten.
Das VZD-FHIR-Directory MUSS mit einer vollumfänglich-funktionalen Verfügbarkeit von 99,8 % zur Hauptzeit und 99 % zur Nebenzeit betreibbar sein.
Der Anbieter des VZD-FHIR-Directorys MUSS sein Produkt VZD-FHIR-Directory mit einer vollumfänglich-funktionalen Verfügbarkeit von 99,8 % zur Hauptzeit und 99 % zur Nebenzeit betreiben.
6 Anwendungsfälle
6.1 TI-Messenger-Nutzer sucht TIOrganization- und TIPractitioner-Einträge im VZD-FHIR-Directory
AF_10036 - TI-Messenger-Nutzer sucht TIOrganization- und TIPractitioner-Einträge im VZD-FHIR-Directorydie Bearbeitungszeitvorgaben unter Last aus Tab_VZD_FHIR_Perf unter der für alle Funktionen parallel anliegenden Spitzenlast erfüllen.
Tabelle 5: Tab_VZD_FHIR_Perf
|
|
Bearbeitungszeitvorgaben |
Bearbeitungszeitvorgaben |
|||||
|
1000 |
1000 |
1250 |
|
||||
|
20 |
1000 |
1250 |
|
||||
|
|
|
|
|
||||
- getFederationList |
1 |
1000 |
1250 |
|||||
- whereIs |
50 |
1000 |
1250 |
|||||
- addTiMessengerDomain |
1 |
1000 |
1250 |
|||||
- getTiMessengerDomain |
1 |
1000 |
1250 |
|||||
- updateTiMessengerDomain |
1 |
1000 |
1250 |
|||||
- deleteTiMessengerDomain |
1 |
1000 |
1250 |
|||||
- checkTiMessengerDomains |
1 |
1000 |
1250 |
|||||
5 Anwendungsfälle
5.1 TI-Messenger-Nutzer sucht Einträge im FHIR-Directory
AF_10036 - Nutzer sucht Einträge im FHIR-Directory
Attribute |
Bemerkung |
Beschreibung |
Nutzer können im FHIR-Directory nach HealthcareServiceDirectory- und PractitionerRoleDirectory-Einträgen suchen. Dazu ist eine Authentisierung am Auth-Service erforderlich. Hier ist die Authentisierung mit TI-Messenger-Clients beschrieben. |
Vorbedingung |
Der Nutzer ist an seinem Homeserver registriert. |
Nachbedingung |
Der TI-Messenger-Client hat alle gefundenen Einträge empfangen. |
Abbildung 3: Sequence diagram /tim-search
[<=]
Akzeptanzkriterien für den Anwendungsfall AF_10036 Nutzer sucht TIOrganization- und TIPractitionerOrganizationDirectory- und PractitionerDirectory-Einträge im VZD-FHIR-Directory
ML-123485 - Authentifizierung am Endpunkt /tim-search (VZD-FHIR-Directory, Sicherheitsgutachten)
Am Endpunkt /tim-search des FHIR-Proxy darf die Authentifizierung nur für NutzerRequests erfolgreich sein, die an einem Homeserver der TI-Messenger Föderation registriert sind. [<=]
ML-123483 - PASSporT Erzeugung (VZD-FHIR-Directory, Sicherheitsgutachten)
Der FHIR-Proxy darf nur PASSporT ausstellen, wenn im telecom Element des Eintrags eine MXID in url-Form vorhanden ist und das period.endDate nicht in der Vergangenheit liegt. [<=]
6.2 TIOrganization-Einträge oder TIPractitioner-Einträge im VZD-FHIR-Directory ändernein gültiges search-accesstoken im Authentication Header enthalten, dass vom Auth-Service ausgestellt wurde. [<=]
5.2 Eigentümer ändert seinen Eintrag im FHIR-Directory
AF_10037 - TIOrganization-Einträge oder TIPractitioner-Einträge im VZD-FHIR-Directory ändern
Attribute |
Bemerkung |
Beschreibung |
Organisationen können ihren Eintrag im VZD-FHIR-Directory an die eigenen Strukturen anpassen. Leistungserbringer können z. B. die TI-Messenger-Adresse in ihrem Eintrag hinzufügen. Der Basiseintrag einer Organisation oder eines Leistungserbringers wird wie bisher durch die Kartenherausgeber erstellt. Die Organisation KANN eigene mit dem Basiseintrag verlinkte |
Vorbedingung |
Die Organisation oder der Leistungserbringer hat bereits einen Basiseintrag im VZD-FHIR-Directory. |
Fehlermeldungen |
|
Abbildung 4: Sequenzdiagramm VZD-FHIR-Directory Änderung von eigenen TIOrganization- oder TIPractitioner-EinträgenOrganizationDirectory- oder PractitionerDirectory-Einträgen
[<=]
Akzeptanzkriterien für den Anwendungsfall AF_10037 TIOrganizationOrganizationDirectory-Einträge im VZD-FHIR-Directory ändern
ML-123873 - Authentifizierung am Endpunkt /owner (VZD-FHIR-Directory, Sicherheitsgutachten)
Am Endpunkt /owner des FHIR-Proxy darf die Authentifizierung nur für Nutzer erfolgreich sein, die ein gültiges Accesstoken vom VZD-FHIR-Directory vorweisen.
[<=]
ML-123874 - Nur Einträge mit eigener Telematik-ID verändern (VZD-FHIR-Directory)
Im, bei der Authentifizierung verwendeten, Accesstoken ist die Telematik-ID des Nutzers enthalten. Nur der Eintrag (TIPractitioner oder TIOrganizationPractitionerDirectory oder OrganizationDirectory) mit der eigenen Telematik-ID darf verändert werden. Dabei dürfen nur die Attribute verändert werden, die nicht vom VZD-LDAP-Directory synchronisiert werden.
[<=]
ML-123482 - Selbst angelegte TIOrganisationOrganizationDirectory-Einträge MÜSSEN mit dem eigenen Basiseintrag verlinkt sein (VZD-FHIR-Directory)
Alle selbst durch den Besitzer angelegten FHIR-Einträge MÜSSEN mit dem eigenen Basiseintrag mittels partOf verlinkt sein. Wenn keine korrekte Verlinkung angegeben ist, dann MUSS der FHIR-Proxy das Erzeugen oder die Änderung des TIOrganisationOrganizationDirectory-Eintrags mit der Fehlermeldung (HTTP 422 Unprocessable Entity) ablehnen. [<=]
65.3 Anwendungsfälle der TI-Messenger-Anbieter im VZD-FHIR-Directory
AF_10048 - Anwendungsfälle der TI-Messenger-Anbieter im VZD-FHIR-Directory
Attribute |
Bemerkung |
Beschreibung |
Für den Betrieb eines TI-Messenger-Fachdienstes ist es erforderlich, alle an der Föderation beteiligten Matrix-Domänen zu kennen, um nicht an der Föderation beteiligte Matrix-Domänen ausschließen zu können. |
Vorbedingung |
Der Registrierungsdienst des TI-Messenger-Anbieters ist bereits als Nutzer des VZD-FHIR-Directories registriert und hat OAuth Client Credentials (client_id und client_secret) für die Umgebungen RU, TU und PU erhalten. |
Abbildung 5: VZD-FHIR-Directory_Sequenzdiagramm_TI-Messenger-Provider-Services
[<=]
ML-123881 - Authentifizierung an der Schnittstelle I_VZD_TIM_Provider_Services (VZD-FHIR-Directory, Sicherheitsgutachten)
An der Schnittstelle I_VZD_TIM_Provider_Services darf die Authentifizierung nur für Clients erfolgreich sein, die ein gültiges Accesstokenprovider-accesstoken vom OAuth-Server des VZD-Anbieters vorweisen.
[<=]
65.4 Einträge mit dem VZD-LDAP-Directory abgleichen
AF_10047 - Einträge mit dem VZD-LDAP-Directory abgleichen
Attribute |
Bemerkung |
Beschreibung |
Der FHIR-Proxy aktualisiert regelmäßig in einem konfigurierbaren Intervall die im VZD-LDAP-Directory seit der letzten Aktualisierung geänderten Einträge. |
Abbildung 6: VZD-FHIR-Directory, Aktualisierung der Basiseinträge
[<=]
76 Verteilungssicht
Das VZD-FHIR-Directory unterstützt initial die Anwendung TI-Messenger; wird zukünftig aber auch die anderen Anwendungen wie ePA und KIM in deren Folgeversionen sowie bisher unbekannte Fachanwendungen und neue Nutzergruppen unterstützen. Es ist daher erforderlich, dass das VZD-FHIR-Directory mit der Anzahl der Nutzerzugriffe skalieren und anwendungsspezifische Ressourcen speichern kann.
Der FHIR-Proxy MUSS in mehreren Instanzen betrieben werden können, die die Schnittstellen Richtung Internet für Abfragen der TI-Messenger-Nutzer und Änderungen durch die Besitzer implementieren. Das Load-Balancing der Client-Requests erfolgt per DNS, indem für jede Instanz des FHIR-Proxy ein A und ein AAAA Resource Record für die RU, TU und PU FQDNs der Schnittstellen im DNS eingetragen wird. Instanzen des FHIR-Proxies werden je nach Last hinzugefügt oder entfernt.
Die FHIR-Proxy sind auch die HTTP-Load-Balancer für die Lesezugriffe auf FHIR-Directory-Instanzen. Für den Schreibzugriff wird eine Instanz implementiert. Die Datenbanken der Instanzen für den Lesezugriff werden mit der Datenbank für den Schreibzugriff synchronisiert.
Eine weitere Komponente setzt die Aktualisierung der Basiseinträge im FHIR-Directory mit den geänderten Daten aus dem VZD-LDAP-Directory um. Zusätzlich implementiert diese Komponente die Schnittstelle I_VZD_TIM_Provider_Services.
Abbildung 7: VZD-FHIR-Directory, Verteilungssicht
87 Anhang A – Verzeichnisse
87.1 Abkürzungen
Kürzel |
Erläuterung |
AF |
Anwendungsfall |
DNS |
Domain Name System |
FHIR |
Fast Healthcare Interoperable Resources |
FQDN |
Fully Qualified Domain Name |
LDAP |
Lightweight Directory Access Protocol |
OWASP |
Open Web Application Security Project |
|
|
PU |
Produktivumgebung |
RU |
Referenzumgebung |
SHA |
Secure Hash Algorithm |
TLS |
Transport Layer Security |
TI |
Telematikinfrastruktur |
TIM |
TI-Messenger (ausschließliche Verwendung der Abkürzung in Attributen, Parametern oder URLs) |
TU |
Testumgebung |
VZD |
Verzeichnisdienst |
87.2 Glossar
Begriff |
Erläuterung |
Funktionsmerkmal |
Der Begriff beschreibt eine Funktion oder auch einzelne, eine logische Einheit bildende Teilfunktionen der TI im Rahmen der funktionalen Zerlegung des Systems. |
|
|
Das Glossar wird als eigenständiges Dokument (vgl. [gemGlossar]) zur Verfügung gestellt.
87.3 Abbildungsverzeichnis
Abbildung 1: Systemüberblick VZD-FHIR-DirectoryAbbildung 1: Systemüberblick VZD-FHIR-Directory
Abbildung 2: Zerlegung des VZD
Abbildung 3: Sequence diagram /tim-search
Abbildung 5: VZD-FHIR-Directory_Sequenzdiagramm_TI-Messenger-Provider-Services
Abbildung 6: VZD-FHIR-Directory, Aktualisierung der Basiseinträge
Abbildung 7: VZD-FHIR-Directory, Verteilungssicht
87.4 Tabellenverzeichnis
Tabelle 1: VZD_FHIR_Directory_Akteure_und_RollenTabelle 1: Nutzer und Rollen
Tabelle 2: VZD-FHIR-Directory, FHIR-RessourcenTabelle 2: Kommunikationsbeziehungen zu IT-Systemen
Tabelle 3: VZD-FHIR-Directory_Mapping_LDAP_to_FHIRTabelle 3: VZD-FHIR-Directory, FHIR-Ressourcen
Tabelle 4: Tab_VZD_TIM-Provider-Services_Operations
7.5 Referenzierte Dokumente
87.5.1 Dokumente der gematik
Die nachfolgende Tabelle enthält die Bezeichnung der in dem vorliegenden Dokument referenzierten Dokumente der gematik zur Telematikinfrastruktur. Der mit der vorliegenden Version korrelierende Entwicklungsstand dieser Konzepte und Spezifikationen wird pro Release in einer Dokumentenlandkarte definiert; Version und Stand der referenzierten Dokumente sind daher in der nachfolgenden Tabelle nicht aufgeführt. Deren zu diesem Dokument jeweils gültige Versionsnummern sind in der aktuellen, von der gematik veröffentlichten Dokumentenlandkarte enthalten, in der die vorliegende Version aufgeführt wird.
[Quelle] |
Herausgeber: Titel |
[gemGlossar] |
gematik: Einführung der Gesundheitskarte – Glossar |
[gemSpec_VZD] |
gematik: Spezifikation Verzeichnisdienst |
[gemSpec_Krypt] |
gematik: Übergreifende Spezifikation Verwendung kryptographischer Algorithmen in der Telematikinfrastruktur |
[gemKPT_Betr] |
gematik: Betriebskonzept Online-Produktivbetrieb |
87.5.2 Weitere Dokumente
[Quelle] |
Herausgeber (Erscheinungsdatum): Titel |
[CAB-Forum] |
Liste vertrauenswürdiger Zertifikatsherausgeber (Root-CAs) für Anwendungen im Internet |
97.6 Versionierung Datenmodell
Folgende Versionen der Datenmodell Ressourcen (https://simplifier.net/vzd-fhir-directory/ ) sind für die vorliegende Spezifikation relevant:
8 Anhang B - Beispiele
98.1 FHIR Operationen
98.1.1 Abfrage von TIOrganisationOrganizationDirectory Einträgen
98.1.1.1 Client Code
// Create a client (only needed once)
FhirContext ctx = new FhirContext();
IGenericClient client = ctx.newRestfulGenericClient("http://hapi.fhir.org/baseR4");
// Invoke the client
Bundle bundle = client.search().forResource(TIOrganizationHealthcareService.class).where(new StringClientParam("location.address").matches().value("10117"))
.include(new Include("TIOrganization:endpointOrganization"))
.prettyPrint()
.execute();
98.1.1.2 Request
GET http://hapi.fhir.org/baseR4/TIOrganization?address=10117&_include=TIOrganization:endpoint&_pretty=truehttp://hapi.fhir.org/baseR4/HealthcareService?location.address=10117&_include=Organization&_pretty=true
98.1.1.3 Request Headers
Accept-Charset: utf-8
Accept: application/fhir+xml;q=1.0, application/fhir+json;q=1.0, application/xml+fhir;q=0.9, application/json+fhir;q=0.9
User-Agent: HAPI-FHIR/5.5.0-PRE1-SNAPSHOT (FHIR Client; FHIR 4.0.1/R4; apache)
Accept-Encoding: gzip
98.1.1.4 Response
HTTP 200 OK
98.1.1.5 Response Headers
x-request-id: hr3p6Pi0jorUblN7
date: Fri, 06 Aug 2021 10:22:24 GMT
last-modified: Fri, 06 Aug 2021 10:22:23 GMT
server: nginx/1.18.0 (Ubuntu)
transfer-encoding: chunked
x-powered-by: HAPI FHIR 5.5.0-PRE1-SNAPSHOT/1703568840/2021-05-28 REST Server (FHIR Server; FHIR 4.0.1/R4)
connection: keep-alive
content-type: application/fhir+json;charset=utf-8
98.1.1.6 Response Body
{
"resourceType": "Bundle",
"id": "ec8a4846-5719-4760-833f-606f01ea6055",
"meta": {
"lastUpdated": "2021-08-06T06:56:44.620+00:00"
},
"type": "searchset",
"total": 2,
"link": [ {
"relation": "self",
"url": "http://hapi.fhir.org/baseR4/TIOrganization?_include=TIOrganization%3Aendpoint
&_pretty=true&address=10117"
} ],
"entry": [ {
"fullUrl": "http://hapi.fhir.org/baseR4/TIOrganization/2500949",
"resource": {
"resourceType": "TIOrganization",
"id": "2500949",
"meta": {
"versionId": "1",
"lastUpdated": "2021-08-04T15:51:20.261+00:00",
"source": "#0j3wXiC80VNH7wON"
},
"name": "Test Organisation der TI",
"telecom": [ {
"system": "url",
"value": "matrix:u/testorg:gematik.de"
} ],
"address": [ {
"line": [ "Friedrichstr. 136" ],
"city": "Berlin",
"state": "Berlin",
"postalCode": "10117",
"country": "Germany"
} ]
},
"search": {
"mode": "match"
}
}, {
"fullUrl": "http://hapi.fhir.org/baseR4/TIOrganization/2500973",
"resource": {
"resourceType": "TIOrganization",
"id": "2500973",
"meta": {
"versionId": "1",
"lastUpdated": "2021-08-04T16:55:16.931+00:00",
"source": "#q5G1swl1SHzfbbjj"
},
"name": "Test Organisation 2 der TI",
"telecom": [ {
"system": "url",
"value": "matrix:u/testorg2:gematik.de"
} ],
"address": [ {
"line": [ "Friedrichstr. 136" ],
"city": "Berlin",
"state": "Berlin",
"postalCode": "10117",
"country": "Germany"
} ],
"endpoint": [ {
"reference": "Endpoint/2500968"
} ]
},
"search": {
"mode": "match"
}
}, {
"fullUrl": "http://hapi.fhir.org/baseR4/Endpoint/2500968",
"resource": {
"resourceType": "Endpoint",
"id": "2500968",
"meta": {
"versionId": "1",
"lastUpdated": "2021-08-04T16:27:54.228+00:00",
"source": "#bsfK2WXBApjsoYj8"
},
"connectionType": {
"system": "https://gematik.de/fhir/VZD-FHIR-Directory/CodeSystem/TIMessengerCS",
"code": "tim-domain"
},
"name": "gematik.de",
"managingOrganization": {
"reference": "TIOrganization/2500949"
}
},
"search": {
"mode": "include"
}
} ]
}