Anpassade integreringar är en funktion i Provet som gör att du kan skicka förfrågningar till externa resurser från Provet. För att få tillgång till den här funktionen, kontakta Provet support.
Hantering
Hantera anpassade integreringar i Inställningar > Integreringar > Anpassade integreringar.
Om du vill lägga till en integrering, välj knappen Lägg till.
Om du vill redigera en integrering, välj pen-knappen i tabellraden.
Inställningar
Fält | Beskrivning |
Namn | Anger etiketten på knappen som syns i användargränssnittet. |
Anger på vilken sida knappen syns. Varje anpassad integrering kan bara synas på en sida, men samma konfiguration kan dupliceras. | |
Åtgärd | Anger vilken åtgärd som utförs när knappen väljs. |
HTTP-metod | Anger om förfrågan skickas som en GET-förfrågan (nyttolast som parametrar i frågesträngen) eller som en POST-förfrågan (nyttolast som formulärdata). |
URL | Mål-URL:en, komplett med schema. |
Parameternamn | Namnet på parametern som används när aktuell objects ID anges. |
Aktiverad | Möjliggör att aktivera och inaktivera en anpassad integrering. Anpassade integreringar kan också tas bort om de inte längre behövs. |
Verifiering salt | En delad hemlighet som används för att beräkna verifierings-hash. Krävs när verifierings-hash är aktiverad. |
Konfigurationsalternativ
Lägg till verifierings-hash: Aktiverar en verifierings-hash i nyttolasten som kan användas för att kontrollera att förfrågan kommer från den anpassade integreringen.
Inkludera nyttolast i verifierings-hash: Det här alternativet räknar om verifierings-hashen med hela nyttolasten, inklusive användar- och kund-ID.
Lägg till information om enhet och organisation: Det här alternativet inkluderar den nödvändiga organisations- och enhetsinformationen automatiskt. Provet skickar dessa parametrar i förfrågan: Provet name (organization core), Provet ID (product organization ID) och Enhets-ID.
Prefixering av parametervärde
Det går att lägga till ett anpassat prefix till parametervärdet genom att ange parameternamnet på ett annat sätt.
Om du till exempel definierar parameternamnet som 'id=client_', skickas en förfrågan i stil med https://example.com/?id=client_1.
Rubriker
Bakgrundsförfrågningar ("Skicka HTTP-förfrågan") kan ges godtyckliga, statiska värden som läggs till i förfrågningarna.
Detta kan användas för att inkludera Authorisation-rubriker i förfrågningarna.
Den här funktionen är inte implementerad för förgrundsförfrågningar ("Öppna i nytt fönster", "Öppna i sidolist"). Skickade rubriker loggas inte heller.
Datainformation
Inställningsvyn visar en lista med nyttolastens nycklar och värden som skickas med förfrågan. Listan uppdateras när inställningarna ändras.
Åtgärdstyper
1. Skicka HTTP-förfrågan
En förfrågan schemaläggs i bakgrunden och skickas via Provet servrar. Användare ser inte webbsidan, men kan se en avisering när utskicket pågår.
Förfrågan kommer från Provet interna utgående IP-adresser.
Utskicket sker asynkront, och det kan finnas en fördröjning beroende på hur mycket arbete som pågår på servrarna just nu.
Du ser en informationsavisering högst upp på sidan när förfrågan schemaläggs.
En lyckad-avisering visas om förfrågan skickas utan problem och integreringen svarar med en lyckad HTTP-statuskod (mellan 200 och 299, inklusive).
Om förfrågan misslyckas visas en felavisering med texten "Integration request failed" samt ett mer specifikt felmeddelande inom parentes.
Felmeddelande | Beskrivning |
Backend error | Ett okänt fel uppstod på Provet arbetsservrar. Kontakta Provet support för mer information. |
Anslutningsfel | Förfrågan för att schemalägga utskicket gick inte igenom. |
Data error | Förfrågan för att schemalägga utskicket innehöll felaktigt data. |
Integration error | Förfrågan skickades, men integreringen svarade med en icke-lyckad HTTP-statuskod (lägre än 200 eller högre än 299). |
2. Öppna i nytt fönster
Mål-URL:en öppnas i ett nytt fönster eller i en ny webbläsarflik.
Om en GET-förfrågan används kan användare se datainformationen som visas i webbläsarens adressfält.
3. Öppna i sidolist
Mål-URL:en bäddas in i Provet genom att en sidolist öppnas ovanpå innehållet på sidan och sidan visas som en iframe.
Mål-URL:en måste stödja inbäddning (rubriken X-Frame-Options måste vara korrekt inställd).
Användning
Anpassade integreringar renderas som knappar på mål sidor.
Om bara en integrering är konfigurerad för en sida renderas den som en vanlig knapp.
Om en sida har flera integreringar renderas de som en rullgardinsmeny.
Anpassade integreringar skickar endast relevant objects ID (kund-ID, patientnummer, faktura ID, osv.) som kan hämtas via Provet REST API.
Sida | Knappläge | ID skickas som en parameter |
Kund | Till höger, ovanför avsnittet Anteckningar (inte på patientflikarna). | Kundnr |
Patient | Till höger, ovanför avsnittet Anteckningar (inte på kundflikarna). | Patientnummer |
Faktura | I den nedre verktygsraden på fakturasidorna (inklusive kassaförsäljning). | Faktura ID (inte kvittonummer) |
Konsultation | Ovanför avsnittet Allmän information för både pågående och klara konsultationer. | Konsultations-ID |
Bokning Kalender | Högst upp på bokningskalendern. | Aktuell enhetens-ID för klinik |
Arbetspass Kalender | Högst upp på arbetspasskalendern. | Aktuell enhetens-ID för klinik |
Bilddiagnostik | På sidan för Remiss för bilddiagnostik i de övre och nedre verktygsraderna. | Remissnummer för bilddiagnostik |
Påminnelser | I urvalsverktygsraden på sidan för påminnelser när en eller flera påminnelser är markerade. | Påminnelse-ID för varje vald påminnelse |
Logg
Förfrågningar som skickas i bakgrunden ("Skicka HTTP-förfrågan") sparas i en intern logg för verifiering och revision.
Gå till Inställningar > Integreringar > Anpassade integreringar > Logg.
Loggvyn listar alla gjorda förfrågningar, med början i den senaste förfrågan.
Visa mer information i detaljvyn genom att välja ögonknappen till höger i varje rad.
Obs
Loggning utförs inte för förgrundsförfrågningar ("Öppna i nytt fönster", "Öppna i sidolist").
Verifiering salt & hashes
Alternativet "Verifiering salt" är endast synligt om "Lägg till verifierings-hash" är valt. Dessutom visas "Inkludera nyttolast i verifierings-hash" också när "Lägg till verifierings-hash" är valt.
Utifrån kombinationen av behörigheter beräknas verifierings-hashen enligt följande:
1. Aktiverad verifiering salt, "include payload in verficiation option" inaktiverad -> hash beräknas som:Hexadecimal verifiering MD5 hash digest, t.ex. "4e531ee13aa16886db72bc1621206d2f". Hashen genereras genom att lägga till verifieringssalt efter den medföljande tidsstämpeln ("2018-07-15T09:12:54+00:00My verifieringssalt"). [string]2. Aktiverad verifiering salt, "include payload in verification option" aktiverad, "Lägg till information om enhet och organisation" INAKTIVERAD -> hash beräknas som:Hexadecimal verifiering MD5 hash digest, t.ex. "23ae5385b3862a571f1b5d6f6b469b1c". Hashen beräknas med: "<timestamp><salt><parameter_name><object_id>user_id<user_id>" ("2018-07-15T09:12:54+00:00My verifieringssaltpatient_id1234user_id56"). [string]3. Aktiverad verifiering salt, "include payload in verification option" aktiverad, "Lägg till information om enhet och organisation" AKTIVERAD -> hash beräknas som:Hexadecimal verifiering MD5 hash digest, t.ex. "163049a017bb405d4bfec754810c9838". Hashen beräknas 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 verifieringssaltpatient_id1234user_id56provet_envenvprovet_id12345department_id12"). [string]Verifierings-hashes kan användas som ytterligare validering för att kontrollera vilka förfrågningar som kommer från Provet anpassade integrering.
När den är aktiverad läggs en extra parameter med namnet "verification" till i förfrågningarna.
Den här parametern är en MD5 hash digest av tidsstämpeln och verifierings-saltet.
Vid bakgrundsutskick skapas tidsstämpeln när förfrågan faktiskt skickas.
Vid förgrundsutskick skapas tidsstämpeln när en sida som innehåller den anpassade integreringsknappen läses in.
Om du till exempel vill kontrollera att verifierings-hashen är giltig i Python kan du skriva en funktion som den här:
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.verificationTvåvägskommunikation med Provet
Provet möjliggör en begränsad mängd tvåvägskommunikation med anpassade integreringar som öppnas i förgrunden med hjälp av Window.postMessage()-API:et.
Det enda giltiga kommandot är "reload".
function refreshProvetCloud() { window.opener.postMessage("reload","*");}Kommandot utför en fullständig siduppdatering på fönstret eller fliken som öppnade den anpassade integreringen.
Det kan vara användbart om den anpassade integreringen uppdaterar Provet-data via REST API.
