————————————————————————————————————————————————————————————— 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