Panoramica di SMART on FHIR

Le applicazioni mediche sostitutive e le tecnologie riutilizzabili (SMART on FHIR) sono uno standard sanitario attraverso il quale le applicazioni possono accedere alle informazioni cliniche tramite un archivio dati. Aggiunge un livello di sicurezza basato su standard aperti, tra cui OAuth2 e OpenID Connect, alle interfacce FHIR per abilitare l'integrazione con i sistemi EHR. L'uso di SMART on FHIR offre almeno tre vantaggi importanti:

  • Le applicazioni hanno un metodo noto per ottenere l'autenticazione/autorizzazione a un repository FHIR.
  • Gli utenti che accedono a un repository FHIR con SMART on FHIR sono limitati alle risorse associate all'utente, anziché avere accesso a tutti i dati nel repository.
  • Gli utenti hanno la possibilità di concedere alle applicazioni l'accesso a un set ulteriormente limitato di dati usando ambiti clinici SMART.

Le esercitazioni seguenti descrivono i passaggi per abilitare le applicazioni SMART on FHIR con il servizio FHIR.

Prerequisiti

SMART on FHIR con OSS di esempio AHDS (SMART on FHIR(Enhanced))

Passaggio 1: Configurare il ruolo utente DI FHIR SMART

Seguire i passaggi elencati nella sezione Gestire gli utenti: Assegnare utenti al ruolo. Qualsiasi utente aggiunto al ruolo : "FHIR SMART User" sarà in grado di accedere al servizio FHIR se le richieste sono conformi alla Guida all'implementazione di SMART on FHIR, ad esempio la richiesta di token di accesso, che include un'attestazione fhirUser e un'attestazione di ambito clinico. L'accesso concesso agli utenti in questo ruolo sarà quindi limitato dalle risorse associate al rispettivo raggruppamento fhirUser e dalle restrizioni negli ambiti clinici.

Passaggio 2: Integrazione del server FHIR con esempi

Seguire la procedura descritta in Sistema operativo di esempio del servizio dati di Integrità di Azure. In questo modo si abiliterà l'integrazione del server FHIR con altri servizi di Azure, ad esempio Gestione API, Funzioni di Azure e altro ancora.

Nota

Gli esempi sono codice open source ed è necessario esaminare le informazioni e le condizioni di licenza in GitHub prima di usarlo. Non fanno parte del servizio dati di integrità di Azure e non sono supportati da supporto tecnico Microsoft. Questi esempi possono essere usati per illustrare in che modo Servizi dati di Integrità di Azure e altri strumenti open source possono essere usati insieme per dimostrare la conformità ONC (g)(10), usando Azure Active Directory come flusso di lavoro del provider di identità.

Proxy SMART on FHIR

Fare clic per espandere.

Nota

Questa è un'altra opzione per SMART on FHIR(Enhanced) menzionata in precedenza. L'opzione proxy SMART on FHIR abilita solo la sequenza di avvio EHR.

Per usare SMART on FHIR, è prima necessario autenticare e autorizzare l'app. La prima volta che usi SMART on FHIR, devi anche ottenere il consenso amministrativo per consentire all'app di accedere alle risorse FHIR.

Se non si ha un ruolo di proprietà nell'app, contattare il proprietario dell'app e chiedere loro di concedere il consenso amministratore per l'utente nell'app.

Se si dispone di privilegi amministrativi, completare la procedura seguente per concedere direttamente il consenso dell'amministratore. È anche possibile concedere il consenso amministratore a se stessi in un secondo momento quando viene richiesto nell'app. Puoi completare gli stessi passaggi per aggiungere altri utenti come proprietari, in modo che possano visualizzare e modificare la registrazione dell'app.

Per aggiungere se stessi o un altro utente come proprietario di un'app:

  1. Nel portale di Azure passare ad Azure Active Directory.
  2. Nel menu a sinistra selezionare Registrazione app.
  3. Cercare la registrazione dell'app creata e quindi selezionarla.
  4. Nel menu a sinistra, in Gestisci, selezionare Proprietari.
  5. Selezionare Aggiungi proprietari e quindi aggiungere se stessi o l'utente che si vuole avere il consenso amministratore.
  6. Selezionare Salva

Passaggio 2: Abilitare il proxy SMART on FHIR

SMART on FHIR richiede che Audience abbia un URI identificatore uguale all'URI del servizio FHIR. La configurazione standard dell'API di Azure per FHIR usa un valore https://azurehealthcareapis.com per Audience. Tuttavia, è anche possibile impostare un valore corrispondente all'URL specifico del servizio FHIR, ad esempio https://MYFHIRAPI.azurehealthcareapis.com. Questa operazione è necessaria quando si usa il proxy SMART on FHIR.

Per abilitare il proxy SMART on FHIR nelle impostazioni di autenticazione per l'istanza dell'API di Azure per FHIR, selezionare la casella di controllo Proxy SMART on FHIR :

