UNIVERSITÀ DEGLI STUDI DI BARI “A. MORO” in collaborazione con CONSORTIUM GARR-X *** MASTER IN METODOLOGIE E TECNOLOGIE PER LO SVILUPPO DI INFRASTRUTTURE DIGITALI Tesi Business e Data modeling di Smartcare, una piattaforma web per la democrtizzazione della Sanità Relatore : Nicholas Caporusso Correlatore : Gianluca Lattanzi Candidato : Dott.ssa Mirna Valvano ANNO ACCADEMICO 2013 - 2014 INDICE Introduzione…………………………………………………………………………….........................1 1. La Tecnologia nella Sanità…………………………………………………………….........................3 2. Concetti generali di Business Model………………………………………………………………...4 2.1 Il Business Model Canvas………………………………………………………………….5 2.2 Business Model Canvas per lo Smartcare…………………………………..............................7 3. Smartcare…………………………………………………………………………………………..10 3.1 Cos'è Smartcare…………………………………………………………………………...10 3.2 Come funziona Smartcare………………………………………………………………....11 3.3 DATA MODELING di Smartcare……………………..............................................................11 4. Le basi di dati e i sistemi di gestione delle basi di dati…………………………………………….......18 4.1 Il Modello dei dati di un Database…………………………………………………………19 4.2 I Database Relazionali (RDBMS)………………………………………………………….20 5. Progettazione di Database relazionale……………………………………………………………...23 5.1 Progettazione concettuale: il Modello Entità-Relazione……………………………………23 5.2 Progettazione Logica di un Database Relazionale………………………………………….24 5.3 Diagramma Entità – Relazione per lo Smartcare…………………………………………...25 5.4 Progettazione Logica: le Tabelle di Smartcare……………………………………………...28 5.5 Creazione delle tabelle per i dati generali…………………………………………………..29 5.6 Implementazione del database in MySQL…………………………………………………33 6. Privacy e trattamento dei dati sensibili attraverso sistemi di elaborazione digitale…………………….34 6.1 Dati generali e dati sensibili dell'utente…………………………………………………….35 7. Infrastruttura di rete SMARTcare ………………………………………………………………….37 8. Progettazione database Farmacovigilanza…………………………………………………………..39 9. Conclusioni………………………………………………………………………………………...41 10. Bibliografia ………………………………………………………………………………………43 INTRODUZIONE Tra gli obiettivi principali dell’Organizzazione Mondiale della Sanità (OMS), Agenzia delle Nazioni Unite specializzata per le questioni sanitarie, c’è sia “il raggiungimento, da parte di tutte le popolazioni, del più alto livello possibile di salute", definita come “uno stato di totale benessere fisico, mentale e sociale”, e sia ridurre il trend stimato di morte per malattia cronica del 2% ogni anno fino al 2015.1 Questa riduzione potrebbe evitare il decesso di 36 milioni di persone nei prossimi dieci anni. Secondo l’OMS in Europa le malattie croniche provocano almeno l’86% dei morti e il 77% del carico di malattia. Per questo motivo la lotta alle malattie croniche rappresenta una priorità della Sanità Pubblica, sia nei Paesi più ricchi che in quelli più poveri. L’epidemia è più drammatica nei Paesi a basso e medio reddito, dove si verificano l’80% di tutte le morti per malattia cronica. Il rapporto Oms fornisce dati relativi a nove Paesi: Brasile, Canada, Cina, India, Nigeria, Pakistan, Russia, Gran Bretagna e Tanzania. Inoltre, dà anche nuove proiezioni dell’impatto economico delle malattie croniche. Per esempio, in Cina, India e Russia miliardi di dollari potrebbero andare perduti nei prossimi dieci anni a causa di queste patologie. La stima delle perdite totali, solo nel caso della Cina, tra il 2005 e il 2015, è pari a 558 miliardi di dollari, a 236 per l’India e a 303 per la Russia1. Per risolvere questi problemi è necessario coinvolgere tutte le strutture governative, l’industria privata, la società civile e le comunità, che dovrebbero collaborare congiuntamente. Di qui la necessità di investire nel controllo di queste malattie ma anche nella prevenzione. Diventa perciò importante la ricerca di strumenti e strategie che consentano di aiutare la comunicazione tra medici e pazienti al fine di intervenire il prima possibile. Si parla di prevenzione, di diagnosi precoce, e di possibilità di intervento immediato nei casi estremi. Le metodologie e tecnologie odierne potrebbero venire incontro a queste necessità, educando e formando medici e pazienti, all'utilizzo di software o di dispositivi hardware indispensabili per la salute del paziente. I primi veri segnali in questa direzione si sono avuti già alcuni anni fa, quando la sempre maggiore diffusione di internet ha favorito la condivisione di dati clinici e il confronto tra i medici su questioni prettamente terapeutiche. Da quel momento in avanti si è assistito ad un progressivo coinvolgimento del paziente nei percorsi di cura e, di pari passo ad un aumento dell’attenzione verso il proprio stato di salute. In generale è stata osservata: 1 una maggiore familiarità2 nell’utilizzo di dispositivi mobili in grado di raccogliere informazioni relative allo stile di vita, registrare l’attività fisica e misurare parametri fisiologici; frequentazione2 dell’ambiente web alla ricerca di rapporti diretti basati sul confronto tra medici; diffusione della connessione internet veloce2 che ha reso più facile accedere alle informazioni, ai servizi e alle applicazioni interattive presenti in rete. Un’indagine condotta dal Pew Research Center’s Internet and American Life project evidenzia che3: l’80% delle persone cerchi online informazioni in ambito salute; il 15-20% cerchi un secondo parere riguardo una diagnosi rifacendosi all’esperienza altrui; la percentuale complessiva di dati clinici che sono effettivamente presenti in rete nella modalità open non supera il 30% (essenzialmente dati dei pazienti costituiti, in gran parte, dagli aspetti meno tecnici della diagnosi e della terapia); nel rimanente 70% vi è la componente più importante di questi dati, incluse le loro rielaborazioni in senso epidemiologico e prospettico. Partendo da simili considerazioni il lancio di piattaforme di self-tracking e condivisione cloud di informazioni cliniche (come l’Apple Healthkit) potrebbe avere numerose conseguenze positive. Di qui nasce l’idea di creare un’applicazione gratuita, attraverso l’uso di una piattaforma cloud, in grado di consentire il monitoraggio di dati privati in tempo reale da parte di medici, o da parte di chiunque voglia utilizzare questa nuova tecnologia. L’utilizzo dell’applicazione di Smartcare proposta in questo progetto consente di monitorare in maniera costante lo stato di salute del cliente attraverso la condivisione dei dati con i propri supervisori (medici, personal trainer), e potrebbe essere esteso a tutti, cioè anche a soggetti sani che controllano le proprie condizioni di salute e che seguono diete particolari per ogni evenienza. Ad esempio l’applicazione potrebbe essere molto utile per chi pratica sport. L’attività fisica4 in generale apporta innumerevoli benefici sia al corpo che alla mente e in particolare irrobustisce il fisico e aiuta a prevenire le malattie. L’attività fisica è molto importante anche perché sviluppa e aiuta a mantenere sano l'apparato osseo, aiuta a ridurre lo stress, e consente di mantenere un ridotto contenuto di grassi corporei oltre che ad abbassare la pressione sanguigna. Per cui diventa importante curare il cliente che intende intraprendere un percorso sportivo, per il benessere fisico e mentale dello stesso. 2 Statisticamente circa il 60% degli sportivi4 abbandona la palestra dopo qualche mese, e la maggior parte dei motivi sono: il non raggiungimento degli obiettivi che il cliente si era prefissato e il non essere seguiti. Tutto ciò è facilmente prevedibile se ci si ricollega alle peculiarità individuali fisiche5, somatiche o psicologiche, di cui bisogna assolutamente tener conto quando ci si avvicina ad uno sport. Ed è qui che subentra la figura del personal trainer che studia caso per caso ed è chiamato ad applicare le sue competenze tecnico/scientifiche sul singolo cliente. I personal trainer lavorano sul corpo umano per cui è scontato che debbano conoscere nella maniera più approfondita possibile: anatomia, fisiologia, biomeccanica muscolo-scheletrica e esercizi specifici per correggere, modellare o per migliorare il benessere fisico del cliente. Ovviamente i personal trainer non sono chiamati a fare diagnosi ma devono obbligatoriamente valutare il soggetto per poterci "lavorare su” nel miglior modo possibile. Sarebbe molto utile che il personal trainer così come il medico potessero seguire il proprio cliente, analizzando i suoi dati, monitorandoli costantemente e suggerendo anche in tempo reale le “azioni” da svolgere per migliorarne le condizioni psico-fisiche. 1. LA TECNOLOGIA NELLA SANITÀ La cartella clinica6 è uno strumento utilizzato per gestire i dati clinici del paziente, dati che vengono raccolti durante gli incontri con gli operatori sanitari a scopo di prevenzione, o quando si manifestano episodi di malattia. La classica cartella cartacea ha perso di efficacia in quanto il continuo miglioramento del processo di cura ha portato la versione cartacea a diventare sempre più voluminosa, con una grande varietà di fonti da cui attingere documenti ed informazioni, e ha reso più difficile consultare e trovare tempestivamente le informazioni necessarie. Pertanto la cartella clinica informatizzata è diventata l’evoluzione elettronica della cartella cartacea. Per rendere più facilmente disponibile una cartella clinica elettronica si è pensato di realizzare un’applicazione chiamata Smartcare completamente gratuita che consente l’inserimento dei dati garantendone la privacy. Il percorso necessario e di prassi per poter realizzare uno strumento del genere prevede la creazione e sviluppo di un modello che miri a cercare le strategie migliori per sviluppare e distribuire lo stesso prodotto. 3 2. CONCETTI GENERALI DI BUSINESS MODEL Negli ultimi anni la rete web ha acquisito sempre più rilevanza nella vita delle persone e delle organizzazioni; l’utilizzo di tecnologie innovative è andato sempre più moltiplicandosi ed affinandosi nel tempo, la crescita di mercati emergenti ed una costante evoluzione dei processi di globalizzazione, hanno determinato un forte interesse verso i “business models7,8 ”, non solo nella mente dei ricercatori e degli studiosi ma anche all’interno delle imprese e delle organizzazioni che hanno visto subentrare nel loro mercato di riferimento nuovi “competitors”, la cui forza principale era quella di implementare un business model innovativo. Per cui il primo passo necessario per lanciare un nuovo prodotto/servizio, o per avviare una startup ad alto valore, consiste nel creare il proprio modello di business. In questo modo sarà possibile stabilire con precisione “cosa” bisogna fare, “come” bisogna farlo e “per quali precisi clienti” l'azienda vuole creare valore. Infatti il compito principale di ogni impresa è fornire valore al cliente8, un valore che sia superiore alla concorrenza e che sia al tempo stesso in grado di garantire all’impresa una sicura redditività. Un’impresa per avere successo deve definire in maniera chiara il modo in cui rende disponibile e distribuisce il valore al cliente. L’offerta del prodotto di valore deve far cogliere al cliente gli elementi di differenza e superiorità dell’impresa rispetto alla concorrenza8, delineando tutte le fasi che vanno dall’analisi alla progettazione, alla distribuzione vera e propria del valore, e all’esperienza di acquisto e consumo e cioè la cosiddetta customer experience. Ci sono una serie di definizioni che contribuiscono a dare un significato esaustivo al business model. Tra le principali definizioni ricordiamo : - statement o descrizione9,10,11,12 - rappresentazione o modello9,13 - architettura o disegno di riferimento9,14 - insieme di strumenti di gestione o metodo9,15 - struttura o set9,16 Riassumendo il business model17si può definire come l’insieme delle soluzioni organizzative logiche e strategiche attraverso cui l’impresa crea, distribuisce e cattura valore, al fine di acquisire un vantaggio competitivo. Il business model, quindi, mira alla creazione di valore per tutte le parti coinvolte nella sua architettura e ciò definisce l’entità del valore totale che 4 creerà. Il business model in particolare nel campo dell’innovazione presenta i seguenti punti fermi9 : - articolazione dell’offerta di valore, cioè il valore creato per i consumatori è basato sull’innovazione. In questa fase è necessario individuare i motivi che potrebbero portare i consumatori ad interessarsi al prodotto innovativo. - identificazione del mercato di riferimento ; - definizione della catena di valore grazie a cui l’impresa è in grado di creare e distribuire l’innovazione; - stima dei costi di struttura e dei profitti potenziali conseguibili dall’innovazione. - descrizione della posizione investita dall’impresa all’interno dell’intero network con conseguente identificazione di partners e competitors. Un’analisi dettagliata di questi punti fermi del business model potrebbe portare gli imprenditori stessi a modificare il modello al fine di renderlo adatto alla tipologia di valore che si vuole proporre. Per questo motivo è possibile costruire sulla base di queste modifiche una “road map9” da prendere come riferimento per facilitare lo sviluppo e distribuzione del valore. Per lo sviluppo e progettazione dello Smartcare la road map adottata è basata sul business Model Canvas9,17. 2.1 IL BUSINESS MODEL CANVAS8,17 Per creare e sviluppare modelli di business innovativi può essere usato il Business Model Canvas, uno strumento strategico che vede l’utilizzo di un linguaggio visuale. In particolare tale modello consente di rappresentare in maniera visiva il modo in cui un’azienda crea, distribuisce e cattura valore. Questo modello scompone le componenti del business model in nove blocchi17: Attività primarie: - key partners: questo primo blocco identifica tutti i partners con i quali l’azienda stringe le relazioni chiave che si configurano come fonti del valore che verrà portato al cliente. Queste relazioni possono avere svariate forme: alleanze, partnership e cooperazioni. - key activities: ovvero tutte le attività necessarie alla creazione del prodotto; - key resources: tutto ciò che serve all’azienda per riuscire a produrre valore: risorse fisiche, intellettuali, umane e finanziarie; 5 - value proposition: descrive la proposizione del valore composta da tutto ciò che per i clienti ha valore e quindi per il quale essi sono disposti a pagare; - customer relationships: tutte le modalità attraverso cui l’azienda si relaziona con i clienti e gestisce la relazione; Figura 1. Business Model Canvas - channels: l’insieme di mezzi attraverso cui il servizio/ prodotto dell’azienda raggiunge il cliente attraverso comunicazione, distribuzione, rete di vendita; - customer segments: ovvero i clienti divisi in segmenti in base a parametri prescelti dall’azienda (geografici, bisogni, interessi, canali di distribuzione) - cost structure: la definizione dei costi fissi e variabili che l’azienda deve sostenere per sviluppare la propria offerta: - revenue streams: ovvero l’insieme dei ricavi suddivisi per tipologia di cliente ed orizzonti temporali. 6 2.2 BUSINESS MODEL DI CANVAS PER Smartcare Il business model Canvas applicato allo Smartcare, un’applicazione in grado di monitorare anche a domicilio la salute dei pazienti in maniera costante, è suddiviso in nove blocchi: - Value Proposition : il prodotto è una piattaforma web e App mobile che consente l’aggregazione, l’analisi e condivisione di informazioni sanitarie con i propri medici, personal trainer o tutti coloro con cui si vorrà condividere i propri dati in tempo reale. La piattaforma Smartcare si avvale di una collezione di Applicazioni mobile e dispositivi medicali (ICE) che permettono di semplificare l’acquisizione dei dati e motivare l’utente a tenere sotto controllo la propria salute in modo sistematico, come un gesto quotidiano di cura della persona. Lo Smartcare presenta diverse funzionalità tra cui la possibilità di collegarsi ad un braccialetto elettronico (ICE) usato per le emergenze e di farmacovigilanza. L'implementazione di tale modello consentirà sicuramente al paziente di aggiornare quotidianamente i dati relativi alla propria patologia o relativi alla propria attività sportiva, in modo tale da tenere sempre aggiornato il proprio medico o il proprio personal trainer. Inoltre lo Smartcare potrebbe essere molto utile per valutare la bontà di un farmaco e per fare studi statistici di Farmacovigilanza attraverso l’uso di questionari posti in risalto sull’interfaccia grafica dell’App. Il prodotto potrebbe essere subito disponibile sul web, o addirittura potrebbe essere installato sul proprio Smartphone (come una cartella clinica portatile ed elettronica), in cui inserire quotidianamente i propri dati. In questo senso ovviamente sarà importante tutelare la privacy dei pazienti e dei dati recuperati dai centri o medici che hanno in cura il paziente. - Key Activities : Le attività chiave per rendere funzionante il modello potrebbero essere le seguenti : A1. Attività preliminare : Ricerca di dati demografici riguardanti la parte di popolazione affetta da patologie e studi sulle attività da svolgere per migliorare il benessere psico-fisico dei clienti appartenenti ad altre fasce. In modo tale da avere un'idea della necessità di intervenire sul problema, in maniera immediata. A2. Studio e ricerca di strategie mirate all'inserimento della tecnologia dello Smartcare nel mondo della Sanità. Una delle possibili strategie potrebbe prevedere il coinvolgimento del settore della Farmacovigilanza. I nuovi farmaci utilizzati nelle nuove terapie in fase di sperimentazione clinica, richiedono infatti un monitoraggio continuo sugli effetti benefici e sugli effetti 7 avversi perlopiù ancora sconosciuti, così come la maggior parte dei farmaci richiede continuo monitoraggio. A3. Studio di strategie mirate ad aumentare la compliance del paziente, dello sportivo o di chiunque voglia utilizzare il prodotto. Succede spesso che le terapie non vengono assiduamente seguite così come anche le diete e le attività giornaliere sportive consigliate e ciò danneggia la salute del cliente. L’utilizzo del prodotto potrebbe garantire continuità e efficacia nell’applicazione dei suggerimenti terapeutici o relativi ad azioni da svolgere mirate a migliorare la salute. Tutto ciò potrebbe anche richiedere lo sviluppo di “funzionalità che fungano da sensore” per “richiamare il paziente” in determinate ore, giorni o periodi dell'anno, e invitarlo a rispondere a domande specifiche miranti a monitorarne le condizioni fisiche e mentali. A4. Individuazione lista campi e principali indici fisiologici o patologici da considerare per il monitoraggio. A5. Ricerca di strategie per il rewind di dati forniti dalle persone sane e persone malate. A6. Introduzione dell’App su una piattaforma Cloud. Questo punto è basato principalmente sul concetto di servizio e sul concetto di Cloud. I servizi sono componenti computazionali autonomi, che non dipendono dalla piattaforma e che possono essere pubblicati e composti ottenendo reti di applicazioni distribuite. In questo modo l'applicazione diventa un servizio disponibile sulla rete. Per la realizzazione dello Smartcare è necessario costruire un backend e un frontend costituenti essenziali del cloud compunting. Il frontend è cio che l'utente vede e, per essere visualizzato, è necessario che il computer dell'utente e l'applicazione possano accedere al cloud. E' importante la creazione di interfacce grafiche semplici e intuitive al fine di agevolare e migliorare l'impatto con il prodotto. Il backend è invece il cloud vero e proprio (messo a disposizione da un potenziale fornitore) ed è quindi composto da tutti quei dispositivi come computer, server-web e dispositivi di memorizzazione dati (storage, database) che ovviamente necessitano di essere monitorati. Sarà perciò necessario il monitoraggio del traffico di rete, amministrare il sistema e gestire le richieste degli utenti da un server centrale. Questo segue determinate regole (i cosiddetti protocolli) e sfrutta un software speciale chiamato middleware che dà la possibilità ai computer nella rete di comunicare tra di loro. A7. sviluppo d interfacce grafiche e di ulteriori implementazioni volte a realizzare tutti i moduli dell'APP. A8. Studio della legislazione della privacy dei dati del paziente, per garantire la totale tutela dello stesso paziente. 8 Attività secondarie: B1. Formazione dei medici e dei pazienti sull'utilizzo del prodotto, e offerta di continuo supporto tecnico agli stessi. C1 Revisione. Studio e ricerca di migliorie finali del prodotto, in seguito alla conoscenza del parere di medici e pazienti, e in seguito all'apprendimento delle loro ulteriori esigenze. Correzioni errori attraverso lo sviluppo di eventuali implementazioni volte a migliorare l'applicazione. Customers Segment : sono i segmenti di clienti ai quali l'azienda si rivolge e cioè : 1) medici di base, che in questo modo potranno avere in tempo reale tutte le informazioni relative al paziente per poter intervenire in maniera tempestiva e vegliare in maniera continuativa sulle condizioni di salute del cliente; 2) aziende ospedaliere pubbliche e private; 3) medici di base e specialisti; 4) ASL di riferimento dei pazienti; 5) aziende farmaceutiche; 6) i pazienti, che usufruirebbero dello Smartcare per inserire in qualunque momento i propri dati; 7) chiunque necessiti di comunicare in tempo reale o raccogliere dati giornalmente e condividerli, ad esempio persone che fanno sport a qualsiasi livello, o che seguono diete particolari o indicazioni per la cura del benessere fisico e mentale. Key Resources: le risorse chiave necessarie perché l'azienda funzioni : - Programmatori in grado di creare il software necessario per la realizzazione dell'APP completa. Inoltre, i computer possiedono processori multicore e sono collegati in rete per cui gli ingegneri del software dovranno essere esperti anche nel calcolo distribuito e in parallelo per sfruttare al meglio queste nuove tecnologie. - Grafici e esperti in User Experience e User Interface per la progettazione di interfacce grafiche intuitive e semplici per garantire usabilità e fruibilità adeguate e semplici sia per i medici che per i pazienti. - Sistemisti per la configurazione, gestione e manutenzione dei server dedicati in cloud. - Programmatori per lo sviluppo della piattaforma web con relativa interazione con i database. - Risorse in grado di raccogliere dati relativi ai farmaci e in grado di poter supervisionarne gli effetti benefici o nocivi attraverso stime statistiche. - Aziende farmaceutiche (di farmaci o di integratori alimentare di qualunque tipo), diretti (eventuali) fruitori del prodotto. In particolare per le aziende l'utilizzo del prodotto potrebbe tornare utile per monitorare gli effetti avversi dei farmaci. 9 - Figure in grado di formare in modo adeguato il cliente e assistenti domiciliari disponibili per aiutare il paziente o i suoi familiari e i medici nell'uso del prodotto. -Formatori nelle scuole per educare anche i ragazzi ad un uso “Responsabile” e non improprio dello Smartcare, sempre per il benessere della popolazione. Customer Relationships : le relazioni che si instaurano con i clienti. Relazionarsi con il cliente è fondamentale per consentire allo stesso di avere costantemente un supporto per ogni eventuale chiarimento, e per consentire allo stesso di avere fiducia nella potenzialità dello strumento tecnologico che si propone oltre che nella azienda proponente. Tra le figure di Customer Relationships si individuano: 1) intermediari, tipo infermieri professionale o operatori socio-sanitari in grado di supportare il paziente nell'uso del prodotto; 2) le scuole, ottimo veicolo con cui inserire il concetto dell'utilizzo della cartella clinica elettronica, attraverso un'APP; 3) i medici e i personal trainer. Channels: i canali di distribuzione e contatto con i clienti. I canali di distribuzione potrebbero essere aziende private, aziende ospedaliere pubbliche, medici di base, ASL (settore della farmacovigilanza), compagnie telefoniche. Le scuole e palestre costituirebbero un altro strumento di distribuzione del prodotto. Key Partnerships : ossia i partner chiave con cui l'impresa dovrà stringere alleanze. - I partner chiave sono: i Medici, le strutture ospedaliere private e pubbliche, le compagnie telefoniche a cui proporre l'inserimento dello Smartcare, e l'ASL, l'Istituto superiore di Sanità che potrebbe magari essere interessato a raccogliere dati sull'epidemiologia delle diverse patologie. - Fornitori di piattaforme cloud. Non rientrano nel lavoro qui di seguito riportato la definizione dei costi fissi e variabili che l’azienda deve sostenere per sviluppare la propria offerta, e l’insieme dei ricavi suddivisi per tipologia di cliente. 3. SMARTCARE 3.1 Cos'è Smartcare Lo Smartcare è una piattaforma web supportata da un’APP mobile tramite cui l’utente potrà inserire quotidianamente e in qualsiasi momento i dati (record, radiografie, etc) relativi alle proprie condizioni di salute. 10 È sufficiente iscriversi via web all'applicazione e inserire i propri dati per poter disporre delle numerose funzionalità di cui dispone, tra cui la possibilità di monitorare l'andamento delle proprie attività sportive in termini calcolo di calorie da “bruciare, memo per gli esercizi da svolgere, calcolo di km percorsi in corsa, monitoraggio continuo da parte del proprio personal-trainer. Smartcare può essere utile anche per allertare il proprio medico o centri di farmacovigilanza, su eventuali reazioni avverse dei farmaci. Nel complesso lo Smartcare potrebbe diventare uno strumento utilissimo, multifunzionale e molto versatile. 3.2 Come funziona Smartcare Si accede collegandosi al seguente link: http://Smartcare.intacthealthcare.com ci si registra inserendo nome, cognome, e-mail, codice fiscale, password, cioè dati generali. L’ID_Utente e il codice fiscale consentiranno al medico di identificare il proprio cliente. L'utente dopo essersi iscritto alla piattaforma, completerà il suo profilo inserendo tutte le informazioni personali, di cui potrà definire la visibilità limitata al proprio medico di base, a medici specialisti specifici, e ai propri familiari che garantiranno assistenza in casi di emergenza. I familiari del cliente che usa Smartcare potranno inserire i propri dati in schede dedicate in modo tale da consentire al medico curante di avere una visione completa delle condizioni di salute del paziente e dei dati di ereditarietà. Lo Smartcare offre anche la possibilità di utilizzare un forum in cui il cliente può fare domande e confrontarsi con tutti i medici specialisti e aggiungerli alle persone di fiducia che hanno visibilità completa del profilo. I dati del paziente rimarranno sempre tutelati da privacy. La privacy dei dati clinici inseriti è garantita. Nella fase successiva alla registrazione infatti il cliente acconsentirà al trattamento dei dati sensibili ai sensi dell'articolo 81 del D.Lgs.vo n. 196/200318. Nel caso di minorenni sarà necessario che uno o entrambi i genitori, sottoscrivano il consenso e “accompagnino” il minorenne nell'inserimento dei dati nello Smartcare. Anche i dati degli sportivi e delle aziende saranno tutelati da privacy. 11 3.3 DATA MODELING DI SMARTCARE Per la realizzazione dello Smartcare è necessario individuare e selezionare con cura i campi che il cliente utilizzerà per inserire i propri dati generici e privati. Per fare questo come prima cosa occorre pensare di dividere la mole di dati che il cliente inserirà nello Smartcare. Perciò consideriamo due tipologie di dati: i dati generali di tutti gli utenti, come nome cognome etc., e i dati privati del cliente stesso. Una lista di campi pensati e creati per l’introduzione dei dati del cliente Smartcare, e in cui potranno essere inseriti caratteri numerici e alfanumerici è la seguente: Informazioni generali Codice Fiscale Nome Cognome Genere Data di Nascita Indirizzo Email Telefono Gruppo sanguigno Password Anamnesi generale Data Altezza Peso Patologie croniche Patologie presenti in famiglia (note libere) Appetito (Normale/ Ridotto/Aumentato) Calo ponderale ultimo anno Età prima gravidanza Figli Aborti Parto (Naturale o Cesareo) Allattamento (Artificiale o Naturale) 12 Menarca ( Età prima mestruazione) Mestruazioni (Regolari/Irregolari) menopausa Consumo di alcolici (Birra/Vino/Superalcolici/Aperitivo) Consumo di tabacco SI NO Stupefacenti (Morfina e simili/ Eroina /Cocaina /Amfetamine/LSD /Altro) Uso di sostanze psicoattive Malattie Esantematiche avute ( Morbillo/Scarlattina/Rosolia/Parotite/Quinta malattia/sesta malattia/Varicella/Pertosse) Vaccinazioni: Difterite, tetano, pertosse Poliomelite (IPV) Epatite B Haemophilus influenzae b MPR(antimorbillo-rosolia-parotite) Varicella HPV (antipapilloma virus) PCV (antipneumococco coniugato) Men C (antimeningococco C) Trapianti d’organo Organo colpito Dati privati Occhi Deficit visivo (da barrare con crocetta) Vista (Emmetrope=nessun disturbo, Miope=Non mette a fuoco oggetti lontani, Ipermetrope= Non mette a fuoco oggetti vicini, Astigmatico= Vede l'immagine deformata secondo una direttrice) Fundus oculare (in caso di patologie a carico della retina) 13 Orecchie Deficit uditivo (da barrare con la crocetta) Orecchio DS o Orecchio SN Utilizzo di protesi uditive Presenza di protesi Numero Localizzazione protesi (Testa/Denti/Torace/Braccia/Gambe) Mutilazioni o minorazioni fisiche della mobilità Allergie alimenti sostanze chimiche metalli farmaci acari della polvere piante glutine lattosio proteine del latte altre tipologie di allergie (note) Cuore Affezioni cardiovascolari Cardiopatie Aritmie Malattie congenite cardiache (quali?) Pressione sist/diast (pressione minima e massima): Normale/ Iperteso Infarto miocardio o cardiopatie ischemiche Bypass coronarici o stent sostituzione valvole cardiache Aneurisma 14 Sistema nervoso e malattie neurologiche Malattie del Sistema Nervoso centrale (quali?) Morbo di Parkinson Si/No Alzheimer Soffri di attacchi epilettici? Si/No Distrofia Sclerosi multipla Altro Apparato respiratorio: ASMA Malattie respiratorie (quali?) Apparato escretore, malattie metaboliche Malattie endocrine (quali?) Malattie metaboliche (quali?) Diabete (Tipo diabete) Tipo 1 : Insulina utilizzata: Breve/media/lunga durata Tipo 2 : Farmaco utilizzato: Solfoniluree/Biguanidi/Glitazoni/Inibitori dell alfaglucosidasi/Altro Reni Calcolosi renale? Diuresi (normale/anormale) Insufficienza renale ? Nessuna/Acuta/Cronica Malattie renali(quali?) Malattie del sangue Anemia (da carenza di ferro/ da carenza di B12/emolitica, tipo di anemia) Talassemia? (alfa / beta /mediterranea) Leucemie Linfomi Mieloma multiplo Emofilia 15 Difetti di coagulazione Altro Malattie sistema immunitario malattie croniche/autoimmuni artrite reumatoide spondilite Dermatomiosite lupus eritematoso vasculiti artrosi Sclerodermia Psoriasi Gotta Osteoartrosi Altro Malattie infettive Agenti infettivi Gonorrea Sifilide Gardnerella Chlamydia trachomatis ureaplasma urealyticum trichomonas vaginalis AIDS HPV (Papilloma Virus) Epatite B,C Tumori organo colpito (Ossa/Cervello/Sangue/Pelle/Polmoni/Stomaco/Colon/Ovaie/Testicoli/Vescica/Reni/I ntestino/Pancreas/Tiroide/Cuore/Occhi) Tipo di terapia utilizzata 16 Chemioterapia Radioterapia Uso di terapie a base di anticorpi monoclonali o altro Interventi subiti (numero e organi colpiti) Farmaci usati Malattie urogenitali Iperplasia prostatica Disfunzione erettile Tumori uterini Cisti ovariche Endometriosi Infezioni frequenti Altro Farmaci assunti DATI GIORNALIERI : Dato_identif_per utente ( Pressione dell’occhio, Indice glicemico, VES, PCR etc..) Data inserimento Pressione Diuresi Note Funzionalità respiratorie Frequenza cardiaca Diagnosi di medico o personal trainer datata Farmaci assunti giornalmente Alimentazione (proteica, glicidica, carica di grassi o carica di zuccheri) Consigli alimentazione Scheda esercizi fisici da fare ogni giorno per ogni sport praticato Durata tipologia di esercizi (giornalieri, settimanali o mensili) Dimagrimento Massa Forza Definizione 17 Possibilità di inserimento immagine di esercizi fisici specifici da consigliare al cliente. Upload Analisi Hb(concentrazione emoglobina nel sangue) Ferritemia(riserva epatica di ferro) Sideremia(concentrazione del ferro nel sangue) Piastrine Azotemia(concetrazione urea nel sangue) Bilirubina Creatinina Trigliceridi HDL(Aggregati colesterolo ad alta densità, “benigni”) LDL(Aggregati colesterolo a bassa densità,”nocivi”) Glicemia (Concentrazione glucosio nel sangue) Globuli bianchi Transaminasi(Proteina essenzialmente epatica o muscolare, indica danni a carico di questi organi) TSH/FT3/FT4(Ormoni tiroidei circolanti) Aldosterone (Ormone delle surrenali, importante nel controllo della pressione) Analisi specifiche in base alla patologia (possibilità di upload) o in base al consiglio del personal trainer. Tutti i campi e quindi sia i dati privati che generali devono perciò essere immagazzinati in un database che ne consenta una facile fruizione. Perciò è necessario pensare alla realizzazione di un database ad hoc per lo Smartcare. 4. LE BASI DI DATI E I SISTEMI DI GESTIONE DELLE BASI DI DATI I dati possono essere suddivisi in tre distinte tipologie19: dati di input che corrispondono a dati che devono essere inseriti nel database e dati isolati le cui associazioni non sono ancora stabilizzate; una volta inseriti nel database questi dati occupano il posto a loro destinato nello schema informativo ed attivano le associazioni logiche da essi realizzate: in questa fase si parla di dati operazionali. Quando lo schema informativo viene interrogato, e 18 vengono ricercati i dati opportuni, navigando attraverso lo schema e le sue associazioni logiche, si ottengono i dati richiesti che sono presentati come dati di output. Per cui un database può essere definito come una collezione di dati operazionali memorizzati ed utilizzati dalle applicazioni di un’organizzazione. I dati sono separati in entità e associazioni. Le entità sono gli oggetti fisici, i documenti, le persone; le associazioni invece sono i fatti che le coinvolgono. L’ANSI19 (American National Standard Institute) su proposta dello SPARC (System Planning and Requirements Committee) ha costituito un gruppo di studio con lo scopo di fornire alcuni standard nella realizzazione degli aspetti funzionali di un DBMS (Database Management System). Un DBMS20 è un sistema o prodotto software in grado di gestire collezioni di dati che siano grandi di dimensioni, persistenti (con un periodo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano), condivisi (utilizzate da applicazioni diverse) e in grado perciò di garantire affidabilità (resistenza ai malfunzionamenti hardware e software) e privatezza (cioè con una certa disciplina e controllo degli accessi). In particolare ogni DBMS deve essere efficiente perché è necessario utilizzare al meglio le risorse di spazio e tempo del sistema ed efficace per rendere produttive le attività dei suoi utilizzatori. In particolare l’ANSI ha stabilito che I DBMS19 (Database Management System) presentano un’architettura a tre livelli: il livello di riferimento è la definizione (schema) concettuale del database; a questo corrispondono (da parti opposte) il livello del database fisico ospite della macchina e del suo software di base, ed il livello esterno attraverso il quale il database viene percepito dagli utenti. Tra i DBMS più conosciuti ricordiamo: Oracole, MySQL, Mongo DB. I problemi principali che si possono riscontrare nei DBMS sono la ridondanza ossia le informazioni ripetute, e i rischi di incoerenza. 4.1 IL MODELLO DEI DATI DI UN DATABASE20 I modelli di dati di un database possono essere : 1. Relazionali, ossia modelli che permettono di definire tipi per mezzo del costruttore di relazione, e che consentono di organizzare i dati in insiemi di record a struttura fissa. 2. Gerarchici cioè basati sull’utilizzo di strutture ad albero. 3. Reticolari e cioè basati sull’uso di grafi, e sviluppati successivamente al modello gerarchico. 19 4. Database a Oggetti, ossia sviluppati come evoluzione del modello relazionale negli anni 80. Principalmente abbiamo due tipi di modelli più diffusi e cioè i modelli logici, utilizzati nei DBMS esistenti per l’organizzazione dei dati, indipendenti dalle strutture fisiche (esempi: relazionale, reticolare, gerarchico, a oggetti) e modelli concettuali. Questi permettono di rappresentare i dati in modo indipendente da ogni sistema e cercano di descrivere i concetti del mondo reale. Il più noto è il modello Entity-Relationship. In particolare in ogni base di dati esistono: gli schemi che ne descrivono la struttura che rimane invariata nel tempo e le istanze ossia il corpo delle tabelle. Le transazioni effettuate sui DBMS godono delle cosiddette proprietà logiche ACID20 ossia Atomicity, Consistency, Isolation, e Durability (Atomicità, Coerenza, Isolamento e Durabilità). Affinchè le transazioni operino in modo corretto sui dati è necessario infatti che i meccanismi che le implementano soddisfino queste quattro proprietà: atomicità: consiste nel fatto che la transazione è indivisibile nella sua esecuzione e la sua esecuzione deve essere o totale o nulla, infatti non sono ammesse esecuzioni parziali; consistenza: quando inizia una transazione il database si trova in uno stato coerente e quando la transazione termina il database deve essere in un altro stato coerente, ovvero non deve violare eventuali vincoli di integrità, quindi non devono verificarsi contraddizioni (inconsistenza) tra i dati archiviati nel DB; 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 transazioni in esecuzione; Durabilità: detta anche persistenza, si riferisce al fatto che una volta che una transazione richiede un commit work, i cambiamenti apportati non dovranno essere più persi. 4.2 I DATABASE RELAZIONALI (RDBMS) L’obiettivo del modello di database relazionale è quello di affrancare le applicazioni da qualsiasi forma di dipendenza dai dati, svincolando il database sia dalla loro organizzazione che dalle loro vie d’accesso. I database relazionali sono molto flessibili e concettualmente semplici, il linguaggio con cui vengono interrogati è basato principalmente sui concetti di insiemistica. Nel modello relazionale i dati si inseriscono in tabelle bidimensionali, dette per l’appunto “relazioni21”. Ogni riga di una tabella rappresenta una tupla della relazione e ciascuna colonna è detta attributo. I valori degli attributi vengono scelti nell’ ambito di classi o gamme di valori accettabili (domini). 20 I database relazionali risultano basati su dei valori e non su degli indirizzi di memorizzazione. Ad esempio, il modo in cui sono ordinate le righe e gli attributi non è significativo e ciascun valore deve essere di tipo atomico, cioè elementare. Non sono pertanto ammessi nè vettori mono o pluridimensionali nè strutture composte. Se non è fatta in questa maniera, una relazione si presenta nella cosiddetta “prima forma normale”, che tuttavia può ancora contenere delle dipendenze funzionali e dare quindi luogo a delle anomalie in occasione di operazioni di inserimento, cancellazione, aggiornamento. Per cui, come tecnica di progettazione, conviene suddividere una relazione in due o più “tronconi”: in questo processo verranno perciò eliminate le anomalie ottenendo così la normalizzazione dei dati. Inoltre un database non è relazionale se non viene percepito dall’utente come un insieme di relazioni. In un database relazionale la rappresentazione dei dati avviene come abbiamo detto senza dover descrivere dove si trovano fisicamente i dati. Con i DBMS non relazionali invece il progettista di un’applicazione è spesso tenuto a conoscere e rispettare una sequenza fisica dei dati. I database relazionali inoltre sono caratterizzati da integrità referenziale, e per creare tale integrità è necessario creare una chiave primaria in una tabella. Le chiavi21 sono campi speciali che giocano ruoli specifici, infatti il tipo di chiave determina il proprio scopo all’interno della tabella. Ci sono diversi tipi di chiave, ma in questo lavoro faremo riferimento solo a due tipi principali di chiave e cioè la chiave primaria e la chiave esterna. In particolare la chiave primaria è un campo o un gruppo di campi che identifica in modo univoco ogni record all’interno della tabella. Quando una chiave primaria è composta da due o più campi, viene denominata chiave primaria composita. La chiave primaria è importante perché il suo valore identifica un record specifico nell’interno del database, mentre il suo campo identifica una data tabella nell’intero database. Le chiavi primarie21 inoltre rafforzano l’integrità del livello di tabella e aiutano a stabilire delle relazioni con le altre tabelle. Le chiavi esterne invece sono importanti non solo perché aiutano a stabilire relazioni tra coppie di tabelle, ma anche perché aiutano ad assicurare l’integrità del livello di relazione. Questo significa che le registrazioni nelle tabelle considerate nella progettazione di un database, saranno sempre propriamente legate perché i valori della chiave esterna dovranno derivare dai valori della chiave primaria alla quale si riferiscono. Le chiavi esterne aiutano ad evitare i record orfani, di cui un esempio classico è un record d’ordine senza un cliente di riferimento, infatti se non si conosce chi ha inoltrato l’ordine, questi non può essere effettuato. 21 Una dipendenza di chiave esterna è una regola specificante che, a meno che la chiave esterna non sia nulla, deve sempre corrispondere ad un valore della chiave primaria. Le dipendenze di chiavi esterne sono rafforzate dall’imposizione di regole19 sulle operazioni di manipolazione dei dati, quali: 1. REGOLE PER L’INSERIMENTO No action: non permette l’aggiunta di un record a meno che la chiave esterna sia nulla o vi sia una corrispondente chiave primaria nella tabella primaria. Si noti che è possibile specificare che il valore nullo non è ammesso in una colonna, incluse quelle della chiave esterna. 2. REGOLE PER L’AGGIORNAMENTO No action: non permette di dare un valore non nullo ad una chiave esterna a meno che vi sia una corrispondente chiave primaria nella tabella primaria. Non permette l’aggiornamento di una chiave primaria se esistono righe con una corrispondente chiave esterna. Restrict: identico a NO ACTION, eccetto che il controllo è immediato. 3. REGOLE PER LA CANCELLAZIONE No action: non permette la cancellazione di una riga nella tabella primaria se esiste una riga con chiave esterna corrispondente. Restrict: identico a NO ACTION, eccetto che il controllo è immediato. Cascade: quando una riga nella tabella primaria viene cancellata, vengono cancellate anche tutte le righe con corrispondente chiave esterna. Set null: imposta al valore nullo le colonne delle chiavi esterne che possono assumere tale valore quando viene cancellata la riga con la corrispondente chiave primaria. Set default: imposta al valore di default tutte le colonne della chiave esterna quando la riga della corrispondente chiave primaria viene cancellata. Le chiavi primarie sono dunque degli identificatori univoci di righe e sono costituite dal numero minimo di attributi necessari per differenziare ciascuna riga della tabella da tutte le altre (di chiavi primarie ce ne possono essere più di una, ed in tal caso la scelta spetta al progettista). Le chiavi primarie non possono contenere valori nulli e devono avere un significato. Per salvaguardare l’integrità delle entità, bisogna infatti che nessuno degli attributi presenti in una chiave primaria contenga un valore nullo. Inoltre, nessuno degli attributi che costituiscono una chiave primaria può essere eliminato senza rinunciare all’univocità dell’identificazione. L’altra regola è quella dell’integrità referenziale ed assicura non solo che le tabelle siano correlate tra loro, ma che lo siano in modo non ambiguo. 22 Ogni valore di una chiave deve infatti esistere come valore di una chiave primaria in un’altra tabella o essere nullo. Una chiave esterna è un attributo (o una combinazione di attributi) di una tabella i cui valori devono corrispondere a quelli della chiave primaria di un’altra tabella o essere nulli, ossia non avere alcun valore. Le chiavi esterne devono essere definite nell’ambito della stessa gamma di valori o dominio. I linguaggi utilizzati per la manipolazione dei dati in un RDBMS possono essere molteplici, in particolare in questo lavoro è stato usato SQL. Il modello relazionale usa le operazioni dell’albegra relazionale di selezione di righe, fusione di tabelle e proiezione di colonne (select, join e project) per reperire o estrarre i dati delle tabelle: tali operatori manipolano tabelle e restituiscono tabelle, cioè insiemi di righe e colonne. 5. PROGETTAZIONE DI UN DATABASE RELAZIONALE22 1. Analisi dei requisiti. In questa fase vengono analizzate le necessità informative e le transizioni da soddisfare. 2. Progettazione concettuale. Nella fase di progettazione concettuale viene analizzato l'insieme dei dati informativi, per cui vengono individuate e definite le entità e le associazioni coinvolte al fine di formalizzarne l'insieme. Le associazioni possono esistere tra entità e sono da non confondere con le tabelle o le relazioni del database. La fase di progettazione concettuale rappresenta perciò la prima fase di lavoro per la realizzazione di un Database relazionale, in cui viene rappresentato il contenuto della base di dati prescindendo dal modo in cui i dati saranno rappresentati nel modello di Database scelto. 3. Progettazione logica. Rappresenta lo step successivo nella realizzazione di un database relazionale e si basa sullo schema generato dalla fase precedente e lo traduce nel modello della base di dati adottata. Per esempio, nel modello relazionale, lo schema viene tradotto in un insieme di relazioni (tabelle) con definite le chiavi primarie ed esterne. 4. Progettazione fisica. Traduce lo schema logico in termini delle tabelle e relazioni. 23 5.1 PROGETTAZIONE CONCETTUALE22: IL MODELLO ENTITÀ- RELAZIONI In un Database Relazionale il modello concettuale dei dati più diffuso è il modello EntitàRelazioni. Lo schema Entità-Relazioni22 è costituito da un diagramma che contiene alcuni elementi fondamentali: - Le Entità: rappresentano una classe di oggetti di interesse che hanno caratteristiche comuni. Vengono rappresentate da un rettangolo all'interno del quale vengono inserite delle etichette che identificano l'entità. - La Relazione: tra due o più entità possono esistere delle relazioni o legami logici. La relazione viene indicata con un rombo in cui viene scritta un’etichetta che la identifica. Nei rami della relazione viene specificata la cardinalità della relazione che descrive il numero minimo e massimo di istanze della relazione cui una istanza dell'entità può essere collegata. In base alla cardinalità le relazioni possono essere di tre tipi : - 1:1 Una coppia di Entità può intrattenere una relazione Uno a Uno quando un unico record di una tabella è legato ad un unico record di una seconda tabella e un solo record della seconda tabella è legato ad un solo record della prima tabella La relazione avviene prendendo la Chiave Primaria della tabella principale ed inserendola nella seconda tabella dove diviene Foreign Key. Questo è un tipo particolare di relazione, perché in molti casi la Foreign Key diviene Chiave principale della seconda tabella. - 1: N Quando una coppia di tabelle presenta una relazione Uno a Molti, vuol dire che un singolo record della prima tabella può essere legato a molti record della seconda tabella, ma un singolo record della seconda tabella può essere legato con un unico record della prima tabella. Questa relazione è stabilita prendendo la Chiave Primaria della tabella dal lato “Uno” ed inserendola nella tabella dal lato “Molti” dove diviene Foreign Key. - N:N Un a coppia di tabelle intrattiene una relazione molti a molti quando un singolo record della prima tabella può legarsi a molti record della seconda tabella e un singolo record della seconda tabella può legarsi a molti record della prima tabella. Per stabilire questa relazione è necessario creare una tabella di collegamento, che fornisce un modo semplice di associazione dei record di una tabella con quelli di un’altra. Una tabella di collegamento viene definita prendendo una copia delle Chiavi Primarie di ciascuna tabella della relazione ed utilizzandole per formare la struttura della seconda tabella. 24 Questi campi rivestono due ruoli distinti e formano la Chiave primaria composita della tabella di collegamento, mentre separatamente ciascuna serve come Foreign Key. - L' Attributo: è una proprietà dell'entità o della relazione. Esiste un identificatore che è un attributo particolare che in maniera univoca una istanza dell'entità e corrisponde alla chiave primaria. Il simbolo che si usa per indicarlo è un cerchietto finale pieno. 5.2 PROGETTAZIONE LOGICA DI UN DATABASE RELAZIONALE Il secondo passo nella progettazione di un database è quello di creare un Modello Relazionale in cui i dati di un database sono immagazzinati in relazioni, che all’utente appaiono sotto forma di tabelle. Ogni tabella o relazione è composta da tuple (records, righe) e attributi (fields, campi, colonne). Un database perciò è costituito principalmente da tabelle e ciascuna tabella rappresenta un soggetto unico. Non è importante in una tabella l’ordine logico dei record cosi come l’ordine dei campi. Ogni tabella contiene almeno un campo chiamato Chiave Primaria che identifica ogni record in modo univoco. In questo modo i dati in un database relazionale possono esistere indipendentemente dal modo in cui sono stati immagazzinati. Nella fase di progettazione logica22 le entità del diagramma entità relazione, diventano tabelle. Il soggetto rappresentato in ogni tabella può essere sia un oggetto che un evento, entrambi possono essere immagazzinate come dati. 5.3 DIAGRAMMA ENTITÀ - RELAZIONI PER LO SMARTCARE Per comprendere meglio l'uso del Diagramma Entità-Relazioni lo applichiamo al fine di realizzare un Database Relazionale in MySQL che supporti lo Smartcare. Nel diagramma Entità-Relazione dello Smartcare, le entità sono : Utente_dati_generali a cui fanno riferimento le persone di fiducia (i familiari), i pazienti, i medici di base e specialisti, gli sportivi, i personali trainer e i soccorritori, che inseriranno i loro dati generali nei campi indicati e uguali per tutti. La modalità per esprimere la dipendenza di una entità da un’altra entità al fine di ereditarne tutti i suoi attributi è la generalizzazione o generalizzazione IS-A24 che consiste in legami logici tra un'entità E detta entità Padre e una o più entità E1...En, dette entità figlie, di cui E è più generale nel senso che le comprende come caso particolare. 25 Si dice che in questo caso E è generalizzazione di E1….En e che E1,...En sono specializzazioni dell'entità E. Quindi Utente è la generalizzazione di persone di fiducia, medici, personal trainer, soccorritori, atleti o sportivi. Per contro, le entità appena indicate rappresentano le specializzazione dell'Utente. Tra le entità coinvolte in una generalizzazione valgono le proprietà generali riportate di seguito. Ogni occorrenza di un'entità figlia è un'occorrenza dell'entità padre. Ogni proprietà dell'entità padre (attributi, identificatori, relazioni e altre generalizzazioni) è anche una proprietà delle entità figlie. Per esempio se l'entità Utente_dati_generali ha come attributi nome, cognome, anche le entità figlie avranno gli stessi attributi che andranno a completare le specializzazioni (ulteriori specifici attributi caratteristici di ciascuna entità figlia) delle entità figlie. Questa proprietà delle generalizzazioni è nota come ereditarietà. Le generalizzazioni vengono rappresentate graficamente mediante delle frecce che congiungono le entità figlie con le entità padre, e per le entità figlie, le proprietà ereditate non vanno rappresentate esplicitamente. Le generalizzazioni possono essere classificate sulla base di due proprietà tra loro ortogonali24: - una generalizzazione è totale se ogni occorrenza della classe padre è almeno un'occorrenza di almeno una delle entità figlie, altrimenti è parziale. - una generalizzazione è esclusiva se ogni occorrenza della classe padre è al più una occorrenza delle entità figlie, altrimenti è sovrapposta. Nel nostro caso parliamo di generalizzazione totale, perché tutte le occorrenze dell'utente generale sono anche occorrenze delle entità figlie, per cui tutte le figure individuate sono utenti che inseriscono dati generali comuni o che accedono al database. Inoltre la generalizzazione è al tempo stesso anche esclusiva, perché ogni utente poi si distingue come familiare, medico, paziente, sportivo, personal trainer o soccorritore, evidenziando le proprie caratteristiche. La chiave primaria dell’entità Utenti_dati_generali è l’ID_UTENTE che costituirà l’identificatore esterno per le altre specializzazioni e che sarà creato in automatico dal database. Questo vuol dire che in ciascuna entità ci sarà una chiave primaria specifica per quell’entità e un ID_Utente che fungerà da chiave esterna di collegamento con la tabella di Utente_dati_generali. In questa prima tabella esiste anche una chiave secondaria individuata nel codice fiscale (CF). Inoltre tra le diverse specializzazioni di utente esistono delle relazioni o vincoli di chiave, ad esempio un paziente può selezionare più persone di fiducia (cardinalità 1,N) e le persone di 26 fiducia possono accedere ai dati del paziente o di più pazienti a loro assegnati (cardinalità 1,N). Per quel che riguarda la relazione medico paziente la cardinalità è sempre del tipo 1,N e sarà intesa come possibilità di accesso dei medici selezionati a più pazienti, o come effettiva selezione di medici da parte dei pazienti. In più i medici potranno in tempo reale fornire N referti a N pazienti, con riportata la relativa data. Nella sezione dedicata agli sportivi invece ci saranno personal trainer (cardinalità 1,N) che potranno essere selezionati da N sportivi(cardinalità 1,N) in quanto uno sportivo potrà svolgere più attività ed essere seguito da più allenatori. Viceversa i personal trainer potranno avere più sportivi assegnati. Anche in questo caso ci sarà la possibilità di refertare o di dare suggerimenti in tempo reale agli atleti attraverso l’utilizzo di referti datati. (relazione N,N). Particolare importanza è da attribuire anche ai soccorritori (1,N) che in caso di emergenza potranno accedere ai dati generali dei pazienti (1,N) o degli atleti(1,N) come nella figura: Figura 2. Diagramma Entità-Relazione Smartcare Una volta stabilito il mondo degli utenti, gli stessi inseriranno i loro dati nella cartella clinica accedendovi online attraverso lo Smartcare. Per cui l'inserimento dei dati consentirà la creazione di due cartelle una per gli sportivi e una per i pazienti. Poi distinguiamo altre tre entità e cioè l’entità Anamnesi generale, l’entità Patologia_organo e l’entità dati giornalieri. Questi dati costituiscono i dati clinici privati. L’entità Anamnesi generale raccoglie attributi come data e ID_patologie croniche oltre a proprietà come altezza e peso. 27 Nel diagramma entità relazione viene riportata anche l’entità Patologia_organo per cui c’è un ID_Patologia_organo necessario per individuare le patologie che ciascun utente potrà segnalare. Questa entità racchiude una serie di campi (mostrati nel paragrafo Data modeling di Smartcare) indispensabili al medico per inquadrare lo stato complessivo del proprio paziente. La parte dinamica invece dello Smartcare è incentrata sull’entità Dati_giornalieri, che presenta come attributi una data (chiave primaria), un dato indicativo del paziente che viene costantemente monitorato dal proprio medico, i dati pressori registrati giornalmente o periodicamente e ovviamente un ID_Utente_Paziente che indicherà il paziente proprietario della cartella e che servirà al medico per poterlo individuare tra i suoi clienti. 5.4 PROGETTAZIONE LOGICA : LE TABELLE DI SMARTCARE Dal momento che il modello relazionale non permette di rappresentare direttamente una generalizzazione è necessario trasformare questo costrutto in altri costrutti più semplici del modello E-R : le entità e le relazioni. Infatti le entità e le relazioni sono invece direttamente rappresentabili. Si eliminano perciò le gerarchie sostituendole con entità e con relazioni. Per rappresentare una generalizzazione mediante entità e associazioni ci sono tre alternative possibili24 : 1. Accorpamento delle figlie della generalizzazione nel padre. 2. Accorpamento del genitore della generalizzazione nelle figlie. 3. Sostituzione della generalizzazione con relazioni. La scelta tra le varie alternative può essere fatta considerando vantaggi e svantaggi delle varie possibili alternative relativamente al costo di memoria e al costo delle operazioni coinvolte. Si possono tuttavia riassumere delle regole generali per la scelta: A) L’alternativa (1) è conveniente quando le operazioni non fanno distinzione tra le occorrenze e tra gli attributi dell’entità genitore, e delle entità figlie. B) L'alternativa (2) è possibile solo se la generalizzazione è totale, altrimenti le occorrenze dell’entità padre che non sono occorrenze né di una entità figlia e né di un’altra entità figlia, non sarebbero rappresentate. È conveniente quando ci sono operazioni che si riferiscono solo a occorrenze di una certa entità figlia oppure di un’altra entità figlia, e dunque fanno delle distinzioni tra tali entità. In questo caso abbiamo un risparmio di memoria rispetto alla scelta (1), perché, in linea di principio, gli attributi non assumono mai valori nulli. 28 Inoltre, c'è una riduzione degli accessi rispetto alla scelta (3) perché non si deve visitare l’entità figlia per accedere ad alcuni attributi delle entità figlie. C) L'alternativa (3) è conveniente quando la generalizzazione non è totale (sebbene ciò non sia necessario) e ci sono operazioni che si riferiscono solo a occorrenze delle entità figlie oppure dell’entità padre, e dunque fanno delle distinzioni tra entità figlia ed entità padre. In questo caso abbiamo un risparmio di memoria rispetto alla scelta (1), per l'assenza di valori nulli, ma c'è un incremento degli accessi per mantenere la consistenza delle occorrenze rispetto ai vincoli introdotti. 5.5 CREAZIONE DELLE TABELLE PER I DATI GENERALI Dal diagramma entità relazione si evincono le seguenti tabelle : ENTITA’ UTENTE GENERALE ID_Utente CF Nome Cognome Password Genere Indirizzo Data di nascita Gruppo Sanguigno Email Telefono CHIAVE PRIMARIA CHIAVE SECONDARIA ENTITA’ PERSONE DI FIDUCIA Grado di familiarità ID_Utente_Persona_di_fiducia ID_Utente CHIAVE PRIMARIA CHIAVE EST. (VERSO ENTITA’ UT) ENTITA’ MEDICO ID_Tipologia_medico ID_Utente ASL CHIAVE PRIMARIA CHIAVE EST. (VERSO ENTITA’ UT) 29 ENTITA’ PAZIENTE ID_Utente_Paziente ID_Utente Codice Paziente ASL CHIAVE PRIMARIA CHIAVE EST. (VERSO ENTITA’ UT) RELAZIONE PAZIENTE_MEDICO ID_Utente_paziente ID_Tipologia_medico CHIAVE EST. (VERSO ENTITA’ PZ) CHIAVE EST. (VERSO ENTITA’ MD) RELAZIONE DIAGNOSI_MEDICO Referto Data ID_Tipologia_medico ID_Utente_paziente CHIAVE EST. (VERSO ENTITA’ MD) CHIAVE EST. (VERSO ENTITA’ PZ) ENTITA’ PERSONAL TRAINER Palestra ID_Utente_Personal_Trainer ID_Utente CHIAVE PRIMARIA CHIAVE EST. (VERSO ENTITA’ UT) ENTITA’ SPORTIVO ID_Utente_Sportivo ID_Utente Codice Tessera Palestra CHIAVE PRIMARIA CHIAVE EST. (VERSO ENTITA’ UT) RELAZIONE PERSONAL TRAINER_SPORTIVO ID_ Utente_Sportivo ID_Utente_Personal_Trainer CHIAVE EST. (VERSO ENTITA’ SP) CHIAVE EST. (VERSO ENTITA’ PT) RELAZIONE REFERTI_PERSONAL TRAINER ID_Utente_Personal_Trainer Referto ID_Utente_Sportivo Data referto CHIAVE EST. (VERSO ENTITA’ PT) CHIAVE EST. (VERSO ENTITA’ SP) 30 ENTITA’ PATOLOGIA_ORGANO ID_Utente_Paziente ID_Patologia_Organo ID_Utente Organo CHIAVE EST. (VERSO ENTITA’ PZ) CHIAVE PRIMARIA CHIAVE EST. (VERSO ENTITA’ UT) Relazione PATOLOGIA_ORGANO_UTENTE_GENERALE ID_Utente ID_Patologia_Organo CHIAVE EST (VERSO ENTITA’ UT) CHIAVE EST. (VERSO ENTITA’ P.O.) ENTITA’ DATI GIORNALIERI ID_Dato_indicativo_per_utente Data Pressione Note ID_Utente CHIAVE SECONDARIA CHIAVE PRIMARIA CHIAVE EST. (VERSO ENTITA’ UT) ENTITA’ ANAMNESI GENERALE Altezza Peso Data Patologie croniche ID_Utente CHIAVE PRIMARIA CHIAVE EST. (VERSO ENTITA’ UT) ENTITA’ CARTELLA SPORTIVO Dati Sportivo ID_Utente_Sportivo ID_Utente CHIAVE PRIMARIA CHIAVE EST. (VERSO ENTITA’ UT) ENTITA’ SOCCORRITORI ID_Utente ID_Soccorritore Nome Ospedale CHIAVE EST. (VERSO ENTITA’ UT) CHIAVE PRIMARIA 31 RELAZIONE SOCCORRITORI-PAZIENTI ID_Utente_Paziente CHIAVE ESTERNA (VERSO ENTITA’ PZ) CHIAVE ESTERNA (VERSO ENTITA’ SOCC.) ID_Soccorritore La prima tabella è quella dell’ entità Utente generale che contiene attributi comuni a tutte le entità figlie. In particolare l’ID_Utente calcolato in maniera automatica durante la creazione del database, identificherà ciascun cliente in maniera unica e tale da consetirgli l’inserimento e la visualizzazione dei dati all’interno dello Smartcare. L’ID_Utente quindi sarà la chiave primaria interna della prima cartella e identificatore esterno o chiave esterna per le seguenti entità : entità persone di fiducia, entità paziente, entità medico, entità soccorritore, entità personal trainer e entità soccorritore. Il Codice Fiscale è invece una chiave secondaria che ad esempio consente al medico o al personal trainer di selezionare nel database il cliente di cui si vogliono monitorare i dati. La tabella successiva che visualizziamo è rappresentata dall’Entità Persone di Fiducia, e si riferisce ai familiari del cliente che avranno la facoltà di accedere ai dati privati del cliente stesso attraverso una password. In questo caso nella tabella abbiamo l’attributo grado di familiarità che distinguerà la categoria dalle altre, e una chiave esterna ID_ Utente_persone_di _fiducia che rappresenta la chiave primaria dell’Entità Utente Persone di fiducia, mentre l’ID_Utente rappresenta la chiave esterna che consente alla categoria di ottenere tutti gli attributi dell’Utente generale. Lo stesso discorso vale per l’Entità Paziente che in realtà presenta come chiave esterna l’ID_Utente, come chiave Primaria l’ID_Utente_paziente e come attributi ASL e codice paziente. L’entità Medico invece ha come attributo l’ASL di riferimento e come chiave esterna l’ID_Utente mentre l’ID_tipologia_medico indica la chiave primaria. Lo stesso varrà per l’entità sportivo e l’entità soccorritore, che ovviamente presenteranno attributi diversi per distinguersi dalle altre categorie. Non esiste perciò una chiave primaria esterna, una chiave o è primaria o è esterna. La chiave primaria è l'ID della tabella stessa, mentre la chiave esterna è un riferimento ad altre tabelle. Come possiamo osservare invece per l’entità sportivo e personal trainer esiste sempre una chiave primaria e una chiave esterna che fa riferimento alla tabella Utente generale. Lo stesso vale per la tabella soccorritori che in questo caso riportiamo perché ogni soccorritore effettuando l’accesso al database per soccorrere un certo paziente verrà 32 registrato nel database. Per quel che riguarda le cardinalità invece valgono le seguenti regole generali21: - le relazioni con 1:N da una parte e 1:1 dall'altra diventano chiavi esterne nella tabella dove c’è la cardinalità 1:1. - le relazioni con N:N da tutte e due le parti diventano tabelle, come succede ad esempio con la relazione paziente medico. In questo caso ID Utente Paziente e ID Tipologia di medico sono due chiavi esterne rispettivamente verso l’entità paziente e l’entità medico e gli altri attributi non vanno aggiunti. Come regola generale nelle relazioni N:N da tutte e due le parti si hanno sempre due chiavi esterne (verso le due entità che sono in relazione), nessun attributo a meno che gli attributi vengano messi direttamente sul rombo, e nessuna chiave primaria esplicita (la chiave primaria sarebbe la coppia ID Utente paziente + ID Tipologia di medico, che in genere non si scrive). Nel nostro caso l’unica relazione con attributi diversi dalle chiavi esterne è la relazione in cui i medici refertano i pazienti, in cui ci deve essere anche data e referto oltre alle due chiavi esterne. Lo stesso di relazione esiste tra i personal trainer per gli sportivi relativamente alla refertazione. Per la tabella Utente generale e dati giornalieri non si fa una relazione perché la relazione ha N:N solo da una parte. E’ sufficiente in questo caso mettere una chiave esterna sui dati giornalieri (tabella entità) verso l'utente generale. I dati giornalieri rappresentano la parte dinamica dei dati, in questo caso la relazione tra utenti e dati giornalieri sarà del tipo 1,1 a 1,N e questo vuol dire che per ogni utente ci sarà la possibilità di scrivere ogni giorno nuovi dati e che i nuovi dati faranno riferimento solo ad un unico utente. Poi abbiamo l’ Entità Utente dati generali e l’entità patologia _organo per le quali esiste una relazione del tipo N, N e quindi una relazione in cui vengono riportate ID_Utente e ID_patologia organo, per poter risalire alla patologia in base all’organo colpito per ciascun utente. Le entità Utente e Anamnesi generale presentano una relazione del tipo 1, N a N,N e cioè per ogni utente esisterà una ed una sola anamnesi generale che farà riferimento ai dati fissi di ogni utente. Per gli sportivi esisterà la possibilità di compilare una unica cartella. Infine esiste la tabella per i soccorritori che potranno soccorrere i pazienti e gli sportivi e dunque qualsiasi utente registratosi, in questo caso l’ID_soccorritore sarà la chiave primaria dell’entità soccorritore e l’ID Utente rappresenterà la chiave esterna verso l’entità Utente generale. 33 5.6 IMPLEMENTAZIONE DEL DATABASE SQL 23 > CREATE TABLE Utente generale ( ID_Utente INT NOT NULL AUTO_INCREMENT PRIMARY KEY Nome VARCHAR(40) NOT NULL, Cognome VARCHAR (40) NOT NULL, CF VARCHAR (20) NOT NULL, Genere VARCHAR (3) NOT NULL, Indirizzo VARCHAR(20) NOT NULL, Data di nascita (DATE) NOT NULL, Telefono VARCHAR (20) NOT NULL, Gruppo Sanguigno VARCHAR (4) NOT NULL, EMAIL VARCHAR(20) NOT NULL, Password VARCHAR (20) NOT NULL ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB >SHOW TABLES >DESCRIBE Utente_generale >INSERT INTO `Utente_generale` (`Nome`, `Cognome`, `Genere`, `Data di nascita`, `Indirizzo`, `Residenza`, `Email`, `Telefono`, `CF`) VALUES ('Mirna','valvano','f',24091975,'melfi','melfi1','mirna.valvano',333,'vlvmrn') Questa operazione viene fatta per la creazione di ogni tabella, così come l’inserimento dei valori all’interno di ciascuna tabella. In particolare per la cartella Patologia Organo avremo : >CREATE TABLE Patologia organo ( ID_Utente INT NOT NULL ID_Patologia_organo INT (20) NOT NULL AUTO_INCREMENT PRIMARY KEY, Trapianti d’organo VARCHAR(40) NOT NULL, Organo VARCHAR (15) NOT NULL, Cardiopatie VARCHAR (20) NOT NULL, Problemi cardiovascolari VARCHAR (30) NOT NULL, Aritmie VARCHAR(20) NOT NULL, Malattie congenite VARCHAR (20) NOT NULL, Pressione Arteriosa VARCHAR (20) NOT NULL, Malattie del SNC VARCHAR (20) NOT NULL, Alzheimer VARCHAR(10) NOT NULL, Parkinson VARCHAR (20) NOT NULL, ASMA VARCHAR(20) NOT NULL, Malattie respiratorie VARCHAR (20) NOT NULL., Malattie metaboliche VARCHAR (20) NOT NULL, Diabete VARCHAR (20) NOT NULL, Insufficineza renale VARCHAR(20) NOT NULL ID_Utente INT NOT NULL, FOREIGN KEY (ID_Utente) REFERENCES Utente_generale(PRIMARY-KEY) ); ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB 34 >INSERT INTO `Patologia_Organo`(`ID_utente`, `ID_Patologia organo`, `Trapianto d’organo `, `Organo`, `Problemi cardiovascolari`, etc..) VALUES ('********','123456','si',occhio,'infarto miocardico',etc..); In questo modo sarà possibile creare le tabelle per l’inserimento dei dati generici e privati di ciascun cliente. Dopodichè sarà possibile sempre con il linguaggio SQL creare delle “QUERY” ossia script di interrogazione al database. 6. PRIVACY E TRATTAMENTO DEI DATI SENSIBILI ATTRAVERSO SISTEMI DI ELABORAZIONE DIGITALE In caso di trattamento elettronico dei dati sensibili sanitari, ossia di dati personali riferibili alla salute delle persone, è tuttavia necessario adottare sia tecniche di separazione dei dati identificativi dai dati sensibili, sia modalità di cifratura dei dati sensibili. La normativa richiamata per tutelare la privacy dei clienti sui dati personali, trova fonte esclusivamente nel D.Lgs. 196/2003 (Codice della Privacy). Per cui è necessario porre in essere delle misure volte sia alla separazione sia alla cifratura degli stessi dati; infatti il 6° comma dell’art. 22 stabilisce la cifratura dei dati sensibili ed il 7° comma precede, in aggiunta, la conservazione separata dei dati sensibili sanitari dagli altri dati personali. Il punto 24 dell’Allegato B prevede “le modalità di cui all'articolo 22, comma 6, del codice”, ossia che le modalità relative alla cifratura dei dati, devono essere applicate “anche al fine di consentire il trattamento disgiunto” dei dati sensibili sanitari dagli altri dati personali identificativi. Tale trattamento disgiunto può essere applicato con svariate modalità, tra cui la cifratura dei dati sensibili o l’utilizzo di codici identificativi. La conferma sulla correttezza di questa interpretazione è desumibile dal dettato del punto 19.8 dell’Allegato B del Codice della privacy, in base al quale il Documento Programmatico della Sicurezza contiene idonee informazioni riguardo i dati personali idonei a rivelare lo stato di salute e la vita sessuale, l'individuazione dei criteri da adottare per la cifratura o per la separazione di tali dati dagli altri dati personali dell'interessato. Diventa importante nel nostro caso proteggere i dati e soprattutto dividere i dati identificativi generali dell’utente che si registra in Smartcare dai dati privati clinici sensibili che necessiteranno a questo punto di essere inseriti in un database diverso da quello dei dati generali. Alla luce di queste considerazioni è necessario pensare ad una possibile struttura di rete in cui posizionare due database distribuiti su due 35 server diversi e posizionati in posti diversi, e cioè uno che contenga i dati generali e uno che contenga i dati sensibili. 6.1 DATI GENERALI E DATI SENSIBILI DELL’UTENTE L’utilizzo di Database separati distribuiti su server disgiunti al fine distinguere i dati generali da quelli privati, ha indotto alla ricerca o allo studio di plausibili piattaforme di cui disporre ad un basso costo e attraverso cui realizzare l’infrastruttura di rete per lo Smartcare. Questo ha consentito la fruizione del sito di Digital Ocean25, un semplice e veloce fornitore di cloud hosting integrato per gli sviluppatori. Digital Ocean utilizza la virtualizzazione KVM e inoltre ospita una libreria di utili procedure dettagliate e tutorial che coprono la configurazione e ottimizzazione dei server. In sostanza, ciò che Digital Ocean offre26, è un VPS (Virtual Private Server), cioè un server cloud con storage SSD. Questo tipo di storage infatti rappresenta una tipologia di dispositivo di memoria di massa basata su semiconduttore, che utilizza memoria allo stato solido (in particolare memoria flash) per l'archiviazione dei dati, anziché supporti di tipo magnetico come nel caso dell'hard disk classico. Altra caratteristica vantaggiosa delle memorie flash risiede nelle ridotte dimensioni fisiche. Oltre alla memoria in sé, un'unità disco SSD dispone di diversi componenti necessari alla gestione del suo funzionamento. Ne consegue che l'altra importante differenza con i classici dischi è la possibilità di memorizzare in maniera non volatile grandi quantità di dati, senza l'utilizzo di organi meccanici (piatti, testine, motori ecc.) come fanno invece gli hard disk tradizionali. La piattaforma di Digital Ocean offre perciò la possibilità di utilizzare dispositivi di storage (database) in cloud su Tier-127 (rete di primo livello) di rete con 1 TB di trasferimento dei dati a un costo bassissimo. Una rete di primo livello è una rete IP (tipicamente ma non necessariamente un Internet Service Provider) che si connette all'intera Internet soltanto attraverso un'interconnessione non regolata da contratto, conosciuta anche come peering. La definizione generalmente accettata tra i professionisti del networking è: Rete di Primo livello ossia una rete che comunica con ogni altra rete per raggiungere Internet. Per definizione, una rete di primo livello non acquista transito IP da nessun'altra rete per raggiungere Internet. Di conseguenza, per poter essere un primo livello, una rete deve comunicare con altre reti di primo livello. Le reti di primo livello cercano di proteggere il proprio stato relativamente privilegiato impedendo alle nuove reti di diventare esse stesse di primo livello, e per questo 36 potenzialmente competitive. L’dea per la realizzazione dei database a supporto di Smartcare è quella di costruire una rete client – server punto punto, in cui attraverso il client dell’utente che accede all’APP è possibile collegarsi a un server web database posizionato in una FARM del Cloud che conterrà i dati generali di identificazione e un database situato in un altro punto in cui introdurre i dati sensibili da proteggere. In questo modo l’utente potrà inserire i propri dati personali generali in un database situato in cloud, e continuare poi con l’inserimento di dati privati che confluiranno in un database separato garantendone l’archiviazione, la privacy e la custodia. Tale complessa stratificazione delle risorse è realizzata in modo del tutto trasparente per l’utente finale, per via dell’efficiente grado di virtualizzazione garantendo così un’efficienza elevata. Il tipo di database posizionato in cloud potrebbe essere un database relazionale MySQL. Mentre il database in cui inserire i dati privati potrebbe essere del tipo non relazionale. I database non relazionali, presentano una migliore ed elevata performance relativamente ai tempi di risposta. 7. INFRASTRUTTURA DI RETE DI Smartcare L’infrastruttura di rete di Smartcare client-server punto punto costituisce un sistema distribuito e in particolare un sistema web distribuito28. Infatti il Web può essere visto come un sistema distribuito composto da client e server che accedono a documenti collegati. I server in genere gestiscono insiemi di documenti. I client forniscono agli utenti una interfaccia facile da usare per accedere e presentare questi documenti. Il modello applicativo riguarda un tipo particolare di collaborazione tra utenti distribuiti su una rete di calcolatori. Ogni utente può generare localmente un documento e metterlo in condivisione. I componenti fondamentali di un'applicazione Web sono analoghi per certi versi a quelli di una tradizionale applicazione client-server. Nell'ambito Web l'interazione tra client e server è un po' più articolata per consentire l'integrazione di componenti di varia natura. Le architetture si dividono in: a) Architetture Web Tradizionali b) Architetture Web Multilivello Lo Smartcare in particolare presenta una Architettura del tipo Web tradizionale. Un'applicazione Web si basa su elementi software standard indipendenti dalle caratteristiche della particolare applicazione e dalla piattaforma software e hardware su cui viene eseguita. 37 Una tipica applicazione client-server è costituita da un client che implementa l'interfaccia utente con alcune funzionalità di elaborazione e di comunicazione e da un server che fornisce una serie di servizi come la gestione e l'accesso ai dati di un database. Per cui nel nostro caso avremo un client con su il database in MySQL fornito dalla piattaforma cloud, che registra i dati generali dei clienti e un altro server su cui invece ci sarà il database in MONGO DB per la gestione dei dati sensibili. Si ottiene così una rete client-server punto punto. L’interazione tra i sistemi comunicanti passa attraverso l’utilizzo di regole codificate che stabiliscono le modalità dell’interazione ossia i cosiddetti protocolli. Il protocollo utilizzato per la gestione dei database MYSQL è il POD. La struttura del database che perciò si prospetta per costruire Smartcare al fine di suddividere i dati generali dell’utente dai dati sensibili e privati dello stesso utente presenta nel diagramma entità relazioni, un’entità utente che potrà specializzarsi in un’altra entità chiamata RELATIONSHIP in cui sarà presente la tipologia di relazione che gli utenti avranno fra di loro, ad esempio il medico con il paziente. Figura 3. Diagramma Entità-Relazione per la suddivisione dei dati in privati e sensibili di Smartcare. Creazione di due database: Mysql per i dati privati e Mongo DB per i dati sensibili. Ciascuna persona in relazione con l’utente ad esempio persone di fiducia, personal trainer medici o soccorritori potrà essere a sua volta accettata dall’utente di cui visualizzerà i dati tramite una password. L’entità UTENTE sarà inoltre in relazione con l’entità Organizzazione che rappresenterà l’ente in cui l’utente verrà inquadrato, e cioè una palestra, 38 ospedale, ASL di appartenenza. La tipologia di utente invece sarà indicata con l’entità GROUPS che racchiuderà i vari gruppi di utenti: medici, sportivi, pazienti, soccorritori, personal trainer e persone di fiducia. Ciascun utente avrà dei permessi per poter accedere ai dati degli altri utenti, ad esempio una password o permessi particolari del database forniti dall’amministratore del sistema. Questa porzione di dati sarà inserita nel database MYSQL fornito dal cloud hosting e indicherà solamente i dati generali dell’utente. Sull’altro Database del tipo MONGO DB, molto più flessibile in termini di struttura e realizzazione verranno inseriti i dati sensibili. L’utilizzo di due database e anche di tipo differente consentirà di tutelare maggiormente la privacy. Sarà necessario inoltre realizzare un’interfaccia per il database in Mongo DB, in cui sarà possibile inserire dati come USERTYPE ossia l’User vero e proprio e l’organizzazione di appartenenza, la tipologia di applicazione per cui si registra l’utente, attraverso il campo APPLICATIO-ID, l’USER ID, una DATA, e i vari FIELDS o campi in cui sarà possibile inserire dati sensibili riguardanti ad esempio l’anamnesi generale. Ovviamente ogni inserimento di dati risulterà datato. La data anche in questo caso costituirà un elemento importante per poter individuare per ogni ID i dati sensibili 8. PROGETTAZIONE DATABASE FARMACOVIGILANZA Un’ulteriore funzione che si potrebbe aggiungere nella creazione dello Smartcare è quella della Farmacovigilanza, mirata a monitorare gli effetti benefici e avversi dei farmaci. In particolare potrebbe essere utile, ad esempio inserire sopra l’interfaccia dell’applicazione un questionario attraverso cui sarà possibile valutare statisticamente quanto vengono usati i farmaci e quali sono i relativi benefici e effetti avversi. Sarà perciò necessaria la creazione di un terzo database specifico per la farmacovigilanza, in cui verranno inseriti tutti i farmaci e tutti gli effetti avversi relativi a ciascun farmaco. Ciò richiederà lo sviluppo e progettazione di questo nuovo database in cui verranno raccolte le risposte alle domande che appariranno sul front end dell’APP Smartcare e a cui gli utenti potranno rispondere. Lo sviluppo di un software per effettuare calcoli statistici potrebbe ulteriormente rendere più interessante la raccolta dei dati di farmacovigilanza, stimando le statistiche sui farmaci più usati e sui relativi effetti avversi, oltre che sui nuovi farmaci di cui ancora non si conoscono perfettamente gli effetti avversi. Anche in questo caso è necessario creare un diagramma entità relazione in cui i distinguono differenti entità. 39 Figura 4. Diagramma Entità-Relazione per la Farmacovigilanza in Smartcare Nel diagramma è possibile visualizzare l’entità Farmaci con chiave primaria ID_Farmaco e atttributi come categoria farmaco e dosaggio. Questa entità entra in relazione con l’entità effetti avversi, con una cardinalità N,N, e cioè per ogni farmaco esisteranno N effetti avversi e per ogni effetto avverso esisteranno N farmaci che lo provocheranno. l’Entità’ Questionario invece conterrà tutte le domande che verranno poste all’utente in forma anonima per ogni farmaco, esisterà perciò l’ID_Domanda chiave primaria dell’entità e poi la domanda specifica come attributo. Per ogni domanda ci saranno una serie di risposte dell’utente e risposte fornite come soluzione alla domanda specifica per ogni farmaco, e il tutto sarà rappresentato dall’entità RISULTATO TEST CON SPIEGAZIONE PER FARMACO. Le tabelle relative che rappresentano la parte di progettazione logica sono le seguenti: ENTITA’ FARMACI ID_FARMACO Dosaggio Categoria CHIAVE PRIMARIA ENTITA’ EFFETTI AVVERSI ID_EFF_AVV_PER_ORGANO Sugg_eff_avv CHIAVE PRIMARIA 40 RELAZIONE FARMACO-EFFETTO-AVVERSO ID_FARMACO CHIAVE ESTERNA (VERSO ENTITA’ FARMACO) CHIAVE ESTERNA (VERSO ENTITA’ EFFETTI AVVERSI) ID_EFF_AVV_PER_ORGANO ENTITA’ QUESTIONARIO ID_DOMANDA Domanda CHIAVE PRIMARIA ENTITA’ RISULTATI ID_SPIEGAZIONE SI NO CHIAVE PRIMARIA RELAZIONE FARMACO-QUESTIONARIO ID_FARMACO ID_DOMANDA CHIAVE ESTERNA (VERSO ENTITA’ FARMACO) CHIAVE ESTERNA (VERSO QUESTIONARIO) RELAZIONE QUESTIONARIO-RISULTATO ID_DOMANDA CHIAVE ESTERNA (VERSO ENTITA’ FARMACO) CHIAVE ESTERNA (VERSO ENTITA’ EFFETTI AVVERSI) ID_SPIEGAZIONE In questo caso la chiave primaria per la tabella ENTITA’ FARMACO, sarà ID_Farmaco, che rappresenterà la chiave esterna per le altre tabelle. Poi attraverso l’utilizzo del linguaggio SQL sarà possibile interrogare la banca dati per ottenere tutto ciò che riguarda lo storico del cliente. A questo punto sarà necessario creare interfacce grafiche semplici per l’interazione immediata dei clienti. 41 CONCLUSIONI Molte cartelle cliniche elettroniche sono state spesso realizzate in passato come copia delle cartelle cliniche cartacee. Tuttavia l’utilizzo delle nuove tecnologie informatiche offre opportunità totalmente nuove rispetto allo strumento cartaceo. La diffusione della telematica e dell’accesso tramite rete, sottoposto a rigidi controlli ed autorizzazioni, fa prevedere la realizzazione di un ulteriore passo: la cartella clinica virtuale di un assistito (paziente, sportivo o chiunque desideri utilizzare la piattaforma dello Smartcare) che permette di accedere istantaneamente a tutte le informazioni cliniche rilevanti dalla nascita in poi. E le stesse informazioni potranno essere usate per scopi di sanità pubblica, per la gestione ottimale delle strutture e soprattutto per monitorare il benessere psico-fisico del cliente in ogni istante. Il sistema di gestione delle cartelle cliniche diventa così una funzionalità di un sistema di gestione più vasto di tutte le informazioni cliniche. Per creare un sistema di questo tipo è stato necessario inquadrare e catalogare tutte le attività previste per il business model e tutto ciò che comporta la creazione e lo sviluppo del prodotto. La fase successiva ha previsto lo studio della progettazione di un database relazionale e l’individuazione dei campi necessari per creare il database dello Smartcare. La privacy non è da sottovalutare nella gestione dei dati sensibili, cosi come la necessità di custodire i dati in maniera tale che non vadano perduti. Entrambi questi aspetti hanno fatto pensare alla possibilità di realizzare due database in cui suddividere i dati generali dai dati sensibili. Inoltre una funzione importante dello Smartcare è la possibilità di vigilare sugli effetti avversi dei farmaci, attraverso l’utilizzo di questionari anonimi e tool statistici in grado di estrapolarne dati concreti di farmacovigilanza. Ulteriori funzionalità potrebbero essere aggiunte in futuro al prodotto, tra cui, l’utilizzo di un forum che consenta ai clienti di comunicare con altri medici o personal trainer registrati nel database, o ancora la possibilità di utilizzare sensori che “attirino” l’attenzione dei clienti durante momenti importanti della giornata o durante determinati periodi dell’anno, in maniera tale da monitorare in maniera adeguata e continuativa le condizioni psico-fisiche dei clienti. 42 Bibliografia 1. http://www.epicentro.iss.it/temi/croniche/oms_prevenire.asp Il portale dell'epidemiologia per la sanità pubblica: Prevenire le malattie croniche un investimento vitale. 5/02/2015. 2. http://esciencecentral.org/journals/the-use-of-internet-for-health-education-23320893.1000e102.php?aid=9839. Mo Phoenix. Biosafety & Health Education: The Use of Internet for Health Education. School of Public Health and Primary Care, The Chinese University of Hong Kong, China. 2012, 1-2. 3. http://www.trenta3mag.it/2014/07/09/la-rivoluzione-social-nellhealthcare-unasalute-sempre-piu-misura-duomo/ Robotti Andrea. Trenta 3 Magazine Healthcare Marketing Blog. La rivoluzione social nell’healthcare: una salute sempre più a misura d’uomo. 09/07/2014. 4. http://www.inftub.com/educazione-fisica/LA-SALUTE-LA-SALUTE DINAMICA42644.php Inftube.com. L’importanza dello sport nelle varie fasce d’età. 5. Cozzi Renato. Mypersonaltrainer. Ruolo del personal trainer: importanza del singolo individuo. 06/01/2015. 6. Bellancini Michele. Elaborato in Informatica e Telemedicina: Utilizzo dell’infrastruttura proposta I.H.E per garantire interoperabilità fra sistemi informativi in ambito sanitario. Cap. 2, 2011/2012. 7. http://www.kairoscremona.it/business-model-canvas-generation/ sito Kairos : Cos’è il Business Model. 2014 8. Kolter, Keller, Ancarani, Costabile. Libro: Marketing Management. Quattordicesima edizione. Editore Pearson. Cap. 1-2-3. 9. Civiero Veronica. Tesi in Economia e gestione delle imprese: L’innovazione aziendale e la ridefinizione dei business models in un’ottica strategica. 2011-2012, Pg. 42-46. 10. Stewart, Qin Zhao. Internet Marketing, Business Models, and Public Policy. Journal of Public Policy & Marketing: Fall 2000, Vol. 19, No. 2, pg. 287-296. 11. Zott Christoph,Amit Raphael,Massa Lorenzo.Working Paper: The Business Model, Theoretical roots, recents developments, and future research.9/2010, pg1-26. 43 12. Weill, P. and M. R. Vitale. Place to Space: Migrating to eBusiness Models. Boston: Harvard Business School Press. 2001 13. Morris, M. Schindehutte, M., & Allen,J.. The entrepreneur’s business model : Toward a unified perspective. Journal of business research. 2005, 58(6):726-735. 14. Brousseau, E., & Penard, T. The economics of digital business models: A framework for analyzing the economics of platforms. Review of Network Economics. 2006, 6(2): 81-110. 15. George, Gerard and Bock, Jay Adam. The Business Model in Practice and its Implications for Entrepreneurship Research. 2009. 16. Seelos and Mair. Academy of Management Perspectives : Profitable Business Models and Market Creation in the Context of Deep Poverty: A Strategic View. 11/2007. 17. http://www.businessmodelcanvas.it/bmc/cosa-e-un-business-model.html www.businessmodelgeneration.com. Osterwalder, A., Pigneur, Y. (2010). Creare modelli di business. Milano: FAG, 2012. 18. DECRETO LEGISLATIVO 30 giugno 2003, n. 196. Codice in materia di protezione dei dati personali"pubblicato nella Gazzetta Ufficiale n. 174 del 29 luglio 2003 - Supplemento Ordinario n. 123. 19. Gallo Crescienzo. La progettazione dei database relazionali. pg 1-3. 20. Bruno Giovanni. SER&PRACTICES. Basi di dati. Concetti di base. 2015 21. Hernandez Micheal J., Viescas John L. SQL Queries for Mere Mortals. Mondadori. Informatica. 22. Russo Nino. I&T Informatica e Telecomunicazioni S.p.A. Progettazione di database relazionali. 05/1998 23. Yank Kevin. Sviluppare applicazioni con PHP e MySQL. Editore Apogeo. 01/2015. 24. Traduzione dello schema E-R in modello logico relazionale. 25. https://cloud.digitalocean.com/droplets. Sito Digital ocean. 26. http://www.hostingtalk.it/digitalocean-i-cloud-server-su-ssd-che-continuano-avendere_-c0000068C/ Hosting Talk.it : Il Portale italiano sull’Hosting. 27. http://it.wikipedia.org/wiki/Rete_di_primo_livello 28. Castellano Marcello. Sistemi Web Distribuiti. Corso Sistemi Distribuiti. 09/2014 44 45