Share via


SMART on FHIR

Substitutable Medical Applications and Reusable Technologies (SMART on FHIR) ist ein Standard im Gesundheitswesen, über den Anwendungen auf klinische Informationen über einen Datenspeicher zugreifen können. Er fügt den FHIR-Schnittstellen eine Sicherheitsschicht hinzu, die auf offenen Standards wie OAuth2 und OpenID Connect basiert, um die Integration mit EHR-Systemen zu ermöglichen. Die Verwendung von SMART on FHIR bietet mindestens drei wichtige Vorteile:

  • Anwendungen verfügen über eine bekannte Methode, um eine Authentifizierung/Autorisierung für ein FHIR-Repository zu erhalten.
  • Benutzer*innen, die mit SMART on FHIR auf ein FHIR-Repository zugreifen, können nur auf die Ressourcen zugreifen, die ihnen zugeordnet sind, und haben keinen Zugriff auf alle Daten im Repository.
  • Benutzer*innen haben die Möglichkeit, Anwendungen mithilfe von klinischen Bereichen von SMART Zugriff auf einen weiteren begrenzten Satz ihrer Daten zu gewähren.

In den folgenden Tutorials werden die Schritte zur Aktivierung von SMART on FHIR-Anwendungen mit dem FHIR-Dienst beschrieben.

Voraussetzungen

SMART on FHIR mit Azure Health Data Services Samples (SMART on FHIR (erweitert))

Schritt 1: Einrichten der FHIR SMART-Benutzerrolle

Führen Sie die unter Abschnitt Verwalten von Benutzer*innen : Zuweisen von Benutzer*innen zur Rolle aufgeführten Schritte aus. Alle Benutzer*innen, die dieser Rolle hinzugefügt werden, können auf den FHIR-Dienst zugreifen, sofern ihre Anforderungen dem SMART on FHIR-Implementierungsleitfaden entsprechen. Der Zugriff, der den Benutzer*innen in dieser Rolle gewährt wird, wird dann durch die Ressourcen beschränkt, die ihrem fhirUser-Depot zugeordnet sind, und den Einschränkungen in den klinischen Bereichen.

Hinweis

Der SMART on FHIR-Implementierungsleitfaden definiert den Zugriff auf FHIR-Ressourcentypen mit Bereichen. Diese Bereiche wirken sich auf den Zugriff einer Anwendung auf FHIR-Ressourcen aus. Benutzer*innen mit SMART-Benutzerrolle haben Zugriff auf Lese-API-Interaktionen im FHIR-Dienst. Die SMART-Benutzerrolle gewährt keinen Schreibzugriff auf den FHIR-Dienst.

Schritt 2: FHIR-Serverintegration mit Beispielen

Klicken Sie auf den Link, um zur Open Source-Lösung „Azure Health Data and AI Samples“ zu navigieren. Dieser im Dokument aufgeführte Schritt ermöglicht die Integration des FHIR-Servers mit anderen Azure-Diensten (z. B. APIM, Azure-Funktionen und mehr).

Hinweis

Beispiele sind Open-Source-Code, und Sie sollten die Informationen und Lizenzierungsbedingungen auf GitHub überprüfen, bevor Sie ihn verwenden. Sie sind nicht Teil von Azure Health Data Service und werden vom Microsoft-Support nicht unterstützt. Diese Beispiele können verwendet werden, um zu demonstrieren, wie Azure Health Data Services und andere Open-Source-Tools zusammen verwendet werden können, um die Einhaltung des Kriteriums „§170.315(g)(10) Standardized API for patient and population services“ unter Verwendung von Microsoft Entra ID als Identitätsanbieter-Workflow zu demonstrieren.

SMART on FHIR-Proxy

Zum Erweitern klicken!

Hinweis

