Brugerdefinerede integrationer er en funktion i Provet, som gør det muligt at sende anmodninger til eksterne ressourcer inde fra Provet. For at få adgang til denne funktion skal du kontakte Kontakt Provet support.
Administration
Administrer brugerdefinerede integrationer i Indstillinger > Integrationer > Brugerdefinerede integrationer.
Hvis du vil tilføje en integration, skal du vælge knappen Tilføj.
Hvis du vil redigere en integration, skal du vælge knappen pen i tabellens række.
Indstillinger
Felt | Beskrivelse |
Navn | Angiver teksten, der vises på knappen i brugergrænsefladen. |
Angiver, på hvilken side knappen vises. Hver brugerdefineret integration kan kun være synlig på én side, men den samme konfiguration kan duplikere. | |
Handling | Angiver, hvilken handling der udføres, når knappen vælges. |
HTTP metode | Angiver, om anmodningen sendes som en GET-anmodning (nyttelast angives som parametre i forespørgselsstrengen) eller som en POST-anmodning (nyttelast angives som formulardata). |
URL | Mål-URL’en, inklusive schema. |
Parameter navn | Navnet på parameteren, der bruges, når du angiver det aktuelle objekts ID. |
Aktiveret | Giver mulighed for at aktivere og deaktivere en brugerdefineret integration. Brugerdefinerede integrationer kan også slettes, hvis de ikke længere er nødvendige. |
Verifikation Salt | En delt hemmelighed, der bruges til at beregne verifikationshashen. Kræves, når verifikationshashen er aktiveret. |
Konfigurationsmuligheder
Tilføj verifikations hash: Aktiverer en verifikationshash i nyttelasten, som kan bruges til at verificere, at anmodningen kommer fra den brugerdefinerede integration.
Inkluder nyttelast i verifikationshash: Denne mulighed genberegner verifikationshashen ved hjælp af den fulde nyttelast, inklusive bruger- og klient-id’er.
Tilføj oplysninger om organisation og afdeling: Denne mulighed inkluderer automatisk de nødvendige oplysninger om organisation og afdeling. Provet medtager følgende parametre i anmodningen: Provet name (organization core), Provet ID (product organization ID) og Afdelings ID.
Præfiksering af parameterværdi
Du kan tilføje et brugerdefineret præfiks til parameterens værdi ved at angive parameternavnet på en anden måde.
Hvis du fx angiver parameternavnet som 'id=client_', sendes en anmodning som https://example.com/?id=client_1.
Header
Baggrundsanmodninger ('Send HTTP anmodning') kan få vilkårlige statiske værdier, som tilføjes til anmodningerne.
Dette kan bruges til at medtage Authorization-headers i anmodninger.
Denne funktion er ikke implementeret for forgrundsanmodninger ('Åben i ny fane', 'Åbn i sidepanelet'). Sendte headers logges heller ikke.
Oplysninger om nyttelast
Visningen af indstillinger viser en liste over nøgler og værdier i nyttelasten, som sendes med anmodningen. Listen opdateres, når indstillingerne ændres.
Handlingstyper
1. Send HTTP anmodning
En anmodning planlægges i baggrunden og sendes ved hjælp af Provet’s servere. Brugere ser ikke websiden, men kan se en notifikation, mens afsendelsen kører.
Anmodningen kommer fra Provet’s udgående IP-adresser.
Afsendelsen sker asynkront, og der kan være en forsinkelse afhængigt af, hvor meget arbejde der er på serverne på det pågældende tidspunkt.
Du ser en informationsnotifikation øverst på siden, når anmodningen bliver planlagt.
Der vises en succesnotifikation, hvis anmodningen sendes med succes, og integrationen svarer med en vellykket HTTP statuskode (mellem 200 og 299 inkl.).
Hvis anmodningen fejler, vises en fejlnotifikation med teksten 'Integration request failed', og der står en mere specifik fejlbesked i parentes.
Fejlmeddelelse | Beskrivelse |
Backend error | Der opstod en ukendt fejl på Provet’s worker-servere. Kontakt Kontakt Provet support for supplerende information. |
Forbindelsesfejl | Anmodningen om at planlægge afsendelsen gik ikke igennem. |
Data error | Anmodningen om at planlægge afsendelsen indeholdt ugyldig data. |
Integration error | Anmodningen blev sendt med succes, men integrationen svarede med en ikke-vellykket HTTP statuskode (lavere end 200 eller højere end 299). |
2. Åben i ny fane
Mål-URL’en åbnes i et nyt vindue eller en ny browserfane.
Hvis en GET-anmodning bruges, kan brugerne se oplysningerne om nyttelasten, der vises i browserens adresselinje.
3. Åbn i sidepanelet
Mål-URL’en integreres i Provet ved at åbne et sidepanel oven på sideindholdet og vise siden som en iframe.
Mål-URL’en skal understøtte indlejring (headeren X-Frame-Options skal være sat korrekt).
Anvendelse
Brugerdefinerede integrationer gengives som knapper på sider, der er mål for integrationen.
Hvis der kun er konfigureret én integration for en side, gengives den som en almindelig knap.
Hvis en side har flere integrationer, gengives de som en rullemenu.
Brugerdefinerede integrationer sender kun det relevante objekt-ID (klient ID, patient ID, faktura ID osv.), som kan forespørges via Provet REST API.
Side | Placering af knap | ID sendt som en parameter |
Klient | På højre side, over afsnittet Noter (ikke på patientfanerne). | Klient ID |
Patient | På højre side, over afsnittet Noter (ikke på klientfanerne). | Patient ID |
Faktura | I fakturaens nederste værktøjslinje (inklusive Kontantsalg-sider). | Faktura ID (ikke fakturanummer) |
Konsultation | Over afsnittet Generel information, for både løbende og afsluttede konsultationer. | Konsultation ID |
Aftalekalender | Øverst på aftalekalenderen. | Aktiv Afdelings ID |
Vagtplan | Øverst på vagtplanen. | Aktiv Afdelings ID |
Billeddiagnostik | På henvisningssiden til billeddiagnostik i de øverste og nederste værktøjslinjer. | Henvisning til billeddiagnostik ID |
Påmindelse | I udvælgelsesværktøjslinjen på påmindelsessiden, når én eller flere påmindelser er valgt. | Påmindelse ID for hver valgt påmindelse |
Historik
Anmodninger sendt i baggrunden ('Send HTTP anmodning') registreres i en intern log til verifikation og audit.
Gå til Indstillinger > Integrationer > Brugerdefinerede integrationer > Historik.
Logvisningen viser alle foretagne anmodninger, startende med den seneste anmodning.
Se supplerende information i detaljevisningen ved at vælge øje-knappen i højre side af hver række.
Bemærk: Der logges ikke for forgrundsanmodninger ('Åben i ny fane', 'Åbn i sidepanelet').
Verifikation Salt & hashes
Muligheden "Verifikation Salt" er kun synlig, hvis "Tilføj verifikations hash" er valgt. Derudover vises "Inkluder nyttelast i verifikationshash" også, når "Tilføj verifikations hash" er valgt.
Baseret på kombinationen af tilladelser beregnes verifikationshashen som følger:
1. Verifikation Salt aktiveret, "inkluder payload i verifikationsoption" deaktiveret -> hash beregnes som:Hexadecimal verifikation MD5 hash fordøje, f.eks. "4e531ee13aa16886db72bc1621206d2f". Hashen genereres ved at tilføje verifikations saltet efter det inkluderende tidsstempel ("2018-07-15T09:12:54+00:00My verifikationssalt"). [string]2. Verifikation Salt aktiveret, "inkluder payload i verifikationsoption" aktiveret, "Tilføj oplysninger om organisation og afdeling" DEAKTIVERET -> hash beregnes som:Hexadecimal verifikation MD5 hash fordøje, f.eks. "23ae5385b3862a571f1b5d6f6b469b1c". Hashen beregnes med: "<timestamp><salt><parameter_name><object_id>user_id<user_id>" ("2018-07-15T09:12:54+00:00My verifikationssaltpatient_id1234user_id56"). [string]3. Verifikation Salt aktiveret, "inkluder payload i verifikationsoption" aktiveret, "Tilføj oplysninger om organisation og afdeling" AKTIVERET -> hash beregnes som:Hexadecimal verifikation MD5 hash fordøje, f.eks. "163049a017bb405d4bfec754810c9838". Hashen beregnes med: "<timestamp><salt><parameter_name><object_id>user_id<user_id>provet_env<provet_env>provet_id<provet_id>department_id<department_id>" ("2018-07-15T09:12:54+00:00My verifikationssaltpatient_id1234user_id56provet_envenvprovet_id12345department_id12"). [string]Verifikationshashes kan bruges som en ekstra validering til at verificere, hvilke anmodninger der kommer fra Provet’s brugerdefinerede integration.
Når den er aktiveret, tilføjes en ekstra parameter med navnet "verification" til anmodninger.
Denne parameter er en MD5 hash fordøje af tidsstemplet og verifikations saltet.
Ved afsendelse i baggrunden genereres tidsstemplet, når anmodningen faktisk sendes.
Ved afsendelse i forgrunden genereres tidsstemplet, når en side med knappen til den brugerdefinerede integration indlæses.
Hvis du fx vil verificere, at verifikationshashen er gyldig i Python, kan man skrive en funktion som denne:
from hashlib import md5VERIFICATION_SALT = "My custom verification salt"def is_verification_hash_valid(parameters): hasher = md5() hasher.update(parameters.timestamp.encode("utf8")) hasher.update(VERIFICATION_SALT.encode("utf8")) return hasher.hexdigest() == parameters.verificationTo-vejs-kommunikation med Provet
Provet giver mulighed for en begrænset mængde to-vejs-kommunikation med brugerdefinerede integrationer åbnet i forgrunden ved hjælp af Window.postMessage()-API’et.
Den eneste gyldige kommando er "reload".
function refreshProvetCloud() { window.opener.postMessage("reload","*");}Denne kommando udfører en fuld side-genindlæsning af vinduet eller fanen, som åbnede den brugerdefinerede integration.
Det kan være nyttigt, hvis den brugerdefinerede integration opdaterer Provet-data via REST API’et.
