SlideShare a Scribd company logo
Cesare Gerbino
In occasione di doversi recare presso un Pronto Soccorso (ovviamente per cose
non gravi, per quelle vale sempre la regola di contattare 112 / 118 …), sulla
base di quali informazioni prendiamo la decisione di dove andare?
Abbiamo delle informazioni disponibili, certe ed aggiornate, che ci possano
guidare nella decisione?
Oppure ci affidiamo all’abitudine (ci “fidiamo” dell’ospedale che conosciamo
meglio, siamo sempre andati in quello, ecc … ), o, peggio andiamo a caso?
Rendere disponibili, ed accessibili, i dati, di numeri e tempi di attesa per
tipologia, dei pronto soccorsi italiani
Dare la disponibilità di tali informazioni in modo aperto, standardizzato e
«machine readable»
Non è una cosa del tutto innovativa: in rete ci sono diverse applicazioni (dai siti
web alle app per smartphone), che offrono queste informazioni, ma per lo più
per zone territoriali limitate o per specifiche Aziende Sanitarie Locali.
Open Pronto Soccorsi prova a farlo sull’intero territorio nazionale usando i dati
disponibili, siano essi open data (o open services …), o sfruttando i siti web che
pubblicano queste informazioni andandoli a “leggere” in tempo reale, in modo
del tutto analogo a come farebbe un utente che acceda al sito stesso
Open Pronto Soccorsi, per quanto funzionante in tutte le sue parti, è
comunque da considerarsi una sorta di “proof of concept” ed esperienza
prototipale e, al tempo stesso, anche un esempio di come non si fanno alcune
cose (mi spiegherò più avanti …).
Open Pronto Soccorsi
usa i dati disponibili
sull’intero territorio
nazionale, siano essi
open data o sfruttando i
dati pubblicati tramite i
siti web:
questi dati ci sono?
quanti sono?
sono uniformemente
distribuiti?
I dati sono distribuiti a macchia di leopardo sul territorio nazionale (242 Pronto
soccorsi censiti …), quindi NON in modo uniforme. Da qui un alcune domande:
 esiste un qualche dispositivo di legge che vincolerebbe (uso il
condizionale …), i proprietari di questi dati a renderli pubblicamente
disponibili (es l’art. 52 CAD)
 Se no … perché?
 Se si …. non è stato uniformemente rispettato e questo è il primo
esempio di come “non” si dovrebbero fare le cose
Esistono anche dati disponibili come «opendata», nel senso di esposti tramite
un portale open data in un formato machine readable, documentati e dotati di
opportuna licenza:
 Regione Lazio: http://dati.lazio.it/catalog/it/dataset/pronto-soccorso-accessi-in-
tempo-reale
Nella realtà, volendo, anche il Friuli Venezia Giulia esporrebbe questi dati in
un formato «machine readable», ma non lo fa in modo ufficiale attraverso un
portale open data.
 Regione Fiuli Venezia Giulia: https://servizionline.sanita.fvg.it/psonline/#/index