Dies ist eine weitere Option für SMART on FHIR (erweitert) unter Verwendung der oben erwähnten AHDS-Beispiele. Wir empfehlen die Einführung von SMART on FHIR (erweitert). Die SMART on FHIR-Proxyoption ist eine Legacy-Option. SMART on FHIR (erweitert) bietet mehr Funktionen als der SMART on FHIR-Proxy. SMART on FHIR (erweitert) kann als Erfüllung der Anforderungen des SMART on FHIR-Implementierungsleitfaden (v 1.0.0) und des Kriteriums „§170.315(g)(10) Standardized API for patient and population services“ angesehen werden.

Um SMART on FHIR zu verwenden, müssen Sie die App zuerst authentifizieren und autorisieren. Wenn Sie SMART on FHIR zum ersten Mal verwenden, müssen Sie auch die Administratoreinwilligung einholen, damit die App auf Ihre FHIR-Ressourcen zugreifen kann.

Wenn Sie keine Besitzerrolle in der App haben, wenden Sie sich an den*die App-Besitzer*in, und bitten Sie ihn*sie, die Administratoreinwilligung für Sie in der App zu erteilen.

Wenn Sie über Administratorrechte verfügen, führen Sie die folgenden Schritte aus, um sich selbst direkt die Administratoreinwilligung zu erteilen. (Sie können die Administratoreinwilligung auch später erteilen, wenn Sie in der App dazu aufgefordert werden.) Sie können dieselben Schritte ausführen, um andere Benutzer*innen als Besitzer*innen hinzuzufügen, damit sie diese App-Registrierung anzeigen und bearbeiten können.

So fügen Sie sich selbst oder eine*n andere*n Benutzer*in als Besitzer*in einer App hinzu:

  1. Navigieren Sie im Azure-Portal zu Microsoft Entra ID.
  2. Wählen Sie im linken Menü App-Registrierung aus.
  3. Suchen Sie nach der App-Registrierung, die Sie erstellt haben, und wählen Sie sie aus.
  4. Wählen Sie im Menü auf der linken Seite unter Verwalten die Option Besitzer*innen aus.
  5. Wählen Sie Besitzer*innen hinzufügen aus, und fügen Sie sich dann selbst oder den*die Benutzer*in hinzu, dem*der Sie die Administratoreinwilligung erteilen möchten.
  6. Wählen Sie Speichern aus.

Schritt 2: Aktivieren des SMART on FHIR-Proxys

SMART on FHIR erfordert, dass Audience einen Bezeichner-URI aufweist, der mit dem URI des FHIR-Diensts identisch ist. Bei der Standardkonfiguration des FHIR-Diensts wird https://fhir.azurehealthcareapis.com als Audience-Wert verwendet. Sie können aber auch einen Wert festlegen, der mit der spezifischen URL Ihres FHIR-Diensts übereinstimmt (z. B. https://MYFHIRAPI.fhir.azurehealthcareapis.com). Dies ist erforderlich, wenn Sie mit dem SMART on FHIR-Proxy arbeiten.

Zum Aktivieren des SMART on FHIR-Proxys in den Authentifizierungseinstellungen für Ihre FHIR-Instanz aktivieren Sie das Kontrollkästchen SMART on FHIR-Proxy.

Der SMART on FHIR-Proxy fungiert als Vermittler zwischen der SMART on FHIR-App und Microsoft Entra ID. Die Authentifizierungsantwort (der Authentifizierungscode) muss an den SMART on FHIR-Proxy und nicht an die App selbst übergeben werden. Der Proxy leitet dann die Antwort an die App weiter.

Aufgrund dieser zweistufigen Weitergabe des Authentifizierungscodes müssen Sie die Antwort-URL (Rückruf) für Ihre Microsoft Entra-Clientanwendung auf eine URL festlegen, die eine Kombination aus der Antwort-URL für den SMART on FHIR-Proxy und der Antwort-URL für die SMART on FHIR-App ist. Die kombinierte Antwort-URL hat folgende Form:

https://MYFHIRAPI.azurehealthcareapis.com/AadSmartOnFhirProxy/callback/aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA

