Document 1 : Master Thesis Bastien Fransolet.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
http://lib.ulg.ac.be http://matheo.ulg.ac.be Development of mobile services to manage electronic health records Auteur : Fransolet, Bastien Promoteur(s) : Mathy, Laurent Faculté : Faculté des Sciences appliquées Diplôme : Master en sciences informatiques, à finalité approfondie Année académique : 2015-2016 URI/URL : http://hdl.handle.net/2268.2/1617 Avertissement à l'attention des usagers : Tous les documents placés en accès ouvert sur le site le site MatheO sont protégés par le droit d'auteur. Conformément aux principes énoncés par la "Budapest Open Access Initiative"(BOAI, 2002), l'utilisateur du site peut lire, télécharger, copier, transmettre, imprimer, chercher ou faire un lien vers le texte intégral de ces documents, les disséquer pour les indexer, s'en servir de données pour un logiciel, ou s'en servir à toute autre fin légale (ou prévue par la réglementation relative au droit d'auteur). Toute utilisation du document à des fins commerciales est strictement interdite. Par ailleurs, l'utilisateur s'engage à respecter les droits moraux de l'auteur, principalement le droit à l'intégrité de l'oeuvre et le droit de paternité et ce dans toute utilisation que l'utilisateur entreprend. Ainsi, à titre d'exemple, lorsqu'il reproduira un document par extrait ou dans son intégralité, l'utilisateur citera de manière complète les sources telles que mentionnées ci-dessus. Toute utilisation non explicitement autorisée ci-avant (telle que par exemple, la modification du document ou son résumé) nécessite l'autorisation préalable et expresse des auteurs ou de leurs ayants droit. University of Liège - Faculty of Applied Sciences Master’s Thesis Development of mobile services to manage electronic health records Master’s thesis submitted for the degree of MSc in Computer Science Bastien Fransolet In collaboration with the A7 Software company Academic year 2015-2016 Advisor: Pr. Laurent Mathy Jury: L. Mathy,G.Leduc,P.Geurts, V. Keunen Abstract Development of mobile services to manage electronic health records Bastien Fransolet Master in computer science University of Liège - Faculty of Applied Sciences Academic year 2015-2016 Andaman7 is a mobile application for managing health records, developed by A7 Software company, based in Boncelles. This collaborative app has been designed to allow users to display, edit and exchange medical data, and by these means,to improve the communication between patients and doctors. This master’s thesis has been conducted as part of the Andaman7 project. The goal consisted in developing mobile services for Andaman7, focusing on the Android version, and more generally, providing new features and solutions to the application. The goal of the work was reached, as many solutions have been provided. Indeed, different tasks were performed for building or improving the GUI of the Android app: the presentation menu was modified in order to be integrated in a navigation drawer, the handmade toolbar was replaced by an Android built-in Toolbar, the screen rotations and the restoration of the application state were taken in charge, and a splash screen was added. Moreover, the GUI of the rules defining which parts of the patients’ records are shared with other users was re-designed, the languages and translations of the application were integrated. A notification system, based on Google Cloud Messaging, was also implemented. The confidentiality, integrity and origin of the medical data exchanged through the app server with other users was ensured, by integrating some cryptography mechanisms in the app. Finally, an analysis of two possible ways of performing secure backups of the users’ electronic health records was realized. The present paper reports the choices and implementation details that have been made throughout the thesis, but also presents some alternatives and perspectives for enhancing the provided features in the future. 2 Acknowledgment I would first like to thank the A7 Software company, and particularly its CEO, Vincent Keunen, for allowing me to undertake this thesis, as well as Antoine Smol- ders, CTO at A7 Software, for his supervision, his availability and his good advice. I would also like to thank Sébastien Hannay and Pierre-Yves Derbaix, Software En- gineers at A7 Software, with whom I have worked on some features, for their help and their disponibility too. I obviously thank the rest of the A7 team for their warm welcome. I am also grateful to Prof. Laurent Mathy for having accepted to be my thesis advisor, and for his valuable suggestions. The door to Prof. Mathy’s office was always opened whenever I had a question about my writing. Finally, I would like to thank my family and friends for their encouragement and support throughout this master’s thesis, and more generally, during my studies. 3 4 Contents 1Introduction 7 1.1 Presentation of A7 Software ....................... 7 1.2 Presentation of Andaman7 ........................ 7 1.3 Initial state of the application ...................... 8 1.4 Objectives of the thesis .......................... 9 2 First tasks and features 10 2.1 Update of the API Level ......................... 10 2.2 Integration of the AppCompat libraries ................. 11 2.3 Update and integration of UI components ............... 11 2.3.1 Navigation drawer ........................ 11 2.3.2 Toolbar .............................. 13 2.3.3 Splash screen and progress loader ................ 13 2.3.4 Screen rotation and storage of the fragment state ....... 14 2.4 Integration of the EventBus library ................... 15 3Applicationlanguagesandtranslations 17 3.1 Android resources ............................. 17 3.2 Languages recovery ............................ 17 3.3 Translations recovery ........................... 18 3.4 Changing the application language ................... 19 4Datarepresentationandsynchronization 21 4.1 Data structure .............................. 21 4.1.1 Representation of users and their devices ............ 21 4.1.2 Representation of the medical data ............... 21 4.1.3 Synchronization rules ....................... 22 4.2 Data synchronization ........................... 22 4.2.1 Context synchronization ..................... 23 4.2.2 EHR synchronization ....................... 23 5SharingrulesGUI 25 5.1 Sharing rules ............................... 25 5.2 Rule creation and edition ........................ 25 6Notificationsystem 29 6.1 Introduction and requirements ...................... 29 6.2 Google Cloud Messaging ......................... 30 5 6.3 Server-side implementation ....................... 32 6.3.1 Adaptation of the server model ................. 32 6.3.2 Integration of GCM helper classes ............... 34 6.3.3 Gestion of device tokens and groups .............. 34 6.3.4 Generation and storage of the notifications .......... 37 6.3.5 Client-server synchronization of the notifications ....... 39 6.4 Android-side implementation ...................... 41 6.4.1 Integration of GCM ....................... 41 6.4.2 Adaptation of the client model ................. 42 6.4.3 Adaptation of the client controller ............... 43 6.5 Test of the notification system ...................... 45 6.6 Integration and adaptations made by A7 Software ........... 45 6.7 Perspectives and improvements ..................... 46 7Security 47 7.1 Initial situation .............................. 47 7.2 Data on the server ............................ 48 7.3 Principle of the solution ......................... 48 7.3.1 Data confidentiality ....................... 49 7.3.2 Data integrity ........................... 49 7.3.3 Non-repudiation ......................... 50 7.3.4 Summary ............................. 50 7.4 Implementation of the solution ..................... 51 7.4.1 Cryptographic algorithms .................... 51 7.4.2 Key pair generation and storage ................ 53 7.4.3 Public key distribution ...................... 55 7.4.4 Modification of the EHR synchronization process ....... 56 7.5 Possible improvement: discussion .................... 57 8Securebackup:analysis 59 8.1 Context and motivation ......................... 59 8.2 First solution: backups distributed on other registrars’ devices .... 60 8.2.1 Presentation of the solution ................... 60 8.2.2 Pros, cons and alternatives ................... 62 8.2.3 Conclusion ............................ 63 8.3 Second solution: backups in the cloud ................. 64 8.3.1 Presentation of the solution ................... 64 8.3.2 Pros and cons ........................... 66 8.3.3 Variants .............................. 67 8.3.4 Conclusion ............................ 67 9 Conclusion 68 6 Chapter 1 Introduction 1.1 Presentation of A7 Software A7 Software [1] is a software engineering company based in Boncelles and special- izing in software for the health sector. Its founder, Vincent Keunen, was the head of Manex, a company specialized in the development of software based on advanced technologies and reliable open source software between 1986 and 2014. In 2007, Vincent Keunen found out he was suffering from leukaemia, and 3 months later, his 10-year-old son was diagnosed with bone cancer. Both are healthy now, but during their convalescence, Vincent Keunen realized and deplored how the manage- ment of medical information was catastrophic. This alarming situation was thus the source of motivation to create Andaman7. Indeed, with this application, he decided to concentrate on helping the health sector to better communicate with patients and various trades. His wish was to create an effective tool, secure