La maggior parte dei dati è “contenuta” all’interno di pagine web dei diversi siti
delle aziende ospedaliere locali o degli ospedali (non sono riuscito a recuperare
informazioni relative a quanti sono i comuni che hanno almeno un pronto
soccorso e nemmeno quanti sono in totale di pronto soccorsi in Italia)
Regione Lazio è sicuramente un esempio virtuoso in quanto è l’unico ente che
espone questi dati in modo ufficiale attraverso il suo portale degli open
data, http://dati.lazio.it/catalog/it/dataset/pronto-soccorso-accessi-in-tempo-
reale (con tanto di metadati e licenza d’uso), e lo fa anche poi usando un
portale web usando i medesimi servizi
(https://www.regione.lazio.it/accessiprontosoccorso/?ORDINAMENTO=SA).
Regione Friuli Venezia Giulia, nel suo formato dati, offre anche le coordinate
spaziali di localizzazione del pronto soccorsi quindi un’informazione
sicuramente di maggiore qualità per chi debba poi riusarla. Credo che questo
derivi dal fatto che la Regione Friuli Venezia Giulia ha reso open data i propri
numeri civici georiferiti (rif. http://irdat.regione.fvg.it/consultatore-dati-
ambientali-territoriali/chooseOperation.do ) che poi, a loro volta, sono stati
importati in OpenStreetMap (https://wiki.openstreetmap.org/wiki/Friuli-
Venezia_Giulia/Import_Civici_FVG)
I due esempi virtuosi tuttavia NON offrono le informazioni con le medesima
struttura dati, per quanto ampiamente simili (se vogliamo altro esempio di
come “non” si dovrebbero fare le cose …)
Partendo quindi da questi due casi, ognuno virtuoso per alcuni aspetti, la
prima cosa che ho cercato di fare e provare a rendere omogenea la struttura
dati con la quale distribuire questa informazione.
La struttura, in formato JSON, valorizzata per un caso reale, che
OpenProntoSoccorsi propone è la seguente
http://www.cesaregerbino.it/OpenProntoSoccorsi/API/getProntoSoccorsoDeta
ilsByMunicipality.php?municipality=Torino&distance=0 , quindi un array di
risorse corrispondenti ai singoli pronto soccorsi attinenti ad un determinato
comune italiano, ognuno con i suoi dati di dettaglio (indirizzo, coordinate, ecc ..
), e l’informazione del numero e dei tempi di attesa per ogni singolo livello di
urgenza classico dei pronto soccorsi (bianco, verde, giallo e rosso).
Il grosso del lavoro è stato quindi quello di convertire le diverse fonti dato
disomogenee (in formato e contenuto ..), in una struttura dati omogenea,
esponendola come servizio “machine readable” così da renderla consultabile ed
utilizzabile per poi costruire applicazioni fruitrici che rendessero tali
informazioni direttamente utilizzabili dagli utenti finali attraverso diversi canali
e modalità.
Anche nella modalità con cui è stato fatto questo lavoro ci sono degli aspetti
che evidenziano come “non” andrebbero fatte le cose, e questa volta a carico
mio.
A parte i casi di Regione Lazio e Regione Fiuli Venezia Giulia, la maggior parte
dei pronto soccorsi che pubblicano i loro dati lo fanno attraverso pagine web.
In questi casi non era possibile convertire le informazioni nella struttura JSON
di cui sopra, ma era necessario fare dell’ulteriore lavoro.
La strada adottata (e unica adottabile …), è stata quella di fare dello “scraping”
delle pagine web, andando a “leggere” i dati in esse contenuti e convertendoli
nel formato di cui sopra per rendere il tutto omogeneo e trasparente.
L’adozione dello scraping, seppure a buon fine, non è il modo con cui fare
correttamente le cose:
 perchè lo scraping delle pagine web è un’operazione un pò “borderline”, anche
dal punto di vista delle licenze d’uso. E’ pur vero che, nel caso specifico, la
soluzione adottata NON preleva dati dalle pagine per memorizzarle nel
sistema (non avrebbe senso perchè è un dato che cambia continuamente
…..), ma effettua, “live” una lettura del contenuto delle pagine web in quel
preciso istante e lo ripresenta, in formato diverso (e solo per i dati di interesse
… ), all’utente. Potremmo dire che, per certi versi, si sostituisce all’occhio
dell’utente che altrimenti leggerebbe la pagina del sito web (ma dovrebbe
conoscerne la url .. ), dal suo dispositivo di consultazione. In tale contesto
OpenProntoSoccorsi NON crea o genera nemmeno ulteriore traffico di rete o
carico sui sistemi finali
 lo scraping è una soluzione “debole” e che dipende fortemente dal
mantenimento della struttura della pagina web di origine. Se questa cambia,
anche minimanente, questa modifica può impattare sul risultato dello
scraping, e quindi impedire di recuperare le informazioni generando errori sul
sistema
Il risultato finale è sintetizato in un servizio web che risponde alla seguente url
http://www.cesaregerbino.it/OpenProntoSoccorsi/API/getProntoSoccorsoDeta
ilsByMunicipality.php?municipality=Torino&distance=0 , dove è possibile
modificare il nome del comune e in cui il parametro distance indica, se
valorizzato a zero, che la ricerca viene svolta per i pronto soccorsi che si
trovano all’interno del territorio comunale del comune indicato, altrimenti
permette di fare una ricerca nell’intorno del comune stesso, ad
esempio distance=10000 indica una ricerca nell’intorno di 10 km dal comune
indicato.
Apartire dei servizi di OpenProntoSoccorsi, e per rendere fruibili queste
informazioni, ho provato ad implementare alcune applicazioni di esempio e
precisamente:
 Una web application:
http://www.cesaregerbino.it/OpenProntoSoccorsi/WebApp/OpenProntoSocc
orsiForm.php
 Un’applicazione di web mapping:
http://www.cesaregerbino.it/OpenProntoSoccorsi/WebMapping/OpenPronto
Soccorsi.php
 un bot telegram (OpenProntoSoccorsiBot)
Il risultato finale è sintetizato in un servizio web che risponde alla seguente url
http://www.cesaregerbino.it/OpenProntoSoccorsi/API/getProntoSoccorsoDeta
ilsByMunicipality.php?municipality=Torino&distance=0 , dove è possibile
modificare il nome del comune e in cui il parametro distance indica, se
valorizzato a zero, che la ricerca viene svolta per i pronto soccorsi che si
trovano all’interno del territorio comunale del comune indicato, altrimenti
permette di fare una ricerca nell’intorno del comune stesso, ad
esempio distance=10000 indica una ricerca nell’intorno di 10 km dal comune
indicato.
Immettendo il nome del
comune di interesse ed un
raggio di ricerca nel suo
intorno restituisce l’elenco
dei pronto soccorsi con
relative info sui numeri e
tempi di attese per tipologia
(rif. http://www.cesaregerb
ino.it/OpenProntoSoccorsi
/WebApp/OpenProntoSocc
orsiForm.php )
Visualizzare la
distribuzione sul territorio
italiano dei pronto soccorsi
e interrogare
interattivamente i dati del
singolo pronto soccorso
(rif. http://www.cesaregerb
ino.it/OpenProntoSoccorsi
/WebMapping/OpenPronto
Soccorsi.php )
OpenProntoSoccorsiBot:
indicare il nome del comune
di interesse ed un raggio di
ricerca nel suo intorno:
restituisce l’elenco dei pronto
soccorsi con relative info sui
numeri e tempi di attese per
tipologia. E’ anche possibile
indicare la posizione, ed un
raggio di ricerca nel suo
intorno, ed ottenere il
medesimo risultato: in
questo caso il bot permette
anche di avere l’informazione
del percorso per raggiungere
il pronto soccorso di
interesse tra quelli proposti.
L’architettura è la
seguente:
 è ospitato su una
macchina Ubuntu 14.0.4
LTS
 utilizza come database
SQLite3 + Spatialite 4.4.0
 implementa la logica di
business in PHP 5
 si avvale di servizi di
OpenStreetMap, OSM
Buildings, Mapquest e
Google ShortLink
I dati principali utilizzati sono:
 i dati geografici dei comuni italiani
 Per i dati geografici dei comuni italiani la fonte dati è ISTAT:
 https://www.istat.it/it/archivio/124086 (e precisamente lo scarico dei dati in WGS84
UTM32,
quindi http://www.istat.it/storage/cartografia/confini_amministrativi/non_generalizzati/20
16/Limiti_2016_WGS84.zip)
 i dati della localizzazione dei pronto soccorsi italiani
 Per i dati dei pronto soccorsi italiani questo dato non esiste in modalità “open”: alcuni dati
