Il Saga Pattern per la digitalizzazione delle operazioni sanitarie

| 5 minuti di lettura

L’utilizzo di architetture basate sul cloud è il prossimo grande passo da compiere quando si tratta di gestire i servizi sanitari digitali. Le nuove soluzioni assistenziali rendono le persone più consapevoli e le supportano nella scelta delle migliori decisioni possibili sui percorsi di cura e nel miglioramento del loro attuale stato di salute. Più facile è il coinvolgimento, più alta è la qualità dell’assistenza fornita.

Una delle sfide principali per le aziende sanitarie è garantire l’allineamento delle informazioni tra i diversi punti di contatto e fornire ai pazienti un’esperienza impeccabile in modo che possano interagire facilmente con i fornitori di cure.

Come raggiungere questo obiettivo? Perseguendo la consistenza dei dati durante tutte le transazioni del processo. La transazione è una singola unità di logica o più unità che operano insieme e che hanno successo o falliscono come unità.

Nelle architetture multiservizio, le transazioni multiple richiedono una strategia di gestione delle transazioni tra i diversi servizi che si concentri sulla consistenza dei dati.

Che cos’è il Saga Pattern e perché è necessario affrontare la consistenza dei dati?

La consistenza dei dati consente ai servizi di interagire senza problemi tra loro, poiché tutte le informazioni in esecuzione corrispondono perfettamente. In genere, il team incaricato di gestire tutti i dati aziendali, spesso guidato dal Chief Data Officer, deve concentrarsi principalmente su due punti di attenzione:

  • assicurare la consistenza dei dati in un’operazione distribuita tra diversi sistemi, al fine di garantire un ordine preciso per l’esecuzione del flusso di operazioni dei microservizi;
  • garantire la sicurezza in caso di errore, creando meccanismi di rimedio che ripristinino la situazione corretta qualora si verifichino degli errori.

Il Saga Pattern aiuta proprio a soddisfare queste esigenze, garantendo stabilità e un basso tasso di errore sulle transazioni distribuite tra molti microservizi. Ma cos’è esattamente una Saga? Una Saga è la gestione di transazioni distribuite dall’inizio alla fine.

Sono due le strategie di approccio al Saga Pattern:

  • events/choreography: i servizi portano avanti la Saga lavorando insieme, senza avere qualcuno che li controlli;
  • commands/orchestration: la Saga viene gestita da un orchestratore centralizzato.

Ogni approccio presenta vantaggi e limiti e, naturalmente, non esiste una regola universale che stabilisca quale sia il più adatto. L’implementazione del progetto definisce quale sia la soluzione migliore per quella particolare situazione.

Il Flow Manager: il plugin di Saga Pattern sviluppato da Mia-Platform

Durante lo sviluppo della soluzione Mia-Platform, il team di ricerca e sviluppo ha deciso di creare un componente generico che fungesse da orchestratore, optando per un approccio commands/orchestration. Questo orchestratore, chiamato Flow Manager, è stato costruito per garantire il pieno controllo del processo, oltre a flessibilità e facilità di implementazione. 

L’output finale è un microservizio che gestisce le saghe seguendo il flusso imposto da una macchina a stati finiti guidata dagli eventi, in cui le transazioni sono innescate da messaggi. Questi messaggi sono eventi scambiati in modo asincrono tramite un event bus (ad esempio Apache Kafka).

Poiché l’orchestratore Flow Manager è stato sviluppato come servizio pronto all’uso, i vantaggi sono immediatamente evidenti per gli utenti. Per soddisfare le esigenze specifiche del progetto, è sufficiente definire il diagramma a stati finiti che descrive i possibili flussi di interazioni e tradurlo in un semplice file di configurazione. 

Come sfruttare Flow Manager nell’ecosistema sanitario? L’esperienza di sviluppo del team Mia-Care

Non appena Mia-Care ha iniziato la sua attività di sviluppo di progetti digitali, il team ha ottenuto un notevole slancio dall’utilizzo di Flow Manager come orchestratore di Saga Pattern. Il plugin consente ai team di ridurre i tempi di sviluppo e di creare flussi automatizzati senza scrivere nuovo codice da zero.

Attualmente, in Mia-Care abbiamo applicato questo strumento alle strutture sanitarie che adottano un patient journey digitale e alle aziende sanitarie digitali che offrono servizi di assistenza primaria virtuale.

Analizziamo questi due casi d’uso per dare un esempio più chiaro del valore fornito da Flow Manager.

Patient Journey digitale per gli ospedali

Il team Mia-Care è stato coinvolto nella digitalizzazione di un Patient Journey per fornire un’esperienza senza intoppi alle persone che devono prenotare una visita o un follow-up all’interno di una struttura ospedaliera, unificando il digitale e il mondo fisico.

