Scope-Syntax
SMART on FHIR Access Scopes lassen sich in drei Kategorien einteilen. Diese Kategorien verwendet der zum Autorisierungssystem zugehörige Ressourcenserver, um zu entscheiden, ob eine Restful Interaktion erlaubt ist oder abgewiesen werden muss. Clients können folgende Arten von Scopes anfragen:- "patient"-Level Scopes: Alle FHIR Restful Interaktionen werden auf den Zugriff auf eine bestimmte Instanz einer Patient-Ressource, sowie damit verknüpfte Ressourcen, eingeschränkt. Eine Zusammengehörigkeit von Ressourcen KANN mittels des [FHIR-Patient-Compartments]https://www.hl7.org/fhir/R4/compartmentdefinition-patient.html) evaluiert werden. Es MÜSSEN jedoch mindestens die dort aufgelisteten Relationen unterstützt werden. Weitere für den Kontext relevante, aber Patienten-unabhängige Ressourcen, SOLLTEN ebenfalls mittels eines entsprechenden Scope herausgegeben werden, z.B. "Practitioner"- oder "Organisation"-Ressourcen.
- "user"-Level Scopes: Alle FHIR Restful Interaktionen werden eingeschränkt hinsichtlich des Zugriffs auf Ressourcen-Instanzen, die für bestimmte Benutzer sichtbar sind.
- "system"-Level Scopes: Alle FHIR Restful Interaktionen werden eingeschränkt hinsichtlich des Zugriffs auf Ressourcen-Instanzen, die sichtbar sind für einen bestimmten (technischen) Client, unabhängig davon welche Benutzer:in hiermit interagiert.
- Alle unterstützten CREATE, UPDATE, DELETE, READ, SEARCH-Interaktionen MÜSSEN als Teil eines Scopes unterstützt werden.
- Alle unterstützten Ressourcen-Typen MÜSSEN als Teil eines Scopes unterstützt werden.
- Alle unterstützten Suchparameter inkl. Modifier und Kombinationsmöglichkeiten MÜSSEN als Teil eines Scopes unterstützt werden.
Launch-Context
Clients können über die zuvor beschriebenen Access-Scopes hinaus sogenannte Launch-Context-Scopes bei dem Autorisierungsserver anfordern. Launch Claims werden nicht als Teil des Access-Tokens, sondern als Teil des JSON-Dokumentes als Antwort auf die Anfrage eines Access-Tokens zurückgeliefert. Diese Claims enthalten entweder spezifische IDs oder URIs, die FHIR-Referenzen abbilden, um kontext-relevante Informationen vorab zu übermitteln, sodass der Client entsprechend einen "Einstiegspunkt" in das System erhält.Launch-Scopes besitzen die Syntaxlaunch/<resourcen-typ>
. Der "