sono su OpenStreetMap ma non tutti quelli che servono
 Una fase preliminare delle attività è quindi stata quella di verificare, puntualmente, se sulla
base dati OSM fosse presente il dato di interesse relativi ai singoli Pronto Soccorsi e, se non
presente, provvedere ad inserire la localizzazione dell’ingresso dei pronto soccorsi
1. Open Pronto Soccorsi: rendere disponibili, ed accessibili, i dati, di numeri e
tempi di attesa per tipologia, dei pronto soccorsi italiani (rif.
https://cesaregerbino.wordpress.com/2018/07/24/open-pronto-soccorsi-
rendere-disponibili-ed-accessibili-i-dati-di-numeri-e-tempi-di-attesa-per-
tipologia-dei-pronto-soccorsi-italiani/)
2. Open Pronto Soccorsi: come è fatto “dentro” (rif.
https://cesaregerbino.wordpress.com/2018/07/24/open-pronto-soccorsi-
come-e-fatto-dentro/)
3. Open Pronto Soccorsi: aggiornamento con nuovi dati (rif.
https://cesaregerbino.wordpress.com/2018/12/28/open-pronto-soccorsi-
aggiornamento-con-nuovi-dati/)
1. Mail: cesare.gerbino@gmail.com
2. Skype: cesaregerbino
3. Twitter: @CesareGerbino