Screenshot che mostra l'abilitazione del proxy SMART on FHIR.

Il proxy SMART on FHIR funge da intermediario tra l'app SMART on FHIR e Azure AD. La risposta di autenticazione (codice di autenticazione) deve essere inviata al proxy SMART on FHIR invece che all'app stessa. Il proxy quindi la inoltra all'app.

A causa di questo inoltro in due passaggi del codice di autenticazione, è necessario impostare l'URL di risposta (callback) per l'applicazione client Azure AD su un URL costituito da una combinazione dell'URL di risposta per il proxy SMART on FHIR e dell'URL di risposta per l'app SMART on FHIR. Il formato dell'URL di risposta combinato è il seguente:

https://MYFHIRAPI.azurehealthcareapis.com/AadSmartOnFhirProxy/callback/aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA

In questa risposta aHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9zYW1wbGVhcHAvaW5kZXguaHRtbA è una versione con codifica Base64 URL-safe dell'URL di risposta per l'app SMART on FHIR. Per l'utilità di avvio di app SMART on FHIR, quando l'app viene eseguita localmente, l'URL di risposta è https://localhost:5001/sampleapp/index.html.

È possibile generare l'URL di risposta combinato usando uno script simile al seguente:

$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

Aggiungere l'URL di risposta all'applicazione client pubblica creata in precedenza per Azure AD:

Screenshot che mostra come configurare l'URL di risposta per il client pubblico.

Passaggio 3: Ottenere un paziente test

Per testare l'API di Azure per FHIR e il proxy SMART on FHIR, è necessario avere almeno un paziente nel database. Se non si è ancora interagito con l'API e non si hanno dati nel database, vedere Accedere al servizio FHIR usando Postman per caricare un paziente. Prendere nota dell'ID di un paziente specifico.

Passaggio 4: Scaricare l'icona di avvio delle app SMART on FHIR

Il repository del server FHIR per Azure open source include una semplice utilità di avvio di app SMART on FHIR e un'app SMART on FHIR di esempio. In questa esercitazione usare l'utilità di avvio di SMART on FHIR localmente per testare la configurazione.

È possibile clonare il repository GitHub e passare all'applicazione usando i comandi seguenti:

git clone https://github.com/Microsoft/fhir-server
cd fhir-server/samples/apps/SmartLauncher

Per l'applicazione sono necessarie alcune impostazioni di configurazione, che è possibile specificare in appsettings.json:

{
    "FhirServerUrl": "https://MYFHIRAPI.azurehealthcareapis.com",
    "ClientId": "APP-ID",
    "DefaultSmartAppUrl": "/sampleapp/launch.html"
}

È consigliabile usare la funzionalità dotnet user-secrets:

dotnet user-secrets set FhirServerUrl https://MYFHIRAPI.azurehealthcareapis.com
dotnet user-secrets set ClientId <APP-ID>

Usare questo comando per eseguire l'applicazione:

dotnet run

Passaggio 5: Testare il proxy SMART on FHIR

Dopo aver avviato l'utilità di avvio di app SMART on FHIR, è possibile puntare il browser all'indirizzo https://localhost:5001, dove verrà visualizzata la schermata seguente:

Screenshot dell'utilità di avvio delle app SMART on FHIR.

Quando si immettono le informazioni per Patient (Paziente), Encounter (Primo contatto) o Practitioner (Medico), si noterà che il contesto di avvio è stato aggiornato. Quando si usa l'API di Azure per FHIR, il contesto di avvio è semplicemente un documento JSON che contiene informazioni su pazienti, medici e altro ancora. Questo contesto di avvio è codificato con Base64 e viene passato all'app SMART on FHIR come parametro di query launch. In base alla specifica SMART on FHIR, questa variabile è opaca per l'app SMART on FHIR e viene passata al provider di identità.

Il proxy SMART on FHIR usa queste informazioni per popolare i campi nella risposta del token. L'app SMART on FHIR può usare questi campi per controllare per quale paziente richiede i dati e come visualizza l'applicazione sullo schermo. Il proxy SMART on FHIR supporta i campi seguenti:

  • patient
  • encounter
  • practitioner
  • need_patient_banner
  • smart_style_url

Questi campi hanno lo scopo di fornire indicazioni all'app, ma non trasmettono informazioni di sicurezza. Un'applicazione SMART on FHIR può ignorarli.

Si noti che l'utilità di avvio di app SMART on FHIR aggiorna le informazioni sull'URL di avvio in fondo alla pagina. Selezionare Avvia per avviare l'app di esempio.

## Passaggi successivi

Dopo aver appreso come abilitare la funzionalità SMART on FHIR, vedere la pagina degli esempi di ricerca per informazioni dettagliate su come eseguire ricerche usando parametri di ricerca, modificatori e altri metodi di ricerca FHIR.

FHIR® è un marchio registrato di HL7 e viene usato con l'autorizzazione di HL7.