Skip to content

Commit

Permalink
Merge branch 'develop' into feature/gemILF_VZD_FHIR_Directory
Browse files Browse the repository at this point in the history
  • Loading branch information
gem-uhe committed Sep 11, 2023
2 parents 6622b26 + e03ef50 commit 51ce994
Show file tree
Hide file tree
Showing 15 changed files with 800 additions and 79 deletions.
1 change: 1 addition & 0 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ image:https://shields.io/badge/Application Maintenance API-1.2.4-green?logo=swag
== Aktuelles


* *28.07.2023* 👨‍💻 https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.0/docs/gemILF_VZD_FHIR_Directory.adoc[FHIR VZD Implementierungsleitfaden v1.0.0]
* *12.05.2023* 👨‍💻 https://github.com/gematik/api-vzd/blob/gemILF_Pflege_VZD/1.5.5/docs/gemILF_Pflege_VZD.adoc[Implementierungsleitfaden v1.5.5]
* *11.04.2023* 🔥 https://simplifier.net/packages/de.gematik.fhir.directory/0.10.1/~introduction[FHIR Package 0.10.1]
* *18.01.2023* 👨‍💻 https://github.com/gematik/api-vzd/blob/I_Directory_Administration/1.9.5/src/openapi/DirectoryAdministration.yaml[Directory Administration API v1.9.5]
Expand Down
28 changes: 28 additions & 0 deletions docs/VZD_FHIR_Directory-Spec-Changes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ image:gematik_logo.svg[width=70%]

toc::[]

// https://polarion.int.gematik.de/polarion/#/project/Mainline_OPB1/wiki/Anlagendokumente%20P-Liste/C_11549_Anlage

= Änderungen an VZD Spezifikationen
Dieses Dokument informiert über die Änderungen an Spezifikation gemSpec_VZD_FHIR_Directory und gemSpec_VZD, welche noch nicht auf dem gematik Fachportal veröffentlicht wurden.
Vor der Veröffentlichung auf dem Fachportal erfolgen noch Reviews. Folge dieser Reviews können Änderungen bis zur finalen Veröffentlichung bedingen.
Expand Down Expand Up @@ -190,6 +192,7 @@ Siehe Kapitel 4.6.3 Zusammenführung mehrerer TelematikID´s zu einer Organisati

|===


== Anbieten eines Polling Endpunktes
Wenn der Authenticator der gematik von Clients genutzt wird, um eine Authentifizierung auf Basis von Smartcards zu realisieren, dann ist es notwendig am Ende des Prozesses, die Kontrolle wieder an den Client zu übergeben und diesen mit den notwendigen Informationen für die weiteren Prozesschritte zu versorgen. Im folgenden werden die Anpassungen am Auth-Service des VZD-FHIR Directories beschrieben, die notwendig sind, um eine Anmeldung unter Verwendung des gematik Authenticators zu realsieren.

