Egendefinerte integrasjoner er en funksjon i Provet Cloud som gjør det mulig å sende forespørsler til eksterne ressurser fra Provet Cloud. For å få tilgang til funksjonene, vennligst kontakt Provet Cloud support.
Egendefinerte integrasjoner administreres i Innstillinger → Integrasjoner → Egendefinerte integrasjoner.
Du legger til en integrasjon ved hjelp av den blå "+Add"-knappen, og du redigerer en integrasjon ved hjelp av den hvite pennknappen på tabellraden.
-
Name - Angir etiketten på knappen som er synlig i brukergrensesnittet.
-
Synlig side - Angir hvilken side knappen skal være synlig på. Hver egendefinerte integrasjon kan bare være synlig på én side, men den samme konfigurasjonen kan dupliseres til flere egendefinerte integrasjoner.
-
Handling - Angir hvilken handling som skal utføres når du klikker på knappen.
-
Send HTTP-forespørsel - En forespørsel planlegges i bakgrunnen og sendes ved hjelp av Provet Clouds servere. Brukerne vil ikke se nettsiden, men kan se et varsel når sendingen pågår. Forespørselen kommer fra Provet Clouds utgående IP-adresser, så mottakersiden må være åpen for forespørsler utenfra.
-
Åpne i nytt vindu - Mål-URL-en åpnes i et nytt vindu/ny nettleserfane.
-
Åpne i sidepanel - Mål-URL-en er innebygd i Provet Cloud ved å åpne et sidepanel på toppen av sideinnholdet og vise siden som en iframe. Mål-URL-en må støtte innebygging (som i
X-Frame-Options
header må være riktig angitt).
-
-
HTTP-metode - Angir om forespørselen skal sendes som en GET-forespørsel, der nyttelasten leveres som parametere i spørringsstrengen, eller som en POST-forespørsel, der nyttelasten leveres som skjemadata.
-
URL - Mål-URL-en, komplett med skjema.
-
Parameternavn - Navnet på parameteren som brukes når du oppgir ID-en til det aktuelle objektet.
-
Enabled - Gjør det mulig å aktivere og deaktivere en egendefinert integrasjon. Egendefinerte integrasjoner kan også slettes hvis de ikke lenger er nødvendige.
-
Add verification hash - Aktiverer en bekreftelseshash i nyttelasten som kan brukes til å bekrefte at forespørselen kommer fra den egendefinerte integrasjonen.
-
Verifiseringssalt - En delt hemmelighet som brukes til å beregne bekreftelseshash, kun nødvendig når bekreftelseshash er aktivert.
Det er mulig å legge til et egendefinert prefiks til parameterverdien ved å spesifisere parameternavnet på en annen måte. Normalt vil en forespørsel som https://example.com/?id=1
resultere i en forespørsel som https://example.com/?id=1 . Hvis det imidlertid kreves et egendefinert prefiks foran den faktiske ID-verdien, kan parameternavnet for eksempel defineres som "id=client_", noe som vil sende en forespørsel som https://example.com/?id=client_1
.
Bakgrunnsforespørsler ("Send HTTP-forespørsel") kan også gis vilkårlige, statiske verdier som legges til i forespørslene hver gang de sendes. Dette kan for eksempel brukes til å inkludere autorisasjonshoder i forespørsler.
Denne funksjonen er ikke implementert for forgrunnsforespørsler ("Åpne i nytt vindu", "Åpne i sidepanel"). Sendte overskrifter logges heller ikke.
Forespørsler som sendes i bakgrunnen ('Send HTTP-forespørsel') vil bli registrert i en intern logg for verifiserings- og revisjonsformål. Dette gjør det mulig for administratorer å kontrollere hva slags forespørsler som ble sendt av hvem og på hvilket tidspunkt, og inspisere hva slags svar den tilpassede integrasjonen sendte tilbake.
Loggen for egendefinerte integrasjoner kan vises i Innstillinger → Integrasjoner → Egendefinerte integrasjoner → Logg.
Loggvisningen viser en liste over alle forespørsler som er sendt, og begynner med den siste forespørselen. Grunnleggende informasjon om forespørslene vises i listen, og du kan få tilgang til mer informasjon i detaljvisningen ved å klikke på øyeknappen på høyre side av hver rad.
Logging utføres ikke på forgrunnsforespørsler ("Åpne i et nytt vindu", "Åpne i sidepanel"), ettersom det er nettleseren som står for disse forespørslene.
Når egendefinerte integrasjoner er lagt til, vises de som knapper på målsidene. Det er enkelt å skille egendefinerte integrasjonsknapper fra Provet Clouds knapper ved hjelp av deres unike brune utseende.
Hvis bare én egendefinert integrasjon er konfigurert for en side, vil den bli gjengitt som en vanlig knapp, med navnet på den egendefinerte integrasjonen som etikett. Se den brune knappen "Utløs egendefinert integrasjon" på bildet nedenfor (klientsiden).
Hvis en side har flere egendefinerte integrasjoner knyttet til seg, vil de egendefinerte integrasjonene i stedet bli gjengitt som en nedtrekksmeny, som igjen bruker det samme brune utseendet for å skille dem fra hverandre. Menyoppføringene vil bruke navnet på den egendefinerte integrasjonen som etikett, akkurat som enkeltknappene. Se bildet nedenfor for en illustrasjon.
Egendefinerte integrasjoner sender ikke detaljert informasjon om siden som er synlig for øyeblikket. I stedet sender de bare den relevante objekt-ID-en (klient-ID, pasient-ID, faktura-ID osv.) som kan spørres ut fra Provet Cloud REST API, på samme måte som webhooks fungerer.
Egendefinerte integrasjoner inkluderer ikke automatisk informasjon om hvilken side de er registrert på. Brukere bør enten bruke forskjellige URL-endepunkter for forskjellige sider (for eksempel integration.com/client/
for tilpasset integrasjon av klientsiden og integration.com/patient/
for tilpasset integrasjon av pasientsiden), eller hvis det ikke er mulig, forskjellige parameternavn (for eksempel patient_id
for integrasjon av pasientsiden og client_id
for integrasjon av klientsiden hvis begge bruker samme URL), og deretter skille på integrasjonssiden ved hjelp av hvilken parameter som er inkludert i forespørselen. For bakgrunnsforespørsler kan egendefinerte overskrifter også brukes.
Det finnes heller ingen referanse til den aktive Provet-ID-en. Hvis du bygger en integrasjon som deles mellom flere Provet Cloud-instanser, anbefales det å legge til endepunkter for hver Provet ID (for eksempel integration.com/1234/client/
og integration.com/4321/client/
hvis integrasjonen skal brukes av både Provet Cloud-instans 1234 og 4321). I dette tilfellet anbefales det også å bruke verifikasjonshashes for å sikre at data kommer fra riktig instans, selv om det er en feilkonfigurasjon med en tilpasset integrasjons-URL. For bakgrunnsforespørsler kan egendefinerte overskrifter også brukes.
Hvis en egendefinert integrasjon er definert som en "Send HTTP-forespørsel"-handling, vil et klikk på knappen for egendefinert integrasjon planlegge en forespørsel som skal sendes i bakgrunnen ved hjelp av Provet Clouds arbeidsservere. Sendingen skjer asynkront, og selv om forespørselen vanligvis sendes ganske umiddelbart, kan det oppstå en forsinkelse avhengig av hvor mye arbeid som for øyeblikket er på serverne. Forespørselen vil komme fra Provet Clouds utgående IP-adresser.
Når forespørselen er under planlegging, vil brukeren se et informasjonsvarsel øverst på siden.
Hvis forespørselen blir håndtert og fullført uten at brukeren navigerer bort fra siden, kan de få en ekstra melding når oppgaven er fullført.
En vellykket melding vises hvis forespørselen er sendt og integrasjonen svarer med en vellykket HTTP-statuskode (mellom 200 og 299).
Hvis forespørselen av en eller annen grunn mislykkes, vises en rød feilmelding med teksten "Integrasjonsforespørsel mislyktes", med en mer spesifikk feilmelding i parentesen.
Mulige feilmeldinger for øyeblikket er:
-
Backend-feil - En ukjent feil oppstod på Provet Clouds arbeidsservere da forespørselen ble sendt. Dette kan være en feil på Provet Clouds servere. Kontakt Provet Clouds kundestøtte for ytterligere informasjon.
-
Tilkoblingsfeil - Forespørselen om å planlegge sendingen som ble sendt til Provet Clouds servere, gikk ikke gjennom. Dette kan være en feil med brukerens tilkobling eller kanskje et problem med Provet Clouds servere.
-
Datafeil - Forespørselen om å planlegge sendingen som ble sendt til Provet Clouds servere, inneholdt ugyldige data. Dette tyder på et problem i Provet Cloud.
-
Integrasjonsfeil - Forespørselen ble sendt, men integrasjonen svarte med en ikke-vellykket HTTP-statuskode (lavere enn 200 eller høyere enn 299). Den egendefinerte integrasjonsloggen kan brukes til å finne årsaken hvis feilen er uventet.
Hvis en egendefinert integrasjon er definert som en "Åpne i nytt vindu"-handling, vil et klikk på den egendefinerte integrasjonsknappen åpne mål-URL-en i et nytt vindu, eller mer vanlig i moderne nettlesere, i en ny fane. Den opprinnelige Provet Cloud-siden forblir åpen i det opprinnelige vinduet/fanen.
Hvis en GET-forespørsel brukes, kan brukerne se nyttelastinformasjonen i nettleserens adressefelt. Hvis brukerne ikke enkelt skal kunne se nyttelastinformasjonen som overføres, bør du vurdere å bruke en POST-forespørsel i stedet.
Hvis en egendefinert integrasjon er definert som en "Åpne i sidepanel"-handling, vil et klikk på knappen for egendefinert integrasjon hente mål-URL-en i nettleseren og vise den i et iframe
-element i et sidepanel som åpnes på toppen av den aktuelle siden.
Mål-URL-en må støtte innbygging via X-Frame-Options-overskriften.
Klienttilpassede integrasjoner vises på klientsiden på høyre side, over delen Notater når du blar gjennom en av klientfanene ("Klientdetaljer", "Fakturering", "Behandlinger" osv.). Den vises ikke på pasientfanene. Klient-ID-en sendes som en parameter.
På samme måte vil pasienttilpassede integrasjoner vises på pasientsiden på høyre side, over merknader-delen når du blar gjennom pasientfaner ("Pasientopplysninger", "Historikk", "Målinger" osv.). Den vises ikke på klientfanene. Pasient-ID-en sendes som en parameter.
Egendefinerte integrasjoner for faktura vil vises på fakturasider (inkludert disksalg) i den nederste verktøylinjen. Faktura-ID (ikke å forveksle med fakturanummer) vil bli sendt som en parameter.
Egendefinerte integrasjoner for konsultasjoner vil vises på konsultasjonssiden over den generelle informasjonsdelen, både for pågående og avsluttede konsultasjoner. Konsultasjons-ID-en sendes som en parameter.
Egendefinerte integrasjoner av avtalekalenderen vil bli gjengitt på toppen av avtalekalenderen. Den aktive klinikkens lokasjons-ID vil bli sendt som en parameter.
På samme måte vil egendefinerte integrasjoner av vaktkalenderen vises på toppen av vaktkalenderen, under valget av vakttype og vaktmal. Den aktive klinikkens lokasjons-ID sendes som en parameter.
Egendefinerte integrasjoner for bildediagnostikk vises på henvisningssiden for bildediagnostikk i øverste og nederste verktøylinje. ID-en for henvisningen til bildediagnostikk sendes som en parameter.
Hvis det er en risiko for at eksterne parter kan sende forespørsler til mål-URL-en, og det er nødvendig å vite hvilke forespørsler som kommer fra den tilpassede integrasjonen i Provet Cloud, kan verifiseringshashes brukes som ekstra validering. Når dette er aktivert, vil en tilleggsparameter kalt "verification" legges til i forespørsler, og er en MD5-hashdigest av tidsstempelet og verifiseringssaltet.
For å verifisere at verifikasjonshashingen er gyldig i Python, kan man for eksempel skrive en funksjon som denne:
Når du bruker bakgrunnssending ("Send HTTP-forespørsel"), genereres tidsstempelet når forespørselen faktisk sendes. Ved bruk av forgrunnssending ("Åpne i et nytt vindu") genereres tidsstempelet imidlertid når en side som inneholder den egendefinerte integreringsknappen, lastes inn. Dette gjøres for å generere bekreftelseshash på serversiden og unngå å eksponere bekreftelsessaltet for brukerne. Utviklere av egendefinerte integrasjoner må kanskje ta hensyn til at brukerne kan bruke litt tid på siden før de klikker på knappen for egendefinert integrasjon.
Provet Cloud tillater en begrenset mengde toveiskommunikasjon med egendefinerte integrasjoner som åpnes i forgrunnen ved hjelp av Window.postMessage() API. Vinduet/fanen som åpnet den egendefinerte integrasjonen er tilgjengelig via window.opener
-objektet, og dermed kan en melding sendes med window.opener.postMessage(message)
, der meldingen er en gyldig kommando som gjenkjennes av Provet Cloud.
For øyeblikket er den eneste gyldige kommandoen "reload", som vil utføre en fullstendig omlasting av siden i vinduet/fanen som åpnet den tilpassede integrasjonen. Dette kan for eksempel være nyttig hvis den egendefinerte integrasjonen oppdaterer Provet Cloud-data via REST API, og brukerne bør se de siste endringene når de kommer tilbake fra den egendefinerte integrasjonen.
Oppdatert
Kommentarer
0 kommentarer
Logg på hvis du vil legge inn en kommentar.