Brugerdefinerede integrationer er en funktion i Provet, der gør det muligt at sende anmodninger til eksterne ressourcer fra inde i Provet. For at få adgang til denne funktion skal du kontakte Kontakt Provet support.
Administration
Administrer brugerdefinerede integrationer i Indstillinger > Integrationer > Brugerdefinerede integrationer.
For at tilføje en integration skal du vælge knappen Tilføj.
For at redigere en integration skal du vælge knappen pen i tabelrækken.
Indstillinger
Felt | Beskrivelse |
Navn | Angiver den tekst, der vises på knappen i brugergrænsefladen. |
Angiver, på hvilken side knappen er synlig. Hver brugerdefineret integration kan kun være synlig på én side, men den samme konfiguration kan duplikeres. | |
Handling | Angiver, hvilken handling der udføres, når knappen vælges. |
HTTP metode | Angiver, om anmodningen sendes som en GET-anmodning (nyttelast leveres som parametre i forespørgselsstrengen) eller som en POST-anmodning (nyttelast leveres som formulardata. |
URL | Mål-URL’en, komplet med skema. |
Parameter navn | Navnet på parameteret, der bruges til at angive den aktuelle objekts ID. |
Aktiveret | Gør det muligt 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 bekræfte, at anmodningen kommer fra den brugerdefinerede integration.
Inkluder nyttelast i verifikationshash: Denne valgmulighed genberegner verifikationshashen ved at bruge hele nyttelasten, inklusive bruger- og klient-ID’er.
Tilføj oplysninger om organisation og afdeling: Denne valgmulighed inkluderer automatisk de nødvendige oplysninger om organisation og afdeling. Provet medtager disse parametre i anmodningen: Provet navn (organisationskerne), Provet ID (produktionsorganisation ID) og Afdelings ID.
Præfiks af parameterværdi
Det er muligt at tilføje et brugerdefineret præfiks til parameterværdien ved at angive parameter navnet på en anden måde.
Hvis du for eksempel definerer parameter navnet som 'id=client_', vil der blive sendt en anmodning som https://example.com/?id=client_1.
Sidehoveder
Baggrundsanmodninger ('Send HTTP anmodning') kan angives med vilkårlige, statiske værdier, som bliver tilføjet til anmodningerne.
Dette kan bruges til at inkludere Authorisation sidehoveder i anmodninger.
Denne funktion er ikke implementeret for forgrundsanmodninger ('Åben et nyt vindue', 'Åbn i sidepanelet'). Sendte sidehoveder bliver heller ikke logget.
Oplysninger om nyttelast
Visningen med 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 vil ikke se websiden, men kan se en notifikation, når afsendelsen er i gang.
Anmodningen kommer fra Provet’s udgående IP-adresser.
Afsendelsen sker asynkront, og der kan være en forsinkelse afhængigt af mængden af arbejde, der er på serverne i øjeblikket.
Du kan se en informationsnotifikation øverst på siden, når anmodningen planlægges.
Der vises en succesnotifikation, hvis anmodningen sendes med succes, og integrationen svarer med en succesfuld HTTP status kode (mellem 200 og 299 inklusive).
Hvis anmodningen fejler, vises en fejlnotifikation med teksten 'Integration request failed' samt en mere specifik fejlmeddelelse i parentesen.
Fejlmeddelelse | Beskrivelse |
Backend-fejl | Der opstod en ukendt fejl på Provet’s worker-servere. Kontakt Kontakt Provet support for yderligere oplysninger. |
Forbindelsesfejl | Anmodningen om at planlægge afsendelsen blev ikke gennemført. |
Datafejl | Anmodningen om at planlægge afsendelsen indeholdt ugyldige data. |
Integration error | Anmodningen blev sendt med succes, men integrationen svarede med en ikke-succesfuld HTTP status kode (lavere end 200 eller højere end 299). |
2. Åbn et nyt vindue
Mål-URL’en åbnes i et nyt vindue eller i en ny browsertab.
Hvis der bruges en GET-anmodning, kan brugerne se oplysninger om nyttelasten, der vises i browserens adressefelt.
3. Åbn i sidepanelet
Mål-URL’en indlejres i Provet ved at åbne et sidepanel oven på indholdet på siden 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å mål-sider.
Hvis der kun er sat én integration op til en side, gengives den som en almindelig knap.
Hvis en side har flere integrationer, gengives de som en rullegardinsmenu.
Brugerdefinerede integrationer sender kun det relevante objekts ID (klient-ID, patient-ID, faktura-ID osv.), som kan slås op via Provet REST API.
Side | Placering af knap | ID sendt som parameter |
Klient | På højre side, over sektionen Noter (ikke på patientfanerne). | Klient ID |
Patient | På højre side, over sektionen Noter (ikke på klientfanerne). | Patient ID |
Faktura | I den nederste værktøjslinje på fakturasider (inklusive kontantsalg). | Faktura ID (ikke fakturanummeret) |
Konsultation | Over sektionen Generel information for både løbende og afsluttede konsultationer. | Konsultation ID |
Aftale Kalender | Øverst i aftalekalenderen. | Aktivt afdelings ID |
Vagt Kalender | Øverst i vagtkalenderen. | Aktivt afdelings ID |
Billeddiagnostik | På siden til billeddiagnostik rekvisition i top- og bundtværktøjslinjerne. | Billeddiagnostik rekvisition ID |
Påmindelser | I valg-væ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 historik til verifikation og audit.
Gå til Indstillinger > Integrationer > Brugerdefinerede integrationer > Historik.
Visningen af historik viser alle oprettede anmodninger, startende med den seneste anmodning.
Se flere oplysninger i detaljevisningen ved at vælge øje-knappen i højre side af hver række.
Notat
Der logges ikke for forgrundsanmodninger ('Åben et nyt vindue', 'Åbn i sidepanelet').
Verifikation Salt & hashes
Valgmuligheden "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, "include payload in verficiation option" deaktiveret -> hash beregnes som:Hexadecimal verifikation MD5 hash fordøje, f.eks. "4e531ee13aa16886db72bc1621206d2f". Hasen genereres ved at tilføje verifikations saltet efter det inkluderende tidsstempel ("2018-07-15T09:12:54+00:00My verifikationssalt"). [string]2. Verifikation Salt aktiveret, "include payload in verification option" 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, "include payload in verification option" 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 supplerende validering til at kontrollere, hvilke anmodninger der kommer fra den brugerdefinerede integration i Provet.
Når den er aktiveret, tilføjes der en supplerende parameter med navnet "verification" til anmodninger.
Denne parameter er en MD5 hash fordøje af tidsstempel og verifikation salt.
Ved afsendelse i baggrunden genereres tidsstemplet, når anmodningen faktisk sendes.
Ved afsendelse i forgrunden genereres tidsstemplet, når en side, der indeholder knappen til den brugerdefinerede integration, indlæses.
Hvis for eksempel du vil bekræfte, 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 understøtter en begrænset mængde to-vejs kommunikation med brugerdefinerede integrationer, der åbnes i forgrunden, via Window.postMessage()-API’et.
Den eneste gyldige kommando er "reload".
function refreshProvetCloud() { window.opener.postMessage("reload","*");}Denne kommando udfører en fuld genindlæsning af siden i det vindue eller den fane, der åbnede den brugerdefinerede integration.
Det kan være nyttigt, hvis den brugerdefinerede integration opdaterer Provet-data via REST API’et.
