Pronto Soccorso di Puglia: Bot e Mappa realtime per code

Sono 2 giorni che ci lavoro.  Non so se a voi capita mai di “fissarsi” su una cosa ed anche se vai al lavoro, giochi con tua figlia, mangi, dormi, sei sempre con il pensiero lì.

A me capita spesso per la felicità di mia moglie che, giustamente, mi “sveglia” da questo sognare ad occhi aperti.

A nulla valgono le mie obiezioni sul fatto che non devo essere disturbato perchè sto “creando”, come da famosa vignetta in giro in rete da tempo.

Lei risponde secca: tu non crei, mettiti l’anima in pace.

A parte la premessa, ho scoperto il sito Puglia Salute. Sono sempre più convinto che ci sono tantissimi dati fatti da tanti professionisti, enti, PA che vengono rilasciati per i cittadini ma c’è poca cultura nella capacità di riusarli. A volte anche “visualizzarli” soltanto, implica una cultura della curiosità. Dobbiamo lavorare molto per tradurre il dato in servizio…e il servizio in opportunità.

Perchè dovremmo vedere sul sito regionale le code di attesa al pronto soccorso? Per statistica? Per andare al PS più scarico? Non lo so. Di certo so che pochissimi conoscono questa opportunità. Non tutte le Regioni offrono questo servizio. Se succede un incidente al confine con la Basilicata, potrò sapere magari le code di attesa di Altamura, ma quelle di Matera (che ha un ospedale molto più grande) non è dato saperlo. Da qui si inizia a comprendere che queste cose sono frutto di una Politica precisa di efficienza e di comunicazione. Mi si potrà obiettare che la Basilicata è virtuosa per la spesa sanitaria. Certo. Ma se voglio vedere cartella clinica online di mio padre materano, me la dimentico..mentre a Lecce virtualmente posso addirittura usare lo SPID (per ora solo per il Comune, quindi per la Sanità regionale si usa utente e password e/o smart card).

Schermata 2016-04-02 alle 17.39.41

Ho studiato il sito. E’ un sito pubblico, non c’è una licenza esplicita:

Schermata 2016-04-02 alle 17.41.08

Le Linee Guida AGID prevedono, in ottemperanza con l’art. 52 Comma 2 del CAD (D.Lgs. n. 82/2005) : “i dati e i documenti che le amministrazioni titolari pubblicano, con qualsiasi modalità, senza l’espressa adozione di una licenza di cui all’articolo 2, comma 1, lettera h), del decreto legislativo 24 gennaio 2006, n. 36, si intendono rilasciati come dati di tipo aperto ai sensi all’articolo 68, comma 3, del presente Codice” , che la licenza da applicare sia la CC-BY 4.0 .

Mi sono messo al “lavoro” per cosi dire e “creo” il Bot di Pronto Soccorso Puglia. Queste cose le faccio per ricerca personale e per divulgazione scientifica. Sono opere gratuite e quasi sempre rilascio il codice sorgente su GITHUB.

Analizzo la pagina (quella vera che viene caricata, inserita dentro quella regionale) che cambia a seconda della provincia. Esempio per Lecce

Le tabelle HTML che appaiono possono essere fonte dati per generare una tabella interrogabile.

In pratica si effettua un’operazione che si chiama Scraping, usando in questo caso uno script (un codice automatico) realizzato in linguaggio PHP e usando un metodo chiamato XPATH. Trovo in pratica ogni oggetto come viene visualizzato all’interno di tag e ne prendo il contenuto.

Esempio:

Schermata 2016-04-02 alle 17.48.06

L’intestazione PO V. FAZZI-LECCE si prende usando

//div[@class="table_container"]/table/thead/tr/th[@class="intestazionetabella"] .

Immagino che per molti sia simile all’arabo 🙂 Leggete i miei sorgenti per vedere tutti gli altri casi.

Tutti questi dati quindi vengono messi realtime in una tabella (array multidimensionale) dove come per la battaglia navale ci sono righe e colonne. Un ciclo prende le righe 1,2,3 ect, e le colonne A,B,C,D,E cioè appunto i valori:

Schermata 2016-04-02 alle 17.51.58

Il bot di Telegram poi li visualizza. Quando nel bot si sceglie la provincia:

Schermata 2016-04-02 alle 17.52.52

Viene fatta un’interrogazione (query) dove si cercano gli ospedali per quella determinata provincia (cambia il link di sopra a seconda delle ASL) e la risposta viene messa come tastiera nel menu di sotto:

Schermata 2016-04-02 alle 17.54.19

Antepongo BA_ , LE_ ect perchè cosi cliccando per esempio su BA_AO POLICLINICO-BARI effettuo un controllo se esiste il carattere _ e tolgo il prefisso BA_, LE_ ect Questo mi permettere di sapere a priori che sto cercando un ospedale di una provincia particolare (sempre perchè esistono vari link diversi per ASL). Interrogo la Tabella che abbia il nome dell’ospedale proprio quello cliccato. In pratica individuo la riga dell’ospedale di interesse da cui estrapolare le attese, code d’attesa , statistiche ect:

Schermata 2016-04-02 alle 17.57.14

e cosi via. Poi ho creato una tabella con tutti i Pronto Soccorso e le rispettive coordinate geografiche. Quando con il Bot inviate la vostra posizione, viene interrogata questa tabella statica. Viene confrontata la vostra posizione rispetto a quella di tutti gli ospedali di Puglia e viene restituito l’elenco degli ospedali in un raggio di 100km a distanza crescente :

Schermata 2016-04-02 alle 17.59.27

 

E’ qui che viene ripreso il discorso di sopra tra le regioni… se ci fosse un livello minimo di standardizzazione dei servizi (e dei formati), potrei vedere anche le code degli ospedali delle regioni limitrofe, cosi come vedo le province limitrofe…

Analogamente ho fatto una mappa con Umap. Si collega alla tabella con le coordinate. Quindi i pin che vedete sono sempre gli stessi:

 

Schermata 2016-04-02 alle 18.01.55

 

Quando però si clicca un pin, nella side bar laterale passo il nome dell’ospedale al mio codice PHP che quindi, dato il nome dell’ospedale, ne fornisce la coda d’attesa:

Schermata 2016-04-02 alle 18.03.08

 

Cosi facendo l’utente se vuole usa il Bot e sfrutta la propria posizione in mobilità. Altrimenti tramite le mappa ha una visione d’insieme.

Copiate pure e migliorate il mio codice. Che poi non è “mio” se a mia volta uso un linguaggio inventato da altri, cicli scopiazziati altrove, ispirazioni partite da EmergenzePrato, ho usato le API di Telegram ect ect ect . Si chiama conoscenza aperta. Si chiama Cultura aperta 

Potrebbero interessarti anche...

Rispondi