Teknisk anslutning Pascal med uthoppslösning


Här beskrivs tekniskt anrop till Pascal för att åstadkomma s.k. uthopp från annan applikation (typiskt journalsystem/läkemedelsmodul) till Pascals webbapplikation.

Systemlösning uthopp till Pascal

Översikt systemlösning

Nedan bild visar översiktligt s.k. uthopp från en applikation (X) till Pascal webbapplikation. Uthopp innebär en mycket lös integration mellan applikationerna.


Uthopp görs genom att anropa en specifik URL (https-protokoll) mot Pascal webbapplikation. Uthoppet kan t ex triggas genom att användaren väljer en knapp i Applikation X användargränssnitt.
Det går att ta med sig aktuell patients personnummer i uthoppsanropet. Om detta görs låses Pascal-sessionen till denna patient och det går inte att byta patient inom Pascal-applikationen. Byte av patient kan göras genom att anropa Pascal med nytt patientval från Applikation X.
Om ingen patient anges kommer användaren till sida i Pascal där patient måste väljas.

Säkerhetslösning för åtkomst till Pascal

Samma tekniska säkerhetslösning används vid uthopp mot Pascal som när användare loggar in i Pascal direkt. Det innebär att Pascal kommer att avkräva en giltig SAML-biljett utställd från en Autentiseringstjänst (IdP), endera den Pascal använder sig av eller en SP, service provider. I de fall Pascals Autentiseringstjänst (IdP) används ställs SAML-biljetten ut och skickas till Pascal efter att användaren har loggat in i Autentiseringstjänsten med s.k. stark autentisering, med SITHS/SITHS eID-kort eller SITHS eID via SITHS eID Mobilklient (på samma enhet eller på annan enhet).
Applikationen (X) som gör uthoppet behöver dock inte hantera detta; autentisering och utväxling av SAML-biljett hanteras i samverkan mellan webbläsare, Pascal och Autentiseringstjänst.
Det ställs samma krav i de fall användarens system använder sig av en annan SAML-biljett-utställare/autentiseringstjänst än den Pascal använder sig av (så kallad SP, service provider-initierad inloggningstjänst). Då förväntas användaren anropa med en giltig SAML-biljett från sin SP-IdP som då Pascal validerar och tar ett aktorisationsbeslut utifrån innehållet/egenskaperna.
Se vidare Checklista Pascal för de omkringliggande krav som finns för säkerhetslösningen, t ex att användaren behöver finnas i Nationell Katalog HSA med vissa attribut.

Tekniskt anrop

Olika sätt att anropa/uthoppa

Pascal kan anropas från annat system på ett antal sätt: med
[URL]/start
eller
[URL]/start/[PNR] (låst till patienten med personnummer PNR)
eller
[URL]/start/[PNR]/lf (låst till patienten med personnummer PNR)
eller
[URL]/start/ bevakaderecept/0, [URL]/start/bevakaderecept/1, [URL]/start/bevakaderecept/2 resp (olåst Pascal)
eller
[URL]/start/bevakadehandelser (olåst Pascal)
eller
[URL]/start/bestallningar (olåst Pascal)
där [URL] ersätts med aktuell URL-adress till aktuell Pascal-miljö,[PNR] ersätts med önskad patients personnummer angivet med 10 eller 12 siffror med eller utan bindestreck.

Exempel 1:
https://utbsiths.eordinationpascal.se/start
Innebär att man "låser upp" Pascal sessions-låsning till viss patient. Resultatet är att låsningen låses upp och Pascals startsida visas (efter eventuella autentiseringsdialoger).
Exempel 2:
https://utbsiths.eordinationpascal.se/start/19050426xxxx
Innebär uthoppsadressering till Pascal med öppnad läkemedelslista om patienten är dospatient (efter eventuella autentiserings- och vårdrelationsdialoger). Pascal är nu låst till patienten. Byte kan inte ske annat än att först låsa upp Pascal eller stänga kopplingen mot Pascal och öppna en ny koppling. För upplåsning se Exempel 1. För icke-dospatienter se Exempel 3.

Bild 2: Uthoppsadressering till dospatients läkemedelslista (OBS! inaktiverat kryss för att stänga patient)
Exempel 3:
https://utbsiths.eordinationpascal.se/start/19100529xxxx
För en icke-dospatient innebär samma adressering att användaren (efter eventuella autentiserings- och vårdrelationsdialoger) kommer in i "registrera patienten som dospatient"-dialogen om användaren har förskrivningsrätt och "förbered patienten som dospatient"-dialogen om användaren inte har förskrivningsrätt.

Bild 3: Uthoppsadressering med personnummer för icke-dospatient (användare med förskrivningsrätt)
Exempel 4:

https://utbsiths.eordinationpascal.se/start/19300206xxxx/lf Innebär uthoppsadressering till Pascals visning av Läkemedelsförteckningen oavsett om patienten är dospatient eller inte. Efter eventuella autentiseringsdialoger får användaren upp samtyckesdialogen till Läkemedelsförteckningen (om inte aktivt samtycke redan finns).

