Dataverse Healthcare API -ohjelmointirajapinnat: Käytä terveydenhoidon tietoputken mallia Azure Logic Appsin käyttöönotossa
Tässä artikkelissa on vaiheittaiset ohjeet mallin käyttämiselle, kun otetaan käyttöön Azure Logic Apps -ryhmä, joka käsittelee FHIR-paketteja Dataverse Healthcare API -ohjelmointirajapinnoissa, Azure Health -tietopalveluissa tai molemmissa. Tämä ratkaisu toimii yritysvalmiina logiikkasovelluksen työnkulkuna, joka toimii välittäjänä Azure Health -tietopalvelujen ja Dataverse Healthcare API -ohjelmointirajapintojen välillä. Työnkulku myös hallitsee uudelleenyrityslogiikkaa ja poikkeusten käsittelyä. Se käyttää Azuren blob-tallennustilan käynnistintä manuaalisessa määrityksessä käytettävän HTTP-käynnistimen sijaan.
Tämä työnkulku voidaan ottaa käyttöön Azure Resource Manager (ARM) -mallina, jonka nimi on Terveystietojen putkimalli. Mallin voi ottaa käyttöön Microsoft Cloud -ratkaisukeskuksessa. Microsoft Cloud for Healthcare toimittaa tämän vakaan ja tuetun ratkaisun. Mallin käyttöön ottamisen jälkeen on määritettävä tiettyjä perustason manuaalisia määrityksiä.
Muistiinpano
Tämä logiikkasovelluksen työnkulku toimitetaan saapuvien sähköisten terveystietojen (EHR) aloituskohtana, ja näin varmistetaan, että FHIR-tiedot lähetetään oikeisiin palveluihin. Se ei nykyisessä tilassaan ole lopullinen ratkaisu, ja sitä on tarkoitus päivittää liiketoimintatarpeidesi perusteella.
Näiden logiikkasovelluspalveluiden ei tarvitse lähettää FHIR-tietoja Dataverse Healthcare API -päätepisteisiin. EHR-tietojen välittämiseen ohjelmointirajapintoihin ja vastausten käsittelemiseen voidaan muodostaa oma ratkaisu.
Logiikkasovelluspalvelut käyttävät Azure-blob-tallennustilan käynnistintä käynnistääkseen määritettävään tallennussijaintiin julkaistujen pakettien asynkronisen käsittelyn. Tämä vaihtoehto käsittelee raskaampia kuormia yritysten käyttötapauksia varten ja sisältää ylimääräisiä poikkeusten käsittelyn vaiheita. Se on kuitenkin testattava huolellisesti käyttämällä odotettuja päivittäisiä kuormituksia.
Käyttöönoton jälkeen voit laajentaa logiikkasovelluksia siten, että ne soveltuvat oman järjestelmäsi tarpeisiin.
Tärkeää
Tämä ARM-malli on yhteensopiva vain Microsoft Cloud for Healthcare 2022 2. julkaisuaallon ja uudempien versioiden kanssa. Vanhemmissa versioissa on poistettava Määritä requestBody FHIR-vastaukselle onnistuttaessa -toiminto ennen suorituksen käynnistämistä.
Tämä määritys sisältää seuraavat vaiheet:
- Edellytykset
- Suunnittelu
- Kirjaa käyttöönotto-ohjeet
- Käsittele virheet
- Uudelleenyritysten määrittäminen
- Logic Appsin suojaaminen
edellytykset
Varmista, että ympäristö täyttää seuraavat edellytykset ennen mallin käyttöönottoa:
- Azure-tili ja tilaus. Jos sinulla ei ole tilausta, luo maksuton Azure-tili ennen aloittamista.
- Azure-resurssiryhmä, joka on määritetty asianmukaisin oikeuksin uusien resurssien luomista varten, tai Osallistujarooli uusien resurssiryhmien luomista varten.
- Resurssiryhmän käyttöoikeus luo resursseja ja määrittää Azure-rooleja.
- Azuren järjestelmänvalvojien ja organisaatiokäytäntöjen suojausohjeiden noudattaminen.
Suunnittelu
Seuraavassa kaaviossa näkyy mallilla käyttöönotetun putken rakenne:
ARM-malli ottaa käyttöön useita modularisoituja Logic Appseja. Se sisältää seuraavat kolme logiikkasovelluspalvelua:
Logiikkasovellus | Description |
---|---|
Käsittele FHIR-pakettia | Ensimmäinen logiikkasovelluksen esiintymä, joka käynnistetään, kun paketti ladataan blob-tallennustilaan. Tämä logiikkasovellus määrittää, lähetetäänkö paketti FHIR:ään vai suoraan Dataverseen. |
Lähetä paketti FHIR:ään | Toinen logiikkasovellus, joka käynnistetään Käsittele FHIR-paketti -logiikkasovelluksesta, kun päätät julkaista paketin FHIR-järjestelmään. Tämä logiikkasovellus käsittelee pyynnön paketin ja lähettää sen FHIR-palvelimeen. Kun tämä logiikkasovellus on julkaissut paketin FHIR-palvelimeen, se välittää paketin seuraavalle logiikkasovellukselle Lähetä paketti Dataverseen lisäkäsittelyä varten. |
Lähetä paketti Dataverseen | Lopullinen logiikkasovellus käynnistyi joko Käsittele FHIR-paketti- tai Lähetä paketti FHIR:ään -sovelluksesta. Se käsittelee pyynnön paketin ja lähettää paketin Dataverseen. Se suorittaa paketin säilön puhdistuksen siirtämällä pyyntöpaketin säilölle bundleserror tai bundlesarchive . |
Mallin parametrit
Parametri | Description |
---|---|
Resurssin sijainti | Resurssin luonnin Azure-alue. Tämä parametriarvo palautuu oletusarvoisesti alueeksi, jota käytettiin resurssiryhmän luomisessa. |
Dataversein URL-osoite | Microsoft Cloud for Healthcare Dataverse-ympäristön URL-osoite. Esimerkki: https://*orgname*.crm.dynamics.com |
Kirjaa FHIR-palvelimeen | Totuusarvo. Jos tämä on määritetty todeksi, paketti julkaistaan FHIR-palvelimelle. |
FHIR-palvelimen URL-osoite | FHIR-palvelimen URL-osoite. Esimerkiksi https://*fhirserver*.azurewebsites.net Tätä parametria tarvitaan vain, jos haluat julkaista FHIR-palvelimelle ennen Dataversen upsert-ohjelmointirajapinnan päätepisteelle julkaisemista. |
Yksilöllinen arvo | Yksilöllinen merkkijono, jonka avulla luodaan resurssien nimet. Tämä arvo palautuu oletusarvoisesti uniqueString-funktioon. Voit ohittaa tämän arvon tarpeen mukaan. |
Käyttöönotetut resurssit
Malli ottaa käyttöön seuraavat resurssit ympäristössä:
Resurssi | Kuvaus |
---|---|
Hallitut käyttäjätiedot | Hallittujen käyttäjätietojen nimi on muotoa mi_UniqueValue. Hallitut käyttäjätiedot määritetään logiikkasovellukselle ja niille myönnetään käyttöoikeudet tallennustilatiliin, FHIR-palvelimelle ja Dataverse-ympäristöön. |
Azure-tallennustili | Tallennustilin nimi on muotoa sa_UniqueValue. Malli ottaa tallennustilin lisäksi käyttöön myös seuraavat kolme säilöä: bundles , bundlesarchive ja bundleserror . |
Roolimääritys | Määrittää Blob-objektisäilön dataosallistujan -roolin hallitulle identiteetille tallennustilillä. |
Azure-tapahtumaverkko | Tapahtumaverkon nimi on muotoa eg_UniqueValue. Kaikki blob-tapahtumat julkaistaan tähän tapahtumaverkkoon. |
Azuren palveluväylä | Palveluväylän nimi on muotoa sb_UniqueValue. Tapahtumaverkko julkaisee tapahtumat tähän palveluväylään. Jonon nimi on bundleCreated . |
Valtuutussääntö | Luo palveluväylään kuunneltavaksi valtuutussäännön, jonka nimi on bundleauthlisten . |
Azure Logic Apps | Liittyvien logiikkasovellusten työnkulkujen joukko, jonka tyyppi on Kulutus. Työnkulku käynnistyy palveluväylän tapahtumien perusteella. Nämä logiikkasovellukset käsittelevät saapuvan FHIR-paketin ja lähettävät sen määritettyihin päätepisteisiin. Jokainen logiikkasovellus nimetään yksilöllisellä arvolla käyttöönoton aikana: 1. laprocessfhirbundle_UniqueValue 2. lasendbundletodataverse_UniqueValue 3. lasendbundletofhir_UniqueValue |
API-yhteys | Logiikkasovellukset vaativat useita ohjelmointirajapintayhteyksiä. |
Tuloste
Sen perusteella päättyykö suoritus onnistumiseen vain virheeseen, originalblobname_response.json-niminen blob-objekti luodaan bundlesarchive
- tai bundleserror
-kansiossa, ja siinä on seuraava rakenne:
{
"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.>"
}
Riippuen siitä, mikä logiikkasovellus käynnisti virheen, JSON-virhe sisältää joko dataverseResponse
- tai fhirServerResponse
-solmun. Jos esimerkiksi kohtaat lasendbundletofhir_UniqueValue-logiikkasovelluksen virheen, JSON-vastaus sisältää vain fhirServerResponse
-solmun ja -arvon.
Kirjaa käyttöönotto-ohjeet
Seuraavassa osassa ovat ohjeet noudatettavaksi mallin käyttöönoton jälkeen.
Anna käyttöoikeus FHIR-palvelimeen
FHIR-palvelimen käyttäminen logiikkasovelluksesta edellyttää FHIR-osallistuja-roolin määritystä, joka sallii uusien tietojen lähettämisen palveluun. Lisää tämä Azure-roolimääritys logiikkasovelluksen käyttämille hallituille käyttäjätiedoille.
Siirry FHIR-palvelinesiintymään, valitse Käyttöoikeuksien hallinta (IAM) ja valitse sitten Lisää roolin määritys.
Valitse Rooli-välilehdessä FHIR-tietojen osallistuja -rooli.
Valitse Jäsenet, Hallitut käyttäjätiedot ja sitten + Valitse jäsenet.
Lisää ARM-mallikäyttöönotolla luodut hallitut käyttäjätiedot. Juuri käyttöönotettujen hallittujen käyttäjätietojen nimen tulee olla mi_UniqueValue.
Voi kestää muutaman minuutin, ennen kuin määritys näkyy hallituissa käyttäjätiedoissa. Valitse Azure-roolimääritykset tarkastellaksesi hallittujen käyttäjätietojen roolimääritystä.
Dataverse Healthcare API -ohjelmointirajapintojen käyttöoikeuksien myöntäminen
Samoilla hallituilla käyttäjätiedoilla käytetään Dataverse Healthcare API -ohjelmointirajapintoja logiikkasovelluksessa yhdistämällä tiedot sovelluksen käyttäjään Dataversen kohde-esiintymässä. Lisätietoja sovelluksen käyttäjistä: Hallitse sovelluksen käyttäjiä Power Platformin hallintakeskuksessa.
Sovelluksen käyttäjän määrittämiseen tarvitaan hallittujen käyttäjätietojen Azure-asiakastunnus. Voit noutaa asiakastunnuksen avaamalla hallitut käyttäjätiedot, jotka on luotu ARM-mallikäyttöönotolla, ja kopioi Asiakastunnus-arvo Yleiskatsaus-alueelta.
Avaa Microsoft Cloud for Healthcare-ympäristö Power Platformin hallintakeskuksessa. Valitse Käyttö-osassa S2S-sovellukset ja valitse sitten Uusi sovelluksen käyttäjä.
Valitse Luo uusi sovelluskäyttäjä-ruudussa asianmukainen Liiketoimintayksikkö ja valitse sitten Lisää sovellus.
Hae Lisää sovellus Microsoft Entra ID:stä -ruudussa hallitusta käyttäjätiedosta kopioitu asiakasohjelmatunnus.
Valitse hallittu tunnistetieto luettelosta, valitse Lisää ja muokkaa sitten käyttöoikeusrooleja.
Valitse FHIR:n synkronointiagentin sovellusrekisteröinnin käyttäjän rooli ja valitse sitten Tallenna.
Luo uusi sovelluskäyttäjä valitsemalla Luo.
Kun olet suorittanut määrityksen loppuun, voit testata logiikkasovelluksen työnkulkua julkaisemalla esimerkkipaketin sa_UniqueValue-säilöön käsittelyä varten. Ratkaisusi vaatimusten mukaan voit myös muokata mitä tahansa näistä logiikkasovelluksista lisäkäsittelyä varten.
Käsittele virheet
Jos logiikkasovelluksen suorituksen tuloksena on virhe, originalblobname_response.json-niminen tiedosto luodaan tallennustilatilin bundleserror
-säilöön. Voit jäsennellä tätä tiedostoa virheen pääsyyn selvittämiseksi, korjata virheen ja lähettää paketin uudelleen epäonnistuneilla resursseilla.
Pakettityyppi: Erä
FHIR-palvelin ja Dataverse Healthcare API -ohjelmointirajapinnat käsittelevät erä-tyyppisen paketin ryhmänä erillisiä toimintoja. Tuloksena olevat vastaukset ilmaisevat erikseen kunkin resurssin onnistumisen tai epäonnistumisen.
FHIR-määrityksen mukaisesti minkä tahansa epäonnistuvan resurssin tuloksena on OperationOutcome, jonka vakavuusasteeksi on määritetty virhe, ja Dataverse Healthcare API määrittää msind_requeststatus
-arvoksi 935000002. Lisätietoja pyynnön tilatyypeistä on kohdassa Pyynnön tilatyypit.
Logiikkasovelluksen työnkulku jäsentyy sekä FHIR-palvelimen että Dataverse Healthcare API -ohjelmointirajapintojen vastausten perusteella. Se päättää työnkulun Epäonnistui-tilaan, jos jonkin resurssin tuloksena on ollut virhe.
Huomautus
Dataverse Healthcare API -ohjelmointirajapinnat tukevat tällä hetkellä vain FHIR-paketteja, joiden tyyppi on erä ja erä-vastaus.
Uudelleenyritysten määrittäminen
Kun virhe on tunnistettu ja korjattu, paketti voidaan sijoittaa takaisin bundles
-säilöön uudelleenkäsittelyä varten.
Yritä uudelleen nostinta: FHIR-palvelin
Logiikkasovelluksen työnkulun HTTP-toiminto, joka lähettää viestit FHIR-palvelimeen, käyttää sisäistä HTTP-toiminnon uudelleenyrityskäytäntöä. Oletusarvo on eksponentiaalinen aikavälikäytäntö, joka yrittää uudelleen neljä kertaa. Voit muokata uudelleenyrityskäytäntöä.
Valitse toimintokortin oikean yläkulman kolme pistettä ja valitse sitten Asetukset.
Muuta uudelleenyrityskäytäntöä-kohdassa kentän Tyyppi-arvoa.
Yrittäminen uudelleen rajoittamalla: Dataverse Healthcare API -ohjelmointirajapinnat
Palvelun suojauksen ohjelmointirajapinnan rajoitukset vaikuttavat Dataverse Healthcare API -ohjelmointirajapintoihin. Jos pyyntöä Dataverse healthcare API -ohjelmointirajapintaan rajoitetaan, logiikkasovelluksen työnkulku yrittää (oletusarvoisesti) kolme kertaa uudelleen ohjelmointirajapinnan vastauksen otsikossa määrittämän Retry-After
-välin mukaisesti. Voit muokata sekä uudelleenyritysten lukumäärää että aikaväliä.
Jos haluat muuttaa uudelleenyritysten määrän, muokkaa Silmukka, kunnes toiminto on valmis -toiminnon Määrä-arvoa.
Jos haluat muuttaa välin, muokkaa Viivytä-toiminnon Määrä-arvoa.
Logic Appsin suojaaminen
Kun logiikkasovellus on määritetty ja testattu, voit lukita seurannan suojaamalla syöte- ja tulostoiminnot. Lisätietoja on kohdassa Logiikkasovelluksen suojaaminen.