More Related Content

Similar to Open Pronto Soccorsi

Open data l'esperienza del Comune di Firenze
Open data  l'esperienza del Comune di FirenzeOpen data  l'esperienza del Comune di Firenze
Open data l'esperienza del Comune di FirenzeComune di Bologna
 
Open Data & Data Visualization: dalle licenze ai grafici | Bologna, 16 giugno...
Open Data & Data Visualization: dalle licenze ai grafici | Bologna, 16 giugno...Open Data & Data Visualization: dalle licenze ai grafici | Bologna, 16 giugno...
Open Data & Data Visualization: dalle licenze ai grafici | Bologna, 16 giugno...Dataninja
 
Dandelion API e Atoka: due strumenti utili al Data Journalism
Dandelion API e Atoka: due strumenti utili al Data JournalismDandelion API e Atoka: due strumenti utili al Data Journalism
Dandelion API e Atoka: due strumenti utili al Data JournalismSpazioDati
 
Linked Open Data di Vittorio Di Tomaso
Linked Open Data di Vittorio Di TomasoLinked Open Data di Vittorio Di Tomaso
Linked Open Data di Vittorio Di TomasoCELI
 
Open data Firenze - opendata.comune.fi.it
Open data Firenze - opendata.comune.fi.itOpen data Firenze - opendata.comune.fi.it
Open data Firenze - opendata.comune.fi.itDatiGovIT
 
La Semantica e il Web dei Dati
La Semantica e il Web dei DatiLa Semantica e il Web dei Dati
La Semantica e il Web dei DatiIrene Celino
 
Esperienza open data della provincia di Roma
Esperienza open data della provincia di RomaEsperienza open data della provincia di Roma
Esperienza open data della provincia di RomaDatiGovIT
 
Workshop a #ijf15 su open data e software libero
Workshop a #ijf15 su open data e software liberoWorkshop a #ijf15 su open data e software libero
Workshop a #ijf15 su open data e software liberosonia montegiove
 
Software open source per l'uso di open data
Software open source per l'uso di open dataSoftware open source per l'uso di open data
Software open source per l'uso di open dataLibreItalia
 
Strumenti open source per il giornalismo: come usare gli open data
 Strumenti open source per il giornalismo: come usare gli open data  Strumenti open source per il giornalismo: come usare gli open data
Strumenti open source per il giornalismo: come usare gli open data Alfredo Parisi
 
Il fenomeno open data - Indicazioni e norme per un mondo di dati aperti
Il fenomeno open data - Indicazioni e norme per un mondo di dati apertiIl fenomeno open data - Indicazioni e norme per un mondo di dati aperti
Il fenomeno open data - Indicazioni e norme per un mondo di dati apertiAmmLibera AL
 
Gis strumento di lavoro alla base della cartografia e dell’analisi
Gis  strumento di lavoro alla base della cartografia e dell’analisiGis  strumento di lavoro alla base della cartografia e dell’analisi
Gis strumento di lavoro alla base della cartografia e dell’analisiCity Planner
 
Gis strumento di lavoro alla base della cartografia e dell’analisi
Gis  strumento di lavoro alla base della cartografia e dell’analisiGis  strumento di lavoro alla base della cartografia e dell’analisi
Gis strumento di lavoro alla base della cartografia e dell’analisiCity Planner
 
Open Data 4 Startups
Open Data 4 StartupsOpen Data 4 Startups
Open Data 4 Startupsmzaglio
 
Open Data fra Potenzialità e Retorica
Open Data fra Potenzialità e RetoricaOpen Data fra Potenzialità e Retorica
Open Data fra Potenzialità e RetoricaLudovico Ristori
 
GIS - Gli strumenti online in ausilio all'attività professionale
GIS - Gli strumenti online in ausilio all'attività professionale GIS - Gli strumenti online in ausilio all'attività professionale
GIS - Gli strumenti online in ausilio all'attività professionale Nino Argentati
 

Similar to Open Pronto Soccorsi (20)

