SMART på FHIR
Substitutable Medical Applications and Reusable Technologies (SMART on FHIR) är en sjukvårdsstandard genom vilken program kan komma åt klinisk information via ett datalager. Det lägger till ett säkerhetslager baserat på öppna standarder, inklusive OAuth2 och OpenID Connect, till FHIR-gränssnitt® för att möjliggöra integrering med EHR-system. Att använda SMART på FHIR ger minst tre viktiga fördelar:
- Program har en känd metod för att hämta autentisering/auktorisering till en FHIR-lagringsplats.
- Användare som har åtkomst till en FHIR-lagringsplats med SMART på FHIR är begränsade till resurser som är associerade med användaren, i stället för att ha åtkomst till alla data på lagringsplatsen.
- Användare har möjlighet att bevilja program åtkomst till en begränsad uppsättning av sina data med hjälp av SMARTA kliniska omfång.
Följande självstudier innehåller steg för att aktivera SMART i FHIR-program med FHIR-tjänsten.
Förutsättningar
- En instans av FHIR-tjänsten
- .NET SDK 6.0
- Aktivera resursdelning mellan ursprung (CORS)
- Registrera offentligt klientprogram i Microsoft Entra-ID
- När du har registrerat programmet bör du anteckna
applicationId
för klientprogrammet.
- När du har registrerat programmet bör du anteckna
- Se till att du har åtkomst till en Azure-prenumeration på FHIR-tjänsten för att skapa resurser och lägga till rolltilldelningar.
SMART på FHIR med Azure Health Data Services-exempel (SMART på FHIR (utökad))
Steg 1: Konfigurera FHIR SMART-användarroll
Följ stegen i avsnittet Hantera användare: Tilldela användare till roll. Alla användare som läggs till i den här rollen kommer att kunna komma åt FHIR-tjänsten, förutsatt att deras begäranden överensstämmer med SMART on FHIR-implementeringsguiden. Åtkomsten som beviljas användarna i den här rollen begränsas sedan av de resurser som är kopplade till deras fhirUser-avdelning och begränsningarna i de kliniska omfången.
Kommentar
Smart i FHIR-implementeringsguiden definierar åtkomst till FHIR-resurstyper med omfång. Dessa omfång påverkar åtkomsten som ett program kan ha till FHIR-resurser. En användare med SMART-användarrollen har åtkomst till att utföra läs-API-interaktioner i FHIR-tjänsten. SMART-användarrollen beviljar inte skrivåtkomst till FHIR-tjänsten.
Steg 2: FHIR-serverintegrering med exempel
Klicka på den här länken för att gå till Azure Health Data och AI-exempel öppen källkod lösning. Stegen i dokumentet möjliggör integrering av FHIR-servern med andra Azure-tjänster (till exempel APIM, Azure-funktioner med mera).
Kommentar
Exempel är öppen källkod och du bör granska informationen och licensvillkoren på GitHub innan du använder den. De ingår inte i Azure Health Data Service och stöds inte av Microsoft Support. De här exemplen används för att visa hur Azure Health Data Services (AHDS) och andra verktyg med öppen källkod kan användas tillsammans för att demonstrera kompatibilitet för standardiserat API för patient- och befolkningstjänster med hjälp av Microsoft Entra-ID som arbetsflöde för identitetsprovider.
SMART på FHIR-proxy
Klicka för att expandera!
Kommentar
Det här är ett annat alternativ för SMART på FHIR(Enhanced) med hjälp av de AHDS-exempel som tidigare nämnts. Vi föreslår att du antar SMART på FHIR(Enhanced). ALTERNATIVET SMART på FHIR-proxy är ett äldre alternativ. SMART on FHIR(Enhanced) tillhandahåller ytterligare funktioner för SMART på FHIR-proxy. SMART on FHIR(Enhanced) uppfyller kraven i SMART on FHIR Implementation Guide (v 1.0.0) och §170.315(g)(10) Standardiserat API för patient- och befolkningstjänster.
Steg 1: Ange administratörsmedgivande för klientprogrammet
Om du vill använda SMART på FHIR måste du först autentisera och auktorisera appen. Första gången du använder SMART på FHIR måste du också få administrativt medgivande för att appen ska få åtkomst till dina FHIR-resurser.
Om du inte har någon ägarroll i appen kontaktar du appens ägare och ber dem att bevilja administratörsmedgivande åt dig i appen.
Om du har administratörsbehörighet utför du följande steg för att ge administratörsmedgivande direkt till dig själv. (Du kan också ge administratörsmedgivande till dig själv senare när du uppmanas att göra det i appen.) Du kan använda samma steg för att lägga till andra användare som ägare, så att de kan visa och redigera appregistreringen.
Så här lägger du till dig själv eller en annan användare som ägare av en app:
- Gå till Microsoft Entra ID i Azure Portal.
- I den vänstra menyn väljer du Appregistrering.
- Sök efter den appregistrering som du skapade och välj den sedan.
- I den vänstra menyn går du till Hantera och väljer Ägare.
- Välj Lägg till ägare och lägg sedan till dig själv eller den användare som du vill ha administratörsmedgivande för.
- Välj Spara
Steg 2: Aktivera SMART på FHIR-proxyn
SMART på FHIR kräver att Audience
det finns en identifierar-URI som är lika med URI:n för FHIR-tjänsten. FHIR-tjänstens standardkonfiguration använder värdet Audience
https://fhir.azurehealthcareapis.com
. Du kan dock också ange ett värde som matchar den specifika URL:en för din FHIR-tjänst (till exempel https://MYFHIRAPI.fhir.azurehealthcareapis.com
). Detta krävs när du arbetar med SMART på FHIR-proxyn.
Om du vill aktivera SMART på FHIR-proxyn i autentiseringsinställningarna för din FHIR-instans markerar du kryssrutan SMART på FHIR-proxy .
SMART på FHIR-proxyn fungerar som mellanhand mellan SMART i FHIR-appen och Microsoft Entra-ID. Autentiseringssvaret (autentiseringskoden) måste gå till SMART på FHIR-proxyn i stället för själva appen. Proxyn vidarebefordrar sedan svaret till appen.
På grund av det här tvåstegsreläet av autentiseringskoden måste du ange svars-URL:en (motringning) för ditt Microsoft Entra-klientprogram till en URL som är en kombination av svars-URL:en för SMART på FHIR-proxyn och svars-URL:en för SMART i FHIR-appen. Den kombinerade svars-URL:en har följande formulär.
https://MYFHIRAPI.azurehealthcareapis.com/AadSmartOnFhirProxy/callback/aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA
I svaret aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA
är en URL-säker, base64-kodad version av svars-URL:en för SMART i FHIR-appen. När appen körs lokalt för SMART på FHIR-appstartsprogrammet är https://localhost:5001/sampleapp/index.html
svars-URL:en .
Du kan generera den kombinerade svars-URL:en med hjälp av ett skript som följande.
$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
Lägg till svars-URL:en i det offentliga klientprogram som du skapade tidigare för Microsoft Entra-ID.
Steg 3: Skaffa en testpatient
Om du vill testa FHIR-tjänsten och SMART på FHIR-proxyn måste du ha minst en patient i databasen. Om du inte har använt API:et ännu och inte har data i databasen kan du läsa Komma åt FHIR-tjänsten med Postman för att läsa in en patient. Anteckna ID:t för en specifik patient.
Steg 4: Ladda ned SMART i FHIR-appstartsprogrammet
FHIR Server för Azure-lagringsplats med öppen källkod innehåller en enkel SMART på FHIR-appstartaren och ett SMART-exempel i FHIR-appen. I den här självstudien använder du den här SMART på FHIR-appstartsprogrammet lokalt för att testa konfigurationen.
Du kan klona GitHub-lagringsplatsen och gå till programmet med hjälp av följande kommandon.
git clone https://github.com/Microsoft/fhir-server
cd fhir-server/samples/apps/SmartLauncher
Programmet behöver några konfigurationsinställningar som du kan ange i appsettings.json
:
{
"FhirServerUrl": "https://MYFHIRAPI.fhir.azurehealthcareapis.com",
"ClientId": "APP-ID",
"DefaultSmartAppUrl": "/sampleapp/launch.html"
}
Vi rekommenderar att du använder dotnet user-secrets
funktionen:
dotnet user-secrets set FhirServerUrl https://MYFHIRAPI.fhir.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>
Använd följande kommando för att köra programmet:
dotnet run
Steg 5: Testa SMART på FHIR-proxyn
När du har startat SMART på FHIR-appstartsprogrammet kan du peka webbläsaren på https://localhost:5001
, där du bör se följande:
När du anger patient-, mötes- eller utövareinformation ser du att startkontexten uppdateras. När du använder FHIR-tjänsten är startkontexten helt enkelt ett JSON-dokument som innehåller information om patient, läkare med mera. Den här startkontexten är base64-kodad och skickas till SMART i FHIR-appen som launch
frågeparameter. Enligt SMART on FHIR-specifikationen är den här variabeln ogenomskinlig för SMART i FHIR-appen och skickas vidare till identitetsprovidern.
SMART på FHIR-proxyn använder den här informationen för att fylla i fält i tokensvaret. SMART i FHIR-appen kan använda dessa fält för att styra vilken patient den begär data för och hur programmet återges på skärmen. SMART på FHIR-proxyn stöder följande fält.
patient
encounter
practitioner
need_patient_banner
smart_style_url
De här fälten är avsedda att ge vägledning till appen, men de förmedlar ingen säkerhetsinformation. Ett SMART på FHIR-program kan ignorera dem.
Observera att SMART på FHIR-appstartsprogrammet uppdaterar informationen om start-URL längst ned på sidan. Välj Starta för att starta exempelappen så bör du se något som liknar följande.
Granska tokensvaret för att se hur startkontextfälten skickas till appen.
Migrera från SMART på FHIR-proxy till SMART på FHIR (utökad)
Viktigt!
SMART på FHIR-proxyn går i pension i september 2026, övergången till SMART on FHIR (Enhanced) senast det datumet. Från och med september 2026 rapporterar program som förlitar sig på SMART på FHIR-proxy fel vid åtkomst till FHIR-tjänsten.
SMART på FHIR (Utökad) ger fler funktioner jämfört med SMART på FHIR-proxy. SMART on FHIR(Enhanced) kan anses uppfylla kraven med SMART on FHIR Implementation Guide (v 1.0.0) och §170.315(g)(10) Standardized API for patient and population services criterion. I följande tabell visas skillnaden mellan SMART på FHIR-proxy och SMART på FHIR (Utökad).
Kapacitet | SMART på FHIR (utökad) | SMART på FHIR-proxy |
---|---|---|
Stöder fristående start | Ja | Nej |
Stöder EHR-start | Ja | Ja |
Stöder omfångsbegränsningar | Ja | Nej |
Förlitar sig på Azure-produkter från första part | Ja, Azure-produkter som Azure API Management (APIM) måste integreras | Nej |
Microsoft Support | Stöds för FHIR-tjänsten. Stöd för exempel på öppen källkod måste rapporteras och övervakas via GitHub | Stöds för FHIR-tjänsten |
Migreringsanvisningar
- Steg 1: Konfigurera FHIR SMART-användarroll Följ stegen i avsnittet Hantera användare: Tilldela användare till roll. Alla användare som har lagts till i SMART-användarrollen kan komma åt FHIR-tjänsten, om deras begäranden överensstämmer med SMART on FHIR-implementeringsguiden.
- Steg 2: Distribuera SMART på FHIR-exempel under Azure Health Data- och AI OSS-exempel
- Steg 3: Uppdatera slutpunkten för FHIR-tjänstens URL till {{BASEURL_FROM_APIM}}/smart.
- Steg 4: Avmarkera inställningen SMART på FHIR-proxy under autentiseringsbladet för FHIR-tjänsten.
Om du har frågor kan du få svar från community-experter i Vanliga frågor och svar om Microsoft. För teknisk support kan du också skapa en supportbegäran.
Nästa steg
Nu när du har lärt dig om att aktivera SMART på FHIR-funktioner kan du gå till sidan med sökexempel för information om hur du söker med sökparametrar, modifierare och andra FHIR-sökmetoder.
Kommentar
FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.