Una volta approdato sulla piattaforma di prenotazione ospedaliera, se già registrato, il paziente può selezionare la prestazione clinica necessaria, il giorno preferito e la sede (tra le diverse strutture di cura). Il sistema mostra le disponibilità dei medici specialisti già collegati al paziente, confrontandole con i loro calendari. Alla fine, l’utente può selezionare una fascia oraria adatta e procedere selezionando il metodo di pagamento (“paga ora per saltare la coda” o “paga dopo la visita”). 

Se non ci sono problemi, il paziente può accedere al servizio tramite un QR code se la visita è fisica o tramite un link e-mail se è gestita a distanza dal medico. Abbiamo già spiegato in precedenza come Flow Manager sia un’ottima soluzione per la gestione degli errori attraverso i meccanismi di rimedio. In questo caso, quando si verifica un errore (fascia oraria non più disponibile o codice fiscale errato), il plugin reindirizza l’utente al portale di prenotazione inviando un messaggio di “errore” che viene visualizzato prima di essere reindirizzato alla pagina principale.

Quali sono le cose interessanti implementate in questo progetto?

  • Quando i pazienti prenotano online o modificano un evento, ricevono notifiche e promemoria automatici;
  • Il paziente può accedere alla visita tramite QR code o link (per le visite a distanza);
  • Le notifiche via SMS o push chiedono al paziente di attendere in remoto per mantenere la distanza sociale;
  • Il portale per i pazienti e l’applicazione per smartphone forniscono la situazione in tempo reale sulla coda, in modo che le persone non debbano aspettare fisicamente.

E i vantaggi?

  • Semplificazione dei patient journey;
  • Riduzione delle perdite di tempo e del tasso di no-show;
  • Aumento dell’efficienza del personale.

E-commerce farmaceutico per il servizio di cure primarie virtuali

L’anno scorso abbiamo gestito un progetto digitale per creare una piattaforma virtuale di cure primarie, alimentata dall‘e-commerce per le farmacie e da un flusso di lavoro per il monitoraggio dell’aderenza alla terapia.

Poiché era difficile garantire la consistenza dei dati ed evitare errori lungo la filiera, il Flow Manager era lo strumento perfetto da utilizzare, in quanto gestisce in modo efficiente l’intero processo di ordinazione e acquisto, arrivando ad attivare notifiche e avvisi durante la fase finale di consegna.

In particolare, il processo dell’ordine eseguirà le seguenti attività:

  • L’utente accede all’e-commerce;
  • L’utente seleziona l’articolo dalla farmacia più vicina;
  • L’utente fa clic su “Ordina”;
  • L’ordine viene creato;
  • Il servizio ordini informa la farmacia;
  • La farmacia conferma e inserisce un orario per il ritiro;
  • Il servizio di pagamento consente all’utente di pagare l’ordine;
  • L’utente paga l’ordine;
  • Il servizio di pagamento aggiorna l’ordine;
  • Il servizio di consegna avvisa la farmacia e il rider;
  • Il rider ritira l’ordine e lo consegna;
  • L’ordine viene chiuso.

Naturalmente, anche in questo caso, si verificherà un meccanismo di rimedio se il processo restituisce errori. Ad esempio, quando l’utente fornisce informazioni errate relative al conto bancario o all’indirizzo di consegna, il sistema blocca l’ordine e invita l’utente a risolvere il problema. Un altro esempio rilevante è rappresentato dal caso di “esaurimento scorte”. Il cliente finale può essere fermato dalla mancanza di disponibilità della farmacia più vicina e reindirizzato alla pagina dell’ordine che mostra un’altra farmacia in grado di fornire il farmaco.

Conclusioni

Per garantire la consistenza dei dati, è necessario occuparsi di diverse complessità, assicurando sempre la sicurezza in caso di errore. Per questo motivo Mia-Care si affida al performante Flow Manager per gestire i processi basati sugli eventi

Mentre gli ospedali possono ottimizzare i processi e ridurre i costi operativi abbassando il tasso di esposizione, le startup della sanità digitale focalizzate sulle cure primarie possono sfruttare il Flow Manager per fornire ai pazienti una soluzione di e-commerce facile da usare e aumentare il volume degli acquisti.

Questi sono solo due esempi del grande potenziale del Flow Manager. Infatti, questo potente strumento consente di gestire potenzialmente ogni saga, indipendentemente dalla sua complessità, e aiuta anche a visualizzare la saga grazie al Flow Manager Visualizer.

Questa rappresentazione grafica consente sia ai team di sviluppo sia alle figure meno tecniche di comprendere chiaramente l’intera saga, senza doverla progettare manualmente perché Mia-Platform Console fa tutto il lavoro al posto vostro.

Immaginate quanto tempo potete risparmiare personalizzando questo strumento pronto all’uso in base alle vostre esigenze ospedaliere, invece di partire da zero.


Questo articolo è stato scritto da Andrea Di Carlo, .

Leave a comment


Unisciti alla nostra community e ricevi la Newsletter!