Bild 4: Uthoppsadressering till Läkemedelsförteckningen för icke-dospatient Exempel 5:
https://utbsiths.eordinationpascal.se/start/bevakaderecept/0 Innebär uthoppsadressering till Pascals bevakningslista (för användaren) och vyn utgående recept. Efter eventuella autentiseringsdialoger får användaren upp bevakningslistan för utgående recept eller information om att inga bevakningar finns.

Bild 5: Utgående recept Exempel 6:
https://utbsiths.eordinationpascal.se/start/bevakaderecept/1 Innebär uthoppsadressering till Pascals bevakningslista (för användaren) och vyn utgångna recept. Efter eventuella autentiseringsdialoger får användaren upp bevakningslistan för utgångna recept eller information om att inga bevakningar finns.

Bild 6: Utgångna recept Exempel 7:
https://utbsiths.eordinationpascal.se/start/bevakaderecept/2 Innebär uthoppsadressering till Pascals bevakningslista (för användaren) och vyn slutexpedierade recept. Efter eventuella autentiseringsdialoger får användaren upp bevakningslistan för slutexpedierade recept eller information om att inga bevakningar finns.

Bild 7: Slutexpedierade recept
Exempel 8:
https://utbsiths.eordinationpascal.se/start/bevakadehandelser Innebär uthoppsadressering till Pascals bevakningslista (för användaren) och vyn bevakade händelser. Efter eventuella autentiseringsdialoger får användaren upp bevakningslistan för bevakade händelser eller information om att inga bevakningar finns.

Bild 8: Bevakade händelser
Exempel 9:
https://utbsiths.eordinationpascal.se/start/bestallningar Innebär uthoppsadressering till Pascals beställningar (lagda av användaren "Mina beställningar"). Efter eventuella autentiseringsdialoger får användaren upp vyn Beställningar och fliken Mina beställningar är aktiverad.


Bild 9: Mina beställningar

Patientval via uthopp

[PNR] anges för att direkt välja patient i Pascal. I detta fall låses Pascal-sessionen till denna patient och byte kan inte göra av användaren inom Pascalapplikationen (patientval är inte tillgängligt). Pascal har också inaktiverat möjligheten att stänga patienten via krysset inne i Pascal på öppnad patient.
Patientbyte kan då göras ifrån anropande applikation genom att anropa på nytt med annan patient.
OBS! Skickas enbart [URL]/start så nollställs patientvalet och användaren kan själv välja patient i Pascal via Pascals startsida. OBS! Det är inte rekommenderat att visa urlen för användaren hur nollställning sker då det kan innebära en risk att man från uthoppande system tappar spårbarheten på vad användaren gör. Exempel:
https://utbsiths.eordinationpascal.se/start/191212121212 låser Pascal-sessionen till patient 19121212-1212.
Nytt anrop med
https://utbsiths.eordinationpascal.se/start/191313131313 byter till patient 19131313-1313.
Nytt anrop med
https://utbsiths.eordinationpascal.se/start byter till Pascal startsida och låser upp föregående Pascal-session och dess koppling till föregående patient.
Om https://utbsiths.eordinationpascal.se/start anropas utan aktiv låsning fås felmeddelande "Felaktig uthoppslänk: /start"

URL till Pascal

[URL] motsvarar https-länk till den Pascal-miljö som ska användas, t ex motsvarande testmiljö eller produktion.
För produktions-URLer, se dokumentet Checklista Pascal.
För test av tekniken kan användas testsite för Pascal med kortinloggning https://utbsiths.eordinationpascal.se

(Innehåller aktuell release motsvarande som i produktionsmiljön. Testmiljön hålls tillgänglig under kontorstid)
https://demosiths.eordinationpascal.se (Innehåller nästkommande release. Testmiljön existerar endast i anslutning till en kommande release.)

Sammanfattning

URL

Beskrivning

https://utbsiths.eordinationpascal.se/start

Låser upp en eventuell tidigare låst Pascal-session kopplad till viss patient och visar Pascals startsida
Rekommenderas att inte använda för uthoppande system

https://utbsiths.eordinationpascal.se/start/YYYYMMDDXXXX

Uthoppsadressering till Pascal med öppnad läkemedelslista om patienten är dospatient (efter eventuella autentiserings- och vårdrelationsdialoger).
För en icke-dospatient innebär samma adressering att användaren (efter eventuella autentiserings- och vårdrelationsdialoger) får välja mellan att registrera patienten som dospatient eller visa Läkemedelsförteckningen (efter eventuell samtyckesdialog).