R&D retis
R&D retisR&D retis
R&D retis
 
Open data l'esperienza del Comune di Firenze
Open data  l'esperienza del Comune di FirenzeOpen data  l'esperienza del Comune di Firenze
Open data l'esperienza del Comune di Firenze
 
geoSDI : dal Gis allo Scenario Web Shared, di Dimitri Dello Buono
geoSDI : dal Gis allo Scenario Web Shared, di Dimitri Dello BuonogeoSDI : dal Gis allo Scenario Web Shared, di Dimitri Dello Buono
geoSDI : dal Gis allo Scenario Web Shared, di Dimitri Dello Buono
 
Hospital2Go
Hospital2GoHospital2Go
Hospital2Go
 
Open Data & Data Visualization: dalle licenze ai grafici | Bologna, 16 giugno...
Open Data & Data Visualization: dalle licenze ai grafici | Bologna, 16 giugno...Open Data & Data Visualization: dalle licenze ai grafici | Bologna, 16 giugno...
Open Data & Data Visualization: dalle licenze ai grafici | Bologna, 16 giugno...
 
Dandelion API e Atoka: due strumenti utili al Data Journalism
Dandelion API e Atoka: due strumenti utili al Data JournalismDandelion API e Atoka: due strumenti utili al Data Journalism
Dandelion API e Atoka: due strumenti utili al Data Journalism
 
Linked Open Data di Vittorio Di Tomaso
Linked Open Data di Vittorio Di TomasoLinked Open Data di Vittorio Di Tomaso
Linked Open Data di Vittorio Di Tomaso
 
Open data Firenze - opendata.comune.fi.it
Open data Firenze - opendata.comune.fi.itOpen data Firenze - opendata.comune.fi.it
Open data Firenze - opendata.comune.fi.it
 
Relazione
RelazioneRelazione
Relazione
 
La Semantica e il Web dei Dati
La Semantica e il Web dei DatiLa Semantica e il Web dei Dati
La Semantica e il Web dei Dati
 
Esperienza open data della provincia di Roma
Esperienza open data della provincia di RomaEsperienza open data della provincia di Roma
Esperienza open data della provincia di Roma
 
Workshop a #ijf15 su open data e software libero
Workshop a #ijf15 su open data e software liberoWorkshop a #ijf15 su open data e software libero
Workshop a #ijf15 su open data e software libero
 
Software open source per l'uso di open data
Software open source per l'uso di open dataSoftware open source per l'uso di open data
Software open source per l'uso di open data
 
Strumenti open source per il giornalismo: come usare gli open data
 Strumenti open source per il giornalismo: come usare gli open data  Strumenti open source per il giornalismo: come usare gli open data
Strumenti open source per il giornalismo: come usare gli open data
 
Il fenomeno open data - Indicazioni e norme per un mondo di dati aperti
Il fenomeno open data - Indicazioni e norme per un mondo di dati apertiIl fenomeno open data - Indicazioni e norme per un mondo di dati aperti
Il fenomeno open data - Indicazioni e norme per un mondo di dati aperti
 
Gis strumento di lavoro alla base della cartografia e dell’analisi
Gis  strumento di lavoro alla base della cartografia e dell’analisiGis  strumento di lavoro alla base della cartografia e dell’analisi
Gis strumento di lavoro alla base della cartografia e dell’analisi
 
Gis strumento di lavoro alla base della cartografia e dell’analisi
Gis  strumento di lavoro alla base della cartografia e dell’analisiGis  strumento di lavoro alla base della cartografia e dell’analisi
Gis strumento di lavoro alla base della cartografia e dell’analisi
 
Open Data 4 Startups
Open Data 4 StartupsOpen Data 4 Startups
Open Data 4 Startups
 
Open Data fra Potenzialità e Retorica
Open Data fra Potenzialità e RetoricaOpen Data fra Potenzialità e Retorica
Open Data fra Potenzialità e Retorica
 
GIS - Gli strumenti online in ausilio all'attività professionale
GIS - Gli strumenti online in ausilio all'attività professionale GIS - Gli strumenti online in ausilio all'attività professionale
GIS - Gli strumenti online in ausilio all'attività professionale
 

