Dataverse healthcare API'er: Bruge Healthcare-datapipelineskabelon til at udrulle Azure Logic App.
Denne artikel indeholder en trinvis vejledning i, hvordan du bruger en skabelon til at installere en gruppe med Azure Logic Apps, der organiserer FHIR-data i Dataverse healthcare API'er, Azure Health-dataservices eller begge. Denne løsning fungerer som et logikapp-flow, der er klar til at blive sendt til virksomheden, og som fungerer som et relæ Azure Health Data Services og Dataverse healthcare API'er. I flowet administreres også forsøgslogik og undtagelseshåndtering. Den er afhængig af en Azure Blob Storage-udløser i stedet for den HTTP-udløser, der bruges i den manuelle konfiguration.
Denne arbejdsproces er tilgængelig for installation som en Azure Resource Manager-skabelon (ARM) med titlen Pipelineskabelon til sundhedsdata. Du kan udrulle skabelonen fra Microsoft Cloud Løsningscenter. Dette tilbud er en mere robust og understøttet løsning, der kan tilbydes af Microsoft Cloud for Healthcare. Du skal konfigurere en grundlæggende manuel konfiguration, når du har implementeret skabelonen.
Bemærk
Dette Logic App-flow bruges som et indgangspunkt til indgående data om elektroniske tilstandsdata (EHR) og sikrer, at FHIR-data sendes til de rette tjenester. Det er ikke en endelig løsning i den aktuelle tilstand, og den er beregnet til opdatering på baggrund af virksomhedens behov.
Disse logikapp-services kræves ikke for at sende FHIR-data til Dataverse Healthcare API-slutpunkterne. Du kan vælge at udvikle din egen løsning, så du videresender data fra din EHR til API'er og håndtere svarene.
Tjenesterne i logikappen er afhængige af en Azure Blob Storage-udløser, der udløser asynkron behandling af bundterne, som sendes til en lagerplacering, der kan konfigureres. Denne indstilling håndterer belastninger i forbindelse med virksomhedsbrug og inkluderer ekstra trin til håndtering af undtagelser. Du bør dog foretage en grundig test med de forventede daglige belastninger.
Efter installationen kan du udvide Logic Apps efter behov.
Vigtigt!
Denne ARM-skabelon er kun kompatibel med Microsoft Cloud for Healthcare 2022-versionen af bølge 2 og nyere versioner. I forbindelse med ældre versioner skal du slette Set requestBody til FHIR-svar på en vellykket handling, før du udløser en kørsel.
Konfigurationen omfatter følgende trin:
Forudsætninger
Sørg for at dit miljø imødekommer følgende krav, før du installerer skabelonen:
- Azure-konto og -abonnement. Hvis du ikke har et Azure-abonnement, skal du oprette en gratis Azure-prøvekonto, inden du begynder.
- En Azure ressourcegruppe konfigureret med de nødvendige tilladelser til at oprette nye ressourcer eller en bidragyderrolle for at oprette nye ressourcegrupper.
- Adgang til ressourcegruppen for at oprette ressourcer og tildele Azure-roller.
- Overholdelse af de retningslinjer for sikkerhed, der er skitseret af Azure-administratorer og organisationspolitik.
Design
I følgende diagram illustreres designet af den pipeline, der installeres via skabelonen:
ARM-skabelonen installerer flere modulariserede Logic Apps. Det omfatter følgende tre logic app-tjenester:
Logic App | Description |
---|---|
Behandle FHIR-bundt | Den første forekomst af logikappen udløses, når en bundt overføres til blob Storage. Denne logikapp bestemmer, om du vil sende bundtet til FHIR eller direkte til Dataverse. |
Send bundt til FHIR | Den anden logikapp, der udløses fra logikappen Process FHIR-bundt, når du vælger at sende bundtet til FHIR. Logikappen behandler anmodningsbundtet og sender det til FHIR-serveren. Når denne logikapp har sendt bundtet til FHIR-serveren, videresender den bundtet til den næste logikapp Send Bundt til Dataverse videre behandling. |
Send bundt til Dataverse | Den endelige logikapp udløste enten fra Behandle FHIR-bundt eller Send bundt til FHIR-logikappen. Den behandler anmodningsbundtet og slår bundtet op på Dataverse. Den håndterer også oprydningen af bundtbeholderen ved at flytte forespørgselsbundtet til enten bundleserror eller bundlesarchive . |
Skabelonparametre
Parameter | Description |
---|---|
Ressourceplacering | Azure-ressourceområdet til ressourceoprettelse. Denne parameterværdi bruges som standard til det område til at oprette ressourcegruppen. |
URL-adresse for Dataverse | URL-adressen til dit Microsoft Cloud for Healthcare Dataverse-miljø. F.eks. https://*orgname*.crm.dynamics.com |
Sende til FHIR-server | En boolesk værdi. Hvis angivet til sand, sendes bundtet til FHIR-serveren. |
URL-adresse til FHIR-server | URL-adressen til dit FHIR-miljø. Du kræver f.eks. https://*fhirserver*.azurewebsites.net kun denne parameter, hvis du vil udgive indlæg på FHIR-serveren, før du sender indlæg til Dataverse upsert API-slutpunktet. |
Entydig værdi | Den entydige streng, der bruges til at oprette ressourcenavne. Denne værdi bruges som standard til funktionen UniqueString. Du kan tilsidesætte denne værdi, hvis det er nødvendigt. |
Installerede ressourcer
I skabelonen installeres følgende ressourcer i miljøet:
Ressource | Beskrivelse |
---|---|
Administreret id | Navnet på det administrerede id har det format, mi_UniqueValue. Denne administrerede identitet tildeles til logikappen og tildeles adgang til lagerkontoen, FHIR-serveren og Dataverse miljøet. |
Azure-datalagerkonto | Navnet på det lagerkonto har formatet sa_UniqueValue. Udover lagerkontoen installerer skabelonen også følgende tre objektbeholdere - bundles , bundlesarchive og bundleserror . |
Rolletildeling | Tildeler rollen Lager for Blob Data-bidragyder for lagerkontoen til det administrerede id. |
Azure Event Grid | Navnet på Event Grid har formatet eg_UniqueValue. Alle blob-hændelserne udgives i dette hændelsesgitter. |
Azure Service Bus | Navnet på Service Bus har formatet sb_UniqueValue. I Hændelsesgitteret oprettes hændelser i denne tjenestebus. Navnet på køen er bundleCreated . |
Godkendelsesregel | Opretter en Lytte-godkendelsesregel i servicebussen med navnet bundleauthlisten . |
Azure Logic Apps | Et sæt relateret logikapp-arbejdsproces af typen Forbrug. Arbejdsprocessen udløser hændelserne i Service Bus. Logikappen behandler indgående FHIR-bundtet og skriver det til de konfigurerede slutpunkter. De enkelte logikapps navngives ved hjælp af den entydige værdi, der blev angivet under installationen: 1. laprocessfhirbundle_UniqueValue 2. lasendbundletodataverse_UniqueValue 3. lasendbundletofhir_UniqueValue |
API-forbindelse | Der kræves flere API-forbindelser til Logic Apps. |
Output
Afhængigt af, om kørslen afsluttes vellykket eller med fejl, oprettes der en blob med navnet originalblobname_response.json, der oprettes i bundlesarchive
- eller bundleserror
-mappen eller med følgende skema:
{
"dataverseResponse": "<The response from the Dataverse healthcare API post the call.>",
"fhirServerResponse": "<The response from the FHIR server call if the "Post to FHIR server" parameter value was set to True.>",
"statusMessage": "<Summary of the responses. In case of a failure, the message provides details about how many resources failed to post to the FHIR server and to Dataverse.>",
"statusCode": "<Code value associated with the issue encountered.>"
}
Afhængigt af, hvilken logikapp der udløste fejlen, indeholder JSON-fejlen enten dataverseResponse
eller fhirServerResponse
-noden. Hvis du f.eks. støder på en fejl med lasendbundletofhir_UniqueValue-logikappen, indeholder JSON-svar kun fhirServerResponse
noden og værdien.
Trin efter udrulning
Følgende afsnit indeholder de trin, du skal følge, når skabelonen er blevet implementeret.
Give adgang til FHIR-serveren
Hvis du skal have adgang til FHIR-serveren fra logikappen, skal du bruge rolletildelingen FHIR-databidragyder, som gør det muligt at sende nye data til tjenesten. Føj denne Azure-rolletildeling til den administrerede identitet, der bruges af logikappen.
Gå til forekomsten af FHIR-serveren, vælg Adgangskontrol (IAM), og vælg derefter Tilføj rolletildeling.
Vælg rollen FHIR-databidragyder i fanen Rolle.
Vælg Medlemmer, vælg Administreret identitet, og vælg derefter + Vælg medlemmer.
Tilføj den administrerede identitet, der er oprettet ved hjælp af ARM-skabeloninstallation. Det administrerede id, der netop er installeret, skal have navnet mi_UniqueValue.
Det kan tage et par minutter at overveje tildelingens administrerede identitet. Vælg Azure-rolletildelingen for at få vist på den administrerede identitet.
Tildel adgang til Dataverse Healthcare API'er
Det samme administrerede id bruges i logikappen til at få adgang til Dataverse API'erne for behandling ved at oprette forbindelse til en programbruger i destinationsforekomsten af Dataverse. Du kan finde flere oplysninger applikationsbrugere ved at gå til Administrere applikationsbrugere i Power Platform Administration.
Du skal bruge Azure-klient-id'et for den administrerede identitet for at konfigurere programbrugeren. Hvis du vil hente klient-id'et, skal du åbne det administrerede id, der er oprettet med installationen af ARM-skabelon og kopiere Klient-id, og kopiere værdien for klient-id'et fra Oversigt-området.
I Power Platform Administration skal du åbne Microsoft Cloud for Healthcare-destinationsmiljø. Åbn sektionen Adgang, vælg S2S-apps, og vælg derefter Ny appbruger.
Vælg den relevante afdeling Forretningsenhed i ruden Opret en ny appbruger, og vælg derefter Tilføj en app.
I ruden Tilføj en app fra Microsoft Entra ID skal du søge efter det klient-id, du kopierede fra den administrerede identitet.
Vælg det administrerede id på listen, vælg Tilføj, og rediger derefter sikkerhedsrollerne.
Vælg rollen Registreret bruger af appen Synkroniseringsadministration til FHIR, og vælg derefter Gem.
Vælg Opret for at oprette en ny applikationsbruger.
Når du har fuldført konfigurationen, kan du teste arbejdsproces for logikappen ved at sende en eksempelbundt til sa_UniqueValue beholder til behandling. Afhængigt af løsningskravet kan du også ændre enhver af disse Logic Apps for at få mere behandling.
Håndtere fejl
Hvis en logikapp, der kører, resulterer i en fejl, oprettes der en fil med navnet originalblobname_response.json oprettes i beholderen bundleserror
i lagerkontoen. Du kan opdele teksten i denne fil for at identificere den grundlæggende årsag til fejlen, rette den og sende bundtet igen med de fejlbehæftede ressourcer.
Bundttype: batch
FHIR-serveren og Dataverse healthcare API'er behandler en bundt af type batch som en gruppe af uafhængige handlinger. Svarene indikerer derfor, at de enkelte ressourcer har succes og fejl uafhængigt.
Som det er angivet i FHIR-specifikationen, resulterer en ressource, der mislykkes, i OperationOutcome med alvorsgrad-værdiindstilling til fejl, hvor Dataverse healthcare API indstiller msind_requeststatus
til 935000002. Du kan finde flere oplysninger om statustyperne for anmodninger ved at gå til Typer af anmodningsstatus.
Arbejdsprocessen i logikappen fortolkes gennem begge responser fra FHIR-serveren og Dataverse healthcare API'er. Flowet afsluttes som Mislykket, hvis der er en ressource, som har resulteret i en fejl.
Bemærk
Dataverse Healthcare API'er understøtter i øjeblikket kun FHIR-bundter af typen batch og batch-svar.
Konfigurere forsøg igen
Når du har identificeret og repareret fejlen, kan du placere bundtet tilbage i bundles
-beholderen til behandling.
Prøv igen ved begrænsning: FHIR-server
HTTP-handlingen i den arbejdsproces for logikappen, der sender til FHIR-serveren, bruger de indbyggede politikker for nye forsøg af HTTP-handlinger. Standardværdien er en politik med eksponentielt interval, der er angivet til at prøve igen fire gange. Du kan redigere politikken for nye forsøg.
Vælg ellipsen øverst til højre på handlingskortet, og vælg derefter Indstillinger.
Rediger værdien i feltet Type under Politik for nyt forsøg.
Prøv igen ved begrænsning: Dataverse Healthcare API'er
Servicebeskyttelse af API begrænser påvirkningen af Dataverse healthcare API. Hvis en anmodning til Dataverse Healthcare API til behandling, forsøger logikappens workflow tre gange (som standard) med det Retry-After
-interval, der er angivet af API'en i svar-headeren. Du kan redigere både antallet af nye forsøg og intervallet.
Hvis du vil ændre antallet af nye forsøg, skal du redigere værdien for Antal i handlingen Løkke indtil.
Hvis du vil ændre intervallet, skal du redigere værdien for Antal i handlingen Forskydning.
Sikre Logic Apps
Når du har fuldført opsætning og testet logikappen, kan du låse sporingen ved at sikre input- og outputhandlingerne. Få mere at vide på Sikre Logic App.