Omówienie funkcji SMART on FHIR
Podstawialne aplikacje medyczne i technologie wielokrotnego użytku (SMART on FHIR) to standard opieki zdrowotnej, za pomocą którego aplikacje mogą uzyskiwać dostęp do informacji klinicznych za pośrednictwem magazynu danych. Dodaje warstwę zabezpieczeń opartą na otwartych standardach, w tym OAuth2 i OpenID Connect, do interfejsów FHIR w celu umożliwienia integracji z systemami EHR. Korzystanie z funkcji SMART w standardzie FHIR zapewnia co najmniej trzy ważne korzyści:
- Aplikacje mają znaną metodę uzyskiwania uwierzytelniania/autoryzacji w repozytorium FHIR.
- Użytkownicy, którzy uzyskują dostęp do repozytorium FHIR za pomocą funkcji SMART on FHIR, są ograniczeni do zasobów skojarzonych z użytkownikiem, zamiast mieć dostęp do wszystkich danych w repozytorium.
- Użytkownicy mogą udzielać aplikacjom dostępu do dalszego ograniczonego zestawu danych przy użyciu inteligentnych zakresów klinicznych.
W poniższych samouczkach opisano kroki włączania funkcji SMART w aplikacjach FHIR przy użyciu usługi FHIR.
Wymagania wstępne
- Wystąpienie usługi FHIR
- Zestaw .NET SDK 6.0
- Włączanie współużytkowania zasobów między źródłami (CORS)
- Rejestrowanie publicznej aplikacji klienckiej w Azure AD
- Po zarejestrowaniu aplikacji zanotuj wartość applicationId dla aplikacji klienckiej.
- Upewnij się, że masz dostęp do subskrypcji platformy Azure usługi FHIR, aby tworzyć zasoby i dodawać przypisania ról.
SMART on FHIR using AHDS Samples OSS
Krok 1. Konfigurowanie roli użytkownika FHIR SMART
Wykonaj kroki wymienione w sekcji Zarządzanie użytkownikami: Przypisywanie użytkowników do roli. Każdy użytkownik dodany do roli — "FHIR SMART User" będzie mógł uzyskać dostęp do usługi FHIR, jeśli ich żądania są zgodne z przewodnikiem implementacji SMART on FHIR, takim jak żądanie posiadania tokenu dostępu, który zawiera oświadczenie fhirUser i oświadczenie zakresów klinicznych. Dostęp udzielony użytkownikom w tej roli będzie wtedy ograniczony przez zasoby związane z przedziałem fhirUser oraz ograniczenia w zakresach klinicznych.
Krok 2. Integracja serwera FHIR z przykładami
Wykonaj kroki opisane w sekcji Przykłady systemu operacyjnego usługi Azure Health Data Service. Umożliwi to integrację serwera FHIR z innymi usługami platformy Azure (takimi jak APIM, Azure Functions i nie tylko).
Uwaga
Przykłady są kodem typu open source i przed rozpoczęciem korzystania z niego należy przejrzeć informacje i postanowienia licencyjne w witrynie GitHub. Nie są one częścią usługi Azure Health Data Service i nie są obsługiwane przez pomoc techniczna firmy Microsoft. Te przykłady mogą służyć do zademonstrowania, w jaki sposób usługi Azure Health Data Services i inne narzędzia typu open source mogą być używane razem w celu zademonstrowania zgodności z usługą ONC (g)(10) przy użyciu usługi Azure Active Directory jako przepływu pracy dostawcy tożsamości.
Smart na serwerze proxy FHIR
Krok 1. Ustawianie zgody administratora dla aplikacji klienckiej
Aby korzystać z funkcji SMART w standardzie FHIR, musisz najpierw uwierzytelnić i autoryzować aplikację. Przy pierwszym użyciu funkcji SMART w standardzie FHIR należy również uzyskać zgodę administracyjną, aby umożliwić aplikacji dostęp do zasobów FHIR.
Jeśli nie masz roli własności w aplikacji, skontaktuj się z właścicielem aplikacji i poproś go o udzielenie zgody administratora w aplikacji.
Jeśli masz uprawnienia administracyjne, wykonaj następujące kroki, aby udzielić zgody administratora bezpośrednio na siebie. (Możesz również wyrazić zgodę administratora na siebie później po wyświetleniu monitu w aplikacji). Możesz wykonać te same kroki, aby dodać innych użytkowników jako właścicieli, aby mogli wyświetlać i edytować tę rejestrację aplikacji.
Aby dodać siebie lub innego użytkownika jako właściciela aplikacji:
- W witrynie Azure Portal przejdź do pozycji Azure Active Directory.
- W menu po lewej stronie wybierz pozycję Rejestracja aplikacji.
- Wyszukaj utworzoną rejestrację aplikacji, a następnie wybierz ją.
- W menu po lewej stronie w obszarze Zarządzanie wybierz pozycję Właściciele.
- Wybierz pozycję Dodaj właścicieli, a następnie dodaj siebie lub użytkownika, którego chcesz wyrazić zgodę administratora.
- Wybierz pozycję Zapisz
Krok 2. Włączanie funkcji SMART na serwerze proxy FHIR
Funkcja SMART on FHIR wymaga identyfikatora Audience
URI identyfikatora równego identyfikatorowi URI usługi FHIR. Standardowa konfiguracja usługi Azure API for FHIR używa Audience
wartości https://azurehealthcareapis.com
. Można jednak również ustawić wartość zgodną z określonym adresem URL usługi FHIR (na przykład https://MYFHIRAPI.azurehealthcareapis.com
). Jest to wymagane podczas pracy z serwerem proxy SMART na serwerze proxy FHIR.
Aby włączyć serwer proxy SMART on FHIR w ustawieniach uwierzytelniania dla wystąpienia usługi Azure API for FHIR, zaznacz pole wyboru SMART on FHIR proxy :
Serwer proxy SMART on FHIR działa jako pośrednik między aplikacją SMART on FHIR a Azure AD. Odpowiedź uwierzytelniania (kod uwierzytelniania) musi przejść do serwera proxy SMART na serwerze proxy FHIR zamiast samej aplikacji. Następnie serwer proxy przekazuje odpowiedź do aplikacji.
Ze względu na ten dwuetapowy przekaźnik kodu uwierzytelniania należy ustawić adres URL odpowiedzi (wywołanie zwrotne) dla aplikacji klienckiej Azure AD na adres URL, który jest kombinacją adresu URL odpowiedzi dla serwera proxy SMART on FHIR i adresu URL odpowiedzi dla aplikacji SMART on FHIR. Połączony adres URL odpowiedzi ma następującą postać:
https://MYFHIRAPI.azurehealthcareapis.com/AadSmartOnFhirProxy/callback/aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA
W tej odpowiedzi aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA
jest bezpieczną pod adresem URL, zakodowaną w formacie base64 wersją adresu URL odpowiedzi dla aplikacji SMART on FHIR. W przypadku uruchamiania aplikacji SMART on FHIR, gdy aplikacja jest uruchomiona lokalnie, adres URL odpowiedzi to https://localhost:5001/sampleapp/index.html
.
Połączony adres URL odpowiedzi można wygenerować przy użyciu skryptu w następujący sposób:
$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
Dodaj adres URL odpowiedzi do publicznej aplikacji klienckiej utworzonej wcześniej dla Azure AD:
Krok 3. Uzyskanie pacjenta testowego
Aby przetestować usługę Azure API for FHIR i serwer proxy SMART na serwerze proxy FHIR, musisz mieć co najmniej jednego pacjenta w bazie danych. Jeśli nie korzystasz jeszcze z interfejsu API i nie masz danych w bazie danych, zobacz Access the FHIR service using Postman to load a patient (Uzyskiwanie dostępu do usługi FHIR przy użyciu narzędzia Postman w celu załadowania pacjenta). Zanotuj identyfikator określonego pacjenta.
Krok 4. Pobieranie aplikacji SMART on FHIR App Launcher
Serwer FHIR typu open source dla platformy Azure zawiera prosty moduł uruchamiania aplikacji SMART on FHIR i przykładową aplikację SMART on FHIR. W tym samouczku użyj tej funkcji SMART on FHIR launcher lokalnie, aby przetestować konfigurację.
Repozytorium GitHub można sklonować i przejść do aplikacji przy użyciu następujących poleceń:
git clone https://github.com/Microsoft/fhir-server
cd fhir-server/samples/apps/SmartLauncher
Aplikacja wymaga kilku ustawień konfiguracji, które można ustawić w programie appsettings.json
:
{
"FhirServerUrl": "https://MYFHIRAPI.azurehealthcareapis.com",
"ClientId": "APP-ID",
"DefaultSmartAppUrl": "/sampleapp/launch.html"
}
Zalecamy korzystanie z dotnet user-secrets
tej funkcji:
dotnet user-secrets set FhirServerUrl https://MYFHIRAPI.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>
Użyj tego polecenia, aby uruchomić aplikację:
dotnet run
Krok 5. Testowanie funkcji SMART na serwerze proxy FHIR
Po uruchomieniu aplikacji SMART w funkcji uruchamiania aplikacji FHIR możesz wskazać przeglądarkę na https://localhost:5001
adres , na którym powinien zostać wyświetlony następujący ekran:
Po wprowadzeniu informacji dotyczących pacjenta, spotkania lub praktyków zauważysz, że kontekst uruchamiania jest aktualizowany. Gdy używasz interfejsu API platformy Azure dla standardu FHIR, kontekst uruchamiania jest po prostu dokumentem JSON zawierającym informacje o pacjentach, praktykach i nie tylko. Ten kontekst uruchamiania jest zakodowany w formacie Base64 i przekazywany do aplikacji SMART on FHIR jako launch
parametr zapytania. Zgodnie ze specyfikacją SMART on FHIR ta zmienna jest nieprzezroczysta dla aplikacji SMART on FHIR i przekazywana do dostawcy tożsamości.
Serwer proxy SMART on FHIR używa tych informacji do wypełniania pól w odpowiedzi tokenu. Aplikacja SMART on FHIR może używać tych pól do kontrolowania pacjenta, dla którego żąda danych i sposobu renderowania aplikacji na ekranie. Serwer proxy SMART on FHIR obsługuje następujące pola:
patient
encounter
practitioner
need_patient_banner
smart_style_url
Te pola mają na celu dostarczenie wskazówek dla aplikacji, ale nie przekazują żadnych informacji o zabezpieczeniach. Aplikacja SMART on FHIR może je zignorować.
Zwróć uwagę, że funkcja SMART on FHIR App Launcher aktualizuje informacje o adresie URL uruchamiania w dolnej części strony. Wybierz pozycję Uruchom , aby uruchomić przykładową aplikację.
FHIR® jest zastrzeżonym znakiem towarowym HL7 i jest używany z pozwoleniem HL7.