In dieser Antwort ist aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA eine URL-sichere, Base64-codierte Version der Antwort-URL für die SMART on FHIR-App. Für das SMART on FHIR-App-Startprogramm lautet die Antwort-URL bei lokaler Ausführung der App https://localhost:5001/sampleapp/index.html.

Sie können die kombinierte Antwort-URL mithilfe eines Skripts wie dem folgenden generieren:

$replyUrl = "https://localhost:5001/sampleapp/index.html"
$fhirServerUrl = "https://MYFHIRAPI.fhir.azurewebsites.net"
$bytes = [System.Text.Encoding]::UTF8.GetBytes($ReplyUrl)
$encodedText = [Convert]::ToBase64String($bytes)
$encodedText = $encodedText.TrimEnd('=');
$encodedText = $encodedText.Replace('/','_');
$encodedText = $encodedText.Replace('+','-');

$newReplyUrl = $FhirServerUrl.TrimEnd('/') + "/AadSmartOnFhirProxy/callback/" + $encodedText

Fügen Sie der öffentlichen Clientanwendung, die Sie zuvor für Microsoft Entra ID erstellt haben, die Antwort-URL hinzu:

Schritt 3: Abrufen von Testpatientendaten

Zum Testen des FHIR-Diensts und des SMART on FHIR-Proxys muss mindestens ein Patient in der Datenbank enthalten sein. Wenn Sie noch nicht mit der API interagiert haben und keine Daten in der Datenbank vorhanden sind, lesen Sie unter Zugriff auf den FHIR-Dienst mittels Postman nach, wie ein Patient geladen wird. Notieren Sie sich die ID eines bestimmten Patienten.

Schritt 4: Herunterladen des SMART on FHIR-App-Startprogramms

Das Repository für den Open-Source-FHIR-Server für Azure enthält ein einfaches SMART on FHIR-App-Startprogramm und eine SMART on FHIR-Beispiel-App. In diesem Tutorial verwenden Sie dieses SMART on FHIR-Startprogramm lokal, um die Einrichtung zu testen.

Mit den folgenden Befehlen können Sie das GitHub-Repository klonen und zur Anwendung wechseln:

git clone https://github.com/Microsoft/fhir-server
cd fhir-server/samples/apps/SmartLauncher

Die Anwendung benötigt einige Konfigurationseinstellungen, die Sie in appsettings.json festlegen können:

{
    "FhirServerUrl": "https://MYFHIRAPI.fhir.azurehealthcareapis.com",
    "ClientId": "APP-ID",
    "DefaultSmartAppUrl": "/sampleapp/launch.html"
}

Es wird empfohlen, die Funktion dotnet user-secrets zu verwenden:

dotnet user-secrets set FhirServerUrl https://MYFHIRAPI.fhir.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>

Führen Sie die Anwendung mit dem folgenden Befehl aus:

dotnet run

Schritt 5: Testen des SMART on FHIR-Proxys

Nachdem Sie das SMART on FHIR-App-Startprogramm gestartet haben, können Sie in Ihrem Browser zu https://localhost:5001navigieren. Es sollte der folgende Bildschirm angezeigt werden:

Screenshot showing SMART on FHIR app launcher.

Wenn Sie Informationen zu Patient, Untersuchung oder Arzt eingeben, werden Sie feststellen, dass der Startkontext aktualisiert wird. Wenn Sie den FHIR-Dienst verwenden, ist der Startkontext einfach ein JSON-Dokument, das Informationen zum Patienten, Arzt und vielem mehr enthält. Dieser Startkontext ist Base64-codiert und wird als launch-Abfrageparameter an die SMART on FHIR-App übergeben. Gemäß der SMART on FHIR-Spezifikation ist diese Variable für die SMART on FHIR-App nicht transparent und wird an den Identitätsanbieter weitergeleitet.

