Le integrazioni personalizzate sono una funzionalità di Provet che consente di inviare richieste a risorse esterne direttamente da Provet. Per ottenere accesso a questa funzione, contattare l'assistenza Provet.
Gestione
Gestisci le integrazioni personalizzate in Impostazioni > Integrazioni > Integrazioni personalizzate.
Per aggiungere un'integrazione, seleziona il pulsante Aggiungi.
Per modificare un'integrazione, seleziona il pulsante pen sulla riga della tabella.
Impostazioni
Campo | Descrizione |
Nome | Indica l'etichetta visualizzata sul pulsante nell'interfaccia utente. |
Indica in quale pagina sarà visibile il pulsante. Ogni integrazione personalizzata può essere visualizzata solo in una pagina, ma la stessa configurazione può essere duplicata. | |
Azione | Indica quale azione verrà eseguita quando si seleziona il pulsante. |
Metodo HTTP | Indica se la richiesta verrà inviata come richiesta GET (payload fornito come parametri nella stringa di query) oppure come richiesta POST (payload fornito come dati di modulo. |
URL | L'URL di destinazione, completo di schema. |
Nome parametrico | Il nome del parametro utilizzato per fornire l'ID dell'oggetto corrente. |
Attivo | Consente di abilitare e disabilitare un'integrazione personalizzata. Le integrazioni personalizzate possono anche essere eliminate se non sono più necessarie. |
Verifica bloccata | Un segreto condiviso utilizzato per calcolare l'hash di verifica. È richiesto quando l'hash di verifica è abilitato. |
Opzioni di configurazione
Aggiungi hash di verifica: abilita un hash di verifica nel payload che può essere usato per verificare che la richiesta provenga dall'integrazione personalizzata.
Includi payload nell'hash di verifica: questa opzione ricalcola l'hash di verifica utilizzando l'intero payload, inclusi ID utente e ID cliente.
Aggiungi informazioni sull'organizzazione e sul reparto: questa opzione include automaticamente le informazioni organizzative e di reparto necessarie. Provet includerà questi parametri nella richiesta: Nome Provet (organizzazione core), ID Provet (ID organizzazione prodotto) e ID reparto.
Prefissare il valore del parametro
È possibile aggiungere un prefisso personalizzato al valore del parametro specificando il nome del parametro in modo diverso.
Ad esempio, se definisci il nome del parametro come 'id=client_', la richiesta verrà inviata come https://example.com/?id=client_1.
Intestazioni
Le richieste in background ('Invia richiesta HTTP') possono ricevere valori statici arbitrari, che verranno aggiunti alle richieste.
Questa opzione può essere usata per includere intestazioni di Autorizzazione nelle richieste.
Questa funzione non è implementata per le richieste in primo piano ('Apri in una nuova finestra', 'Apri nel pannello laterale'). Le intestazioni inviate non vengono nemmeno registrate.
Informazioni sul carico utile
La vista delle impostazioni visualizza un elenco di chiavi e valori del payload che vengono inviati con la richiesta. Questo elenco si aggiorna quando le impostazioni vengono modificate.
Tipi di azione
1. Invio richiesta HTTP
Una richiesta viene pianificata in background e inviata usando i server di Provet. Gli utenti non vedranno la pagina web, ma potrebbero ricevere una notifica mentre l'invio è in corso.
La richiesta proviene dagli indirizzi IP in uscita di Provet.
L'invio avviene in modo asincrono e potrebbe esserci un ritardo in base al lavoro attualmente presente sui server.
Vedrai una notifica informativa nella parte superiore della pagina quando la richiesta viene pianificata.
Viene mostrata una notifica di successo se la richiesta viene inviata correttamente e l'integrazione risponde con un codice di stato HTTP di successo (compreso tra 200 e 299 inclusi).
Se la richiesta fallisce, verrà mostrata una notifica di errore con il testo 'Integration request failed', insieme a un messaggio di errore più specifico tra parentesi.
Messaggio errore | Descrizione |
Errore backend | Si è verificato un errore sconosciuto sui server worker di Provet. Per ulteriori informazioni, contatta l'assistenza Provet. |
Errore di connessione | La richiesta di pianificazione dell'invio non è andata a buon fine. |
Errore di dati | La richiesta di pianificazione dell'invio conteneva dati non validi. |
Errore integrazione | La richiesta è stata inviata correttamente, ma l'integrazione ha risposto con un codice di stato HTTP non di successo (inferiore a 200 o superiore a 299). |
2. Apri in una nuova finestra
L'URL di destinazione viene aperto in una nuova finestra o in una nuova scheda del browser.
Se si usa una richiesta GET, gli utenti possono vedere le informazioni sul carico utile visualizzate nella barra degli indirizzi del browser.
3. Apri nel pannello laterale
L'URL di destinazione viene incorporato in Provet aprendo un pannello laterale sopra il contenuto della pagina e visualizzando la pagina come iframe.
L'URL di destinazione deve supportare l'incorporamento (l'intestazione X-Frame-Options deve essere impostata correttamente).
Utilizzo
Le integrazioni personalizzate vengono visualizzate come pulsanti nelle pagine di destinazione.
Se per una pagina è configurata solo un'integrazione, viene visualizzata come un pulsante normale.
Se una pagina ha più integrazioni, vengono visualizzate come menu a discesa.
Le integrazioni personalizzate inviano solo l'ID dell'oggetto rilevante (ID cliente, ID paziente, ID Fattura, ecc.) che può essere interrogato tramite l'API REST di Provet.
Pagina | Posizione pulsante | ID inviato come parametro |
Cliente | Sul lato destro, sopra la sezione Note (non nelle schede del paziente). | ID cliente |
Paziente | Sul lato destro, sopra la sezione Note (non nelle schede del cliente). | ID Paziente |
Fattura | Nella barra degli strumenti in basso delle pagine della fattura (incluse le pagine di Vendita libera). | ID Fattura (non il numero di fattura) |
Visita | Sopra la sezione Info generiche, sia per le visite continuative che per quelle terminato. | ID Consultazione |
Calendario appuntamenti | In alto nel calendario appuntamenti. | ID sede clinica attuale |
Calendario turni | In alto nel calendario turni. | ID sede clinica attuale |
Imaging Diagnostico | Nella pagina di Referto Imaging Diagnostico, nelle barre degli strumenti superiore e inferiore. | ID referto Imaging Diagnostico |
Promemoria | Nella barra degli strumenti di selezione nella pagina Promemoria, quando è selezionato uno o più promemoria. | ID Promemoria per ciascun promemoria selezionato |
Registro
Le richieste inviate in background ('Invia richiesta HTTP') vengono registrate in un registro interno per verifica e audit.
Vai su Impostazioni > Integrazioni > Integrazioni personalizzate > Registro.
La vista del registro elenca tutte le richieste effettuate, a partire dalla richiesta più recente.
Visualizza altre informazioni nella vista dettagli selezionando il pulsante a forma di occhio sulla destra di ogni riga.
Nota
La registrazione non viene eseguita per le richieste in primo piano ('Apri in una nuova finestra', 'Apri nel pannello laterale').
Verifica bloccata e hash
L'opzione "Verifica bloccata" è visibile solo se "Aggiungi hash di verifica" è selezionata. Inoltre, "Includi payload nell'hash di verifica" viene visualizzata anche quando è selezionata "Aggiungi hash di verifica".
In base alla combinazione dei permessi, l'hash di verifica viene calcolato come segue:
1. Verifica bloccata attiva, opzione "includi payload in verifica" disabilitata -> hash calcolato come:Verifica hash MD5 di verifica esadecimale, ad es. "4e531ee13aa16886db72bc1621206d2f". L'hash viene generato aggiungendo il sale di verifica dopo il timestamp incluso ("2018-07-15T09:12:54+00:00verifica bloccata"). [string]2. Verifica bloccata attiva, opzione "includi payload in verifica" abilitata, "Aggiungi informazioni sull'organizzazione e sul reparto" DISABILITATO -> hash calcolato come:Verifica hash MD5 di verifica esadecimale, ad es. "23ae5385b3862a571f1b5d6f6b469b1c". L'hash viene calcolato con: "<timestamp><salt><parameter_name><object_id>user_id<user_id>" ("2018-07-15T09:12:54+00:00verifica bloccatapatient_id1234user_id56"). [string]3. Verifica bloccata attiva, opzione "includi payload in verifica" abilitata, "Aggiungi informazioni sull'organizzazione e sul reparto" ABILITATO -> hash calcolato come:Verifica hash MD5 di verifica esadecimale, ad es. "163049a017bb405d4bfec754810c9838". L'hash viene calcolato con: "<timestamp><salt><parameter_name><object_id>user_id<user_id>provet_envenvprovet_id<provet_id>department_id<department_id>" ("2018-07-15T09:12:54+00:00verifica bloccatapatient_id1234user_id56provet_envenvprovet_id12345department_id12"). [string]Gli hash di verifica possono essere usati come ulteriore validazione per verificare quali richieste provengono dall'integrazione personalizzata di Provet.
Quando è abilitato, viene aggiunto un parametro aggiuntivo chiamato "verification" alle richieste.
Questo parametro è una stringa di digest hash MD5 del timestamp e del sale di verifica.
Per l'invio in background, il timestamp viene generato quando la richiesta viene effettivamente inviata.
Per l'invio in primo piano, il timestamp viene generato quando viene caricato una pagina che contiene il pulsante dell'integrazione personalizzata.
Ad esempio, per verificare che l'hash di verifica sia valido in Python, si potrebbe scrivere una funzione come questa:
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.verificationComunicazione bidirezionale con Provet
Provet consente una quantità limitata di comunicazione bidirezionale con le integrazioni personalizzate aperte in primo piano tramite l'API Window.postMessage().
L'unico comando valido è "reload".
function refreshProvetCloud() { window.opener.postMessage("reload","*");}Questo comando esegue un ricaricamento completo della pagina nella finestra o nella scheda che ha aperto l'integrazione personalizzata.
Può essere utile se l'integrazione personalizzata aggiorna i dati di Provet tramite l'API REST.