Expand Down Expand Up @@ -315,3 +318,28 @@ Die ERROR_REASON kann die folgenden Werte annehmen:
Das minimal erlaubte Polling-Interval wird auf 3 Sekunden festlgelegt. Das VZD speichert den Zeitstempel der letzten Polling-Anfrage, sodass bei der nächsten Anfrage mit dem gleichen auth_req_id der letzte Zeitstempel abgerufen werden kann (z.B. in der gleichen Datenbanktabelle). Der Zeitunterschied des aktuellen Zeitstempel und den letzten Zeitstempel muss im Minimum 3 Sekunden betragen.
| Bereitstellung einer neuen Redirect_uri | Aktuell liefert die vom VZD-FHIR Directory verwendete Redirect_uri (/signin-gematik-idp-dienst) bei Übergabe des Auth_code und des state einen owner-accesstoken zurück. Diese Rückgabe ist nicht notwendig, wenn der Authenticator die Redirect_uri direkt aufruft.
|=====
=======
== Support und Unterstützungsleistungen Produktivbetrieb TI-Messenger
*Es wird in gemSpec_VZD Kapitel 4.6.1.2.3 wie folgt ergänzt* +
+
Es wird in gemSpec_VZD Kapitel 5. wie folgt ergänzt
Tabelle: Tab_VZD_Mapping_Eintragstyp_und_ProfessionOID
|===
|*Eintragstyp* |*Eintragstyp Bedeutung* |*ProfessionOID (ProfessionItem)*
|...||
|*8*|*TIM*|
1.2.276.0.76.4.295 (TIM-Hersteller und -Anbieter)
|...||
|===
== Korrekturen
*Es wird in gemSpec_VZD_FHIR_Directory Kapitel "4.2.3 Erzeugung und Bereitstellung der Föderationsliste" wie folgt angepasst* +
+
+++<s>ML-123677 - Maßnahmen gegen die Manipulation der Föderationsliste (VZD-FHIR-Directory, Sicherheitsgutachten)</s>+++ +
+++<s>Im Sicherheitsgutachten des VZD-FHIR-Directories sind geeignete Maßnahmen gegen die Manipulation der Föderationsliste beschrieben.<=</s>+++
+
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
132 changes: 132 additions & 0 deletions images/diagrams/SequenceDiagram.FHIR-Directory.LinkApproval.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
134 changes: 134 additions & 0 deletions images/diagrams/SequenceDiagram.FHIR-Directory.LinkRemoval.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
190 changes: 190 additions & 0 deletions images/diagrams/SequenceDiagram.FHIR-Directory.LinkRequest.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions src/fhir/input/fsh/codesystems/OrganizationProfessionOID.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ The codes for Organizations based on Profession OIDs defined in [gemSpec_OID](ht
* #1.2.276.0.76.4.279 "Logopaedische Praxis"
* #1.2.276.0.76.4.280 "Podologiepraxis"
* #1.2.276.0.76.4.281 "Ernährungstherapeutische Praxis"
* #1.2.276.0.76.4.282 "DIGA-Hersteller und Anbieter"
* #1.2.276.0.76.4.284 "Betriebsstätte Weitere Kostenträger im Gesundheitswesen"
* #1.2.276.0.76.4.285 "Weitere Organisationen der Gesundheitsversorgung"
* #1.2.276.0.76.4.286 "KIM-Hersteller und -Anbieter"
* #1.2.276.0.76.4.295 "TIM-Hersteller und -Anbieter"
87 changes: 53 additions & 34 deletions src/openapi/DirectoryAdministration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,19 @@ info:
title: I_Directory_Administration
description: REST Schnittstelle zur Pflege der Verzeichniseinträge.
Über diese Schnittstelle können Verzeichniseinträge inklusive Zertifikaten erzeugt, aktualisiert und gelöscht werden. Die Administration von Fachdaten erfolgt über Schnittstelle I_Directory_Application_Maintenance und wird durch die Fachanwendungen durchgeführt. Lesender Zugriff auf die Fachdaten ist mit Operation getDirectoryEntries in vorliegender Schnittstelle möglich.
version: 1.11.0
version: 1.12.1

# Änderungen in Version 1.12.1
# - Merge von Versionen 1.12.0 und 1.11.1
#
# Änderungen in Version 1.12.0
# - Schema baseDirectoryEntry um Attribut providedBy erweitert.
# Damit wird die Zusammenführung von mehreren LDAP Einträgen in einer FHIR Organisation möglich.
#
# Änderungen in Version 1.11.1
# - Schema baseDirectoryEntry um Attribut providedBy erweitert.
# - Operation read_Directory_Entry: Suchparameter für komLeData und kimData vereinfacht
#
# Änderungen in Version 1.11.0
# - Schema FAD1 um kimData erweitert. Damit wird in read_Directory_Entry zusätzlich zu komLeData
# auch kimData im Response aufgenommen
Expand Down Expand Up @@ -345,6 +356,8 @@ paths:
- holder
- professionOID
- mail
- komLeData
- kimData
- Suche nach Vorhandensein oder leerem Inhalt eines Attributs des VZD Datensatzes mit dem Kode \00 in den Parametern
- givenName
Expand Down Expand Up @@ -540,50 +553,34 @@ paths:
Selektiert alle Datensätze, deren Attribut FAD1.mail den angegebenen String in einem Wert des arry's enthält.
schema:
type: string
- name: komLeData-mail
in: query
description: |
Erlaubt die Suche mit Hilfe des Attributs FAD1.komLeData.mail
Selektiert alle Datensätze, deren Attribut FAD1.komLeData.mail den angegebenen String in einem Wert des arry's enthält.
Bitte beachten: Dieser Suchparameter wird auf eine LDAP Wildcard Suche mit führendem * abgebildet und verlangsamt die Operation signifikant.
schema:
type: string
- name: komLeData-version
- name: komLeData
in: query
description: |
Erlaubt die Suche mit Hilfe des Attributs FAD1.komLeData.version
Erlaubt die Suche mit Hilfe des Attributs FAD1.komLeData
Selektiert alle Datensätze, deren Attribut FAD1.komLeData.version den angegebenen String in einem Wert des arry's enthält.
Selektiert alle Datensätze, deren Attribut FAD1.komLeData den angegebenen String in einem Wert des array's enthält.
komLeData enthält die "version" und "mail" durch Komma getrennt in einem array.
Beispiel: 1.0,mc_smcb_za@dom1.komle.telematik-test
Für diesen Suchparameter kann ein Wildcard genutzt werden.
schema:
type: string
- name: kimData-mail
- name: kimData
in: query
description: |
Erlaubt die Suche mit Hilfe des Attributs FAD1.kimData.mail
Selektiert alle Datensätze, deren Attribut FAD1.kimData.mail den angegebenen String in einem Wert des arry's enthält.
Selektiert alle Datensätze, deren Attribut FAD1.kimData den angegebenen String in einem Wert des array's enthält.
komLeData enthält die "mail", "version" und "appTags" durch Komma getrennt in einem array.
Die appTags werden durch das Pipe Zeichen getrennt.
Bitte beachten: Wenn das Pipe Zeichen im Suchstring genutzt wird muss die besondere
Bedeutung dieses Zeichens bei der LDAP Suche beachtet werden.
Beispiel: mz_smcb_za@dom2.kim.telematik-test,1.0,DALE-UV;Einsendung;V1.0|eEB;V1.0
Für diesen Suchparameter kann ein Wildcard genutzt werden, z.B.
mz_smcb_za@dom2.kim.telematik-test*
schema:
type: string
- name: kimData-version
in: query
description: |
Erlaubt die Suche mit Hilfe des Attributs FAD1.kimData.version
Selektiert alle Datensätze, deren Attribut FAD1.kimData.version den angegebenen String in einem Wert des arry's enthält.
Bitte beachten: Dieser Suchparameter wird auf eine LDAP Wildcard Suche mit führendem * abgebildet und verlangsamt die Operation signifikant.
schema:
type: string
- name: kimData-appTags
in: query
description: |
Erlaubt die Suche mit Hilfe des Attributs FAD1.kimData.appTags
Selektiert alle Datensätze, deren Attribut FAD1.kimData.appTags den angegebenen String in einem Wert des arry's enthält.
Bitte beachten: Dieser Suchparameter wird auf eine LDAP Wildcard Suche mit führendem * abgebildet und verlangsamt die Operation signifikant.
schema:
type: string

type: string

responses:
200:
Expand Down Expand Up @@ -2081,6 +2078,28 @@ components:
description: 'Wird beim Anlegen des Eintrags vom VZD aus dem Zertifikat übernommen (Feld registrationNumber der Extension Admission).
Falls der Basiseintrag (baseDirectoryEntry) ohne Zertifikat angelegt wird, kann in Operation add_Directory_Entry die telematikID angegeben werden.
Damit ist der Verzeichniseintrag bereits über die telematikID im baseDirectoryEntry auffindbar. Diese telematikID muss mit der telematikID aus dem Zertifikatseintrag (userCertificate) übereinstimmen. Simmten die telematikIDs nicht überein, wird die Operation mit Fehlercode 422 abgelehnt'
providedBy:
type: string
description: |
Erlaubt die Zusammenführung von mehreren LDAP Einträgen in einer FHIR Organisation.
In Attribut providedBy wird dazu die telematikID der übergeordneten Oragnisation eingetragen.
Wird in Attribut "providedBy" im LDAP VZD Eintrag eine TelematikID eingetragen,
wird für den LDAP Eintrag im FHIR VZD ein HealthcareService unter der - mit der TelematikID -
referenzierten Organisation generiert.
Randbedingungen:
- Es wird nur eine Hierarchieebene unterstützt (providedBy vom referenzierten Datensatz
MUSS leer sein)
- Es können nur Organisationseinträge zusammengeführt/verlinkt werden (personalEntry=false)
- Das Attribut "providedBy" darf nur eine TelematikID enthalten.
- Der Client - der dieses Attribut setzt - MUSS auch für den referenzierten
LDAP Datensatz als Holder eingetragen sein.
- Wenn Attribut providedBy gesetzt wurde, kann es nur zurückgesetzt
(Inhalt auf leer gesetzt) werden. Eine Änderung auf einen anderen Wert
wird nicht unterstützt.
- Vor Löschung eines LDAP VZD Eintrags müssen alle Verlinkungen über Attribut "providedBy"
von anderen Datensätzen auf den zu löschenden Datensatz entfernt werden.
Bei Nichteinhaltung der Randbedingungen wird die Schreiboperation (POST/PUT) mit
Fehler (HTTP Status 400) und entsprechendem Fehlertext beendet.
specialization:
maxItems: 100
type: array
Expand Down
73 changes: 33 additions & 40 deletions src/openapi/DirectoryApplicationMaintenance.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,13 @@ info:
# REST Schnittstelle zur Pflege der Fachanwendungsdaten der Verzeichniseinträge
Über diese Schnittstelle können Fachanwendungsdaten der Verzeichniseinträge erzeugt, aktualisiert und gelöscht werden.
version: 1.4.0
version: 1.4.1


# Änderungen in Version 1.4.1
# - Operation appTags: Return Type definiert
# - Operation read_Directory_Entry: Suchparameter für komLeData und kimData vereinfacht
#
# Änderungen in Version 1.4.0
# - Operation appTags ergänzt
# - Flag "noVzdMailEntry" für add_Directory_FA-Attributes und modify_Directory_FA-Attributes
Expand Down Expand Up @@ -169,6 +173,8 @@ paths:
- holder
- professionOID
- mail
- komLeData
- kimData
- Suche nach Vorhandensein oder leerem Inhalt eines Attributs des VZD Datensatzes mit dem Kode \00 in den Parametern
- givenName
Expand Down Expand Up @@ -372,50 +378,36 @@ paths:
Selektiert alle Datensätze, deren Attribut FAD1.mail den angegebenen String in einem Wert des arry's enthält.
schema:
type: string
- name: komLeData-mail
in: query
description: |
Erlaubt die Suche mit Hilfe des Attributs FAD1.komLeData.mail
Selektiert alle Datensätze, deren Attribut FAD1.komLeData.mail den angegebenen String in einem Wert des arry's enthält.
Bitte beachten: Dieser Suchparameter wird auf eine LDAP Wildcard Suche mit führendem * abgebildet und verlangsamt die Operation signifikant.
schema:
type: string
- name: komLeData-version
- name: komLeData
in: query
description: |
Erlaubt die Suche mit Hilfe des Attributs FAD1.komLeData.version
Erlaubt die Suche mit Hilfe des Attributs FAD1.komLeData
Selektiert alle Datensätze, deren Attribut FAD1.komLeData.version den angegebenen String in einem Wert des arry's enthält.
Selektiert alle Datensätze, deren Attribut FAD1.komLeData den angegebenen String in einem Wert des array's enthält.
komLeData enthält die "version" und "mail" durch Komma getrennt in einem array.
Beispiel: 1.0,mc_smcb_za@dom1.komle.telematik-test
Für diesen Suchparameter kann ein Wildcard genutzt werden.
schema:
type: string
- name: kimData-mail
- name: kimData
in: query
description: |
Erlaubt die Suche mit Hilfe des Attributs FAD1.kimData.mail
Selektiert alle Datensätze, deren Attribut FAD1.kimData.mail den angegebenen String in einem Wert des arry's enthält.
Selektiert alle Datensätze, deren Attribut FAD1.kimData den angegebenen String in einem Wert des array's enthält.
komLeData enthält die "mail", "version" und "appTags" durch Komma getrennt in einem array.
Die appTags werden durch das Pipe Zeichen getrennt.
Bitte beachten: Wenn das Pipe Zeichen im Suchstring genutzt wird muss die besondere
Bedeutung dieses Zeichens bei der LDAP Suche beachtet werden.
Beispiel: mz_smcb_za@dom2.kim.telematik-test,1.0,DALE-UV;Einsendung;V1.0|eEB;V1.0
Für diesen Suchparameter kann ein Wildcard genutzt werden, z.B.
mz_smcb_za@dom2.kim.telematik-test*
schema:
type: string
- name: kimData-version
in: query
description: |
Erlaubt die Suche mit Hilfe des Attributs FAD1.kimData.version
Selektiert alle Datensätze, deren Attribut FAD1.kimData.version den angegebenen String in einem Wert des arry's enthält.
Bitte beachten: Dieser Suchparameter wird auf eine LDAP Wildcard Suche mit führendem * abgebildet und verlangsamt die Operation signifikant.
schema:
type: string
- name: kimData-appTags
in: query
description: |
Erlaubt die Suche mit Hilfe des Attributs FAD1.kimData.appTags
Selektiert alle Datensätze, deren Attribut FAD1.kimData.appTags den angegebenen String in einem Wert des arry's enthält.
Bitte beachten: Dieser Suchparameter wird auf eine LDAP Wildcard Suche mit führendem * abgebildet und verlangsamt die Operation signifikant.
schema:
type: string


responses:
200:
description: |
Expand Down Expand Up @@ -958,19 +950,18 @@ paths:
- appTags
summary: Abfrage der Anwendungskennzeichen
description: Es wird die Liste der Anwendungskennzeichen abgefragt.
Die Anwendungskennzeichen werden als FHIR Codesystem in der
Response übergeben
Die Anwendungskennzeichen werden als FHIR Codesystem im Response zurückgegeben
operationId: getAppTags

responses:
200:
description: OK
# Rückgabe der Anwendungskennzeichen als FHIR CodeSystem (ServiceIdentifierCS)
# Siehe https://simplifier.net/app-transport-framework/service-identifier-cs/~json
# Datenstruktur siehe https://simplifier.net/app-transport-framework/service-identifier-cs/~json
content:
application/json:
schema:
{}
type: string
500:
description: Internal Server Error
content:
Expand Down Expand Up @@ -1113,11 +1104,13 @@ components:
noVzdMailEntry:
type: boolean
default: false
description: Wenn "noVzdMailEntry == true" dann werden durch den VZD die "mail" und komLeData
Attribute nicht befüllt oder im Fall von PUT werden vorhandene mail und komLeData Attribute gelöscht.
description: |
Wenn "noVzdMailEntry == true" dann werden durch den VZD die "mail" und "komLeData"
Attribute nicht befüllt oder im Fall von PUT werden vorhandene "mail" und
"komLeData" Attribute gelöscht. Nach Ausführung der Operation ist in diesem Fall nur
kimData gefüllt und die "mail" und "komLeData" Attribute sind leer.
Dieses neue Attribut soll client-seitig nur vom Basis Consumer unterstützt werden.

description: |
Liste von KIM-Adressen mit der zugehörigen KIM-Version und Anwendungskennzeichen.
Für jede Mail Adresse darf nur einen Element in der Liste `komLeData` existieren.
Expand Down
19 changes: 14 additions & 5 deletions src/openapi/I_VZD_TIM_Provider_Services.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@ info:
title: I_VZD_TIM_Provider_Services
description: REST interface to retrieve the TI-Messenger federation list and to administrate the TI-Messenger domains.

version: 1.3.0
version: 1.3.1

# version 1.3.1
# - added server urls for test, ref and prod
# - corrected example for matrix uri (replaced /user with /u)

# version 1.3.0
# - Attribut "domain" in the FederationList is not more a hash
Expand Down Expand Up @@ -55,7 +59,12 @@ externalDocs:
description: I_VZD_TIMessenger_services REST interface
url: https://www.gematik.de
servers:
- url: https://vzd-fhir-directory.vzd.ti-dienste.de/tim-provider-services
- url: https://fhir-directory-test.vzd.ti-dienste.de/tim-provider-services
description: Development server
- url: https://fhir-directory-ref.vzd.ti-dienste.de/tim-provider-services
description: Reference server
- url: https://fhir-directory.vzd.ti-dienste.de/tim-provider-services
description: roduction server
tags:
- name: getInfo
description: This operation returns meta data about this interface
Expand Down Expand Up @@ -164,10 +173,10 @@ paths:
- name: mxid
in: query
description: |
MXID (MXID in URL Form)
MXID (MXID in URI Form)
Format: matrix:user/localpart:domainpart
Beispiel MatrixID: @1-1tst-auto-ts-ow2:tim.test.gematik.de
MatrixID im URL Format: matrix:user/1-1tst-auto-ts-ow2:tim.test.gematik.de
Example MatrixID: @1-1tst-auto-ts-ow2:tim.test.gematik.de
MatrixID im URI Format: matrix:u/1-1tst-auto-ts-ow2:tim.test.gematik.de
schema:
type: string

Expand Down
Loading

0 comments on commit 51ce994

Please sign in to comment.