Der SMART on FHIR-Proxy verwendet diese Informationen, um Felder in der Tokenantwort aufzufüllen. Die SMART on FHIR-App kann mithilfe dieser Felder steuern, für welchen Patienten die Daten angefordert werden und wie die Anwendung auf dem Bildschirm gerendert wird. Der SMART on FHIR-Proxy unterstützt die folgenden Felder:

  • patient
  • encounter
  • practitioner
  • need_patient_banner
  • smart_style_url

Diese Felder sollen Richtlinien für die App bereitstellen, vermitteln aber keine Sicherheitsinformationen. Eine SMART on FHIR-Anwendung kann diese ignorieren.

Beachten Sie, dass die Informationen für Start-URL am unteren Rand der Seite durch das SMART on FHIR-App-Startprogramm aktualisiert werden. Wählen Sie Starten aus, um die Beispiel-App zu starten. Es sollte eine ähnliche Anzeige wie im folgenden Beispiel zu sehen sein:

Screenshot showing SMART on FHIR app.

Überprüfen Sie die Tokenantwort, um festzustellen, wie die Startkontextfelder an die App weitergegeben werden.

Migrieren vom SMART on FHIR-Proxy zu SMART on FHIR (erweitert)

Wichtig

Der SMART on FHIR-Proxy wird im September 2026 eingestellt. Wechseln Sie bis zu diesem Datum zu SMART on FHIR (erweitert). Ab September 2026 melden Anwendungen, die den SMART on FHIR-Proxy nutzen, Fehler beim Zugriff auf den FHIR-Dienst.

SMART on FHIR (erweitert) bietet im Vergleich zum SMART on FHIR-Proxy mehr Funktionen. SMART on FHIR (erweitert) kann als Erfüllung der Anforderungen des SMART on FHIR-Implementierungsleitfaden (v 1.0.0) und des Kriteriums „§170.315(g)(10) Standardized API for patient and population services“ angesehen werden. In der folgenden Tabelle sind die Unterschiede zwischen dem SMART für FHIR-Proxy und SMART on FHIR (erweitert) aufgeführt.

Funktion SMART on FHIR (erweitert) SMART on FHIR-Proxy
Unterstützt eigenständigen Start Ja Nein
Unterstützt EHR-Start Ja Ja
Unterstützt Bereichseinschränkungen Ja Nein
Nutzt Azure-Erstanbieterprodukte Ja, Azure-Produkte wie Azure API Management (APIM) müssen integriert werden. Nein
Microsoft-Support Unterstützt für den FHIR-Dienst. Die Open-Source-Beispielunterstützung muss über GitHub gemeldet und überwacht werden. Unterstützt für den FHIR-Dienst

Migrationsschritte

  • Schritt 1: Einrichten der FHIR SMART-Benutzerrolle. Führen Sie die unter Abschnitt Verwalten von Benutzer*innen : Zuweisen von Benutzer*innen zur Rolle aufgeführten Schritte aus. Alle Benutzer*innen, die der SMART-Benutzerrolle hinzugefügt werden, können auf den FHIR-Dienst zugreifen, sofern ihre Anforderungen dem SMART on FHIR-Implementierungsleitfaden entsprechen.
  • Schritt 2: Bereitstellen des SMART on FHIR-Beispiels unter Azure Health Data and AI OSS samples
  • Schritt 3: Aktualisieren des Endpunkts der FHIR-Dienst-URL auf „{{BASEURL_FROM_APIM}}/smart“
  • Schritt 4: Deaktivieren der SMART on FHIR-Proxyeinstellung unter dem Blatt „Authentifizierung“ für den FHIR-Dienst

Wenden Sie sich mit Fragen an die Communityexperten auf Microsoft Q&A. Für technischen Support können Sie auch eine Supportanfrage erstellen.

Nächste Schritte

Nachdem Sie nun erfahren haben, wie die SMART on FHIR-Funktionalität aktiviert wird, finden Sie auf der Seite mit den Suchbeispielen Details zur Suche mit Suchparametern, Modifizierern und anderen FHIR-Suchmethoden.

FHIR® ist eine eingetragene Marke von HL7 und wird mit Genehmigung von HL7 verwendet.