Anpassade integreringar är en funktion i Provet som gör det möjligt att skicka anrop till externa resurser inifrån Provet. För att få tillgång till denna funktion, kontakta Provet support.
Hantering
Hantera anpassade integreringar under Inställningar > Integreringar > Anpassade integreringar.
För att lägga till en integrering, välj knappen Lägg till.
Om du vill redigera en integrering, välj pennknappen på tabellraden.
Inställningar
Fält | Beskrivning |
Namn | Specificerar etiketten på knappen som syns i användargränssnittet. |
Specificerar på vilken sida knappen är synlig. Varje anpassad integrering kan bara vara synlig på en sida, men samma konfiguration kan dupliceras. | |
Åtgärd | Specificerar vilken åtgärd som ska vidtas när knappen väljs. |
HTTP-metod | Specificerar om anrop ska skickas som en GET-anrop (data ges som parametrar i frågesträngen) eller som en POST-anrop (data ges som formulärdata). |
URL | Mål-URL, komplett med schema. |
Parameternamn | Namnet på parametern som används när man anger ID för det aktuella objektet. |
Möjliggjord | Möjliggör aktivering och avaktivering av en anpassad integrering. Anpassade integreringar kan också raderas om de inte längre behövs. |
Verifieringssalt | En delad hemlighet som används för att beräkna verifieringshashen. Krävs när verifieringshash är aktiverad. |
Konfigurationsalternativ
Lägg till verifieringshash: Aktiverar en verifieringshash i payloaden som kan användas för att verifiera att anropet kommer från den anpassade integreringen.
Inkludera payload i verifieringshashen: Detta alternativ beräknar verifieringshashen baserat på hela payloaden, inklusive användar- och kund-ID.
Lägg till information om enhet och organisation: Detta alternativ inkluderar automatiskt nödvändig information om organisation och enhet. Provet kommer att inkludera dessa parametrar i anropet: Provet-namn (organisationens namn), Provet-ID (organisationens system-ID) och enhets-ID.
Lägga till prefix för parametervärde
Det är möjligt att lägga till ett anpassat prefix till parameter-värdet genom att ange parameter-namnet annorlunda.
Till exempel, om du definierar parameter-namnet som 'id=client_', kommer det att skicka ett anrop som https://example.com/?id=client_1.
Rubriker
För bakgrundsanrop ('Skicka HTTP-anrop') kan valfria, statiska värden definieras som sedan inkluderas i anropen.
Detta kan användas för att inkludera auktoriserings-headers i anrop.
Denna funktion är inte implementerad för förgrundsanrop ('Öppna i nytt fönster', 'Öppna i sidopanel'). Skickade headers loggas inte heller.
Payload-information
Inställningsvyn visar en lista över nycklar och värden som skickas med anropet. Denna lista uppdateras när inställningarna ändras.
Åtgärdstyper
1. Skicka HTTP-förfrågan
Ett anrop schemaläggs i bakgrunden och skickas via Provets servrar. Användare kommer inte att se själva webbsidan, men kan se en avisering medan sändningen pågår.
Anropet kommer från Provets utgående IP-adresser.
Sändningen sker asynkront, och det kan förekomma en fördröjning beroende på den aktuella belastningen på servrarna.
Du kommer att se en informationsavisering högst upp på sidan när anropet schemaläggs.
En bekräftelse visas om anropet har skickats och integrationen svarar med en lyckad HTTP-statuskod (från 200 till och med 299).
Om anropet misslyckas, kommer ett felmeddelande som säger 'Integreringsförfrågan misslyckades' att visas, med ett mer specifikt felmeddelande inom parentes.
Felmeddelande | Beskrivning |
Backend-fel | Ett okänt fel uppstod på Provets servrar. Kontakta Provets support för mer information. |
Anslutningsfel | Anropet om att schemalägga sändningen gick inte igenom. |
Datafel | Anropet om att schemalägga sändningen innehöll ogiltiga data. |
Integrationsfel | Anropet skickades korrekt, men integrationen svarade med en felaktig HTTP-statuskod (lägre än 200 eller högre än 299). |
2. Öppna i popup-fönster
Mål-URL: en öppnas i ett nytt fönster eller en ny flik i webbläsaren.
Om ett GET-anrop används kan användarna se payload-informationen i webbläsarens adressfält.
3. Öppna i sidolist
Mål-URL: en bäddas in i Provet genom att en sidopanel öppnas ovanpå sidans innehåll, där sidan visas som en iframe.
Mål-URL: en måste stödja inbäddning (headern X-Frame-Options måste vara korrekt inställd).
Användning
Anpassade integrationer visas som knappar på målsidorna.
Om endast en integration är konfigurerad för en sida, visas den som en vanlig knapp.
Om en sida har flera integrationer, visas de som en rullgardinsmeny.
Anpassade integrationer skickar endast relevant objekt-ID (t. ex. kund-ID, patient-ID eller faktura-ID) vilket kan användas för anrop mot Provets REST API.
Sida | Knappens placering | ID skickat som parameter |
Kund | Till höger, ovanför sektionen Anteckningar (inte på patientflikarna). | Kund-ID |
Patient | Till höger, ovanför sektionen Anteckningar (inte på kundflikarna). | Patient-ID |
Faktura | I det nedersta verktygsfältet på fakturasidan (även för kassaförsäljning). | Faktura-ID (inte fakturanummer) |
Konsultation | Ovanför allmän information, för både pågående och avslutade konsultationer. | Konsultations-ID |
Tidbokningskalender | Ovanför tidbokningskalendern. | Aktiv enhets ID |
Arbetspasskalender | Ovanför arbetspasskalendern. | Aktiv enhets ID |
Bilddiagnostik | På remissidan för bilddiagnostik i de övre och nedre verktygsfälten. | Remiss-ID för bilddiagnostik |
Påminnelser | I verktygsfältet på påminnelsesidan som blir synligt när en eller flera påminnelser är valda. | Påminnelse-ID för varje vald påminnelse |
Logg
Anrop som skickas i bakgrunden ('Skicka HTTP-anrop') registreras i en intern logg för verifiering och granskning.
Gå till Inställningar > Integreringar > Anpassade integreringar > Logg.
Loggvyn listar alla anrop som gjorts, med det senaste anropet överst.
Se mer information i detaljvyn genom att välja ögonknappen på den högra sidan av varje rad.
Notera
Loggning sker inte för förgrundsanrop ('Öppna i nytt fönster', 'Öppna i sidopanel').
Verifieringssalt & Hashar
Alternativet "Verifieringssalt" syns endast om "Lägg till verifieringshash" är valt. Dessutom visas "Inkludera nyttolast i verifieringshash".
Baserat på kombinationen av behörigheter beräknas verifieringshashen enligt följande:
1. Verification salt enabled, "include payload in verficiation option" disabled -> hash calculated as:Hexadecimal verification MD5 hash digest, e.g. "4e531ee13aa16886db72bc1621206d2f". The hash is generated by appending the verification salt after the included timestamp ("2018-07-15T09:12:54+00:00My verification salt"). [string]2. Verification salt enabled, "include payload in verification option" enabled, "Add organization and department information" DISABLED -> hash calculated as:Hexadecimal verification MD5 hash digest, e.g. "23ae5385b3862a571f1b5d6f6b469b1c". The hash is calculated with: "<timestamp><salt><parameter_name><object_id>user_id<user_id>" ("2018-07-15T09:12:54+00:00My verification saltpatient_id1234user_id56"). [string]3. Verification salt enabled, "include payload in verification option" enabled, "Add organization and department information" ENABLED -> hash calculated as:Hexadecimal verification MD5 hash digest, e.g. "163049a017bb405d4bfec754810c9838". The hash is calculated with: "<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 verification saltpatient_id1234user_id56provet_envenvprovet_id12345department_id12"). [string]Verifieringshashar kan användas som ytterligare validering för att verifiera vilka anrop som kommer från den anpassade integrationen i Provet.
När funktionen är aktiverad läggs en extra parameter som heter "verification" till i anropen.
Denna parameter är en MD5-hash av tidsstämpeln och verifieringssaltet.
Vid sändning i bakgrunden genereras tidsstämpeln när anropet faktiskt skickas.
Vid sändning i förgrunden genereras tidsstämpeln när sidan som innehåller knappen för den anpassade integrationen laddas.
Till exempel, för att verifiera att verifieringshashen är giltig i Python, kan man skriva en funktion som denna:
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 integrationer öppna i förgrunden med hjälp av Window.postMessage() API.
Det enda giltiga kommandot är "reload".
function refreshProvetCloud() { window.opener.postMessage("reload","*");}Detta kommando utför en fullständig omladdning av sidan i det fönster eller den flik som öppnade den anpassade integrationen.
Detta kan vara användbart om den anpassade integrationen uppdaterar Provet-data via REST API.
