Översikt över 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. Användning av 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 kommer åt 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 självstudierna nedan beskrivs steg för att aktivera SMART i FHIR-program med FHIR-tjänsten.

Förutsättningar

SMART på FHIR med AHDS Samples OSS (SMART on FHIR(Enhanced))

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 rollen – "FHIR SMART User" kommer att kunna komma åt FHIR-tjänsten om deras begäranden överensstämmer med SMART on FHIR-implementeringsguiden, till exempel begäran om åtkomsttoken, som innehåller ett fhirUser-anspråk och ett anspråk för kliniska omfång. Åtkomsten till 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.

Steg 2: FHIR-serverintegrering med exempel

Följ stegen under Azure Health Data Service Samples OSS. Detta möjliggör integrering av FHIR-servern med andra Azure-tjänster (till exempel APIM, Azure-funktioner med mera).

Anteckning

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 Azure Active Directory som arbetsflöde för identitetsprovider.

SMART på FHIR-proxy

Klicka för att expandera!

Anteckning

Det här är ett annat alternativ för SMART på FHIR(Enhanced) som nämns ovan. Alternativet SMART på FHIR-proxy aktiverar endast EHR-startsekvens.

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 bevilja administratörsmedgivande för dig i appen.

Om du har administratörsbehörighet utför du följande steg för att bevilja 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 Azure Active Directory 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, under Hantera, väljer du Ä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. Standardkonfigurationen för Azure API för FHIR använder värdet Audiencehttps://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 :

Skärmbild som visar aktivering av SMART på FHIR-proxyn.

SMART på FHIR-proxyn fungerar som en mellanhand mellan SMART i FHIR-appen och Azure AD. 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 Azure AD 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. För smart i FHIR-appstartsprogrammet är https://localhost:5001/sampleapp/index.htmlsvars-URL:en när appen körs lokalt .

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

$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 Azure AD:

Skärmbild som visar hur svars-URL kan konfigureras för den offentliga klienten.

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 Mer information finns i 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-appstartaren

FHIR-servern med öppen källkod för Azure-lagringsplatsen 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 i FHIR-appstartsprogrammet kan du peka webbläsaren på https://localhost:5001, där du bör se följande skärm:

Skärmbild av SMART i startprogrammet för FHIR-appen.

När du anger information om patient, möte eller utövare ser du att startkontexten har uppdaterats. När du använder Azure API för FHIR är startkontexten helt enkelt ett JSON-dokument som innehåller information om patient, utövare med mera. Den här startkontexten launch är base64-kodad och skickas till SMART i FHIR-appen som frågeparameter. Enligt SMART på 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 i FHIR-appstartsprogrammet uppdaterar informationen om start-URL längst ned på sidan. Välj Starta för att starta exempelappen.

## Nästa steg

Nu när du har lärt dig om att aktivera SMART på FHIR-funktioner kan du läsa mer på sidan med sökexempel om hur du söker med hjälp av 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.