Dataverse Healthcare API: configurare un'app per la logica di Azure con un trigger HTTP
Questo articolo fornisce una guida dettagliata per la creazione di app per la logica di Azure per l'inserimento di dati FHIR nelle Dataverse Healthcare API, nei Servizi per i dati sanitari di Azure o in entrambi. Questa app per la logica, configurata con un trigger HTTP, funge da relay tra Servizi per i dati sanitari di Azure e le Dataverse Healthcare API.
Puoi anche usare un modello di Azure Resource Manager (ARM) denominato Modello pipeline dati assistenza sanitaria per distribuire un gruppo di app per la logica che orchestrano l'inserimento di aggregazioni FHIR nelle Dataverse Healthcare API e nei Servizi per i dati sanitari di Azure. Per ulteriori informazioni, vedi Dataverse Healthcare API: utilizzare Modello pipeline dati assistenza sanitaria per distribuire app per la logica di Azure.
Nota
Questo esempio viene fornito come punto di ingresso per i dati delle cartelle cliniche elettroniche in entrata, assicurando che i dati FHIR vengano pubblicati nei servizi appropriati. Allo stato attuale, non è inteso come soluzione finale.
La configurazione prevede i passaggi seguenti:
- Esaminare i requisiti
- Configurazione dell'autenticazione
- Creare un'app per la logica
- Configurare un'app per la logica
- Chiamare l'API FHIR
- Valutare la risposta FHIR
- Inviare l'aggregazione JSON all'URL dell'app per la logica
- Proteggere un'app per la logica
Questo servizio di app per la logica fornisce un punto di ingresso per i messaggi dell'aggregazione FHIR che vengono pubblicati per la prima volta nell'endpoint Servizi per i dati sanitari di Azure. Dopo un post riuscito, il messaggio viene indirizzato all'endpoint delle Dataverse Healthcare API. Questo esempio garantisce che quando le aggregazioni FHIR vengono pubblicate nei Servizi per i dati sanitari di Azure, anche le Dataverse Healthcare API ricevono il messaggio.
Nota
Un'app per la logica di Azure non è necessaria per pubblicare dati FHIR negli endpoint delle Dataverse Healthcare API. Puoi creare la tua soluzione per inoltrare dati dal tuo sistema CCE alle API e gestire le risposte.
L'app per la logica di esempio usa Identità gestite di Microsoft Entra ID per eseguire l'autenticazione tra l'istanza dell'app per la logica e i due servizi.
Esaminare i requisiti
Prima di poter creare un'App per la logica, devi assicurarti di disporre dei requisiti seguenti:
- Account e sottoscrizione di Azure. Se non disponi di una sottoscrizione, registrati per un account di Azure gratuito prima di iniziare.
- Un gruppo di risorse Azure configurato con le risorse appropriate per creare app per la logica.
- Accesso al gruppo di risorse per creare e modificare le app per la logica e le identità gestite.
- Adesione alle linee guida di sicurezza delineate dagli amministratori di Azure e dai criteri dell'organizzazione.
Configurazione dell'autenticazione
Prima di creare e configurare l'app per la logica, è necessario configurare un'identità gestita in modo che i servizi esterni possano eseguire l'autenticazione con l'app per la logica. L'uso di identità gestite è un approccio alla configurazione dell'autenticazione. Assicurati di seguire le procedure consigliate e i criteri dell'organizzazione durante la configurazione dell'autenticazione.
Le identità gestite in Azure consentono l'autenticazione tra i servizi senza rendere persistenti le credenziali all'interno dell'app per la logica. Questa app per la logica usa un'identità gestita assegnata dall'utente per l'autenticazione tra i servizi. Gli amministratori di Azure in genere limitano questa configurazione. Se l'accesso è disponibile, puoi usare i passaggi seguenti per creare un'identità gestita che può eseguire la connessione agli endpoint dei Servizi per i dati sanitari di Azure e delle Dataverse Healthcare API.
Per ulteriori informazioni sulle identità gestite, vai a Cosa sono le identità gestite per le risorse di Azure?
Per configurare l'autenticazione con un'identità gestita, esegui i seguenti passaggi:
- Creare un'identità gestita
- Concedere l'accesso ai Servizi per i dati sanitari di Azure
- Concedi l'accesso alle Dataverse Healthcare API
Creare un'identità gestita
Crea un'identità gestita assegnata dall'utente utilizzando i passaggi seguenti:
Dal menu del Portale di Azure seleziona Crea una risorsa e cerca Identità gestita. Nelle opzioni fornite, seleziona Identità gestita assegnata dall'utente, quindi seleziona Crea.
Seleziona i valori corretti per Sottoscrizione, Gruppo di risorse e Area. L'area deve essere la stessa dell'app per la logica.
Nel campo Nome seleziona FHIRRelayManagedIdentity o qualsiasi altro nome univoco per il gruppo di risorse. Il resto di questo articolo fa riferimento al nome FHIRRelayManagedIdentity per l'identità gestita.
Seleziona Crea.
Al termine della distribuzione, apri la risorsa di identità gestita.
Concedere l'accesso ai Servizi per i dati sanitari di Azure
L'accesso ai Servizi per i dati sanitari di Azure dall'app per la logica richiede l'assegnazione del ruolo Collaboratore dati FHIR che consente di registrare nuovi dati nel servizio. Dovresti aggiungere questa assegnazione di ruolo Azure all'identità gestita utilizzata dall'app per la logica.
Vai all'istanza di Servizi per i dati sanitari di Azure, seleziona Controllo accessi (IAM), quindi seleziona Aggiungi assegnazione di ruolo.
Nella scheda Ruolo seleziona il ruolo Collaboratore dati FHIR .
Seleziona la scheda Membri, seleziona Identità gestita, quindi seleziona + Seleziona membri. Aggiungi l'identità gestita che hai creato in Creare un'identità gestita.
L'integrazione dell'assegnazione nell'identità gestita potrebbe richiedere alcuni minuti. Puoi visualizzare l'assegnazione di ruolo nell'identità gestita selezionando Assegnazioni di ruolo Azure.
Concedere l'accesso alle Dataverse Healthcare API
La stessa identità gestita viene usata nell'app per la logica per accedere alle Dataverse Healthcare API collegandola a un utente dell'applicazione nell'istanza Dataverse di destinazione. Per ulteriori informazioni sugli utenti dell'applicazione, vai a Gestire gli utenti dell'applicazione nell'interfaccia di amministrazione di Power Platform.
Per configurare l'utente dell'applicazione è necessario l'ID client di Azure dell'identità gestita. Per recuperare l'ID client, apri l'identità gestita FHIRRelayManagedIdentity e copia il valore ID client dall'area Panoramica.
Nell'interfaccia di amministrazione di Power Platform, apri l'ambiente Microsoft Cloud for Healthcare di destinazione. Nella sezione Accesso seleziona App S2S, quindi seleziona Nuovo utente dell'app.
Nel riquadro Crea un nuovo utente dell'app seleziona la Business unit appropriata, quindi seleziona Aggiungi un'app.
Nel riquadro Aggiungi un'app da Microsoft Entra ID, cerca l'ID client copiato dall'identità gestita. Seleziona FHIRRelayManagedIdentity dall'elenco, seleziona Aggiungi, quindi modifica i ruoli di sicurezza.
Seleziona il ruolo Utente registrazione app Amministrazione sincronizzazione per FHIR, quindi seleziona Salva. Seleziona Crea per creare il nuovo utente dell'applicazione.
Creare un'app per la logica
Dal menu del Portale di Azure seleziona Crea una risorsa, cerca App per la logica, quindi seleziona l'elemento dai risultati della ricerca.
Seleziona Crea.
Nel riquadro Crea App per la logica, fornisci le informazioni pertinenti per l'App per la logica. Esamina il tipo di piano, la sicurezza e i dettagli di rete con gli amministratori di Azure in base al carico di elaborazione previsto.
Le impostazioni seguenti sono esempi di un semplice agente di orchestrazione di app per la logica per testare la connettività che userai nelle sezioni successive di questo articolo. Se non viene specificata un'impostazione, si presuppone che vengano utilizzati i valori predefiniti.
Impostazione valore Nome app per la logica FhirRelaySample Pubblica Flusso di lavoro Area geografica Stati Uniti orientali Tipo di piano Consumo Seleziona Crea. Potrebbero essere necessari alcuni minuti per eseguire il provisioning della nuova app per la logica.
Configurare un'app per la logica
Dopo aver creato l'app per la logica, apri la risorsa dell'app per la logica per aprire Progettazione app per la logica in Strumenti di sviluppo. Per configurare l'app per la logica, procedi come descritto di seguito:
Configurare l'identità
Ora che l'app per la logica e l'identità gestita sono entrambe create, devi collegarle.
Seleziona Identità dal menu dell'App per la logica, seleziona la scheda Utente assegnato quindi seleziona + Aggiungi.
Nel riquadro aperto, seleziona l'identità gestita creata, quindi seleziona Aggiungi.
L'app per la logica dovrebbe ora essere collegata alla nuova identità gestita. Può essere utilizzata per elaborare passaggi e azioni.
Configurare il trigger
Il primo passaggio della configurazione del flusso di lavoro di un'app per la logica consiste nel definire il punto di ingresso o il trigger. Il trigger Alla ricezione di una richiesta HTTP consente ai sistemi esterni di pubblicare dati tramite richieste HTTP all'app per la logica per l'elaborazione. Questo trigger consente all'app per la logica di inoltro FHIR di ricevere una richiesta HTTP con un payload JSON. Per ulteriori informazioni su come creare un trigger, vedi Aggiungere un trigger di richiesta.
Questa app per la logica prevede una richiesta in entrata contenente un aggregazione FHIR standard. Schema JSON corpo della richiesta viene lasciato vuoto poiché ogni aggregazione in arrivo può essere univoca. Questa configurazione consente all'app per la logica di ricevere vari payload JSON anziché associarli a uno specifico contratto dati.
Salva le impostazioni per generare l'URL di pubblicazione HTTP. Usa questo URL in un secondo momento per testare l'app per la logica.
Configurazione dei parametri
I parametri consentono flessibilità nella creazione e distribuzione di app per la logica tramite i modelli di Azure Resource Manager. In questo esempio aggiungi i due parametri seguenti nelle azioni dell'app per la logica:
- DataverseURL: l'URL completo per l'istanza di Dataverse che ospita le Dataverse Healthcare API.
- FhirURL: l'URL completo di Servizi per i dati sanitari di Azure.
Per creare un nuovo parametro, seleziona Parametri dalla barra degli strumenti per aprire il riquadro dei parametri.
Per ogni nuovo parametro, attieniti alla seguente procedura:
Seleziona Salva dalla barra degli strumenti per salvare i nuovi parametri con l'app per la logica.
Chiamare l'API FHIR
È necessaria una nuova azione per pubblicare il payload della richiesta in ingresso nell'endpoint dei Servizi per i dati sanitari di Azure tramite un metodo HTTP POST.
Nella finestra di progettazione di app per la logica, seleziona Nuovo passaggio per aggiungere una nuova azione HTTP POST. L'azione HTTP è comune e potrebbe essere visualizzata come azione consigliata. Se appare, seleziona HTTP come operazione per questo passaggio.
Se la raccomandazione non è presente, cerca HTTP, quindi seleziona HTTP dall'elenco delle azioni disponibili.
Assegna il nome Chiama l'API FHIR a questa azione. Nelle impostazioni dell'azione HTTP, aggiorna le seguenti impostazioni:
Impostazione valore metodo POST URI FhirURL Intestazioni Aggiungi un nuovo valore per ciascuna delle seguenti intestazioni:
Content-Type: application/json
OData-Version: 4.0Corpo Corpo I campi URI e Corpo richiedono contenuto dinamico. L'URI utilizza il valore del parametro FhirURL e il campo Body utilizza il corpo della richiesta in entrata gestita dal trigger.
Seleziona Salva per assicurarti di salvare le impostazioni correnti prima di passare al passaggio successivo.
Seleziona Aggiungi nuovo parametro, quindi seleziona Autenticazione.
- Per il campo Tipo di autenticazione, seleziona Identità gestita.
- Per il campo Identità gestita, seleziona l'identità gestita precedentemente creata e collegata alla risorsa Servizi per i dati sanitari di Azure.
- Selezionare il valore del parametro FhirURL per il campo Gruppo di destinatari.
La chiamata HTTP ora ha accesso per pubblicare (POST) i dati FHIR nell'endpoint servizio.
Valutare la risposta FHIR
Dopo le pubblicazioni dei dati FHIR, usa un'azione condizionale per valutare la risposta dell'endpoint dei Servizi per i dati sanitari di Azure.
Seleziona Nuovo passaggio.
Nella finestra di dialogo Azione, seleziona la scheda Incorporato e l'icona Controllo quindi seleziona Condizione per l'azione. A questa azione assegna il nome Valuta la risposta FHIR.
Nel parametro Condizione, seleziona il valore dinamico del Codice di stato restituito dalla precedente azione HTTP. Imposta l'operatore di condizione su è uguale a e il valore del risultato di 200 per il codice di successo.
Se questa condizione è soddisfatta, viene valutato il ramo True .
Per garantire che l'azione Valuta la risposta FHIR venga eseguita, seleziona i puntini di sospensione nella parte superiore della scheda azione, quindi seleziona Configura azione Run after. Seleziona tutte le opzioni elencate in modo che l'app per la logica possa fornire una risposta al chiamante. Questi aggiornamenti garantiscono che l'azione venga eseguita anche se il passaggio precedente rileva una condizione di errore.
Condizione: Risposta riuscita
Se il POST dei Servizi per i dati sanitari di Azure ha esito positivo, il corpo della richiesta viene pubblicato nelle Dataverse Healthcare API.
Creare il corpo della richiesta Dataverse
All'interno del ramo Vero seleziona Aggiungi un'azione, quindi seleziona Incorporato.
Cerca Componi. Sotto Operazioni sui dati, seleziona l'azione Componi.
Per il campo Input aggiungi il seguente frammento JSON:
{ "msind_BundleTag": "", "msind_JSON": "" }
Nelle virgolette vuote per il nodo
msind_JSON
, aggiungi il contenuto dinamico per il valore del corpo del trigger.Questo passaggio aggiunge i valori JSON del corpo del trigger come parametro alla chiamata delle Dataverse Healthcare API. Assegna il nome a questo passaggio Creare corpo della richiesta di Dataverse.
Chiamare l'API di Dataverse
Il passaggio successivo pubblica questo nuovo JSON nell'endpoint delle Dataverse Healthcare API.
Seleziona Aggiungi un'azione e crea un'altra azione HTTP. Assegna il nome a questo passaggio Chiamare l'API di Dataverse.
Nelle impostazioni dell'azione HTTP, aggiorna le seguenti impostazioni:
Impostazione valore metodo POST URI (espressione) Intestazioni Aggiungi un nuovo valore per ciascuna delle seguenti intestazioni:
Content-Type: application/json
OData-Version: 4.0Corpo (Output del passaggio di composizione) Il campo URI è un valore di espressione dinamica che combina il parametro DataverseURL e il nome dell'API personalizzata dell'endpoint. L'espressione completa dovrebbe essere come segue:
concat(parameters('DataverseURL'), '/api/data/v9.1/msind_UpsertBundle')
Il campo Corpo è un valore dinamico che cattura l'output del passaggio Componi.
Seleziona Aggiungi nuovo parametro, quindi seleziona Autenticazione. Sotto Tipo di autenticazione, seleziona Identità gestita.
Seleziona l'identità gestita precedentemente creata e collegata alla risorsa Servizi per i dati sanitari di Azure. Per questa azione, seleziona il valore del parametro DataverseURL per il campo Gruppo di destinatari.
La chiamata HTTP ora ha accesso per pubblicare (POST) l'endpoint servizio delle Dataverse Healthcare API.
Rispondere con la risposta di Dataverse
Dopo aver pubblicato i dati in Dataverse, componi la risposta per la chiamata all'app per la logica utilizzando la risposta dall'azione Chiama API Dataverse.
Seleziona Aggiungi un'azione, quindi seleziona Incorporato.
Seleziona Risposta nell'elenco delle azioni disponibili. Assegna il nome a questa nuova azione Rispondere con la risposta di Dataverse.
In questa azione, i valori restituiti dalle Dataverse Healthcare API vengono restituiti come risposta per l'app per la logica usando valori dinamici nei campi corrispondenti.
Per garantire che l'azione Rispondi con risposta Dataverse venga eseguita, seleziona i puntini di sospensione nella parte superiore della scheda azione e quindi seleziona Configura esecuzione dopo. Seleziona tutte le opzioni elencate di modo che l'app per la logica possa fornire una risposta al chiamante anche se l'azione Chiama API Dataverse non riesce.
Condizione: risposta non riuscita
Se la chiamata all'endpoint dei Servizi per i dati sanitari di Azure ha esito negativo, l'app per la logica restituisce i valori dell'azione Chiama API FHIR come risposta.
Rispondere con la risposta di errore FHIR
Seleziona Aggiungi un'azione nel ramo Falso della condizione, quindi seleziona Incorporato.
Seleziona Risposta nell'elenco delle azioni disponibili. Assegna il nome a questa nuova azione Rispondere con la risposta di errore FHIR.
In questa azione, i valori restituiti da Servizi per i dati sanitari di Azure vengono restituiti come risposta per l'app per la logica utilizzando valori dinamici nei campi corrispondenti.
Inviare l'aggregazione JSON all'URL dell'app per la logica
Per testare l'app per la logica con la finestra di progettazione, seleziona Esegui trigger e quindi seleziona l'opzione Esegui con payload. Questa azione simula la chiamata dell'URL dell'app per la logica e consente di eseguire il debug di eventuali problemi.
Per il campo Corpo fornisci un'aggregazione FHIR valida. Questo passaggio presuppone che il resto della configurazione di Microsoft Cloud for Healthcare è completata e le Dataverse Healthcare API sono pronte a ricevere un messaggio in entrata.
L'esecuzione della versione corrente con URL errati per gli endpoint del servizio comporta un'esecuzione corretta dell'app per la logica anche se l'azione Chiama l'API FHIR non riesce. Puoi visualizzare i risultati dell'esecuzione nella pagina principale per l'app per la logica in Cronologia.
Se si aggiornano correttamente tutti i valori dei parametri, la cronologia tiene traccia correttamente dell'esecuzione dell'app per la logica.
Proteggere un'app per la logica
Dopo aver completato e testato la configurazione dell'app per la logica, puoi bloccare la traccia proteggendo le azioni di input e output.
Seleziona i puntini di sospensione nell'angolo in alto a destra della scheda azione, quindi seleziona Impostazioni.
Imposta i valori su Attivato per Input sicuri e Output sicuri.
Tutte le successive esecuzioni dell'app per la logica limitano la visualizzazione dei dati durante la visualizzazione dei registri di esecuzione. I risultati per il trigger dovrebbero ora fornire una visualizzazione limitata dei dati come segue:
Puoi applicare queste impostazioni a ogni azione che supporta questa funzione. Per maggiori informazioni, vai a Accesso sicuro e dati per flussi di lavoro in App per la logica di Azure.