Da Google Spreadsheet ad una dashboard con Google Data Studio

Un esempio con i dati dei pazienti ai pronto soccorso della Provincia Autonoma di Trento
L’azienda Provinciale per i Servizi Sanitari offre il servizio “StatOPS” che visualizza le informazioni sullo stato dei pronto soccorso del Trentino.

I dati visualizzati sul sito sono disponibili in opendata tramite un file XML il cui aggiornamento avviene ogni 10 minuti.

La struttura del file è fatta dalla radice <STATOPS> che contiene i tag <DATA_AGGIORNAMENTO> e <PRONTO_SOCCORSO>.
Il
primo contiene la data e l'ora dell'ultimo aggiornamento ed è presente
una volta sola, mentre il secondo si ripete tante volte quante il numero
di pronto soccorso del Trentino. Per ogni pronto soccorso sono poi
presenti una serie di tag che danno informazioni descrittive (es. “<PS>” contiene il nome del pronto soccorso) ed altri invece che informano quante persone hanno ricevuto un codice <BIANCO> o <VERDE> o <GIALLO> o <ROSSO> rispettivamente negli stati di <ATTESA>, <AMBULATORIO>,<OSSERVAZIONE>.
Il
passaggio da questo XML ad un formato tabellare è una operazione che si
può fare in diversi modi attraverso qualche nozione base di XPath
Volendo poi ottenere i dati aggiornati è sufficiente rilanciare l'operazione di trasformazione in maniera periodica.
Le soluzioni sono tante, quella che propongo qui è basata su Google Spreadsheet facendo uso della funzione IMPORTXML.
La creazione della tabella dentro il foglio di calcolo avviene in maniera molto semplice e richiede solo un po' di pazienza.

Supponiamo
di strutturare la tabella con le colonne che riguardano: il codice del
pronto soccorso, la località, il nome, la data dell'aggiornamento dei
dati, il numero di pazienti in stato di attesa per codice (bianco,
verde, giallo e rosso), quello di quelli in ambulatorio (sempre per
codice) e di quelli in osservazione.
Ciascuna di queste informazioni corrisponde ad un percorso del albero XML
[csv src=https://gist.githubusercontent.com/napo/9a721c8a20e33debac0ed3e068a4a247/raw/a085dfa04b222f6f44be94a70292a683562204a9/percorsi_xml_statops.csv]
Nota: il primo percorso inizia con "//" in quanto seleziona nodi nel documento dal nodo principale ( = la radice) che corrisponde alla selezione, indipendentemente da dove si trovi
L'operazione da svolgere è quindi quella di fornire, per ogni colonna, il comando IMPORTXML con il relativo percorso XPath.
Dove il tag non contiene alcun sotto tag allora verrà mostrato il contenuto di quel tag nella colonna

dove invece il tag (es. <ATTESA> o <AMBULATORIO> o <OSSERVAZIONE>) contiene ulteriori sottotag, allora saranno mostrati i valori per ogni colonna successiva a quella dove si eseguirà il comando

A questo punto si può automatizzare l'aggiornamento del dato ed anche le relative creazioni di grafici come spiegato nell'articolo "Automatizzare la raccolta e analisi dei dati con Google Fogli"
Il risultato che si ottiene con questa procedura è già sufficiente per creare dei grafici interattivi o immagine statiche da rendere pubblici.

Qualora però si voglia creare un pannello più complesso, completo, ad esempio, di una tabella accompagnata da un grafico e dalla possibilità di filtrare i valore in relazione ad una variabile, la suite Google offre un ulteriore strumento molto semplice e affascinante: Google Data Studio.
Data
Studio offre dei pannelli di base (che possono essere esportati anche
come pdf per la stampa) su cui "appoggiare" i vari elementi che la
nostra dashboard deve visualizzare.
È possibile cominciare con un modello già preconfezionato o crearne uno da zero.

Il primo passaggio consiste nel selezionare o creare una origine dati attraverso pochi clic.
In
questo caso va scelto il foglio di calcolo presente in Google
Spreadsheet con la tabella creata dalla trasformazione del file xml.
e da lì collegare (usando il bottone "aggiungi al rapporto") la base dati al pannello dove si andrà a creare la dashboard

Da qui in poi si opererà nel pannello dove posizionare i vari oggetti che vogliamo vedere rappresentato nel report, come, ad esempio, una tabella.

In ciascuno di questi casi andremo anche a scegliere quali dati rappresentare e permettendo poi diverse modifiche allo stile

e proseguire poi nella creazione del report aggiungendo anche ulteriori grafici

Oltre ai dati presenti è possibile creare dati secondari.
Il
grafico a barre scelto permette di capire quante sono le persone in
stato di attesa, per averne però il totale è sufficiente creare una
nuova variabile che contiene la somma dei valori.

Trattandosi poi di una dashboard è di dover aggiungere almeno un filtro.
Ad esempio quello dell'elenco dei pronto soccorso con affiancato il numero totale di persone in attesa

Passando in modalità visualizzazione si può poi vedere il risultato della dashboard creata

che poi può essere condivisa con altri con le classiche modalità di condivisione offerte da Google.

Have fun!!!
PS:
questo vuole essere solo un tutorial per guidare alla creazione non di certo una dashboard efficace :)







