Översikt över SMART på FHIR
Viktigt!
Azure API för FHIR avvecklas den 30 september 2026. Följ migreringsstrategierna för att övergå till Azure Health Data Services FHIR-tjänsten® senast det datumet. På grund av tillbakadragandet av Azure API för FHIR tillåts inte nya distributioner från och med den 1 april 2025. Azure Health Data Services FHIR-tjänsten är den utvecklade versionen av Azure API för FHIR som gör det möjligt för kunder att hantera FHIR-, DICOM- och MedTech-tjänster med integreringar i andra Azure-tjänster.
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 viktiga fördelar, bland annat:
- 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 ge program åtkomst till en ytterligare begränsad uppsättning av sina data med hjälp av SMARTA kliniska omfång.
I följande självstudier beskrivs 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 ett 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 samples OSS (SMART on FHIR(Enhanced))
Steg 1: Konfigurera FHIR SMART-användarroll
Följ stegen under Hantera användare: Tilldela användare till roll. Alla användare som läggs till i rollen – "FHIR SMART User" kan komma åt FHIR-tjänsten om deras begäranden överensstämmer med SMART on FHIR-implementeringsguiden, till exempel begäran om åtkomsttoken, vilket inkluderar ett fhirUser
anspråk och ett anspråk för kliniska omfång. Den åtkomst som beviljas användarna i den här rollen begränsas av de resurser som är kopplade till deras fhirUser
avdelning och begränsningarna i de kliniska omfången.
Steg 2: FHIR-serverintegrering med exempel
Följ stegen i Azure Health Data och AI Samples OSS. Detta möjliggör integrering av FHIR-server 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 kan användas för att visa hur Azure Health Data Services och andra verktyg med öppen källkod kan användas tillsammans för att demonstrera ONC(g)(10) efterlevnad 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 en annan sökväg till SMART på FHIR (Enhanced) som nämnts. Alternativet SMART på FHIR-proxy aktiverar endast en EHR-startsekvens.
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 utföra samma steg för att lägga till andra användare som ägare, så att de kan visa och redigera den här 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. Standardkonfigurationen för Azure API för FHIR använder värdet Audience
https://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.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 azure-API:et för FHIR-instansen 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.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 klientprogrammet som du skapade tidigare för Microsoft Entra-ID.
Steg 3: Skaffa en testpatient
Om du vill testa Azure API för FHIR och SMART på FHIR-proxyn måste du ha minst en patient i databasen. Om du inte har interagerat med API:et ännu och du inte har data i databasen kan du läsa Åtkomst till 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-startprogrammet 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.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.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>
Använd det här kommandot 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 skärm.
När du anger patient-, mötes- eller utövareinformation bör du se att startkontexten uppdateras. När du använder Azure API för FHIR ä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.
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.