Open Pronto Soccorsi

  • 2. In occasione di doversi recare presso un Pronto Soccorso (ovviamente per cose non gravi, per quelle vale sempre la regola di contattare 112 / 118 …), sulla base di quali informazioni prendiamo la decisione di dove andare? Abbiamo delle informazioni disponibili, certe ed aggiornate, che ci possano guidare nella decisione? Oppure ci affidiamo all’abitudine (ci “fidiamo” dell’ospedale che conosciamo meglio, siamo sempre andati in quello, ecc … ), o, peggio andiamo a caso?
  • 3. Rendere disponibili, ed accessibili, i dati, di numeri e tempi di attesa per tipologia, dei pronto soccorsi italiani Dare la disponibilità di tali informazioni in modo aperto, standardizzato e «machine readable»
  • 4. Non è una cosa del tutto innovativa: in rete ci sono diverse applicazioni (dai siti web alle app per smartphone), che offrono queste informazioni, ma per lo più per zone territoriali limitate o per specifiche Aziende Sanitarie Locali. Open Pronto Soccorsi prova a farlo sull’intero territorio nazionale usando i dati disponibili, siano essi open data (o open services …), o sfruttando i siti web che pubblicano queste informazioni andandoli a “leggere” in tempo reale, in modo del tutto analogo a come farebbe un utente che acceda al sito stesso Open Pronto Soccorsi, per quanto funzionante in tutte le sue parti, è comunque da considerarsi una sorta di “proof of concept” ed esperienza prototipale e, al tempo stesso, anche un esempio di come non si fanno alcune cose (mi spiegherò più avanti …).
  • 5.
  • 6. Open Pronto Soccorsi usa i dati disponibili sull’intero territorio nazionale, siano essi open data o sfruttando i dati pubblicati tramite i siti web: questi dati ci sono? quanti sono? sono uniformemente distribuiti?
  • 7. I dati sono distribuiti a macchia di leopardo sul territorio nazionale (242 Pronto soccorsi censiti …), quindi NON in modo uniforme. Da qui un alcune domande:  esiste un qualche dispositivo di legge che vincolerebbe (uso il condizionale …), i proprietari di questi dati a renderli pubblicamente disponibili (es l’art. 52 CAD)  Se no … perché?  Se si …. non è stato uniformemente rispettato e questo è il primo esempio di come “non” si dovrebbero fare le cose
  • 8. Esistono anche dati disponibili come «opendata», nel senso di esposti tramite un portale open data in un formato machine readable, documentati e dotati di opportuna licenza:  Regione Lazio: http://dati.lazio.it/catalog/it/dataset/pronto-soccorso-accessi-in- tempo-reale Nella realtà, volendo, anche il Friuli Venezia Giulia esporrebbe questi dati in un formato «machine readable», ma non lo fa in modo ufficiale attraverso un portale open data.  Regione Fiuli Venezia Giulia: https://servizionline.sanita.fvg.it/psonline/#/index La maggior parte dei dati è “contenuta” all’interno di pagine web dei diversi siti delle aziende ospedaliere locali o degli ospedali (non sono riuscito a recuperare informazioni relative a quanti sono i comuni che hanno almeno un pronto soccorso e nemmeno quanti sono in totale di pronto soccorsi in Italia)
  • 9.
  • 10. Regione Lazio è sicuramente un esempio virtuoso in quanto è l’unico ente che espone questi dati in modo ufficiale attraverso il suo portale degli open data, http://dati.lazio.it/catalog/it/dataset/pronto-soccorso-accessi-in-tempo- reale (con tanto di metadati e licenza d’uso), e lo fa anche poi usando un portale web usando i medesimi servizi (https://www.regione.lazio.it/accessiprontosoccorso/?ORDINAMENTO=SA). Regione Friuli Venezia Giulia, nel suo formato dati, offre anche le coordinate spaziali di localizzazione del pronto soccorsi quindi un’informazione sicuramente di maggiore qualità per chi debba poi riusarla. Credo che questo derivi dal fatto che la Regione Friuli Venezia Giulia ha reso open data i propri numeri civici georiferiti (rif. http://irdat.regione.fvg.it/consultatore-dati- ambientali-territoriali/chooseOperation.do ) che poi, a loro volta, sono stati importati in OpenStreetMap (https://wiki.openstreetmap.org/wiki/Friuli- Venezia_Giulia/Import_Civici_FVG)
  • 11. I due esempi virtuosi tuttavia NON offrono le informazioni con le medesima struttura dati, per quanto ampiamente simili (se vogliamo altro esempio di come “non” si dovrebbero fare le cose …) Partendo quindi da questi due casi, ognuno virtuoso per alcuni aspetti, la prima cosa che ho cercato di fare e provare a rendere omogenea la struttura dati con la quale distribuire questa informazione. La struttura, in formato JSON, valorizzata per un caso reale, che OpenProntoSoccorsi propone è la seguente http://www.cesaregerbino.it/OpenProntoSoccorsi/API/getProntoSoccorsoDeta ilsByMunicipality.php?municipality=Torino&distance=0 , quindi un array di risorse corrispondenti ai singoli pronto soccorsi attinenti ad un determinato comune italiano, ognuno con i suoi dati di dettaglio (indirizzo, coordinate, ecc .. ), e l’informazione del numero e dei tempi di attesa per ogni singolo livello di urgenza classico dei pronto soccorsi (bianco, verde, giallo e rosso).
  • 12.
  • 13. Il grosso del lavoro è stato quindi quello di convertire le diverse fonti dato disomogenee (in formato e contenuto ..), in una struttura dati omogenea, esponendola come servizio “machine readable” così da renderla consultabile ed utilizzabile per poi costruire applicazioni fruitrici che rendessero tali informazioni direttamente utilizzabili dagli utenti finali attraverso diversi canali e modalità.
  • 14. Anche nella modalità con cui è stato fatto questo lavoro ci sono degli aspetti che evidenziano come “non” andrebbero fatte le cose, e questa volta a carico mio. A parte i casi di Regione Lazio e Regione Fiuli Venezia Giulia, la maggior parte dei pronto soccorsi che pubblicano i loro dati lo fanno attraverso pagine web. In questi casi non era possibile convertire le informazioni nella struttura JSON di cui sopra, ma era necessario fare dell’ulteriore lavoro. La strada adottata (e unica adottabile …), è stata quella di fare dello “scraping” delle pagine web, andando a “leggere” i dati in esse contenuti e convertendoli nel formato di cui sopra per rendere il tutto omogeneo e trasparente.
  • 15. L’adozione dello scraping, seppure a buon fine, non è il modo con cui fare correttamente le cose:  perchè lo scraping delle pagine web è un’operazione un pò “borderline”, anche dal punto di vista delle licenze d’uso. E’ pur vero che, nel caso specifico, la soluzione adottata NON preleva dati dalle pagine per memorizzarle nel sistema (non avrebbe senso perchè è un dato che cambia continuamente …..), ma effettua, “live” una lettura del contenuto delle pagine web in quel preciso istante e lo ripresenta, in formato diverso (e solo per i dati di interesse … ), all’utente. Potremmo dire che, per certi versi, si sostituisce all’occhio dell’utente che altrimenti leggerebbe la pagina del sito web (ma dovrebbe conoscerne la url .. ), dal suo dispositivo di consultazione. In tale contesto OpenProntoSoccorsi NON crea o genera nemmeno ulteriore traffico di rete o carico sui sistemi finali
  • 16.  lo scraping è una soluzione “debole” e che dipende fortemente dal mantenimento della struttura della pagina web di origine. Se questa cambia, anche minimanente, questa modifica può impattare sul risultato dello scraping, e quindi impedire di recuperare le informazioni generando errori sul sistema
  • 17. Il risultato finale è sintetizato in un servizio web che risponde alla seguente url http://www.cesaregerbino.it/OpenProntoSoccorsi/API/getProntoSoccorsoDeta ilsByMunicipality.php?municipality=Torino&distance=0 , dove è possibile modificare il nome del comune e in cui il parametro distance indica, se valorizzato a zero, che la ricerca viene svolta per i pronto soccorsi che si trovano all’interno del territorio comunale del comune indicato, altrimenti permette di fare una ricerca nell’intorno del comune stesso, ad esempio distance=10000 indica una ricerca nell’intorno di 10 km dal comune indicato.
  • 18.
  • 19. Apartire dei servizi di OpenProntoSoccorsi, e per rendere fruibili queste informazioni, ho provato ad implementare alcune applicazioni di esempio e precisamente:  Una web application: http://www.cesaregerbino.it/OpenProntoSoccorsi/WebApp/OpenProntoSocc orsiForm.php  Un’applicazione di web mapping: http://www.cesaregerbino.it/OpenProntoSoccorsi/WebMapping/OpenPronto Soccorsi.php  un bot telegram (OpenProntoSoccorsiBot)
  • 20. Il risultato finale è sintetizato in un servizio web che risponde alla seguente url http://www.cesaregerbino.it/OpenProntoSoccorsi/API/getProntoSoccorsoDeta ilsByMunicipality.php?municipality=Torino&distance=0 , dove è possibile modificare il nome del comune e in cui il parametro distance indica, se valorizzato a zero, che la ricerca viene svolta per i pronto soccorsi che si trovano all’interno del territorio comunale del comune indicato, altrimenti permette di fare una ricerca nell’intorno del comune stesso, ad esempio distance=10000 indica una ricerca nell’intorno di 10 km dal comune indicato.
  • 21. Immettendo il nome del comune di interesse ed un raggio di ricerca nel suo intorno restituisce l’elenco dei pronto soccorsi con relative info sui numeri e tempi di attese per tipologia (rif. http://www.cesaregerb ino.it/OpenProntoSoccorsi /WebApp/OpenProntoSocc orsiForm.php )
  • 22. Visualizzare la distribuzione sul territorio italiano dei pronto soccorsi e interrogare interattivamente i dati del singolo pronto soccorso (rif. http://www.cesaregerb ino.it/OpenProntoSoccorsi /WebMapping/OpenPronto Soccorsi.php )
  • 23. OpenProntoSoccorsiBot: indicare il nome del comune di interesse ed un raggio di ricerca nel suo intorno: restituisce l’elenco dei pronto soccorsi con relative info sui numeri e tempi di attese per tipologia. E’ anche possibile indicare la posizione, ed un raggio di ricerca nel suo intorno, ed ottenere il medesimo risultato: in questo caso il bot permette anche di avere l’informazione del percorso per raggiungere il pronto soccorso di interesse tra quelli proposti.
  • 24.
  • 25. L’architettura è la seguente:  è ospitato su una macchina Ubuntu 14.0.4 LTS  utilizza come database SQLite3 + Spatialite 4.4.0  implementa la logica di business in PHP 5  si avvale di servizi di OpenStreetMap, OSM Buildings, Mapquest e Google ShortLink
  • 26. I dati principali utilizzati sono:  i dati geografici dei comuni italiani  Per i dati geografici dei comuni italiani la fonte dati è ISTAT:  https://www.istat.it/it/archivio/124086 (e precisamente lo scarico dei dati in WGS84 UTM32, quindi http://www.istat.it/storage/cartografia/confini_amministrativi/non_generalizzati/20 16/Limiti_2016_WGS84.zip)  i dati della localizzazione dei pronto soccorsi italiani  Per i dati dei pronto soccorsi italiani questo dato non esiste in modalità “open”: alcuni dati sono su OpenStreetMap ma non tutti quelli che servono  Una fase preliminare delle attività è quindi stata quella di verificare, puntualmente, se sulla base dati OSM fosse presente il dato di interesse relativi ai singoli Pronto Soccorsi e, se non presente, provvedere ad inserire la localizzazione dell’ingresso dei pronto soccorsi
  • 27. 1. Open Pronto Soccorsi: rendere disponibili, ed accessibili, i dati, di numeri e tempi di attesa per tipologia, dei pronto soccorsi italiani (rif. https://cesaregerbino.wordpress.com/2018/07/24/open-pronto-soccorsi- rendere-disponibili-ed-accessibili-i-dati-di-numeri-e-tempi-di-attesa-per- tipologia-dei-pronto-soccorsi-italiani/) 2. Open Pronto Soccorsi: come è fatto “dentro” (rif. https://cesaregerbino.wordpress.com/2018/07/24/open-pronto-soccorsi- come-e-fatto-dentro/) 3. Open Pronto Soccorsi: aggiornamento con nuovi dati (rif. https://cesaregerbino.wordpress.com/2018/12/28/open-pronto-soccorsi- aggiornamento-con-nuovi-dati/)
  • 28. 1. Mail: cesare.gerbino@gmail.com 2. Skype: cesaregerbino 3. Twitter: @CesareGerbino