Anpassade integrationer är en funktion i Provet Cloud som gör det möjligt att skicka förfrågningar till externa resurser inifrån Provet Cloud. För att få tillgång till funktionerna, vänligen kontakta Provet Cloud support.
Anpassade integrationer hanteras i Inställningar → Integrationer → Anpassade integrationer.
För att lägga till en integration använder du den blå knappen "+Add"; för att redigera en integration använder du den vita pennknappen på tabellraden.
-
Name - Anger etiketten på den knapp som är synlig i användargränssnittet.
-
Synlig sida - Anger på vilken sida knappen ska vara synlig. Varje anpassad integration kan bara vara synlig på en sida, men samma konfiguration kan dupliceras till flera anpassade integrationer.
-
Åtgärd - Anger vilken åtgärd som ska vidtas när du klickar på knappen.
-
Skicka HTTP-begäran - En begäran schemaläggs i bakgrunden och skickas med hjälp av Provet Clouds servrar. Användarna kommer inte att se webbsidan men kan se ett meddelande när sändningen fortskrider. Förfrågan kommer från Provet Clouds utgående IP-adresser, så mottagaren måste vara öppen för externa förfrågningar.
-
Öppna i nytt fönster - Mål-URL:en öppnas i ett nytt fönster/ny webbläsarflik.
-
Öppna i sidopanel - Måladressen bäddas in i Provet Cloud genom att en sidopanel öppnas ovanpå sidans innehåll och sidan visas som en iframe. Mål-URL:en måste stödja inbäddning (t.ex. måste
X-Frame-Options
vara korrekt inställd).
-
-
HTTP-metod - Anger om begäran ska skickas som en GET-begäran, där nyttolasten anges som parametrar i frågesträngen, eller som en POST-begäran, där nyttolasten anges som formulärdata.
-
URL - Mål-URL:en, komplett med schema.
-
Parameternamn - Namn på den parameter som används för att ange ID för det aktuella objektet.
-
Enabled - Gör det möjligt att aktivera och inaktivera en anpassad integration. Anpassade integrationer kan också tas bort om de inte längre behövs.
-
Add verification hash - Aktiverar en verifieringshash i nyttolasten som kan användas för att verifiera att begäran kommer från den anpassade integrationen.
-
Verification salt - En delad hemlighet som används för att beräkna verifieringshash, krävs endast när verifieringshash är aktiverat.
Det är möjligt att lägga till ett anpassat prefix till parametervärdet genom att ange parameternamnet på ett annat sätt. Om parameternamnet anges som "id" skulle det normalt resultera i en begäran som https://example.com/?id=1
. Men om ett anpassat prefix krävs framför det faktiska ID-värdet kan parameternamnet till exempel definieras som "id=client_", vilket skickar en begäran https://example.com/?id=client_1
.
Bakgrundsförfrågningar ("Send HTTP request") kan också ges godtyckliga, statiska värden som läggs till i förfrågningarna när de skickas. Detta kan t.ex. användas för att inkludera auktoriseringsrubriker i förfrågningar.
Denna funktion är inte implementerad för förgrundsförfrågningar ("Öppna i ett nytt fönster", "Öppna i sidopanel"). Skickade rubriker loggas inte heller.
Förfrågningar som skickas i bakgrunden ('Skicka HTTP-förfrågan') kommer att registreras i en intern logg för verifierings- och revisionsändamål. Detta gör att administratörer kan kontrollera vilken typ av förfrågningar som skickades av vem och vid vilken tidpunkt och inspektera vilken typ av svar den anpassade integrationen skickade tillbaka.
Loggen för anpassad integration kan visas från Inställningar → Integrationer → Anpassade integrationer → Logg.
I loggvyn visas alla förfrågningar som gjorts, med början från den senaste förfrågningen. Grundläggande information om förfrågningarna visas i listan och mer information kan nås i detaljvyn genom att klicka på ögonknappen till höger om varje rad.
Loggning utförs inte på förgrundsförfrågningar ("Öppna i ett nytt fönster", "Öppna i sidopanel"), eftersom webbläsaren ansvarar för att göra dessa förfrågningar.
När de har lagts till kommer anpassade integrationer att visas som knappar på deras målsidor. Anpassade integrationsknappar kan lätt skiljas från Provet Clouds knappar genom sitt unika bruna utseende.
Om endast en anpassad integration har ställts in för en sida kommer den att återges som en vanlig knapp, med namnet på den anpassade integrationen som etikett. Se den bruna knappen "Trigger custom integration" på bilden nedan (klientsida).
Om en sida har flera anpassade integrationer kopplade till sig kommer de anpassade integrationerna istället att återges som en rullgardinsmeny, återigen med samma bruna utseende för att skilja dem åt. Menyposterna kommer att använda namnet på den anpassade integrationen som etikett, precis som de enskilda knapparna. Se bilden nedan för en illustration.
Anpassade integrationer skickar inte detaljerad information om den sida som visas för tillfället. Istället skickar de bara det relevanta objekt-ID:t (klient-ID, patient-ID, faktura-ID etc.) som kan efterfrågas från Provet Cloud REST API, på samma sätt som webhooks fungerar.
Anpassade integrationer innehåller inte automatiskt information om vilken sida de är registrerade på. Användare bör antingen använda olika URL-slutpunkter för olika sidor (till exempel integration.com/client/
för anpassad integration av klientsidan och integration.com/patient/
för anpassad integration av patientsidan), eller om det inte är möjligt, olika parameternamn (till exempel patient_id
för integration av patientsidan och client_id
för integration av klientsidan om båda använder samma URL) och sedan skilja på integrationssidan genom vilken parameter som ingår i begäran. För bakgrundsförfrågningar kan även anpassade headers användas.
Det finns inte heller någon referens till det aktiva Provet-ID:t. Om du bygger en integration som delas mellan flera Provet Cloud-instanser rekommenderas att du lägger till slutpunkter för varje Provet ID (till exempel integration.com/1234/client/
och integration.com/4321/client/
om integrationen kommer att användas av både Provet Cloud-instanserna 1234 och 4321). I det här fallet rekommenderas det också att använda verifieringshashar för att säkerställa att data kommer från rätt instans, även om det finns en felkonfiguration med en anpassad integrations-URL. För bakgrundsförfrågningar kan anpassade huvuden också användas.
Om en anpassad integration definieras som en "Skicka HTTP-begäran"-åtgärd schemaläggs en begäran som ska skickas i bakgrunden med hjälp av Provet Clouds arbetsservrar genom att klicka på knappen för anpassad integration. Sändningen kommer att ske asynkront, och även om begäran vanligtvis görs ganska omedelbart kan det bli en fördröjning beroende på mängden arbete som för närvarande finns på servrarna. Förfrågan kommer att komma från Provet Clouds utgående IP-adresser.
När begäran planeras kommer användaren att se ett informationsmeddelande högst upp på sidan.
Om begäran hanteras och slutförs utan att användaren navigerar bort från sidan kan de visas ett ytterligare meddelande när de har slutfört uppgiften.
Ett meddelande om att begäran har lyckats visas om begäran har skickats och integrationen svarar med en lyckad HTTP-statuskod (mellan 200 och 299 inklusive).
Om begäran däremot misslyckas av någon anledning visas ett rött felmeddelande med texten "Integration request failed" och ett mer specifikt felmeddelande inom parentes.
Möjliga felmeddelanden för närvarande är:
-
Backend error - Ett okänt fel inträffade på Provet Clouds arbetsservrar när begäran skickades. Detta kan vara ett fel i Provet Clouds servrar. Kontakta Provet Clouds support för ytterligare information.
-
Anslutningsfel - Begäran om att schemalägga sändningen som gjordes till Provet Clouds servrar gick inte igenom. Detta kan vara ett fel på användarens anslutning eller kanske ett problem med Provet Clouds servrar.
-
Datafel - Förfrågan om att schemalägga sändningen som gjordes till Provet Clouds servrar innehöll ogiltiga data. Detta tyder på ett problem i Provet Cloud.
-
Integrationsfel - Förfrågan skickades framgångsrikt, men integrationen svarade med en icke framgångsrik HTTP-statuskod (lägre än 200 eller högre än 299). Den anpassade integrationsloggen kan användas för att fastställa orsaken om felet är oväntat.
Om en anpassad integration definieras som en "Öppna i nytt fönster"-åtgärd öppnas mål-URL:en i ett nytt fönster eller, vilket är vanligare i moderna webbläsare, i en ny flik om du klickar på knappen för anpassad integration. Den ursprungliga Provet Cloud-sidan kommer att förbli öppen i sitt ursprungliga fönster/flik.
Om en GET-begäran används kan användarna se informationen om nyttolasten visas i webbläsarens adressfält. Om användarna inte enkelt ska kunna se den överförda informationen om nyttolasten bör du överväga att använda en POST-begäran i stället.
Om en anpassad integration definieras som en åtgärd "Öppna i sidopanel" hämtas måladressen i webbläsaren genom att klicka på knappen för anpassad integration och visas i ett iframe
-element i en sidopanel som öppnas ovanpå den aktuella sidan.
Mål-URL:en måste stödja inbäddning via sin X-Frame-Options-header.
Kundanpassade integrationer visas på klientsidan på höger sida, ovanför avsnittet Anteckningar när du bläddrar i någon av klientflikarna ("Klientuppgifter", "Fakturering", "Behandlingar" osv.). Det kommer inte att visas på patientflikarna. Klient-ID kommer att skickas som en parameter.
På samma sätt kommer patientanpassade integrationer att visas på patientsidan på höger sida, ovanför avsnittet Notes när du bläddrar bland patientflikarna ("Patient details", "History", "Measurements", etc.). Det visas inte på klientflikarna. Patient-ID kommer att skickas som en parameter.
Anpassade integrationer för fakturor kommer att visas på fakturasidor (inklusive motköp) i det nedre verktygsfältet. Fakturans ID (ej att förväxla med fakturanummer) skickas som en parameter.
Anpassade integrationer för konsultationer kommer att visas på konsultationssidan ovanför avsnittet med allmän information, både för pågående och avslutade konsultationer. Konsultationens ID kommer att skickas som en parameter.
Anpassade integrationer för tidsbokningskalendern kommer att visas ovanpå tidsbokningskalendern. Den aktiva klinikens plats-ID kommer att skickas som en parameter.
På samma sätt kommer anpassade integrationer av skiftkalendern att återges ovanpå skiftkalendern, under valet av skifttyp och skiftmall. Den aktiva klinikens plats-ID skickas som en parameter.
Anpassade integrationer för bilddiagnostik visas på remissidan för bilddiagnostik i de övre och nedre verktygsfälten. ID för remiss för diagnostisk bildbehandling skickas som en parameter.
Om det finns en risk för att utomstående parter kan skicka förfrågningar till mål-URL:en och det krävs att man vet vilka förfrågningar som kommer från Provet Clouds anpassade integration, kan verifieringshashar användas som ytterligare validering. När den är aktiverad kommer en ytterligare parameter som heter "verification" att läggas till i förfrågningar och är en MD5-hashdigest av tidsstämpeln och verifieringssaltet.
För att verifiera att verifieringshash är giltig i Python kan man t.ex. skriva en funktion som denna:
När du använder bakgrundssändning ("Skicka HTTP-begäran") genereras tidsstämpeln när begäran faktiskt skickas. Vid användning av förgrundssändning ("Öppna i ett nytt fönster") genereras dock tidsstämpeln när en sida som innehåller den anpassade integrationsknappen laddas. Detta görs för att generera verifieringshash på serversidan och undvika att exponera verifieringssaltet för användarna. Utvecklare av anpassade integrationer kan behöva ta hänsyn till att användarna kan spendera en del tid på sidan innan de klickar på knappen för anpassad integration.
Provet Cloud tillåter en begränsad mängd tvåvägskommunikation med anpassade integrationer som öppnas i förgrunden med hjälp av Window.postMessage() API. Fönstret/fliken som öppnade den anpassade integrationen är tillgänglig via objektet window.opener
och därmed kan ett meddelande skickas med window.opener.postMessage(message)
, där meddelandet är ett giltigt kommando som känns igen av Provet Cloud.
För närvarande är det enda giltiga kommandot "reload", vilket innebär att hela sidan laddas om i det fönster/flik som öppnade den anpassade integrationen. Detta kan t.ex. vara användbart om den anpassade integrationen uppdaterar Provet Cloud-data via REST API, och användarna bör se de senaste ändringarna när de återvänder från den anpassade integrationen.
Uppdaterad
Kommentarer
0 kommentarer
logga in för att lämna en kommentar.