[https://utbsiths.eordinationpascal.se/start/YYYYMMDDXXXX /lf

Uthoppsadressering till Pascals visning av Läkemedelsförteckningen oavsett om patienten är dospatient eller inte. Efter eventuella autentiseringsdialoger får användaren upp samtyckesdialogen till Läkemedelsförteckningen (om inte aktivt samtycke redan finns).

https://utbsiths.eordinationpascal.se/start/bevakaderecept/0

Uthoppsadressering till Pascals bevakningslista (för användaren) och vyn utgående recept. Efter eventuella autentiseringsdialoger får användaren upp bevakningslistan vyn för utgående recept eller information om att inga utgående recept finns i bevakningslistan. Ingen låsning till viss patient.

[https://utbsiths.eordinationpascal.se/start/bevakaderecept/1

Uthoppsadressering till Pascals bevakningslista (för användaren) och vyn utgångna recept. Efter eventuella autentiseringsdialoger får användaren upp bevakningslistan vyn för utgående recept eller information om att inga utgångna recept finns i bevakningslistan. Ingen låsning till viss patient.

https://utbsiths.eordinationpascal.se/start/bevakaderecept/2

Uthoppsadressering till Pascals bevakningslista (för användaren) och vyn slutexpedierade recept. Efter eventuella autentiseringsdialoger får användaren upp bevakningslistan vyn för slutexpedierade recept eller information om att inga slutexpedierade recept finns i bevakningslistan. Ingen låsning till viss patient.

https://utbsiths.eordinationpascal.se/start/bevakadehandelser

Uthoppsadressering till Pascals bevakningslista (för användaren) och vyn bevakade händelser. Efter eventuella autentiseringsdialoger får användaren upp bevakningslistan med vyn för bevakade händelser eller information om att inga bevakningar finns bevakningslistan. Ingen låsning till viss patient.

[https://utbsiths.eordinationpascal.se/start/bestallningar

Uthoppsadressering till Pascals beställningar (lagda av användaren "Mina beställningar"). Efter eventuella autentiseringsdialoger får användaren upp vyn Beställningar och fliken Mina beställningar är aktiverad. Ingen låsning till viss patient.

 

Implementationstekniska rekommendationer

Oadresserat uthopp (uthopp utan personnummer) innebär ett problem att som journalsystem visa rätt läkemedelslista som aktualiseras i och med att Pascal har möjlighet att visa bevakningslistan. Problematiken är inte ny utan har funnits sedan tidigare i och med att man kan hoppa ut till Pascals startsida. Ett exempel:
1 Start av exempel med uthopp till bevakningslista-funktionen
2 Journalssystemanvändare vill titta i "sin" bevakningslista hos Pascal (endera inloggad eller inte)
3 Journalssystemanvändare väljer att hoppa till "olåst Pascal", dvs utan personnummer i anropet och någon av bevakningsfunktionerna (utgående recept, utgångna recept eller bevakade händelser) (om inte användaren är inloggad blir användaren vidarebefordrad till inloggning först, se Översikt systemlösning)
4 I detta exempel så visas det 5 patienter i bevakningslistan (P1-P5) för att lättare åskådliggöra
5 Användaren tar som exempel utifrån det han ser i bevakningslistan beslut om att ändra i 2 av dessa patienters läkemedelslista, patient 1 och patient 2, P1 och P2
6 Användaren väljer P1 i bevakningslistan och kommer in på P1s läkemedelslista och gör de ändringar som användaren önskar
7 Användaren stänger P1 i Pascal (inte i journalen) och kommer tillbaka till bevakningslistan
8 Användaren väljer nu P2 i bevakningslistan och kommer in på P2s läkemedelslista och gör de ändringar som användaren önskar
9 Användaren stänger P2 i Pascal och kommer tillbaka till bevakningslistan
10 Användaren stänger Pascal, alternativt loggar ut ur Pascal (webbfönstret) och därefter stänger Pascalfönstret och återvänder till sitt journalsystem Exemplet ovan belyser problemet med att om ett journalsystem (och dess användare) går in i Pascal/gör ett uthopp till bevakningslistan och gör ändringar så kommer inte journalsystemet kunna återge korrekt status på patienten och dess förskrivningar i sitt journalsystem eftersom man inte vet vad användaren har gjort och på vilka patienter.
För att det ska bli rätt i journalsystemet bör alla uthoppsintegrerade journalsystemen ändra princip och alltid hämta aktuella och icke-aktuella ordinationer samt hämta vårdtagarstatus för den dospatient som ska öppnas dvs innan öppning/presentation av uthoppsknapp.
Som det är nu så uppdaterar journalsystem (de vi känner till) med uthopp, dospatientens status och ordinationer efter att användaren är klar i Pascal. I och med den ändrade rekommendationen för alla direktadresserade (med personnummer) uthopp till Pascal kommer journalsystemen kunna visa rätt dospatientstatus varje gång patienten öppnas i journalsystemet vilket är mer patientsäkert.
Se bild 2; Uthoppsadressering till dospatients läkemedelslista med inaktiverat kryss för att stänga patient

Rekommendation

  1. Hämta alltid aktuella och icke-aktuella ordinationer samt vårdtagarstatus för den dospatient som ska öppnas i journalsystemet innan öppning/presentation av uthoppsknapp med direktadresserat uthopp (med personnummer). Genom detta så säkerställer journalsystemet att den har senaste status för dospatienten och kan ta rätt beslut om förändringar. Om man har en synkning av patientens läkemedelslista vid stängning av direktadresserat uthopp (med personnummer) så kan man ha kvar den (för att t ex logga vad användaren gjort i sitt eget journalsystem).

  2. Tillåt inte uthopp till olåst Pascal om möjligt.