—————————————————————————————————————————————————————————————
Master in Metodologie e Tecnologie per lo Sviluppo di
Infrastrutture Digitali
Progettazione e realizzazione di un'infrastruttura dati per un
dispositivo indossabile per la gestione di Personal Health Records
Relatore:
Dott. Nicholas Caporusso
Correlatore:
Dott. Gianluca Lattanzi
Formando
Angelo Onofrio
ANNO ACCADEMICO 2013-2014
INDICE
1.0 INTRODUZIONE.......................................................................................................................3
1.1 Dispositivi indossabili e Healthcare.........................................................................................3
1.2 I sistemi informativi e i modelli di dati..................................................................................5
2.0 MARKETING MANAGEMENT E BUSINESS MODEL CANVAS.................................9
2.1 I concetti chiave del management............................................................................................9
2.2 Start-up e Business Model Canvas..........................................................................................15
2.3 Il caso di INTACT ICE.............................................................................................................20
3.0 PROGETTAZIONE E MODELLAZIONE DATI PER ICE..............................................30
3.1 NFC: interazione chip-dispositivo e connessione al profilo.............................................30
3.2 I Database: modello di dati relazionale e modello orientato a documenti....................31
3.3 Prototipazione della piattaforma web di ICE......................................................................36
4.0 CONCLUSIONI.........................................................................................................................49
BIBLIOGRAFIA E SITOGRAFIA.................................................................................................50
2
1.0 INTRODUZIONE
1.1 Dispositivi indossabili e Healthcare
L'avanzamento tecnologico, lo sviluppo di tecnologie sempre più complesse, la
miniaturizzazione dei circuiti, lo sviluppo delle reti e di Internet, uniti a fattori
commerciali come l'abbattimento dei costi, la produzione in scala, l'iniziativa privata e la
pubblicità, hanno portato ad un sempre crescente impiego di macchine e dispositivi
elettronici in tutti gli ambiti della società. Inizialmente, i calcolatori assolvevano funzioni
semplici, ricorrenti ed erano tenuti in locali adibiti a contenerli, inoltre le poche
macchine erano condivise tra più operatori. Vista la crescente utilità dei grandi
calcolatori, anche detti mainframe , e il nascere di protocolli di comunicazione tra le
macchine, si sono diffuse postazioni in grado di interagire con i computer più potenti,
secondo l'architettura di tipo client-server.
La potenza di calcolo dei computer si incrementa nel tempo seguendo la regola empirica
detta prima “legge di Moore”(1965), cofondatore della Intel, che recita <<Le prestazioni
dei processori, e il numero di transistor ad esso relativo, raddoppiano ogni 18 mesi.>>.
Questo sviluppo porta alla diffusione dei Personal Computer (PC), postazioni fisse
monoutente che vengono impiegate nei più vari ambiti e si diffondono in ambito
domestico. L' ulteriore sviluppo delle reti, oltre all'abbassamento di costi e delle
tecnologie di miniaturizzazione, portano allo sviluppo dei telefoni cellulari, e in seguito,
degli smartphone. Al giorno d'oggi, i dispositivi mobili hanno caratteristiche del tutto
simili a quelle del laptop da scrivania, con dimensioni ridotte, e sempre connessi in rete.
Anche accessori come orologi, bracciali, occhiali stanno diventando dispositivi high-tech
che non solo connettono l'individuo con Internet ed i social network, ma lo
accompagnano in tutte le sue attività. Questo dettaglio non è passato inosservato a Bob
Brotchie, paramedico inglese che dopo aver consultato uno studio di una compagnia
telefonica, in cui era riportato come solo il 25% del campione di persone intervistato
porta con se documenti di riconoscimento, e a seguito delle sue esperienze sul campo, ha
avviato nel 2005 il programma ICE (In Case of Emergency), volto a migliorare il primo
soccorso e l'identificazione delle persone vittime di incidenti mediante buone prassi. Il
metodo consiste nel contrassegnare i contatti di alcuni cari più prossimi presenti nella
3
rubrica con la sigla “ICE”. In caso di emergenza medica questa accortezza facilità il
riconoscimento, consente di avvisare tempestivamente i propri cari, e permette di
aggiornare il paramedico su eventuali informazioni mediche rilevanti relative al paziente,
nel caso in cui quest'ultimo non sia in grado di fornirle. Questa pratica, sebbene utile e
sensata, tanto da essere implementata di default da alcune case produttrici di cellulari e
tradotta in alcune applicazioni per smartphone[1], presenta diverse criticità, tra cui:
-In caso di emergenza, il soccorritore deve prestare attenzione all'infortunato, non al
contesto;
-In caso di trauma fisico, incidente stradale, cadute, il cellulare può essere inutilizzabile o
comunque può esser bloccato/scarico;
-Il contatto ICE può non essere raggiungibile;
-Il mero numero di cellulare di un contatto, per quanto vicino all'infortunato possa
essere, non da informazioni esaustive sul proprio stato di salute;
Queste obiezioni hanno generato più di una controversia sull'effettiva utilità di questa
pratica[2], ma hanno anche stimolato la ricerca su soluzioni alternative più efficaci ma
altrettanto semplici. Una di queste, attualmente in fase di studio avanzato da INTACT
Healthcare, è il braccialetto ipoallergenico dotato di Qrcode e chip NFC (Near Field
Communication) ICE. Questo prodotto supera molti limiti del protocollo ICE originario
, pur mantenendo la stessa semplicità di impiego, ampliandone le potenzialità e la
sicurezza. In particolare, il braccialetto non contiene parti meccaniche fragili, non
necessità di batteria, corrente, o dello smartphone del paziente e memorizza oltre ai
numeri ICE, anche altre informazioni rilevanti del paziente in caso di soccorso. I dati
sono recuperati dal braccialetto grazie ad un semplice lettore Qrcode o grazie al tag
NFC , che restituisce l'URL a cui è associato il profilo dell'utente da soccorrere.
Figura 1. Schema di impiego del braccialetto ICE
4
1.2 I sistemi informativi e i modelli di dati
Un sistema informativo (SI) può essere definito come l’insieme dei flussi di
informazione gestiti all’interno di una organizzazione. Pertanto si tratta di un
componente (sotto-sistema) di una organizzazione che gestisce (acquisisce, elabora,
conserva, produce) le informazioni di interesse (cioè utilizzate per il perseguimento degli
scopi
dell’organizzazione).
Ogni
organizzazione
ha
un
sistema
informativo,
eventualmente non esplicitato nella struttura; quasi sempre, il sistema informativo è di
supporto ad altri sotto-sistemi, e va quindi studiato nel contesto in cui è inserito; il
sistema informativo, è di solito suddiviso in sotto-sistemi (in modo gerarchico o
decentrato), più o meno fortemente integrati. Un sistema informativo può essere
automatizzato in parte o del tutto con le moderne tecnologie dell’informazione, e viene
quindi detto sistema informatico. I componenti di un sistema informativo automatizzato
sono essenzialmente i processi, la base dati ed il DBMS.
Un processo è un insieme di attività (sequenze di decisioni e azioni) che l’organizzazione
svolge per realizzare un risultato definito e misurabile, che trasferisce valore al fruitore del
prodotto
o
servizio,
che
contribuisce
al
raggiungimento
della
missione
dell'organizzazione. Da un punto di vista informatico, un processo è un programma,
scritto in un opportuno linguaggio, che accede alla base di dati per consultarla e
aggiornarla.
La base di dati rappresenta una raccolta di informazioni sulle entità del mondo reale (ad
es. paziente, personale medico, gruppo sanguigno . . . ) che devono essere gestite. I dati, in
accordo con la legislatura italiana[3}, e viste le finalità di questo lavoro, possono essere
classificati in:
-”dato personale”, qualunque informazione relativa a persona fisica, identificata o
identificabile, anche indirettamente, mediante riferimento a qualsiasi altra informazione,
ivi compreso un numero di identificazione personale;
-”dato identificativi”, i dati personali che permettono l'identificazione diretta
dell'interessato;
-”dati sensibili”, i dati personali idonei a rivelare l'origine razziale ed etnica, le
convinzioni religiose, filosofiche o di altro genere, le opinioni politiche, l'adesione a
partiti, sindacati, associazioni od organizzazioni a carattere religioso, filosofico, politico o
5
sindacale, nonché i dati personali idonei a rivelare lo stato di salute e la vita sessuale;
“dati giudiziari”, i dati personali idonei a rivelare provvedimenti di cui all'articolo 3,
comma 1, del d.P.R. 14 novembre 2002, n. 313, in materia di casellario giudiziale, di
anagrafe delle sanzioni amministrative dipendenti da reato e dei relativi carichi pendenti,
o la qualità di imputato o di indagato ai sensi degli articoli 60 e 61 del codice di
procedura penale;
Le operazioni che è possibile eseguire sui dati sono le seguenti:
• Creazione di un nuovo dato (Create);
• Lettura di un dato esistente (Read) ;
• Modifica di un dato esistente (Update);
• Cancellazione di un dato (Delete);
Per effettuare delle interrogazioni su una base di dati è opportuno disporre di opportuni
linguaggi.
Infine, Il Data Base Management System (DBMS) è un sistema software che standardizza
l’accesso dei processi alla base di dati offrendo delle interfacce generalizzate che
permettono di gestire collezioni di dati che sono più grandi della memoria centrale che li
ospita, persistenti (ovvero che continuano ad esistere anche dopo la fine dell'esecuzione
del programma che usa le informazioni) e condivise tra più applicazioni. Tutto ciò deve
avvenire garantendo affidabilità e sicurezza dell'accesso ai dati.
Il DBMS può implementare una sequenza di operazioni sulla base di dati, detta
transazione, che può concludersi con un successo, e quindi con un nuovo stato della
base di dati stessa, oppure, in caso di insuccesso, con un ritorno allo stato precedente
l'inizio delle operazioni (istruzione di rollback).
Le transazioni devono godere delle cosiddette proprietà ACID[4], volte a garantire:
• Atomicità;
• Consistenza;
• Isolamento;
• Durabilità;
Una transazione atomica è una transazione indivisibile nella sua esecuzione e la sua
esecuzione deve essere o totale o nulla, non sono ammesse esecuzioni parziali. La
consistenza garantisce che il database si trovi in uno stato di coerenza sia all'inizio della
transazione sia al termine delle operazioni: non devono verificarsi contraddizioni o
6
violazioni dei vincoli di integrità.
Per rispettare l'Isolamento ogni transazione deve essere eseguita in modo isolato e
indipendente dalle altre transazioni, l'eventuale fallimento di una transazione non deve
interferire con le altre in esecuzione. Infine, la Durabilità, detta anche Persistenza, si
riferisce al fatto che una volta che una transazione abbia richiesto un commit work, i
cambiamenti apportati non dovranno essere più persi. Per evitare che nel lasso di tempo
fra il momento in cui la base di dati si impegna a scrivere le modifiche e quello in cui li
scrive effettivamente si verifichino perdite di dati dovuti a malfunzionamenti, vengono
tenuti dei registri di log dove sono annotate tutte le operazioni sul DB.
Le interrogazioni alla base di dati vengono anche dette query, e sono raggruppate nelle
transazioni.
Nell'ambito sanitario/healthcare, la finalità di un sistema informativo è la gestione di
informazioni utili alla misura ed alla valutazione dei processi gestionali e clinici al fine di
ottimizzare le risorse impiegate, di affiancare il paziente nel conseguimento del suo
benessere psico-fisico in genere, e infine di avvicinare, anche se solo virtualmente,
utente/paziente e medico non solo nel follow-up terapeutico, ma anche in altri periodi,
come le attività quotidiane, o le situazioni di emergenza.
Un sistema informativo basato su database, anche detta infrastruttura dati, consente di
ottenere una gestione efficiente dei dati, in quanto si passa da una mera collezione di
numeri o parole, ad un archivio organico contenente dati ad alto contenuto informativo.
Le informazioni devono però essere
disposte in maniera comprensibile tanto per
l'operatore, quanto per l'elaboratore/software. Questo scopo è raggiunto utilizzando i
modelli di dati. Un modello di dati è un insieme di concetti utilizzati per organizzare i
dati di interesse e descriverne la struttura in modo che essa risulti comprensibile ad un
elaboratore.
Esistono diversi modelli logici, sicuramente il più diffuso è quello relazionale, in cui i
dati sono rappresentati come relazioni e manipolati con gli operatori dell'algebra
relazionale, da cui appunto il nome. E' implementato nei RDBMS, di cui esistono diverse
soluzioni, sia commerciali che open-source. Altri modelli sono quello gerarchico, basato
sull'utilizzo di strutture ad albero, ovvero di gerarchie, ad oggi ancora molto utilizzato,
quello reticolare, basato sull'uso di grafi, sviluppato successivamente al modello
gerarchico e infine il modello ad oggetti o a documenti, sviluppato come evoluzione del
7
modello relazionale negli anni '80, che estende alla basi di dati il paradigma di
programmazione ad oggetti. Sebbene, come precedentemente indicato, il modello
relazionale è il più diffuso per i più disparati scopi, ogni modello ha delle proprie
peculiarità che lo rendono più indicato in alcuni specifici casi d'uso. Per i fini di questo
lavoro, si è vagliato l'utilizzo di database basati su modelli relazionale e a documento, che
verranno approfonditi successivamente.
8
2.0 MARKETING MANAGEMENT E BUSINESS MODEL CANVAS
2.1 I concetti chiave del management
Il marketing consiste nell'individuazione e nel soddisfacimento di bisogni umani e
sociali. Una definizione più “stringata” è “il soddisfacimento profittevole dei bisogni”[5].
Può ancora esser definito come “l'insieme delle attività, delle istituzioni e processi volti
alla creazione, alla comunicazione e allo scambio di offerte che hanno valore per
acquirenti, clienti, partner e la società in generale.”[6]
Nel marketing si opera su dieci tipi principali di entità: beni, servizi, eventi, esperienze,
persone, luoghi, proprietà, organizzazioni, idee. I beni fisici, insieme ad i servizi,
costituiscono il nucleo principale delle attività di produzione e marketing nella maggior
parte dei Paesi. Ogni anno le imprese commercializzano miliardi di prodotti, o
producono servizi, tanto che il 70% dell'economia statunitense è costituita attività di
compagnie aeree, addetti alla manutenzione, consulenze, operatori bancari, medici,
produttori di software, medici. Molte offerte di mercato mescolano beni e servizi, come
avviene per esempio nei fast-food. I marketing manager promuovono eventi che si
svolgono con cadenza regolare, come grandi fiere, manifestazioni artistiche o aziendali.
Eventi mondiali come Olimpiadi o Mondiali sono caratterizzati da un'aggressiva attività
di promozione, rivolta sia al pubblico che alle imprese.
Le categorie di persone più in vista (artisti, calciatori, politici, modelle, personaggi
televisivi), i luoghi e le mete turistiche (città, residenze, spiagge, montagne), competono
tra loro per attirare turisti, spettatori, fabbriche, promuovendo e curando la propria
immagine al pubblico, fino a diventare un vero e proprio “marchio” o lanciare delle
mode adottate dalla massa. A difesa di queste iniziative, esistono i diritti di proprietà,
ovvero la potestà attestata che spetta al titolare di un bene fisico o intangibile di disporre
dello stesso. Le organizzazioni operano per costruire un immagine forte, positiva e
distinta di se stesse, e utilizzano il marketing per migliorare la propria immagine e
competere nella ricerca di fondi. Punto chiave della promozione di se stessi sono le
informazioni, ovvero ciò che in sostanza circola su libri, riviste, media relativamente
all'organizzazione o al luogo, e che è un mezzo di visibilità e aggressione del potenziale
mercato, ovvero raggruppamenti più o meno ampi ed omogenei di clienti. I venditori
9
costituiscono il settore e gli acquirenti rappresentano il mercato. Il concetto di mercato
può essere riferito a vari ambiti, ad esempio considerando gruppi di bisogni, di prodotti,
oppure localizzazioni geografiche, di popolazione, di settori economici. A sua volta, è
possibile dividere il mercato in settori più piccoli, definiti segmenti, che identificano e
profilano gruppi distinti di acquirenti che potrebbero preferire o richiedere combinazioni
di prodotti e servizi differenti, basandosi sulle differenze demografiche, psicografiche e
comportamentali.
Infine ogni offerta nasce da un'idea. Si può dire che prodotti e servizi sono una
piattaforma per la fornitura di idee o benefici, siano essi tangibili, o legati alla
promozione di ideali o comportamenti ben accettati dalla società e che ne incrementano
il benessere.
Per comprendere la funzione del marketing è necessario familiarizzare con alcuni
concetti, come quello di bisogno, ovvero le necessità di base di un essere umano, sia di
natura fisica che psicologica. Il bisogno diventa desiderio quando è rivolto verso oggetti
in grado di svolgere funzioni che possa appagare il bisogno stesso. Ad esempio, uno
statunitense e un italiano hanno lo stesso bisogno, mangiare, ma possono desiderare
pietanze diverse, influenzate dall'ambiente, dalla cultura, dalla società e dalle politiche di
offerta.
La domanda è il desiderio di specifiche prodotti o marche, accompagnato dalle capacità
di pagarle. E' importante capire non solo quante persone desiderano un prodotto, ma
anche chi è disposto a comprarlo. Il marketing non crea bisogni, essi sono già
preesistenti. Ci sono casi in cui i clienti non sono pienamente consci dei propri bisogni,
o non riescono ad esprimerli in maniera compiuta. Rispondendo solo ai bisogni
effettivamente espressi si corre il rischio di trascurare le reali esigenze di un cliente, talora
latenti o emergenti.
Le imprese rispondono ai bisogni dei clienti definendo una proposta di valore (value
proposition), ossia un insieme di benefici atto a soddisfare tali bisogni, coerente con i
prezzi e costi. La proposta di valore, di per sé intangibile, viene resa fisica tramite un
offerta che può esser una combinazione di prodotti, servizi e informazioni che il cliente
collega a funzioni, simboli, emozioni ed esperienze, ma anche a prezzi e costi da
10
sostenere per acquistare e consumarla.[5,6]
La soddisfazione riflette il modo in cui una persona giudica le prestazioni percepite di un
prodotto in relazione alle aspettative. Se le prestazioni sono inferiori alle aspettative, il
cliente è deluso ed insoddisfatto. Se corrispondono alle aspettative, il cliente è
soddisfatto. Se superano le aspettative, il cliente è entusiasta, e la sua soddisfazione pone
le basi per un rapporto di fiducia con il venditore.
Per raggiungere un mercato obiettivo, gli operatori utilizzano tre tipi di canali di
marketing: i canali di distribuzione, i canali di comunicazione e i canali di servizio.
I canali di comunicazione consentono di inviare e ricevere messaggi dagli acquirenti
obiettivo e comprendono quotidiani, riviste, radio, televisione, posta, telefono, cartelloni,
volantini, siti Internet, eventi. Oltre a questi mezzi, le imprese comunicano attraverso lo
stile dei punti vendita o il personale. Ad oggi si tende ad utilizzare sempre più canali
bidirezionali come email, social network, blog. I marketing manager ricorrono poi a
canali di distribuzione per mostrare, vendere o recapitare servizi o prodotti fisici
all'acquirente o utente. Questi canali possono essere diretti, come avviene con Internet,
posta, telefonia mobile o fissa; o indiretti, con distributori, grossisti, rivenditori al
dettaglio e agenti chiamati a fare da intermediari.
Per effettuare transazioni con i potenziali acquirenti, inoltre, i marketing manager
utilizzano canali di servizio, tra cui filiali, imprese di trasporto, reti di punti presenti sul
territorio in genere. La scelta del mix più efficace di canali di distribuzione, trasporto,
sevizio per la propria offerta costruisce una vera e propria sfida a livello progettuale
prima e di coordinamento operativo dopo la messa in vendita. A questo proposito va
menzionata la catena di fornitura, che è un canale più lungo che va dalle materie prime
ai componenti fino ai prodotti finiti che vengono consegnati all'utente finale.
Tutte le offerte che possono essere considerate da un acquirente un'alternativa possibile
alla propria per soddisfare un dato bisogno vengono considerate concorrenza. La
concorrenza non si riferisce solo a prodotti e servizi simili al proprio come funzionalità o
progetto, ma più in genere a strumenti che adempiono allo stesso scopo finale. Ad
esempio, un produttore di acciaio, deve considerare concorrenza non solo gli altri
produttori di acciaio ma anche i produttori di tutti quei materiali o leghe che possono
11
sostituire l'acciaio in un prodotto finale.
Il processo di creazione del valore per il cliente consiste nella scelta ( o progettazione),
nella fornitura e nella comunicazione di un valore superiore rispetto alla concorrenza. La
catena del valore è uno strumento utile per individuare le principali attività che generano
valore e costi in una specifica area aziendale e il suo impatto sul valore per il cliente.
Le imprese di successo sviluppano capacità di gestione dei processi chiave superiori
rispetto alla concorrenza. Fra tali processi vi sono la realizzazione e il lancio di nuovi
prodotti, la gestione delle scorte e il mantenimento della clientela. Un efficace gestione di
questi processi porta alla creazione di una rete di marketing in cui l'impresa intrattiene
una stretta collaborazione con tutte le parti che rientrano nella catena di produzione e
distribuzione di valore per il cliente, dai produttori delle materie prime ai distributori al
dettaglio. La concorrenza non avviene più fra singole imprese, ma fra network di imprese
che generano valore (value net).
Secondo alcuni il marketing olistico è in grado di massimizzare la ricerca del valore in
quanto studia il rapporto fra lo spazio cognitivo del cliente, le competenze dell'impresa e
le risorse dei collaboratori e dei partner. Inoltre esso massimizza la creazione di valore in
quanto identifica i benefici per i nuovi clienti partendo dal loro spazio cognitivo, utilizza
competenze chiave nel proprio business e seleziona e gestisce i partner commerciali nella
logica, appunto, delle reti marketing. Infine, il marketing olistico massimizza la
distribuzione del valore poiché ottimizza la gestione del rapporto con il cliente, delle
risorse interne e delle partnership commerciali.
La pianificazione strategia orientata al mercato è il processo manageriale di sviluppo e
mantenimento di una profittevole corrispondenza fra gli obiettivi, le capacità e le risorse
dell'organizzazione e i continui cambiamenti delle opportunità di marcato. Obiettivo
della pianificazione strategica è configurare le attività e i prodotti dell'impresa in modo
che possono generare i profitti e la crescita previsti. Essa avviene su quattro livelli
impresa, divisione, business unit, prodotto. La strategia generale dell'impresa definisce il
contesto entro il quale divisioni e business unit elaborano i rispettivi piani strategici. Per
definire la propria missione, un'impresa o una divisione deve rispondere a delle classiche
domande[7] come “Quale è il nostro business?”, “Chi sono i nostri clienti?”, “Che cosa ha
12
valore per il cliente?”, “Quale sarà il nostro business in futuro?”, “Quale dovrebbe
essere?”.Queste domande apparentemente semplici sono in realtà le più difficili a cui un
impresa deve dare risposta. Per questa ragione, le organizzazioni elaborano definizioni
formali della propria missione da condividere con i propri dirigenti, i dipendenti ed in
molti casi anche con i clienti. Le definizioni di missione più efficaci presentano cinque
caratteristiche principali: si concentrano su un numero limitato di obiettivi, definiscono
rigidamente le politiche e i valori principali dell'azienda, definiscono i principali ambiti
competitivi in cui opera l'azienda, presentano una visione a lungo termine e sono il più
breve possibili, spesso dei veri e propri slogan. Le grandi imprese gestiscono a volte
attività piuttosto differenti al loro interno, ognuno delle quali con la propria strategia. È
quindi necessario identificare delle SBU, ovvero delle strategical business unit. Una SBU
possiede tre caratteristiche fondamentali:
-è costituita da un singolo filone di attività o da filoni collefati che possono essere
sottoposti a un processo di pianificazione indipendente rispetto al resto dell'impresa;
-presenta un proprio sistema competitivo;
-è gestita da un manager che ne assume le responsabilità per quanto attiene alla
progettazione strategica e alle performance, controllando di conseguenza la maggior parte
dei fattori che influenzano la redditività.
Lo scopo di identificare SBU è quello di sviluppare per ogni singola attività strategie
separate ed effettuare una adeguata allocazione delle risorse. Uno strumento che aiuta a
perseguire questo fine è l'analisi SWAT. Viene usata per valutare i punti di Forza
(Strenghts), Debolezza (Weaknesses), le opportunità (Opportunities) e le Minacce
(Threats) di un progetto in ogni situazione in cui sia necessaria prendere una decisione
per il raggiungimento dell'obiettivo. L'analisi può riguardare l'ambiente interno
(analizzando punti di forza e debolezza) o esterno (analizzando opportunità e minacce)[8].
Questo tipo di analisi può limitare le strategie in considerazione nella valutazione, o
portare a ignorare altre importanti alternative nella definizione degli obiettivi di SBU.
13
Figura 2. Rappresentazione schematica di un esempio di analisi SWOT[9]
Questo strumento concorre in ultima analisi ad aiutare a più livelli la definizione di
obiettivi e strategie e l'elaborazione dei programmi di supporto. Un altro punto critico è
la raccolta di feedback e l'attività di controllo. Operando a livello di corporate, divisione,
SBU, i responsabili di prodotto, linea di prodotto o marca sviluppano i piani di
marketing. Coerentemente con le aree di responsabilità vi sono piani di marketing per i
singoli prodotti, per linee di prodotto, pere marche, per canali o per gruppi di utenti.
Ogni livello di responsabilità, infatti, richiede un piano di marketing per il
raggiungimento dei propri obiettivi. Il piano di marketing è un documento scritto che
riassume ciò che si conosce ul mercato e indica in che modo l'impresa e ciascun
marketing manager a cui viene assegnata una responsabilità di risultato prevedi di
conseguire i propri obiettivi di marketing. Contiene indicazioni tattiche per sviluppare la
strategia di marketing e un schema dell'allocazione delle risorse finanziare lungo l'intero
periodo considerato.
Il piano di marketing è una delle più importanti manifestazioni del processo di
marketing management. Fornisce obiettivi e direzioni da intraprendere nella gestione di
14
marche, prodotti, e imprese nel loro complesso. Le organizzazioni non profit lo
utilizzano come guida per la raccolta di fondi e la programmazione delle attività; gli enti
pubblici e le istituzioni governative se ne servono, per esempio, per favorire la
consapevolezza dei cittadini nei confronti dell'alimentazione e per stimolare il turismo
verso una data destinazione.
Con un ambito più limitato rispetto al business plan, il piano di marketing documenta il
modo in cui l'organizzazione intende raggiungere i propri obiettivi strategici attraverso
specifiche strategie e tattiche di marketing centrate sul cliente, definite considerando i
concorrenti, ponderati con il supporto di analisi quantitative e con riferimenti alle
difficoltà tipiche delle fasi attuative. I difetti più frequentemente riscontrati in un piano
di marketing sono la mancanza di realismo, la carenza nell'analisi della concorrenza, la
prospettiva di breve termine. La lunghezza e la struttura dei piani di marketing è molto
variegata e cambia da un'impresa all'altra, ma la maggior parte dei piani copre un periodo
di un anno e ha la lunghezza compresa tra 5 e 50 pagine. Le imprese piccole redigono
solitamente piani snelli e o meno formali, le grandi imprese richiedono documenti
altamente strutturati. Le imprese in fase di start-up o di prima espansione, come il caso
analizzato nel prossimo capitolo, devono predisporre articolati e formali piani di
marketing per convincere finanziatori e stakeholder a rendere disponibili le risorse per il
decollo e lo sviluppo.
2.2 Start-up e Business Model Canvas
Con il termine start-up si identificano le neo imprese dove sono in corso alcuni processi
organizzativi. Le start-up sono la culla dei processi di base che faranno di un piccola
impresa una grande impresa, come ad esempio lo studio del mercato per lanciare un
determinato prodotto, o lo studio della struttura interna dell’impresa, una sorta di
scheletro sul quale si dovrà appoggiare tutta la struttura futura di una impresa. Creatività,
spirito di iniziativa e volontà di mettersi in gioco sono caratteristiche che deve possedere
chi sceglie di avviare un'attività. Prima di partire con una start-up il futuro imprenditore
deve valutare attentamente la validità e la l’attuabilità dell’idea attraverso un ben studiato
e dettagliato piano strategico di impresa il cosiddetto Business plan.
15
Il piano di impresa è molto importante, perché è da esso che si concretizzano i tempi, i
costi, e tutte le azioni generali per rendere una impresa start-up operativa. Molte imprese
start-up nascono da semplici idee, intuizioni che possono con un buon studio iniziale in
poco tempo volgere a grandi imprese, ma per far questo è necessario anche trovare i giusti
finanziamenti investitori privati o pubblici che credono nell’idea. Questo per una start-
up è un punto molto delicato soprattutto all’inizio dove la giovane impresa deve ( o
dovrebbe) essere supportata nei primi passi.
Spesso molti non sanno a chi rivolgersi e l’idea invece di decollare si blocca e muore nel
tempo. Per evitare questo è bene dopo aver messo tutto per scritto nel progetto di
impresa, iniziare a studiare piani mirati per i finanziamenti i quali possono venire in certi
casi dalla camera di commercio stessa al momento della registrazione dell’impresa, o a
bandi pubblici italiani o europei. E’ in Europa che molte start-up trovano terreno fertile
per crescere grazie ai numerosi bandi che il parlamento europeo mette a disposizione con
fondi destinati proprio ad aiutare le nuove imprese[10].
Come già precedentemente affermato, con il Business plan l'azienda esplicita i propri
obiettivi, le proprie risorse in termini economici, di tempo e di capitale umano destinato
alle attività e le strategie di attuazione degli obiettivi. Tutto ciò è volto anche a interessare,
accattivare, attrarre, soddisfare gli stakeholder , ovvero tutti i soggetti interessati all'idea
dell'imprenditore,a prescindere dalle motivazioni di questo interesse. Il piano di
marketing è una parte descrittiva del Business plan e specifica come l'azienda intende
relazionarsi con il mercato. Ciò è fondamentale per mantenere l'impresa sulla rotta giusta.
Nella realtà più semplice, intuitiva e giovanissima di una start-up è altresì necessario
motivare e divulgare come un'azienda intende svilupparsi, sostenersi, far falere la propria
idea/progetto. Deve cioè produrre un modello di business (Business model). Il Business
model spiega come un'organizzazione crea, fornisce, e acquista valore. Sebbene alcuni
concetti possono sembrare ridondanti, e le definizioni possono apparire simili, Business
plan e Business model mantengono due distinte finalità in quanto il Business plan
descrive che cosa, quanto tempo e quanti soldi serviranno per mettere in pratica un
Busines model[11]. Il Business model è uno strumento utilissimo in caso di idee in fase di
sviluppo, prototipi, piccole realtà in espansione e, appunto, start-up. Infatti aiuta tanto il
16
creatore, quanto i potenziali stakeholder, a capire in modo pratico e schematico in che
modo l'organizzazione intende guadagnare il proprio spazio nel mercato.
Solitamente il Business model è composto da 9 elementi:
-Il mercato;
-Il valore;
-I canali;
-Le relazioni;
-I ricavi;
-Le risorse;
-Le attività;
-I partner;
-I costi;
Il progetto/prodotto viene adeguatamente studiato e recensito sotto ognuno di questi
aspetti, dando un quadro finale su cui basarsi per la stesura di bandi, Business plan,
attività di marketing in generale.
Il mercato sono i clienti suddivisi in gruppi per bisogni, interessi, tipi di relazione,
profitto e canali di distribuzione. E' importante capire i bisogni dei clienti, per cosa
pagherebbero e quanto renderebbe un determinato gruppo. Il valore offerto (o value
proposition) è il vero e proprio cuore del modello, è appunto l'oggetto, servizio, progetto
che genera qualcosa di utile per il cliente, e che l'azienda è in grado di dare. I valori sono
strettamente collegati con i clienti. I canali sono già stati precedentemente caratterizzati,
all'interno di un Business model sono fondamentali perché aiutano a definire ciclo di
vita e esperienza di acquisto del valore.
La relazione con i clienti è un campo vasto e che tocca molti aspetti non solo della
comunicazione, dell'immagine dell'azienda, del marchio, ma anche elementi più profondi
come l'esperienza del cliente, la sua fidelizzazione, le misure di post-vendita e la sua
efficacia. I ricavi sono gli incassi generati dai diversi tipi di clienti, anche divisi per
17
categoria di valore offerto. Ci possono essere più tipi di pagamento accettato, più tagli di
prezzo e quindi più livelli di servizio. I prezzi hanno meccanismi di definizione che
variano a seconda che si decida di mantenerli fissi o dinamici. I ricavi sono rilevanti
nella costruzione di un modello di business. Ma non sono l'unica variabile a renderlo
sostenibile e funzionante.
Il blocco delle risorse chiave racchiude gli assets strategici di cui un'azienda deve disporre
per dar vita e sostenere il proprio Business model, in altre parole indica cosa bisogna
avere affinché il modello funzioni. La natura delle risorse è molto variegata, è può
comprendere diverse tipologie:
-Fisiche;
-Intellettuali;
-Umane;
-Finanziarie;
hai fini della costruzione di un buon modello è necessario domandarsi quale di queste
risorse è veramente strategica per avvallare la nostra proposta di valore o gestire un
segmento di clienti. Altri elementi chiave da identificare sono le attività principali, che
devono esser compiute per creare il valore, raggiungere il cliente, mantenere le relazioni e
quindi, generare ricavi. Le attività chiavi possono essere divise in tre sottocategorie :
produttive, di problem solving e di mantenimento/sviluppo di piattaforme o reti. E' bene
mantenere una visione chiara e sintetica del proprio modello di business, perché aiuterà
la traduzione dello stesso nei successivi documenti di pianificazione.
La rete dei fornitori, dei partner necessari al funzionamento del modello è indicata nella
sezione dei partner chiave. L'organizzazione agisce in un ecosistema più grande, ed è
impensabile che si possa affermare come una realtà “autosufficiente”. Infatti numerosi
attori esterni possono fare la differenza nel successo sul mercato. E' necessario identificare
potenziali alleanze strategiche fra non concorrenti, quali sono le realtà concorrenti e
come relazionarsi con loro. E' anche possibile identificare altre realtà che lavorano sullo
stesso mercato per provare Joint Venture per cercare di sviluppare nuovi business.
18
Infine è opportuno delineare una struttura dei costi, per stimare i costi che l'azienda
dovrà sostenere per rendere funzionale l'intero modello. Viene definita al termine perché
deriva quasi direttamente dalla struttura dei precedenti blocchi . Il modello può avere
diversi tipi di costi: quelli fissi, cioè che restano invariati al variare del volume dei beni o
dei servizi prodotti, o viceversa quelli variabili. Si possono verificare situazioni di
economie di scala, in cui i costi si abbattono nel momento in cui un azienda si espande.
Il rapporto tra costi e valore possono guidare il modello di business. Infatti sebbene è
importante per ogni modello ottimizzare, evitare sprechi e porre attenzione ai costi, per
alcune aziende l'elemento più importante potrebbe essere utilizzare materie prime
pregiate o a lavorazione esclusiva, facendo percepire un valore al cliente molto alto (ed
esempio alcuni brand legati al mondo della moda). Viceversa alcuni modelli possono
prevedere poche risorse o attività per diventare sostenibili per l'imprenditore e per il
cliente (è il caso vincente di alcune compagnie aeree).
I nove elementi che costituiscono il Business model possono essere rappresentati con
diverse schematizzazioni. Una possibile organizzazione strutturale particolarmente
comoda ed utilizzata è quella del Business Model Canvas, che consiste in un quadro che
mostra le relazioni tra gli elementi del modello di business. E' stato introdotto da
Alexander Osterwalder, ed è virtualmente applicabile a qualsiasi tipo di business.
19
Figura 3. Business Canvas Model e relazione tra i nove elementi[11]
Al centro del riquadro è inserito il valore proposto. La combinazione delle risorse, lo
svolgimento delle attività e la collaborazione dei partner contribuisce a creare il valore,
che viene presentato e comunicato ai clienti mediante le relazioni e attraverso i diversi
canali. Il processo creativo e produttivo del valore ha un costo, che viene colmato quando
il cliente è disposto a pagare in maniera congrua per ottenere il valore. Il guadagno per
l'imprenditore è generato quando i ricavi superano i costi.
2.3 Il caso di INTACT ICE
INTACT ICE e' un braccialetto ipoallergenico dotato di tag NFC in grado di
memorizzare dati di tipo sanitario del portatore, al fine di renderli disponibili in caso di
necessita', senza l'ausilio di tecnologie particolari da parte del soccorritore. I dati, inseriti
dall'utente e comunque protetti da meccanismi di sicurezza, possono essere cruciali nel
primo soccorso.
INTACT ICE implementa in maniera intelligente il protocollo ICE
(In Case of
Emergency), accolto favorevolmente in tutta Europa ma poco pratico per via delle
limitazioni di accesso agli smartphone degli assistiti, oltre che per l'invasività stessa della
20
procedura.
Allo stato attuale, la parte hardware di ICE è pronta, il braccialetto è un oggetto semplice
da realizzare e in commercio esistono diversi produttori che vendono l'oggetto anche con
un certo grado di personalizzazione.
La seguente analisi si è concentrata essenzialmente sui primi sette punti del Business
Model Canvas, poiché la brevità dei tempi e la stretta associazione del prodotto con altre
piattaforme di INTACT in via di sviluppo non consente una congrua analisi dei costi e
dei ricavi derivanti da ICE.
1-MERCATO E CLIENTI:
Il braccialetto INTACT ICE, data la natura del suo utilizzo, ovvero lo storage e la
comunicazione di dati sanitari fra due o più soggetti, può essere proposto sia come un
B2C, in alcuni casi come un B2G (BusinessToGoverment) e un B2B (BusinessToBusiness)
in quanto anche aziende farmaceutiche, o industri e cantieri che espongono i propri
dipendenti a lavori rischiosi possono voler utilizzare ICE come di accorgimento di
sicurezza.
Possiamo distinguere due tipologie di potenziali acquirenti:
-Qualsiasi cittadino, senza limitazione di eta' o categoria, al fine di conservare in sicurezza
i propri dati.
ICE può essere impiegato anche come targhetta per lo smarrimento di persone,
sopratutto bambini, in quanto il braccialetto può contenere informazioni su chi avvisare
in caso di emergenza, smarrimento, ritrovamento.
-Lo Stato, o qualsiasi associazione di carattere ricreativo (sportive, ludiche, specialmente
quelle che prevedono attività all'aperto o itineranti), che dovrebbero incoraggiare e
promuovere, se non addirittura regolamentare (come già fatto in alcuni casi [2]) l'utilizzo di
questo dispositivo al fine di migliorare la sicurezza dell'iscritto.
Sarebbe quindi proficuo sponsorizzare ICE in concomitanza di eventi o pubblicità
relative a temi di grande impatto sociale, come ad esempio la sicurezza stradale:
Nel 2012 si sono registrati in Italia 186.726 incidenti stradali con lesioni a persone. I
morti (entro il 30° giorno) sono stati 3.653, i feriti 264.716.
Non solo gli automobilisti, ma anche i pedoni possono essere soggetti ad incidenti.
21
Questo virtualmente estende l'utilità del prodotto a qualsiasi categoria di persona.
Infine, a tal riguardo il braccialetto potrebbe essere inserito di contratto in polizze
assicurative.
2-VALUE PROPOSITION:
INTACT ICE si propone di immagazzinare dati utili al primo soccorso, creando una
comunità di utenti variegata e senza prerequisiti particolari. Infatti l'utilizzo dell'NFC
consente di settare una volta il braccialetto per l'utilizzo. Non necessita' di altre
attenzioni, come batterie, ricariche o lettori particolari. Accompagna l'utente durante le
sue attività, senza essere invasivo. Dettaglio da non tralasciare e' che deve essere
assolutamente ed immediatamente riconoscibile. Altro aspetto e' la privacy da rispettare.
Ogni profilo dovrebbe essere personalizzabile e gestibile a diversi livelli di privacy come
quello di un social network, sarebbe altresì opportuno che il personale sanitario abbia
permessi particolari per poter fruire le informazioni in modo rapido, magari con privilegi
superiori a quelli utente normale.
Per far cio' la privacy di ogni campo del profilo e' finemente regolata secondo tre livelli:
pubblico (visibile a chiunque scansioni), privato (visibile solo ai soccorritori dotati di
versione “operatore” dell'app), bloccato (visibile da chiunque, previa autorizzazione da
parte di una delle persone indicate come di fiducia).
ICE si presta particolarmente all'interazione con altre piattaforme per la sanità, la
profondità dei prodotti combinati estende la capacita' della piattaforma di gestire
informazioni sanitarie del paziente, rendendole più disponibili e sicure. Altra tematica di
approfondimento e' lo stato delle vaccinazioni, in quanto percepito come tema
controverso, ad oggi e' in aumento il numero dei non vaccinati, e quindi si ha un ritorno
di alcune malattie che negli scorsi decenni erano quasi debellate.
3-CANALI:
Il canale di vendita proposto passa per le farmacie. Ciò potrebbe limitare la diffusione del
prodotto. Si potrebbe pensare a rendere questo strumento come un accessorio. Parte
integrante dell'abbigliamento. Quindi si può allargare il canale a negozi di abbigliamento
22
sportivo, negozi di accessori per uomo/donna, persino orologerie. Il prodotto si presta
bene alla vendita online. L'unico requisito da rispettare e' la riconoscibilità del prodotto.
ICE deve essere riconoscibile al soccorritore. Una possibile idea e' quella di integrarlo
come parte di un comune orologio, puntando su un design semplice (es swatch) ma pur
sempre distinguibile per la sua funzionalità.
Altri canali utili sono i medici, gli enti sanitari, le associazioni di volontariato a tutela e
soccorso del cittadino. Eventi, dimostrazioni, simulazioni di primo soccorso dovrebbero
diffondere il prodotto.
INTACT ICE non ha bisogno di un particolare canale di post vendita, o assistenza, ma
sicuramente ci deve essere una infrastruttura pronta a gestire i dati e i clienti.
4-:RELAZIONI
Sarebbe possibile far entrare i possessori del braccialetto in un “social club” dove poter
classificare gli interessi e raccogliere dati tramite sondaggi, per informarsi sulla classe di
utenti più rappresentata.
L'intero nucleo familiare può usufruire dei benefici di ICE, in quanto i genitori
incrementano la sicurezza dei propri figli, e soggetti troppo giovani per indossare il
braccialetto potrebbero usufruire di una sezione dell'account dei genitori.
Poichè il prodotto e' di particolare utilità nel caso di lavori con un certo grado di rischio,
come ad esempio forze dell'ordine, cantieri pericolosi, acciaierie e' opportuno curare il
rapporto con le aziende, o con chi fa da tramite con l'utente finale.
INTCAT ICE dovrebbe interagire attivamente o essere parte di un'altra piattaforma
healthcare. Questo nella fidelizzazione del cliente e' molto importante, perchè la
combinazione delle funzioni tra le due piattaforme possono risultare accattivanti per
medici, farmacie, enti pubblici, rendendo la tecnologia importante non solo per l'utente
finale ma anche per l'intermediario di vendita, in quanto funge da banca-dati del
“paziente” e agevola il personale medico, oltre che i primi soccorsi.
6-:RISORSE
A parte il necessario per assemblare e consegnare il prodotto, altre risorse chiave sono
23
quelle da impiegare per la gestione del portale web, e quindi dei vari tipi di utente,
dividendoli in soccorritore e possessore del braccialetto. Se il soccorritore stesso e'
coinvolto nel circuito, magari con delle regolamentazioni sull'uso del braccialetto,
INTACT ICE può rivelare la sua efficacia ed esser percepito dal potenziale acquirente
come un qualcosa di veramente utile. La pubblicità a sostegno prodotto devi quindi non
solo cercare di far apparire il braccialetto come un oggetto “di tendenza” e utile, ma deve
trasformarlo quasi in una buona pratica preventiva, come se fosse parte integrante delle
norme del pronto soccorso.
-Aziende disponibili ad agevolare l'immissione del prodotto sul mercato, o interessati alla
tecnologia;
- Procacciatori di attività commerciali e potenziali intermediari;
-Produttore braccialetto con chip NFC;
-Produttore packaging;
-Sviluppatore/gestore piattaforma ICE/Smartcare;
-Consulenti di mercato/pubblicitari;
-Gestione e-commerce;
7-:ATTIVITA'
E' importante migliorare la longevità del prodotto aggiungendo migliorie al software, ad
esempio far contenere più profili ad un singolo braccialetto.
In rete uno dei termini più associati ai braccialetti salvavita e' “allergia”. Uno delle prime
preoccupazioni dei genitori e' che nei figli sia riconosciuto un attacco allergico in loro
assenza. Eventualità non remotissima visto la crescente diffusioni di questo tipo di
patologie.
Vista la vastità dei possibili acquirenti, dopo la messa in vendita del prodotto, sarebbe
necessario verificare quali sono i tipi di clienti interessati al prodotto, dove la
sponsorizzazione ha colpito di più e cosa fare per incentivare l'acquisto in altri settori.
A1- Ricerca e sviluppo della migliore piattaforma healthcare a cui associare il dispositivo
A2- Integrazione con tecnologia ICE;
A3- Design e assemblaggio prodotto;
24
A4- Packaging e presentazione prodotto;
B1- Elaborazione Marketing, sviluppo relazioni con enti, associazioni, rivenditori;
B2- Vendita sui canali acquisiti;
B3- Controllo e monitoraggio del sistema;
B4- Correzione e ampliamento del target di vendita;
8-:PARTNER E COMPETITOR
INTACT ICE può essere trasformato in qualcosa di più di un semplice braccialetto,
almeno dal punto di vista estetico. Quindi abbinare la funzione di ICE con altri
dispositivi o altre funzionalità può aumentare il valore aggiunto, purché mantenga
inalterata la capacita' di distinguerlo come dispositivo di primo soccorso.
Gli sponsor possono poi essere qualsiasi associazione o ente volto alla tutela del
cittadino(Croce Rossa, Protezione civile, 118, organi statali e parastatali), o associazioni
sportive/ludiche. Ad esempio società calcistiche che appongono il loro logo sul
braccialetto.
Società potenzialmente interessate a ICE sono: (dati 2014)
CONI----> 4'500'000 atleti, 1'016'598 operatori, 64'829 società sportive, 19 discipline
associate;
FF.AA. ----> 175'900 armati
Polizia -–-> 100'000 armati
Croce Rossa Italiana ----> 139'004 iscritti
Numero associazioni volontariato riconosciute 2014----> circa 190
Totale associazioni volontariato ---> 6'630'000
NATO ---> 3'000'000
ANIA--> Associazione nazionale enti assicurativi, ha oltre 160 imprese associate, l'84% di
tutto il mercato
Due competitor sono presenti sul mercato sono italiani:
-ICE KEY DUCATI
-LIFECODE
ICE key/card ha un taglio sportivo, rivolgendosi a motociclisti e ad atleti, e' di tipo USB.
25
E' stata anche rilasciata una versione TAG NFC che consiste in un adesivo con chip da
mettere su moto, caschi, macchine, tute e che assolve agli stessi compiti del bracciale;
LIFECODE non ha un target specifico, sebbene sia fornito su uno store di prodotti per
culturisti. E' di tipo USB, ma non sembra avere grandi accordi con potenziali enti
interessati (forze dell'ordine, aziende a rischio...).
Altri competitor stranieri:
-Ride safe;
-safe sportid;
-medical alert;
-enderv-MyID;
-Keepmesafe;
-QrLifesupport;
i primi 3 fanno uso di piastrine metalliche con sopra riportati alcuni dati ICE,
endervMyID, keepmesafe e QrLifesupport usano Qr code. Safe sportid ,Enderv e
Keepmesafe sono indicati per gli sportivi, medical alert e QrLifesupport ai malati, ride
safe e' obbligatorio in Inghilterra e negli USA per le corse ad ostacolo coi cavalli.
SCHEDA PRESENTAZIONE PRODOTTO
Il Business Canvas Model di ICE ha permesso di redigere a partire dal valore proposto, e
da tutte le considerazioni relative al mercato e ai partner una scheda di presentazione
prodotto corredata di Frequently Asked Question (FAQ). Le FAQ sono una serie di
domande che possono scaturire più frequentemente dall'acquirente o dal fruitore di un
servizio/prodotto. La consuetudine di allegare FAQ alla presentazione di un prodotto
avvicina il cliente, favorisce la comprensione e l'utilizzo del prodotto/servizio da parte
dell'utilizzatore. Per brevità di seguito è riportata la scheda prodotto di ICE, senza la lista
dei quesiti.
INTACT HEALTCARE ICE (IN CASE OF EMERGENCY)
Cos'è ICE?
INTACT ICE (In Case of Emergency) è un braccialetto che consente di accedere a dati
sanitari rilevanti che possono salvarti la vita in caso di emergenza (come ad esempio
gruppo sanguigno, allergie, intolleranze, incompatibilità farmacologica, impianti
biomedicali) associati alla piattaforma di INTACT e di allertare tempestivamente i tuoi
26
cari.
Come funziona ICE?
1. Iscriviti alla piattaforma INTACT
La piattaforma di INTACT permette di creare un profilo contenente le tue informazioni
personali sanitarie, di cui potrai definire la visibilità (pubblica o privata). Alcune delle
informazioni indicate, o da te scelte, formeranno la sezione ICE, che sarà utilizzata in
caso di bisogno dai soccorritori.
Puoi aggiungere al tuo profilo ICE gruppo sanguigno, allergie, intolleranze,
incompatibilità farmacologica, impianti biomedicali e altre informazioni utili nel caso in
cui ti dovessi trovare in situazioni di emergenza. Il soccorritore potrà accedere alle parti
del profilo ICE da te indicate come private, oltre che a quelle pubbliche.
Puoi segnalare fino a 5 persone che potranno essere contattate nel caso in cui ti dovessi
trovare in condizioni di emergenza. Tali persone potranno consentire a chi interviene in
caso di emergenza (personale sanitario o pronto soccorso) di accedere alle informazioni
ICE segnate come bloccate.
2. Compra il braccialetto
Il braccialetto ICE è uno speciale braccialetto ipoallergenico e completamente
impermeabile, in grado di comunicare con il profilo ICE della piattaforma associata ad
ICE grazie alla presenza sulla sua superficie di un Qrcode e all'interno di un chip NFC.
Ogni braccialetto ha inoltre un codice unico che serve per l'associazione manuale nel caso
in cui non si disponga di lettore Qr code o di sensore NFC.
3. Attiva il braccialetto e associalo al tuo account
Una volta che hai indossato il braccialetto e sei connesso alla piattaforma Smartcare
27
grazie all'applicazione mobile, entra nell'apposita sezione di attivazione del braccialetto e
seleziona una delle 3 possibili modalità di attivazione disponibile:
-Scansione QR code;
-Scansione tag NFC;
-Inserimento manuale del codice.
Nota Bene: L'ultima modalità è l'unica disponibile quando sei connesso alla piattaforma
Smartcare via PC, in quanto solo l'applicazione mobile installata su smartphone dotato
di fotocamera e sensore NFC può utilizzare le prime due modalità.
A chi si rivolge ICE?
ICE si rivolge a tutti quelli che vogliono conservare in modo pratico e sicuro i propri dati
sanitari, in modo da essere soccorsi tempestivamente e correttamente in caso di malori,
infortuni o smarrimenti. Serve ai genitori per tutelare se stessi ed i propri figli, agli
anziani e a tutte le persone che si possono trovare da sole, per allertare i propri cari. ICE
può essere utilizzato da soggetti allergici, con patologie croniche o che seguono
particolari terapie per informare in maniera accurata e veloce i soccorritori ed evitare
manovre o interventi inopportuni.
Quando è utile ICE?
ICE è particolarmente indicato in caso di viaggi all'estero, anche grazie al supporto
multilingua, sopratutto per chi viaggia spesso e da solo, o chi fa lavori pericolosi e/o in
ambienti a rischio. E' inoltre indicato in caso di gite, escursioni al mare o in montagna,
campeggi, uscite di gruppo, pellegrinaggi. Può essere anche indossabile da tutti i soggetti
allergici che pranzano fuori casa o frequentano mense. Infine ICE è utile per tutti gli
anziani o chiunque voglia tenere sotto mano i propri dati clinici o l'andamento di
malattie croniche o degenerative come l'Alzheimer, il diabete, le malattie autoimmuni.
Il tuo profilo ICE
28
Il tuo profilo contiene una serie di informazioni il cui accesso è da te indicato secondo 3
livelli di visibilità:
-bloccato: dato accessibile solo da te, o da chi hai indicato come persona di fiducia. Il
soccorritore, sia esso un operatore medico/sanitario o un soccorritore casuale, può
accedere al dato solo previa autorizzazione da parte di una delle persone indicate di
fiducia.
-privato: dato accessibile solo dalle persone di fiducia, o dagli operatori medico/sanitari
dotati di un'opportuna versione dell'app che registra la scansione, in modo da tenere
traccia di chi ha avuto accesso all'informazione.
-pubblico: dato accessibile da chiunque scansioni il braccialetto, senza nessuna
limitazione.
Ad esempio, posso voler rendere disponibile solo ai soccorritori le mie intolleranze
alimentari, mediante il livello “privato”, mentre i miei eventuali impianti biomedicali
devono essere visibili a chi richiede solo dietro autorizzazione di una mia persona di
fiducia, mediante il livello “bloccato”.
L'utente può aggiornare i propri dati in qualsiasi momento e inserire ulteriori
informazioni.
L’App di ICE
ICE si basa su un'applicazione mobile, installabile su qualsiasi smartphone, da cui è
possibile consultare, aggiornare e completare il tuo profilo ICE. L'app ti permette inoltre
di scansione il codice sugli altri braccialetti e accedere ai dati indicati come “pubblici” di
un altro profilo ICE, in caso necessiti del tuo aiuto.
I soccorritori e gli operatori medico/sanitari sono invece dotati di una versione
“operatore” dell'app, che consente di accedere ai dati indicati come “privati” (ma non di
accedere a quelli “bloccati”). Una qualsiasi scansione da parte di un soccorritore viene
registrata e associata all'ID dell'operatore, in modo da segnalare eventuali accessi non
desiderati. ICE ti permette di salvare vite.
Cosa succede in caso di emergenza
29
Qualora ti trovassi in una situazione di emergenza sanitaria, scansionando il codice è
possibile accedere al tuo profilo, e a seconda di chi scansiona, se un passante casuale o un
operatore riconosciuto visualizzare le informazioni del profilo secondo le politiche da te
indicate. Viene inoltre inviata notifica alle persone di fiducia. Queste, rispondendo alla
mail avranno la possibilità di sbloccare quei dati contrassegnati come “bloccati”,
cliccando su un pulsante che consente la visualizzazione delle informazioni per 24 ore.
Queste informazioni aiuteranno il personale sanitario a intervenire più rapidamente e a
evitare errori medici o clinici a partire dalle prime fasi del soccorso.
Specifiche tecniche
NFC, Qrcode, codice alfanumerico, essenziali per risalire in ogni condizione al profilo
Impermeabile
Ipoallergenico
Non interferisce con apparecchiature e impianti biomedicali, poiché sprovvisto di
componenti elettroniche
Non contiene batterie
Non contiene parti meccaniche o ingeribili
Durata illimitata, in quanto non necessita di nessuna fonte di alimentazione
Figura 4. Braccialetto ICE versione classica con in vista il marchio ICE/NFC
3.0 PROGETTAZIONE E MODELLAZIONE DATI PER ICE
3.1 NFC: interazione chip-dispositivo e connessione al profilo
La peculiarità di INTACT ICE, rispetto a quanto presente sul mercato, è la
presenza di ben due sistemi di riconoscimento del bracciale. Il Qrcode e il tag NFC.
Sebbene il Qrcode sia altrettanto valido, diffuso e utile per lo scopo ha il difetto di essere
30
stampato direttamente sul braccialetto, e quindi può risultare non riconoscibile dal
lettore in quanto dilavato, consumato, alterato o rimosso. Invece il chip è difficilmente
rimovibile e non può esser cancellato se non con la distruzione dell'oggetto stesso.
La tecnologia NFC consente l'interazione semplice e sicura di due dispositivi elettronici,
permettendo ai consumatori di effettuare transazioni contactless, accedere a contenuti
digitali, e connettere dispositivi con un solo tocco. E' adatto a molti degli usi comuni
delle tecnologie wireless ed è codificato dagli standard per le tecnologie contactless
ISO/IEC 14443 A&B, ovvero definisce lo standard dei tag RFID Mifare a 13,56Mhz. La
tecnologia NFC non ha bisogno di alimentazione in quanto è di tipo passivo. Consente
agli utenti di utilizzare un dispositivo su sistemi diversi, permettendo di condividere
informazioni ad una distanza di 5-10 cm con una velocità massima di 400kbps. NFC è
inoltre bidirezionale, quindi consente di stabilire connessioni punto punto con qualsiasi
altro dispositivo, evitando lo sniffing, ovvero il furto di dati, vista la cortissima distanza.
Queste tecnologie molto recente sta creando grande aspettative ed è molto seguita, tanto
che esistono diverse organizzazioni che si occupano della standardizzazione di NFC,
come l'NFC forum[12] e l'ETSI-SCP [13], inoltre sta dimostrando migliori performance in
termini di tempi di attivazione, usabilità e vastità di applicazioni rispetto a tecnologie di
comunicazione già molto diffuse come il Bluetooth[14], a cui tra l'altro può esser
accoppiata per il trasferimento file come già avviene in alcuni casi come l'Android
Beam[15] o l'S-Beam.
Nel caso di INTACT ICE, oltre a creare una connessione punto-punto l'NFC veicola il
soccorritore su un URL contenente il profilo dell'infortunato, mostrando ciò che lo
stesso ha voluto scegliere come visualizzabile, fornendo un grande supporto al
paramedico nel rispetto della privacy. Virtualmente il braccialetto è a tutti gli effetti un
tramite tra il profilo della persona e il soccorritore. Demanda la connessione al
soccorritore o a chi ha possibilità di consultare il profilo, fornendo direttamente ciò che è
esattamente necessario in quel momento.
3.2 I Database: modello di dati relazionale e modello orientato a documenti
Come precedentemente indicato nell'introduzione, esistono diversi modelli di
31
rappresentazione di dati che prendono forma quando si crea un database.I database di
tipo relazionale sono, attualmente, di gran lunga i più diffusi. Il modello relazionale è
stato introdotto nel 1970 dal britannico Edgar F. Codd col documento “A Relational
Model of Data for Large Shared Data Banks” (modello di dati relazionale per grandi
banche dati condivise). Questo modello si basa sulle relazioni fra i dati, i quali vengono
presentati in forma tabulare, cioè come un insieme di tabelle ciascuna composta da righe
e colonne. Possiamo affermare che: - ogni tabella contiene i dati relativi ad una entità; - le
colonne della tabella rappresentano i campi, ovvero le proprietà o attributi dell'entità; - le
righe della tabella esprimono le ricorrenze dell'entità. Insieme al modello relazionale è
stato introdotto il linguaggio SQL (Structured Query Language), che consente di operare
sui dati tramite frasi che contengono parole chiave prese dal linguaggio corrente. Del
linguaggio SQL sono stati pubblicati tre standard, l'ultimo dei quali risale al 1999. SQL è
lo standard de facto per i RDBMS, riunisce in sé le funzionalità di DDL (Data
Definition Language), DML (Data Manipulation Language) e DCL (Data Control
Language). E' un linguaggio dichiarativo, ovvero non specifica la sequenza di operazioni
da compiere per ottenere il risultato, e si basa sui concetti di algebra relazionale per la
formulazione delle query.
Il DDL di SQL permette di definire schemi di relazioni (tabelle), modificarli ed
eliminarli. Inoltre permette di specificare vincoli, sia a livelli di riga (tupla) che a livello
di tabella.
Le istruzioni del DML eseguono interrogazioni sul DB (SELECT), aggiungono o
modificano le tuple esistenti.
Il DCL fornisce o revoca agli utenti i permessi necessari per poter utilizzare i comandi di
DDL e DML.
Naturalmente, visto l'ampio successo dei database relazionali, sono molti gli RDBMS
presenti sul mercato: 34 tra i principali, citiamo IBM DB2, Oracle, Microsoft SQL Server,
Sybase, Filemaker Pro, Microsoft Access, Informix, PostgreSQL, SQLite, e naturalmente
MySql sviluppato dalla compagnia svedese MySQL AB, che è il database utilizzato nella
nostra applicazione. Alcuni di questi sono software proprietari, mentre altri fanno parte
della categoria open source: questi ultimi, fra quelli citati, sono MySql, PostgreSQL e
32
SQLite.
Nello studio del seguente caso, si è utilizzato MySQL, un RDBMS composto da un client
con interfaccia a caratteri e un server, entrambi disponibili sia per sistemi Unix come
GNU/Linux che per Windows, anche se prevale un suo utilizzo in ambito Unix. Il codice
di MySQL è di proprietà della omonima società, viene però distribuito con la licenza
GNU GPL oltre che con una licenza commerciale. Esiste peraltro una clausola estensiva
che consente l'utilizzo di MySQL con una vasta gamma di licenze libere. Esistono diversi
tipi di MySQL Manager, ovvero di strumenti per l'amministrazione di MySQL. Uno dei
programmi più popolari per amministrare i database MySQL è phpMyAdmin (richiede
un server web come Apache_HTTP_Server ed il supporto del linguaggio PHP).
MySQL permette di utilizzare numerosi tipi diversi di tabelle per la memorizzazione dei
dati. La distinzione più importante fra i diversi sistemi è quella fra transazionali e non
transazionali. I motori transazionali offrono alcuni importanti vantaggi: sono più sicuri
(infatti permettono di recuperare i dati anche in caso di crash di MySQL o di problemi
hardware), consentono di effettuare più modifiche e convalidarle tutte insieme e
permettono di ripristinare la situazione preesistente se qualcosa va male. Dal canto loro, i
motori non transazionali hanno il vantaggio di una maggior velocità, minore utilizzo di
spazio su disco e minor richiesta di memoria per gli update.
Il backup e il recovery dei dati sono, da sempre, attività fondamentali per garantire la
sicurezza dei dati di un DBMS. In particolare, attraverso i backup effettuiamo salvataggi
del contenuto del database ad un determinato momento, mentre il recovery è l'operazione
con la quale ripristiniamo il contenuto del database a seguito di un danneggiamento.
MySQL mette a disposizioni numerosi programmi client e utilities ed è inoltre dotato di
numerose interfacce applicative e connettori che gli permettono di “legarsi” ad un vasto
numero di linguaggi di programmazione, in questo caso sono state utilizzate delle
chiamate PHP per richiamare i dati.
I principali motivi per utilizzare MySQL sono la flessibilità di impiego, è infatti
multipiattaforma (dovuta alla sua natura open-source), l'alta affidabilità e la vasta varietà
di opzioni e configurazioni. MySQL, a differenze di non è un tipico progetto open-
source, ma offre una buona combinazione di libertà legata al mondo open e il sostegno e
33
il supporto della casa produttrice, tanto da essere usato nella maggior parte dello sviluppo
delle applicazioni ed è alla base dei CMS anche per la sua facile gestione.
Oltre il tipo di modello di dati relazionale, possiamo individuare altre strategie
precedentemente introdotte. Ai fini di questo lavoro, approfondiremo il tipo ad oggetti,
anche detto a documenti, basato su un paradigma detto NoSQL. Questo tipo non è solo
nato per necessita, ma anche per interesse verso la sperimentazione di nuovi approcci
verso questa tematica. MongoDB è una soluzione NoSQL piuttosto generalizzata, una
tecnologia nuova per l'implementazione di un DBMS document-oriented, può essere
considerata anche solo una alternativa ai database relazionali[16]. Come i database
relazionali infatti anche MongoDB potrebbe trarre benefici dall'abbinamento a soluzioni
NoSQL più specifiche. Le peculiarità di MongoDB sono appunto la totale mancanza di
schemi, la scalabilità, le alte performance e la natura open-source e le caratteristiche dei
database document-oriented. Questi tipi di database sono simili a quelli object-oriented ,
anche se a differenza di questi ultimi non presenta le caratteristiche dell'ereditarietà,
dell'incapsulamento. Come tutti i document-oriented MongoDB presenta la possibilità
di erigere progetti enormemente scalabili, che consentono di gestire una grande quantità
di informazioni, grazie ad un formato di presentazione scambio dati già usato in altri
ambiti (ad esempio la programmazione web) come il JSON (JavaScriptObjectNotation).
MongoDB è scritto in C++, è inoltre in grado di interfacciarsi con una grande varietà di
linguaggi di programmazione, mediante l'utilizzo di appositi driver, tra cui anche il PHP,
caratteristica utile quando dovremo richiamare o memorizzare i dati nel sito.
Un server MongoDB, anche detto Mongo system, è facilemente scalabile su più macchine
grazie all'auto sharding. È possibile aumentarne il numero e la capacità senza tempi di
inattività, che è molto importante nel web quando il carico di dati può aumentare
improvvisamente e disattivare il sito web per lunghi periodi di manutenzione. dati
vengono distribuiti e bilanciati in modo automatico sui diversi shard, che sono dei
contenitori che gestiscono un sottoinsieme di una collezione di dati, uno shard è visto
anche come un singolo server o un insieme di repliche del database. L’ auto-sharding
divide le collezioni in partizioni più piccole e le distribuisce tra i diversi shard, così che
ogni shard diventa responsabile di un sottoinsieme dei dati totali. Ogni server contiene
un set di database. Un database contiene un set di collections, le quali hanno al loro
34
interno un set di documents. Un documento è un set di campi ( fields), ognuno dei quali
è una coppia chiave-valore (dove chiave è un nome stringa, un valore è un tipo di base
come string, integer, float, timestamp, binary, ecc. o un documento o un array di valori).
E’ importante sapere che quando si chiedono dati a MongoDB questi restituisce un
cursore col quale possiamo, per esempio, contare i documenti o spostarci avanti, senza
che alcun dato venga effettivamente letto.
Si può accedere al server MongoDB attivo mediante shell. La shell esegue codice in
JavaScript.
La
notazione
comune
per
manipolare
un
database
è
db.NOME_COLLEZIONE.COMANDO(Dati JSON). Con il comando use ci spostiamo
di database in database, e ad esempio un inserimento dati nella collezione “pazienti”
avviene mediante il comando insert,
mentre se vogliamo consultare la lista dei
documenti dobbiamo utilizzare il comando find, o se vogliamo aggiornare una entry
bisogna fare un update.
Figura 5. Shell di interfaccia con mongod e principali operazioni CRUD
Come si può notare dalla figura 5, ogni record ha un proprio _id assegnato dal server
stesso al momento dell'inserimento dati. A differenza dell'SQL, MongoDB supporta gli
upsert, ovvero in caso di modifica di un target/parametro non specifico o non trovato,
viene creata la entry corrispondente. Altra grossa differenza è l'assenza delle join, poiché
considerate poco scalabili.
Dal punto di vista della sicurezza MongoDB utilizza un modello a ruoli per la creazione
e gestione degli utenti. Infatti, in modo del tutto simile ai RDBMS è possibile creare
utenti e assegnare il ruolo che possono ricoprire in uno o più database e i comandi
utilizzabili sulle varie collezioni.
L'autorizzazione è opzionale, settabile aggiungendo ”auth=true” in coda al file di
configurazione mongo.conf.
35
3.3 Prototipazione della piattaforma web di ICE
Come descritto nei precedenti capitoli, il chip NFC contenuto nel braccialetto ICE
contiene un link letto dallo smartphone, che rimanda al profilo del possessore del
braccialetto e che si suppone abbia bisogno di esser soccorsa. Quindi requisito
fondamentale per lo sviluppo dell'interfaccia web, è che questa sia responsive, ovvero che
sia facilmente leggibile dal display dello smartphone e che si adatti ai diversi e
dimensioni sul mercato. Quindi gli strumenti scelti per creare la piattaforma sono stati: il
web server LAMP (Linux Apache MySQL PHP) che ospita il sito, il PHP per le funzioni
di comunicazione tra la pagina e i database MySQL/MongoDB dove sono contenuti i
dati, il framework di sviluppo web Bootstrap[17], che permette una scrittura ottimizzata di
pagine HTML, CSS, JS per siti mobile, responsive. Inoltre dispone di una vasta gamma di
repository online, come Bootsnip, da cui reperire temi, template, risorse per lo sviluppo
del sito.
La piattaforma deve consentire la registrazione con l'inserimento dati sui due metodi di
memorizzazione in maniera trasparente. Inoltre deve consentire il login e semplicemente
restituire una pagina di profilo contente le informazioni, richiedendole dai due database
MySQL e MongoDB in maniera trasparente all'utente. Completa il sito la possibilità di
editare il profilo e il logout.
Nel profilo ICE coesistono dati identificativi del paziente,nei Personal Health Records[18]
(PHR) e nei contatti ICE. Le informazioni devono essere presentate in modo essenziale
ma comprensibile anche ai non addetti ai lavori (nel caso di soccorritori occasionale) con
particolare cura nel racchiudere tutto il necessario senza intaccare la leggibilità e
l'usabilità della piattaforma.
I dati anagrafici del paziente servono per identificare la persona e associarla
all'infortunato. Sono Nome, Cognome, Data di Nascita, Indirizzo, Genere e una foto
profilo (opzionale). Questa sezione sarà richiamata dal database MySQL.
I PHR sono campi che compongono una mini-cartella clinica digitale dell'individuo.
Questa sezione può essere modellata secondo quanto opportuno, è la vera e propria
sezione dinamica del profilo, nonché la più utile. Può contenere un numero indefinito e
variabile di campi, dati di natura complessa, liste. Vengono memorizzati su MongoDB.
36
La trascrizione in formato digitali di dati medico-sanitari è una prassi che è cominciata
verso fine anni '90 ed è in continua espansione per via dei notevoli vantaggi nella
gestione del paziente, nel rapporto con i medici e la burocrazia, e anche per una
convenienza economica. Non esiste un vero standard internazionale, inoltre ICE non si
pone questo obiettivo. Deve solo contenere i PHR immediatamente utili per il soccorso,
salvaguardando per quanto possibile la privacy dell'individuo. Nel nostro caso, a titolo
esemplificativo, abbiamo identificato come dati più significati per lo scopo:
-Gruppo Sanguigno;
-Fattore RH;
-Allergie;
-Terapia o Farmaci assunti correntemente;
Possono essere anche aggiunti o specificate patologie croniche o autoimmuni, interventi
subiti, protesi portate.
L'ultima sezione è composta dai numeri dei contatti ICE. Anche in questo caso sono
memorizzati come array su MongoDB. I numeri telefonici permetteranno di allertare le
persone indicate dal paziente nel braccialetto, e quindi fornire informazioni
supplementari.
Di seguito sono riportate delle figure rappresentative del sito, e stralci di codice
significativi per la generazione del profilo.
37
Figura 6. Homepage di INTACT ICE
<html>
<!-- Caricamento CSS e funzioni Bootstrap -->
<link href="dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="dist/css/custom.css">
<div class="row omb_row-sm-offset-3">
<div id="testata" class="center-block" ></div>
<!-- Inizio Pagina -->
<div class="container"> <div class="omb_login"> <h3 class="omb_authTitle">Login or
<a href="registrazione.php">Sign up</a></h3>
<div class="panel panel-default">
<div class="panel-body">
<!-- Inizio Form Login -->
<form action="profile.php" autocomplete="off" method="POST" role="form">
<div class="col-xs-4 col-sm-4"> <div class="row omb_row-sm-offset-3"> <div
class="input-group"> <span class="input-group-addon"><span class="glyphicon
glyphicon-star"></span><i class="fa fa-user"></i></span> <input type="text"
class="form-control" name="username" placeholder="Username"> </div> </div>
<?php echo '<p class="text-danger">';echo $_SESSION['errName']; echo'</p>';?>
<span class="help-block"></span>
<div class="row omb_row-sm-offset-3">
38
<div class="input-group"> <span class="input-group-addon"><i class="fa fa-lock"><span
class="glyphicon glyphicon-certificate"></span></i></span> <input type="password"
class="form-control" name="password" placeholder="Password"> </div><?php echo '.'.'<p
class="text-danger">';echo $_SESSION['errPass']; echo'</p>'; ?>
<input type="submit" value="Login" name="Login" class="btn btn-info btn-block"><div
class="form-group"> </form> </div> </div></div> <div class="row omb_row-sm-offset3"> <div class="col-xs-12 col-sm-3"> <label class="checkbox"> <input type="checkbox"
value="remember-me">Remember Me </label> </div> <div class="col-xs-12 col-sm-3">
<p class="omb_forgotPwd"> <a href="#">Forgot password?</a> </p></div> </div>
</div> </div> </div></div></div>
</html>
Come si può notare, in ogni pagina bisogna richiamare il CSS e i file di configurazione
di Bootstrap. Questo è necessario perché consente di utilizzare le classi del framework, e
quindi di poter distribuire gli elementi all'interno della pagina in maniera ordinata
mediante l'utilizzo di tag <div>. Bootstrap utilizza un sistema a colonne che suddivide le
pagine in settori. Più piccolo è il dispositivo, maggiore è il numero di colonne in cui
viene suddivisa la schermata, ed adattata la pagina. Quando si posiziona l'elemento si
possono specificare numeri di colonne diverse a seconda di che grandezza schermo viene
rivelata.
Figura 7. Form di registrazione
39
<!DOCTYPE html,php>
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$errName='';
//$errName='Insert valid name ';
if(!empty($_POST['username'])){
$errName='Insert valid name ';
}
?>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>Registration</title>
<!-- Bootstrap core CSS -->
<link href="dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="dist/css/custom.css">
<!-- Custom styles for this template -->
<link href="starter-template.css" rel="stylesheet">
<div id="testata" class="center-block"> </div>
<div class="container">
<div class="row centered-form">
<div class="center-block">
<!-- Inizio registration form-->
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Please sign up for Smartcare
<small>It's free!</small></h3>
</div>
<div class="panel-body">
<form role="form" method="POST" action="connectivitymysql-mongo.php">
<div class="row">
<div class="col-xs-6 col-sm-6 col-md-6">
<div class="form-group">
40
<input type="text" name="first_name" id="first_name"
class="form-control input-sm" placeholder="First Name">
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-6">
<div class="form-group">
<input type="text" name="last_name"
id="last_name" class="form-control input-sm" placeholder="Last Name">
</div>
</div>
</div>
<div class="form-group">
<input type="text" name="username"
id="username" class="form-control input-sm" placeholder="Username*">
<?php echo "<p class='text-danger'>$errName</p>";?>
</div>
<div class="radio">
<label><input type="radio" name="gender" value="male">Uomo</label>
</div>
<div class="radio">
<label><input type="radio" name="gender" value="female">Donna</label>
</div>
<div class="radio disabled">
</div>
<div class="form-group">
<input type="email" name="email" id="email"
class="form-control input-sm" placeholder="Email Address*">
</div>
<div class="row">
<p>Blood type</p> <select class="form-control">
<option>0+</option>
<option>A+</option>
<option>B+</option>
<option>AB+</option>
<option>0-</option>
<option>A-</option>
<option>B-</option>
<option>AB-</option>
</select>
<div class="form-group">
41
<input type="password"
name="password" id="password" class="form-control input-sm" placeholder="Password">
</div>
</div>
<div class="form-group">
<input type="password"
name="password_confirmation" id="password_confirmation" class="form-control inputsm" placeholder="Confirm Password">
</div>
</div>
</div>
<input type="submit" value="Register" name="Register"
class="btn btn-info btn-block">
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Fine form -->
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media
queries -->
<!--[if lt IE 9]>
<scriptsrc="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<scriptsrc="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
</body>
42
<?php
$errName='Insert valid name ';
?>
</html>
Nella pagina di registrazione sono intercalati delle istruzioni in PHP per verificare la
coerenza delle informazioni inserite ed evitare username già presenti o password
incoerenti. Anche qui il form utilizza il metodo POST per leggere i dati inseriti e spedirli
alla pagina/script PHP connectivity-mysql-mongo.php che si occupa di analizzare i dati e
creare nuovi utenti, suddividendo i dati nei vari database precedentemente descritti:
Come prima cosa lo script creala connessione ai due database
<?php
define('DB_HOST', 'localhost');
define('DB_NAME', 'smartcare');
define('DB_USER','angelo');
define('DB_PASSWORD','######');
define('MONGO_DB','smartuser');
define('MONGO_HOST','localhost:27017');
$mongo_conn = new
MongoClient("mongodb://"DB_USER":"DB_PASSWORD"@"MONGO_HOST"/smartus
er");
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect
to MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " .
mysql_error());
if (!$_POST['username']){
$errName = 'Please enter your name';
}
Poi, di seguito, in base all'username e password inoltrati controlla se effettivamente sei un
nuovo utente richiamando la funzione appropriata sign up:
<?php
function SignUp()
{
if(!empty($_POST['username'])) //checking the 'user' name which is from index.php, is
it empty or have some text
{
$query = mysql_query("SELECT * FROM utenti WHERE userName =
'$_POST[user]' AND password = '$_POST[pass]'") or die(mysql_error());
43
if(!$row = mysql_fetch_array($query) or die(mysql_error()))
{
NewUser();
}
else
{
echo "SORRY...YOU ARE ALREADY REGISTERED USER...";
}
}
}
if(isset($_POST['Register']))
{
SignUp();
}
?>
e infine inserisce i dati nei database con la funzione NewUser():
<?php
function NewUser()
{
global $mongo_conn;
$userName = $_POST['username'];
$genere = $_POST['gender'];
$terapia = $_POST['terapia'];
$allergie = $_POST['allergy'];
$BT = $_POST['blood_type'];
$ICE = $_POST['ICE'];
$db=$conn->smartuser;
$collezione = new MongoCollection($db, 'utenti');
// insert a new document into MongoDB
$item = array(
'ICE' => $ICE,
'genere' => $genere,
'username' => $userName,
'allergie' => $allergie,
'farmaci' => $terapia,
'BT' => $BT,
);
$collezione->insert($item);
44
// insert a new tuple into MySQL DB
$name = $_POST['first_name'];
$lname = $_POST['last_name'];
$email = $_POST['email'];
$password = $_POST['password'];
$query = "INSERT INTO utenti (nome,cognome,username,email,password)
VALUES ('$name','$lname','$userName','$email','$password')";
$data = mysql_query ($query)or die(mysql_error());
if($data)
{
echo "YOUR REGISTRATION IS COMPLETED...";
}
}
?>
Dopo la procedura di Login, possiamo accedere al profilo
<!DOCTYPE html>
<?php
session_start();
require("config.php");
define('DB_HOST', 'localhost');
define('DB_NAME', 'smartcare');
define('DB_USER','angelo');
define('DB_PASSWORD','smartcare');
define('MONGO_DB','smartuser');
define('MONGO_HOST','localhost:27017');
$mongo_conn = new
MongoClient("mongodb://angelo:smartcare@localhost:27017/smartuser");
$db=$mongo_conn->smartuser;
$collezione = new MongoCollection($db, 'utenti');
#$timezone = file_get_contents("/etc/timezone");
$_SESSION['errName']='';
$_SESSION['errPass']='';
$login = $_POST['username'];
$conn = mysqli_connect($host, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM utenti WHERE username='".$login."'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
#date_default_timezone_set($timezone);
if(isset($_POST['Login'])){
45
if(empty($_POST['username']) || mysqli_num_rows($result) == 0){
$_SESSION['errName']='inserisci username valido';
header("Location: index.php");
}
if(empty($_POST['password']) || $_POST['password'] != $row["password"]){
$_SESSION['errPass']='inserisci password valida';
header("Location: index.php");
}
}
?>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Profile</title>
<!-- Bootstrap -->
<link href="dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="dist/css/custom.css">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media
queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<div class="row"> <div class="col-md-5 toppad pull-right col-md-offset-3 ">
<A href="edit.html" >Edit Profile</A>
<A href="index.php" >Logout</A> <br>
<?php
echo date("Y-m-d");
$criteria= array('user'=>$login);
?>
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xs-offset-0 col-sm-offset-0 colmd-offset-3 col-lg-offset-3 toppad" > <div class="panel panel-info"> <div class="panel46
heading">
<h3 class="panel-title"><?php echo $row["nome"]." " ;echo $row["cognome"];?
> </h3> </div>
<div class="panel-body"> <div class="row"> <div class="col-md-3 col-lg-3 "
align="center">
<img alt="User Pic" src="https://lh5.googleusercontent.com/-b0k99FZlyE/AAAAAAAAAAI/AAAAAAAAAAA/eu7opA4byxI/photo.jpg?sz=100"
class="img-circle"> </div>
<div class=" col-md-9 col-lg-9 "> <table class="table table-user-information"> <tbody>
<tr> <td>Blood type</td> <td> $campi= array('BT');
$cursor=$collezione->find($criteria, $campi);
echo "<p>" .$cursor ;} </td> </tr>
<tr> <td>Allergy</td> <td><?php
$campi= array('allergie');
$cursor=$collezione->find($criteria, $campi);
foreach ($cursor as $value) {
foreach ($value["allergie"] as $def){
echo "<p>" .$def ;}
} ;?> </td> </tr> <tr> <td>Birth date:</td> <td>05/09/1989</td> </tr> <tr>
<td>Current therapy</td> <td><?php
$campi= array('farmaci');
$cursor=$collezione->find($criteria, $campi);
foreach ($cursor as $value) {
foreach ($value["farmaci"] as $def){
echo "<p>" .$def ;}
} ;?></td> </tr> <tr> <tr> <td>Gender</td> <td></td> </tr> <tr> <td>Home
Address</td> <td> </td> </tr> <tr> <?php echo $row["indirizzo"] ;?><td>Email</td>
<td><?php echo $row["email"] ;?></td> </tr> <td>ICE Phone Number</td>
<td><?php
$campi= array('ICE');
$cursor=$collezione->find($criteria, $campi);
foreach ($cursor as $value) {
foreach ($value["ICE"] as $def){
echo "<p>" .$def ;}
} ;?></td> </tr> </tbody> </table> </div> </div> </div> <div class="panel-footer">
<a data-original-title="Broadcast Message" data-toggle="tooltip" type="button" class="btn
btn-sm btn-primary"><i class="glyphicon glyphicon-envelope"></i></a> <span
class="pull-right"> <a href="edit.html" data-original-title="Edit this user" datatoggle="tooltip" type="button" class="btn btn-sm btn-warning"><i class="glyphicon
glyphicon-edit"></i></a> <a data-original-title="Remove this user" data-toggle="tooltip"
type="button" class="btn btn-sm btn-danger"><i class="glyphicon glyphiconremove"></i></a> </span> </div> </div> </div> </div> </div>
47
Figura 8. Profilo utente ottenuto dopo la procedura di login, richiamando i dati da
MongoDB e MySQL
La potenza di MongoDB nel maneggiare questa tipologia di dati sta nel poter ottenere da
un singolo documento lista non rigide di risultati, elencati come una lista grazie ad un
costrutto foreach. In questo modo non bisogna troppo preoccuparsi di cosa l'utente
specificherà nei campi, il documento generato farà da collettore per qualsiasi tipo di
PHR. Altri campi interessanti da inserire o quanto meno suggerire sono le vaccinazioni
effettuate, visto il crescente consenso anti-vaccinazione, le malattie esantematiche avute e
attuali patologie, infezioni o tumori a decorso cronico o autoimmune.
48
4.0 CONCLUSIONI
I dispositivi biomedicali sono entrati nella quotidianità non solo di medico e paziente,
ma vista la sempre maggiore attenzione ad argomenti quali il fitness, l'alimentazione e
soprattutto la prevenzione una vasta gamma di strumenti aiutano a monitorare e tener
traccia del nostro stile di vita. Questo contesto sposa perfettamente l'utilizzo del
braccialetto ICE, in quanto pratico, non invasivo, e consigliabile a chiunque. La
tecnologia dell'NFC permette di avere un canale sicuro e sempre disponibile di lettura del
profilo. Il profilo generato contiene un esempio di quali dovrebbero essere le
informazioni salienti da conservare a portata di mano in casi di necessità, La soluzione
proposta da INTACT dimostra molti punti di forza rispetto a prodotti analoghi, tra i
quali l'utilizzo di più modalità di comunicazione con l'applicazione (Qrcode, NFC), la
praticità,in quanto non necessità di PC o altri lettori particolari per leggere il contenuto,
il profilo è memorizzato in due database distinti, curando quindi anche l'aspetto della
privacy e infine il profilo non viene perso con la distruzione del braccialetto, proprio
perché non è contenuto all'interno del dispositivo, ma è accessibile via Web. Il profilo è
una pragmatica ma personalizzabile collezione di Personal Health Records, scalabile e
integrabile con tutti i dettagli ritenuti opportuni dal paziente. Proprio questo è un altro
punto di forza di INTACT ICE, ovvero la possibilità futura di ampliare e dotare di altri
servizi la piattaforma web, facendola evolvere da semplice scheda di presentazione ad un
vero e proprio diario della salute che può assolvere oltre che al ruolo di supporto al
pronto soccorso, anche come collegamento e tra paziente e medico, facilitando lo
scambio dati e quindi il follow-up terapeutico e il monitoring del paziente, quindi non
soltanto l'evento di soccorso ma, vista la necessità di portare il dispositivo sempre
addosso data l'imprevedibilità delle situazioni di pericolo, anche un impiego costante nel
tempo.
Dal punto di vista della sicurezza, la piattaforma potrebbe essere dotata di metodiche
preventive implementate nei campi memorizzati su database SQL verso le SQL-injection,
in quanto la parte gestita da MongoDB è resistente a questo tipo di attacco. La
comunicazione con il database va invece migliorata mediante l'utilizzo di PDO (PHP
Data Object), un'estensione PHP che consente di gestire in maniera unificata e
standardizzata le transazioni, rendendo l'applicazione web portabile su qualsiasi database.
In definitiva il braccialetto e la piattaforma di INTACT ICE hanno tutti i requisiti per
assolvere alla funzione per cui sono stati pensati, e possono addirittura aprire nuovi
scenari nel panorama della gestione, della diffusione, dell'utilizzo dei PHR trovando
nuovi campi di applicazione funzionale e razionale di questo patrimonio individuale che
se ben curato ed aggiornato in alcune situazioni può salvare la vita.
49
BIBLIOGRAFIA E SITOGRAFIA
[1] http://emergencystandard.org/ice_apps.html
[2] http://www.hoaxbuster.com/hoaxliste/contact-ice
[3] Decreto legislativo 30 Giugno 2003, n. 196, 2003.
[4]Dictionary of E-Business, Hoboken, Wiley, 2003.
[5] Kotler, Keller, Ancarani, Costabile, Marketing Management,, 14a ed.,2012.
[6] https://www.ama.org/Pages/default.aspx
[7] Amy Merrick, “Counting on the censuns”, Wall Street Journal, Febraury 14 2001
[8] Armstrong. M. A handbook of Human Resource Management Practice (10th edition)
2006, Kogan Page , London
[9] http://www.conceptdraw.com/How-To-Guide/picture/SWOT-Analysis-Blocks.png
[10] http://www.ilsole24ore.com/art/tecnologie/2015-02-17/aprire-nuova-azienda-europa-ifondi-e-agevolazioni-startup--171624.shtml?uuid=ABXY7EwC
[11] Osterwalder A. ,Creare modelli di business, Edizioni FAG, 2012
[12]http://nfc-forum.org/
[13]http://www.etsi.org/technologies-clusters/technologies/smart-cards
[14] P. Agrawal, S. Bhuraria,Collaboration between different stakholders is of utmost
importance to succeed in today's NFC-enabled world,Setlab briefings,2012
[15] http://www.engadget.com/2011/10/18/google-announces-nfc-based-android-beam-forsharing-between-phon/
[16]K. Seguin, The little MongoDB book, version 2.6
[17] http://getbootstrap.com/
[18] Ilias Iakovodis, Towards personal health record: current situation, obstacles and
trends in implementation of electronic healthcare record in Europe, IJMI,Volume 52,
1998
50