SMART on FHIR – Übersicht
Wichtig
Azure API for FHIR wird am 30. September 2026 eingestellt. Folgen Sie den Migrationsstrategien, um bis zu diesem Datum zum Azure Health Data Services-FHIR®-Dienst zu wechseln. Aufgrund der Einstellung von Azure API for FHIR werden neue Bereitstellungen ab dem 1. April 2025 nicht zugelassen. Der Azure Health Data Services-FHIR-Dienst ist die weiterentwickelte Version der Azure-API für FHIR, mit der Kundschaft FHIR-, DICOM- und Medizintechnikdienste mit Integrationen in andere Azure-Dienste verwalten kann.
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 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
- Eine Instanz des FHIR-Diensts
- .NET SDK 6.0
- Aktivieren von CORS (Cross-Origin Resource Sharing)
- Registrieren einer öffentlichen Clientanwendung in Microsoft Entra ID
- Notieren Sie sich nach dem Registrieren der Anwendung die Anwendungs-ID für die Clientanwendung.
- Stellen Sie sicher, dass Sie Zugriff auf das Azure-Abonnement des FHIR-Diensts haben, um Ressourcen zu erstellen und Rollenzuweisungen hinzuzufügen.
SMART on FHIR mit Beispiel-OSS (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. Jeder Benutzer, der der Rolle „FHIR SMART-Benutzer“ hinzugefügt wurde, kann auf den FHIR-Dienst zugreifen, wenn die Anforderungen der SMART on FHIR-Implementierungsanleitung entsprechen, beispielsweise eine Anforderung mit Zugriffstoken, das einen fhirUser-Anspruchs und einen Anspruch auf klinische Bereiche enthält. 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.
Schritt 2: FHIR-Serverintegration mit Beispielen
Führen Sie die Schritte unter der Open-Source-Lösung „Azure Health Data und AI“ aus. Dies ermöglicht die Integration des FHIR-Servers in andere Azure-Dienste (z. B. APIM, Azure Functions 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. Anhand dieser Beispiele wird gezeigt, wie Azure Health Data Services und andere Open-Source-Tools zusammen verwendet werden können, um die Einhaltung von ONC (g)(10) unter Verwendung von Microsoft Entra ID als Identitätsanbieterworkflow zu demonstrieren.
SMART on FHIR-Proxy
Zum Erweitern klicken!
Hinweis
Dies ist eine weitere Option für die oben erwähnte SMART on FHIR-Lösung (erweitert). Durch die SMART on FHIR-Proxyoption wird nur die EKA-Startsequenz aktiviert.
Schritt 1: Festlegen der Administratoreinwilligung für Ihre Clientanwendung
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:
- Navigieren Sie im Azure-Portal zu Microsoft Entra ID.
- Wählen Sie im linken Menü App-Registrierung aus.
- Suchen Sie nach der App-Registrierung, die Sie erstellt haben, und wählen Sie sie aus.
- Wählen Sie im Menü auf der linken Seite unter Verwalten die Option Besitzer*innen aus.
- 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.
- 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 von Azure API for FHIR wird https://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.azurehealthcareapis.com
). Dies ist erforderlich, wenn Sie mit dem SMART on FHIR-Proxy arbeiten.
Aktivieren Sie den SMART on FHIR-Proxy in den Einstellungen zur Authentifizierung für Ihre Azure API for FHIR-Instanz, indem Sie das Kontrollkästchen SMART on FHIR-Proxy aktivieren:
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.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 von Azure API for FHIR 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.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.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:5001
navigieren. Es sollte der folgende Bildschirm angezeigt werden:
Wenn Sie Informationen zu Patient, Untersuchung oder Arzt eingeben, werden Sie feststellen, dass der Startkontext aktualisiert wird. Wenn Sie Azure API for FHIR 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.
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.