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 Anslut, 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.

Nedan innehåller självstudierna steg för att aktivera SMART i FHIR-program med FHIR-tjänsten.

Förutsättningar

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 skulle 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. Användare med SMART-användarroll 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å länken för att navigera till lösningen Azure Health Data and AI Samples Open source (Öppen källkod). Det här steget 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 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 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 AHDS-exempel som nämns ovan. Vi föreslår att du antar SMART på FHIR(Enhanced). ALTERNATIVET SMART på FHIR-proxy är ett äldre alternativ. SMART on FHIR(Enhanced) innehåller ytterligare funktioner än 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.

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:

  1. Gå till Microsoft Entra ID i Azure-portalen.
  2. I den vänstra menyn väljer du Appregistrering.
  3. Sök efter den appregistrering som du skapade och välj den sedan.
  4. I den vänstra menyn går du till Hantera och väljer Ägare.
  5. 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.
  6. 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 Audiencehttps://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 det 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.htmlsvars-URL:en .

Du kan generera den kombinerade svars-URL:en med hjälp av ett skript som det här:

$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 klientprogrammet 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 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.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 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:

Screenshot showing SMART on FHIR app launcher.

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 det här exemplet:

Screenshot showing SMART on FHIR app.

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.

FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.