Caro Nino,
Grazie per i numerosi spunti, che mi hanno spinto giù per la tana del bianconiglio alla ricerca di incongruenze tra i dati provinciali, e quelli regionali.
Sinceramente non avevo idea del progetto del Dipartimento della Protezione Civile, clonato ed esaminato il repository, e dopo una breve consulta con mio padre, ecco alcune considerazioni a riguardo.
Per prima cosa, il distretto ASP39, fonte dei dati del progetto f8, ha accesso solo ad alcuni dei dati richiesti dallo schema indicato dalla Protezione Civile.
Lo schema che f8 segue, creato più per necessità diretta per l'organizzazione dati, sono i seguenti:
["id","nome","dob","indirizzo"]: dati sensibili ed accessibili solo al Sindaco, e allo staff sanitario.
["ric","dim","lib"]: booleans per lo stato di "Ricoverato", "Dimesso", e "Liberato". (Liberato è un termine inventato da mio padre che si riferisce a tutti i Negativi + i Positivi che non sono più in quarantena domiciliare.)
["stato"]: esito paziente: Positivo/Negativo/Deceduto
["dt1","et1","dt2","et2","dt3","et3","dt4","et4"]: date ed esiti di ciascun tampone, utile per calcolare l'incidenza giornaliera e la data di guarigione di un paziente. La data e' visualizzata in arancione per i tamponi positivi, e verde per quelli negativi. Formato: Date/boolean.
["ddec"]: data di decesso per pazienti in 'stato: "Deceduto"'. E' sulla data di decesso che e' derivabile il dato comulativo, e giornaliero dei decessi.
["comune","note"]: stringhe che contengono il comune di residenza del paziente, ed eventuali note.
Ci sono delle incongruenze e mancanze di dati in relazione allo schema fornito dalla Protezione Civile. Ciò è spesso causato dalla mancanza di comunicazione da parte degli ospedali, ai distretti di residenza dei pazienti.
Soprattutto per quanto riguarda lo stato di ricovero, la presenza o meno di sintomi, e gli stati di decesso. I dati che il distretto raccoglie, spesso tramite indagine personale e chiamate ai parenti dei pazienti per controllare il proprio stato, sono spesso ignorati dagli altri distretti che, non avendo un sistema che faciliti la raccolta dei dati, si limitano a comunicare il numero dei positivi totali alla Provincia.
Ma come fa la Regione ad ottenere quei dati, e quali sono i dati che potremmo fornire?
["ricoverati_con_sintomi","terapia_intensiva","totale_ospedalizzati","ingressi_terapia_intensiva"]
La comunicazione di questi attributi avviene direttamente tra gli ospedali e la Regione. Ma ci sono, nello specifico, alcuni ospedali che comunicano il numero di ricoverati alle ASP (ad esempio l'ospedale di Termini Imerese). Si presuppone che un paziente ricoverato sia comunque sintomatico, e il totale degli ospitalizzati sarebbe deducibile, in caso avessimo anche il numero dei pazienti in terapia intensiva. Al momento risultano solo "Ricoverati". La mancanza di comunicazione tra gli ospedali e i distretti sanitari potrebbe portare a dati parziali, o inaccurati. L'unico modo sarebbe quello di accedere ai dati Regionali, o di consentire ai distretti di ricevere pronte comunicazioni sugli esiti dei pazienti ricoverati. O, nel caso di mio padre, indagare personalmente, chiamando gli ospedali, e i parenti di quei pazienti che risultano ricoverati da molto tempo, per scoprire l'esito della loro condizione. Un metodo un po' all'antica, nato da necessita', e decisamente inclinato a potenziale inaccuratezza.
["totale_positivi_test_molecolare","totale_positivi_test_antigenico_rapido","tamponi_test_molecolare","tamponi_test_antigenico_rapido"]
I dati che la ASP39 riceve sono relativi solamente ai test molecolari positivi, non teniamo conto nè dei tamponi rapidi, nè dei primi tamponi negativi.
Quindi essenzialmente, ogni entità nel database, per essere ritenuto con 'Stato: "POSITIVO"' è necessariamente un paziente che è risultato Positivo al primo tampone molecolare. Nel caso in cui il paziente ripetesse il tampone e risultasse negativo, allora la data del tampone negativo viene registrata, e il paziente passa ad uno "Stato: Negativo".
["dimessi_guariti"]
Derivabile dallo stato "dim"&&"Stato:"Negativo"
["isolamento_domiciliare"]
Derivabile da tutti i Positivi - Liberati Positivi
["deceduti"]
Derivato dallo stato: Deceduto, previa comunicazione della data di decesso da parte dell'ospedale, dei familiari, o da parte del Sindaco.
["totale_casi", "totale_positivi", "casi_testati"]
Il totale casi è essenzialmente il totale di tutti i pazienti registrati al sistema. Gli attuali positivi sono da noi calcolati da totale_casi-deceduti-negativi-liberati_positivi
Nel nostro caso, il totale_casi e i casi_testati corrispondono allo stesso numero di pazienti. Poichè sono registrati su f8 solo i pazienti positivi al primo tampone molecolare.
["tamponi"]
Derivabile dalla somma di (t1+t2+...tn), ma non rientrerebbero i primi tamponi negativi. I tamponi negativi sono da noi calcolati solo nel caso in cui il paziente abbia avuto almeno un tampone positivo in precedenza.
["variazione_totale_positivi","nuovi_positivi"]
Questo dato non è registrato direttamente sul nostro database, ma calcolato all'occorrenza dalla Dashboard. Questa è una mancanza che ho sottovalutato, ma che potrebbe essere risolvibile in due modi:
1) La dashboard ha una funzione per fare screenshots giornalieri, che vengono mandati al Sindaco giornalmente, che potrei recuperare..
2) Ho una tabella che tiene conto di tutti i cambiamenti di stato raggruppati per ID. Probabilmente potrei calcolare i cambiamenti giornalieri con un algoritmo in Python.
..) in ogni caso facilmente implementabile fin dall'inizio, nelle nuove installazioni.
Essenzialmente credo di capire che i problemi maggiori su cui si possa lavorare siano:
1) Implementare un sistema standard per la raccolta dei dati, da fornire ad ogni distretto, e che rispetti lo schema fornito dal Ministero.
2) Assicurarsi che gli ospedali comunichino con i distretti, poichè al momento la Regione sembra essere l'unico ente ad avere tale autorità.
Questo se consideriamo lo scenario "interno verso l'esterno", scenario che reputo efficace, meno immediato, ma sicuramente più consapevole ed accessibile ad ogni provincia, comune e distretto; in un certo senso, restituendo il diritto di gestione dei dati alle piccole realtà, verso le grandi istituzioni.
Andando alla tua seconda domanda, qualora la Regione aprisse alla possibilità di analizzare i propri dati (approccio "esterno verso l'interno"...o anche magari approccio "middle-man"),
qualora usassero un qualsiasi sistema con supporto SQL, si potrebbe creare un CRON che faccia un mysqldump ogni mezzanotte (o altro orario conveniente), esportando la tabella dati per singola provincia/regione, poi usando Python per sistemare il dataset con i dati essenziali, e al termine dello script cancellare il file sorgente, e pushare i risultati direttamente sul Git del Ministero.
Il sistema dovrebbe idealmente essere messo in sicurezza e consentire solo le Incoming e Outcoming connections essenziali, un pò come ho blindato F8 per rifiutare ogni Incoming da qualsiasi IP che non sia quello dell'ufficio ASP di competenza.
Questo è parte dell'approccio che utilizzo, con Python, per filtrare i dati dal database principale di f8, a f8lite. Dove viene presa in considerazione solo l'incidenza giornaliera, poi raggruppata per data in R. Sto attualmente lavorando al sistema CRON in modo tale che la conversione dei dati avvenga in maniera automatica e pushata sul Git di f8lite.
Snippet di esempio per estrarre l'incidenza giornaliera:
import pandas as pd
import csv
import os
url = './input/positivi.csv' //carica il dump dal db
df = pd.DataFrame(data, columns = ["comune","dt1","et1"]) //seleziona le colonne necessarie
f1 = df.loc[(df['comune'] == scope) & (df['dt1'].str.len()>1) & (df['et1'] == "POSITIVO")] //solo persone di un determinato comune, con primo tampone positivo
f2 = f1.sort_values(by=['dt1']) //ordina per data tampone
out = pd.DataFrame(f2, columns = ["dt1"]) //nuovo dataframe
out.to_csv (r'./output/ind_'+scope+'.csv', index = False, header = True, quotechar='"', quoting=csv.QUOTE_NONNUMERIC) //esporta il csv
os.remove(url) //cancella il dump originale
On Friday, 26 March 2021 at 19:29:23 UTC+1 Nino Galante wrote:
Caro Gabriele,
come ti avevo anticipato su Telegram, aspettavo l'apertura di questo thread per chiederti qualche informazione ed esporre qualche mia osservazione.
Come già ti accennavo, risalgono all'anno scorso i tentativi di Open Data Sicilia di dialogare con la Regione Siciliana per ottenere dati di dettaglio sulla pandemia a livello provinciale e comunale; tentativi che sono stati avviati con una prima lettera aperta, alcuni articoli pubblicati sul nostro blog, inframezzati da attività sui social ma anche offline, fino ad arrivare giusto nei giorni scorsi ad una seconda lettera aperta e al racconto della bella esperienza di Regalbuto (
trovi tutto qui); in mezzo ci trovi anche l'adesione della nostra comunità alla campagna
#datiBeneComune, lanciata a livello nazionale dall'associazione
onData, e a cui hanno aderito ad oggi quasi cinquantamila persone e parecchie, più di 170, organizazioni di vario tipo (associazioni, comunità, testate giornalistiche e televisive, ecc.), e la crescente consapevolezza anche da parte di alcuni sindaci dell'importanza di disporre di dati epidemiologici a livello comunale e anche, come nel caso di grandi città come Palermo, di dati riguardanti i singoli quartieri.
Sapevamo già da tempo che la Regione Siciliana, dopo alcuni mesi di gestione che potremmo definire "artigianale", si era dotata di un sistema di raccolta dei dati provenienti dalla periferia, anche per rispondere all'obbligo di alimentare quotidianamente quel grande database che eroicamente, sin dall'inizio della pandemia, il Dipartimento della Protezione Civile rende disponibile a tutti noi con i dati pandemici aggregati a livello nazionale e per ogni singola regione. Svolgendo, tra l'altro, quel ruolo importantissimo di rendere tali dati comparabili tra loro e facilitando in tal modo il confronto tra i dati nazionali e quelli delle singole regioni e tra regione e regione. Il livello di dettaglio dei dati provinciali resi disponibili dal Dipartimento della Protezione Civile è purtroppo limitato al solo totale_casi (da cui l'unico altro valore che si possa ricavare è soltanto quello dei nuovi_positivi) ed è appunto dal bisogno di colmare questo vuoto informativo, che riguarda le più piccole realtà provinciali e comunali, che nasce la richiesta di dati di maggior dettaglio.
Visto ora che tu hai avuto modo di conoscere bene il sistema regionale siciliano che raccoglie i dati e visto che hai trovato il modo di filtrarne alcuni per renderli pubblici, volevo chiederti se secondo te è semplice implementare un sistema che rispetti lo
schema adottato dal Dipartimento della Protezione Civile per i dati nazionali e regionali, in modo da renderli con loro comparabili. In altre parole, visto che i dati che la Regione trasmette al Dipartimento devono rispettare quella struttura, mi chiedo se sia o meno complicato rispettarla (e ottenere quindi quel tipo di output) anche per i dati provinciali, di distretto sanitario e comunale. Ad esempio l'anno scorso, con un'attività totalmente manuale, noi di Open Data Sicilia abbiamo alimentato un dataset con i dati provinciali che venivano pubblicati dalla Regione; questo ha permesso di colmare in parte quella lacuna sui dati provinciali di cui ti dicevo (ma è stato possibile farlo fino al 22 giugno, ultimo giorno in cui sono stati resi disponibili) e ha permesso di renderli comparabili con i dati nazionali e regionali. Oggi le sporadiche iniziative che consentono solo per poche realtà di avere dati di dettaglio a livello subregionale, spesso utilizzano termini tra loro difformi per individuare alcuni valori epidemiologici, difformi anche da quelli raccomandati dal Dipartimento di Protezione Civile, contribuendo in questo modo ad aumentare la confusione e a ridurre la comprensione del loro corretto significato.
La seconda questione che ti pongo è se, secondo te, con le conoscenze che hai avuto modo di maturare al Distretto ASP 38, pensi che si possa mettere in piedi un sistema che acceda lecitamente e senza violare la privacy al sistema di raccolta regionale e consenta di filtrare i dati dell'intera regione per esporli suddivisi per provincia e per comune (auspicabilemente secondo il suddetto schema del Dipartimento della Protezione Civile).
Ancora complimenti :)
N.
Il giorno venerdì 26 marzo 2021 alle 15:53:40 UTC+1 cirospat ha scritto:
ciao Gaba
chiunque tu sia, sono sicuro che oggi nel 2021 le medaglie di cavaliere del lavoro dovrebbero essere date a persone come te, per il lavoro che hai svolto, in assenza di strumenti dell'ASP (ente pubblico) idonei alla situazione da fronteggiare.
Complimenti per il lavoro!
Le persone della comunità opendatasicilia ci arricchiremo nel confronto che avremo con te.
Benvenuto (o benvenuta?) nella comunità più stimolante che c'è in Italia sul tema #dati #open.
E grazie per questa interessantissima condivisione.
Fossi il presidente della Repubblica oggi ti avrei messo una medaglia al petto, solo per "come" hai raccontato il tuo lavoro!
Il giorno ven 26 mar 2021 alle ore 14:18 GABA <
[hidden email]> ha scritto:
Ciao a tutti, è per me una piacevolissima sorpresa scoprire il vostro progetto! Lo scorso Ottobre 2020 ho sviluppato un sistema CRUD per la gestione dei dati relativi ai pazienti positivi al COVID per il distretto ASP 39 (Bagheria, Santa Flavia, Casteldaccia, Ficarazzi, e Altavilla). Mio padre è un dipendente ASP ed era rimasto da solo a dover gestire la situazione, senza alcun framework nè training offerto dalle istituzioni...
Visti i metodi rudimentali che venivano utilizzati, e le sue lunghe ore lavorative fuori orario, ho deciso di regalargli questo sistema, sviluppato con Backpack for Laravel, che è attivo ormai da diversi mesi, ed è stato molto importante per la gestione dei dati, qualche statistica, date dei tamponi e anche l'individuazione di focolai e indirizzi per la gestione dei rifiuti speciali, e le comunicazioni dei dati al pubblico da parte dei Comuni interessati.
Il gestionale, chiamato f8 (letto faith, o anche fate), ha delle restrizioni di accesso esclusivo per i membri dell'ASP e non è raggiungibile dall'esterno...ma giusto una decina di giorni fa ho creato una specie di ponte per il pubblico, per comunicare i dati direttamente alla popolazione, senza dover necessariamente passare dai giornali, o dal Comune, per la città di Bagheria (il paese in cui attualmente vivo).
Credevo di essere il solo ad offrire il mio lavoro volontariamente a supporto della causa...non vedo l'ora di poter scoprire di più riguardo opendatasicilia ed esplorare eventuali possibilita' di collaborazione!
Tenuto conto dei recenti messaggi scambiati sul canale Telegram, è emersa l'esigenza di implementare uno schema unico per la gestione dei dati, a fine di analisi statistica veritiera, ed eventuali previsioni per il futuro. F8 è un sistema che è nato dal basso, con l'intenzione di aiutare tutte le ASP in difficoltà in questo periodo di transizione. Confermo la mia totale disponibilità a fornire il gestionale a tutti gli enti che possano averne bisogno, e apertura a consigli e suggerimenti per rendere la piattaforma più utile, per tutti.
In allegato uno screenshot della dashboard di f8

--
Sito: http://opendatasicilia.it
Facebook: https://www.facebook.com/groups/opendatasicilia/
twitter: http://twitter.com/opendatasicilia
Gruppo Telegram: https://t.me/opendatasicilia
---
Hai ricevuto questo messaggio perché sei iscritto al gruppo "opendatasicilia" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a [hidden email].
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/opendatasicilia/aabb0639-3b4c-4674-a186-eafc7333e51fn%40googlegroups.com.