Home

rapport de réalisation

image

Contents

1. Le serveur retire l id de session correspondante de la table d id de session e L id de session ne se trouve pas dans la table un message d erreur est retourn au client Le serveur renvoie en r ponse le message avec les param tres suivants Id 0 Commande CLOSE Option CONNEXION Arguments NULL 7 Le client cr e un nouvel objet Response partir de la cha ne de caract res re ue e L objet n a pas pu tre correctement cr fin de la proc dure et attente d une intervention humaine Le client v rifie que tous les champs sont comme attendus e Un champ n est pas conforme fin de la proc dure et attente d une intervention humaine 9 Le client r initialise son id de session 0 et devra donc redemander une id s il veut communiquer de nouveau avec le serveur Tableau 4 Diagramme de s quences pour la fermeture d une session 6 3 Evolution vers le chiffrement des messages Comme pr vu dans le cahier des charges nous aurions d mettre ne place dans notre protocole de communication une tape permettant de chiffrer les messages avant de les envoyer et de d chiffrer avant de les traiter Au stade de d veloppement ou nous sommes arrives cette option n a pas encore implemente Dans le syst me que nous avons lors de l ouverture de la session nous voyons qu on r ussi identifier l utilisateur par un moyen tr s simple en fournissant un identifiant que seul lui est suppos conna tre Une des s
2. l id de l utilisateur dans la base de donn es Commande SEND Option UPDATE Arguments Liste des informations condens es sur les m dicaments 30 dos Santos Pedro Fuino Francesco Lala Alain EN Another Manager for Pills Reminder M P prendre par le patient ou NULL 8 Le client cr e un nouvel objet Response partir de la cha ne de caract res re ue e L objet n a pas pu tre correctement cr fin de la proc dure et attente d une intervention humaine 9 Le client v rifie que tous les champs sont comme attendus e Un champ n est pas conforme fin de la proc dure et attente d une intervention humaine 10 Pour chaque l ment de la liste le client va mettre jour sa base de donn es locale e Sila liste est vide arguments NULL passe directement au point 13 11 Le client v rifie s il a la d finition pour tous les m dicaments qu il a dans sa base de donn es locale a S il ya une d finition manquante le client envoie un message de demande de d finition avec les param tres suivants e Id id de la session e Commande GET e Option DEFINITION e Arguments id du m dicament Le serveur effectue les m mes proc dures que dans les cas pr c dentes concernant la cr ation d un nouveau thread et la v rification des informations re ues Le serveur en utilisant l id de l utilisateur et l id du m dicament va aller chercher dans la base de donn es les informations de d fin
3. Cette solution comporte quelques probl mes notamment si un m dicament poss de une longue liste de contre indications le bouton risque d occuper tout l cran et le sur tirement des graphiques devient tr s inesth tique et inconfortable d utilisation Il y a aussi le probleme de la taille de la police en effet la taille de la police d un bouton est relativement petite or pour am liorer la lecture il serait pr f rable d en augmenter l g rement la taille Ceci renforce le probl me pr c dent en augmentant d autant plus la taille finale du bouton Apr s cet essai infructueux nous nous sommes pench s sur une solution plus conviviale et adapt e suivant le type de message savoir e la possibilit de consulter rapidement une information titre de rappel e la possibilit d afficher un long message de mani re permanente et dont la lecture serait facilit e 43 dos Santos Pedro Fuino Francesco Lala Alain as Another M anager for Pills Reminder M P Nous avons donc ajout deux mani res de consulter les informations pour r pondre aux deux besoins cit s pr c demment e Un message temporaire qui apparat puis disparait automatiquement avec une police petite pour la consultation rapide e Un message permanent qui n cessite une action utilisateur pour valider sa fermeture avec une police plus grasse et plus grande pour faciliter sa lecture Ces deux mani res de consulter ont t d fini
4. Figure 26 Bouton moment de la journ e midi 8 4 3 4 Bouton M dicament L impl mentation d un nouveau composant sous Android n a pas t une tache ais e en effet Android tant encore jeune la documentation poss de quelques lacunes et il manque du code de r f rence pour comprendre comment structurer notre travail N anmoins suite une recherche empirique nous avons r ussi construire notre propre composant graphique De mani re r sum e voici en quelques points les tapes fondamentales du processus e Cr er une nouvelle classe qui h rite de la classe LinearLayout ou de toute autre classe Layout e D clarer les composants de l objet e D clarer des LayoutParams pour param trer l inclusion d une vue dans une autre e D finir un constructeur qui va instancier les diff rents l ments graphiques puis les ajouter au layout principal e D finir les actions des diff rents l ments graphiques e Red finir une s rie de m thodes comme par exemple onDraw onLayout onM easure Une des principales difficult s est de bien comprendre la notion de View et de Layout un layout est une sp cialisation d une vue De mani re g n rale un layout peut contenir d autres layouts ainsi que d autres views Une View quand elle peut aussi contenir plusieurs layouts et plusieurs views N anmoins la view tant un l mentaire nous dos Santos Pedro Fuino Francesco Lala Alain aN Another M anager for P
5. selon les d sirs de l utilisateur acc der et afficher certaines informations directement depuis la base de donn es sans avoir recharger la totalit du contenu de la page 6 1 6 MySQL e MySQL Figure 6 Logo MySQL MySQL est un serveur de bases de donn es SQL Structured Query Language Open Source rapide robuste et multiutilisateurs Selon le type d application sa licence est libre ou propri taire Il fait partie des logiciels de gestion de base de donn es les plus utilis s au monde autant par le grand public applications web principalement que par des professionnels 12 dos Santos Pedro Fuino Francesco Lala Alain Gef Another Manager for Pills Reminder M P 6 2 0rganisation des r pertoires Afin de garder une certaines organisation dans la structure de nos r pertoires nous avons choisis de s parer ces derniers selon l utilisation que nous en faisons La structure est pr sent e dans la Figure 7 d d ampm _ classes Lu config d lib outils d Ak ressources images di styles Figure 7 Structure des r pertoires e classes o dossier contenant toutes nos classes PHP e config o dossier contenant les diff rents fichiers de configurations de l application e lib o dossier contenant les librairies JavaScript e outils o dossier contenant les diff rents fichiers appel s par le JavaScript e ressources o dossier contenant les ressources de l application e ressources images o dossier contenan
6. En consid rant maintenant la taille des quipements il est vident que le Smartphone est de loin le plus pratique pour notre projet Celui ci est l ger et poss de une autonomie suffisante pour satisfaire nos exigences 8 1 2 Approche marketing Avec une approche un peu plus commerciale le choix de notre quipement est appuy par le succ s grandissant des Smartphones au pr s du grand public Ainsi avec une solution bas e sur Smartphone on est assur que notre application ne tournera pas sur des appareils marginaux ou sans avenir Acteurs syst me d exploitation mobile 2009 Symbian Windows Mobile RIM Palm Source Palm Os Fe 7 Apple Re Linux Ge Baisse des parts de march ay OS Palm Source Windows ro Decroissance du march telephone SC March du smartphones en hausse D croissance du march t l phone Croissance smartphone 3 en 2009 GFK Croissance smartphone 12 en 2009 Gartner Services mobiles nouveaux usages multim dia JANUA Part de march des OS mobiles vencus au premier trimestre 2009 Las Hien O3 108 Figure 20 Extrait de la pr sentation d Android par la commission OpenSource Telecom Valley juillet 09 D apr s l extrait de la pr sentation d Android ci dessus on constate que les Smartphones sont en pleine croissance ceci au m me rythme que les personnes adoptent des services mobiles En effet pour un prix presque identique les personnes peuvent tirer plus d ava
7. Manager for Pills Reminder M propos Logiciel daide la prise de m dicaments D velopp par dos Santos Pedro Fuino Francesco Lala Alain Dans le cadre du projet IFC2 c HEIG VD 2009 2010 Figure 46 Dialogue a propos 8 6 Fonctionnement de l application Afin de montrer les diff rentes capacit s de l utilisation nous avons r alis un diagramme de fonctionnement Celui ci sch matise les diff rentes possibilit s d une application ainsi que leur effet en fonction de tests conditionnels Tel que le montre le sch ma nous constations que nous avons deux mani res d entrer dans l application e C est soit un lancement ceci implique en r gle g n rale que l application n a pas t lanc e depuis le d marrage du t l phone ou qu elle a t quitt e e Soit une reprise par cons quent l application tait en pause en arri re plan et nous l avons r veill e Ce diagramme nous montre aussi que nos vues ne sont pas rafraichies automatiquement en effet pour des raisons d efficacit nous avons rafraichi les vues seulement si cela tait n cessaire Ce sch ma va par la suite servir de canevas pour les tests de l application ainsi pour chaque tape nous pouvons d terminer si l action s est bien d roul e 55 dos Santos Pedro Fuino Francesco Lala Alain aN Another M anager for Pills Reminder M Lancement application Configuration D Mise jour D Lancement du s
8. Tableau 1 Diagramme de s quences pour l obtention de Did de session 6 23 Mise jour du client Une fois l id de session obtenue l application cliente dispose de toutes les informations n cessaires pour obtenir du serveur et de la base de donn es sa mise jour Cette partie se r alise alors en deux tapes distinctes Dans un premier temps il s agit d obtenir la liste des m dicaments que le patient doit prendre Ici le client fait une demande avec la commande GET et l option UPDATE Sur r ception de cette derni re le serveur va chercher obtenir les informations condens es sur ces m dicaments c est dire l id du m dicament l heure de prise et enfin la date de la premi re prise Une fois cette liste r cup r e le serveur r pond au client avec cette fois la commande SEND et la liste des m dicaments dans la partie arguments du message Sur r ception de cette r ponse le client va mettre jour sa base de donn es local et v rifier si pour tous les m dicaments qu il vient de recevoir il a une d finition valide En effet pour chaque m dicament il faut avoir le nom du m dicament afin de pouvoir l afficher correctement et la posologie ainsi que les indications et contre indications pour pouvoir les indiquer au patient C est donc dans cette deuxi me tape que l application cliente du patient va comparer les m dicaments de la liste qu il re oit avec ceux qu il a d j en local Pour tous les nouveaux m dicament
9. aspirine e Un horaire c est dire un moment de la journ e ou le m dicament doit tre pris par exemple midi Nous avons pr f r diviser la journ e en moments au lieu d inclure une notion de fr quence ce choix est expliqu plus bas dans la d finition d un moment de la journ e e Des informations compl mentaires indiquant au patient si le m dicament poss de des contre indications des remarques compl mentaires comme par exemple prendre avant le repas Ces remarques sont bien videment individuelles ainsi elles pourront tre beaucoup plus utiles que si elles taient g n rales A ces composantes nous avons rajout une notion de date ceci facilite la gestion de la dur e d un traitement ainsi pour chaque jour du mois nous pouvons facilement dire quels m dicaments prendre Ceci coupl avec la notion de moment de la journ e nous permet de d finir de mani re pr cise quel m dicament le patient doit prendre un jour donn une heure donn e avec une remarque sur comment il doit le faire Nous avons aussi ajout la notion de dosage c est dire la quantit de m dicament qu il faut prendre pour un m dicament donn un instant donn Pour mod liser le nombre de m dicaments que le patient doit prendre par jour nous avons pr f r mod liser ceci avec des moments de la journ e savoir Nuit 00h00 Aube 05h00 M atin 08h00 Midi 12h00 Apr s midi 16h00 Soir 20h59 Nous avons divis une journ
10. bien contr ler l identifiant qui est envoy par le client ceci afin de ne pas supprimer des donn es non permises Cette v rification est faite du c t serveur avant l ex cution de la requ te 6 4 5 Proc dure de recherche Afin de faciliter la recherche d un utilisateur nous avons cr des fonctions de recherche en direct Ces fonctions recherchent dans la base de donn es se basant sur le nom de l utilisateur Elles sont particuli rement appr ci es pour leur rapidit d ex cution et leur filtrage rapide de l information 17 dos Santos Pedro Fuino Francesco Lala Alain aN Another Manager for Pills Reminder M 6 4 6 Affichage des informations Lors d une recherche de patient une fois ce dernier trouv le m decin a directement acc s aux informations primordiales concernant le patient Cet affichage se fait par tooltip comme lors d un passage de la souris sur une image faisant apparaitre le contenu du title Figure 11 Le Smith Jo john smith com T l phone Fixe T l phone Mobile 0000000000 nr Fo nt ont ani Gef Figure 11 Information sur le patient Nous avons ensuite acc s aux diff rentes maladies du patient s il en a et l encore il est possible de voir directement les informations sur la maladie Figure 12 Le Smith Jhon e GrIPPE Remarque Tr s contagieux E Date Debut Botuli 9999 13 11 Figure 12 Informations sur la maladie du patient Viennent finalement les m d
11. dos Santos Pedro Fuino Francesco Lala Alain Gef Another M anager for Pills Reminder M P E M e eru e QUOD a a a a a a nome du 50 e dE CR e a a a ue 52 8 56 EREM 53 EEE 54 8 6 Fonctionnement de l application 55 8 7 Impl mentation de l application ee mr eau 57 GEIER 61 8 7 2 Impl mentation des TONN S naar ces ass en eisaaus 61 8 7 3 Stockage des DONS ae aa a be a a ete nn 63 MCE EE a ea a a a te E 65 10 EIERE ee ee a anean 65 a Parie WoD aca aa a a a ds din na 65 EREM 65 Re ele E 66 dee 66 1 ME a E E 66 122 FOUR ee 66 UE Ee 66 13 NSCS UELL a es aa a ie eo Co 68 4 dos Santos Pedro Fuino Francesco Lala Alain aN Another M anager for Pills Reminder M P 1 Introduction De nos jours l volution du domaine m dical nous a permis de gu rir de nombreuses maladies Cependant tout b n fice n tant pas sans cons quences nous voyons une complexification des traitements propos s aux patients Cette complexit risque long terme d engendrer d autres pathologies comme des crises d angoisse pouvant aggraver l tat actuel de la personne Fort de ce constat il est possible d imaginer une application indiquant de mani re fiable et simple d utilisation les m dicaments prendre tout au long de la journ e De plus les avanc es technologiques en mati re de t l phonie ainsi que leur accessibilit au grand public en font un support id al pour ce type d applications Dans l absolu cette application
12. et actions selon le sch ma conceptuel Figure 18 Moment de la journee 0 6 est prendre gt _ Maladie ON 0 N D i est infect par MERE UN date de d but O N O N DN op O N Utilisateur date de prise Patient Medecin Tuteur Super Utilisateur Figure 18 Mod le conceptuel de la base de donn es AM PM Chaque entit a t s par e au maximum afin de garder son concept Les relations n cessaires ont ensuite t cr es afin de former les liens entre les entit s Nous avons choisi de cr er des identifiants virtuels sous forme de valeur enti re pour chaque entit ceci nous permettant un acc s plus facile aux informations Nous ne travaillerons donc pas sur des chaines de caract res mais sur des entiers Dans notre application il y a plusieurs types d utilisateurs chacun avec des privil ges diff rents Un utilisateur a donc un r le qui d fini ce que ce dernier peut faire Nous avons pris la d cision qu un patient ne peut avoir qu un seul et unique tuteur mais le m me tuteur peut avoir plusieurs pupilles Nous avons aussi choisis de garder dans la base tous les patients qui ont t s enregistr s ceci par exemple afin de garder un historique et une tra abilit des informations 24 dos Santos Pedro Fuino Francesco Lala Alain Gef Another Manager for Pills Reminder M P Les
13. f r la libert de changer d op rateur au lieu de la libert de changer de smartphone car cela nous paraissait plus important mais c est une appr ciation purement subjective Ceci en gardant l esprit que si le patient change de smartphone un simple rendez vous chez le m decin suffit tout r tablir dans l ordre La mise jour peut se faire de diff rentes mani res e Manuellement depuis le menu principal e Automatiquement au lancement de l application si la derni re mise jour est p rim e e Automatiquement suivant l intervalle d fini dans la configuration gr ce au service de background ll faut savoir que les applications sous Android sont mises en pause lors de la pression sur le bouton retour ou sur le bouton home Ceci nous oblige soit a quitter l application dans l v nement a onPause soit a d finir un bouton d un menu pour le faire explicitement Nous avons retenu la deuxi me possibilit ll faut aussi dire que l appareil mobile demande une mise jour mais c est le serveur qui d cide combien de m dicaments sont envoy s Avec ce syst me c est le serveur qui garde le contr le sur les mises jours ainsi le patient pourrait faire une demande par t l phone son m decin quelques jours avant de partir en vacances et l application irait faire une mise a jour pour une dur e de x jours o x correspond au nombre de jours pendant lesquels le patient ne peut avoir un acc s Internet sur son ap
14. l enrichissement que notre d veloppement va nous apporter En outre ceci constitue une occasion ne pas perdre pour se lancer dans le d veloppement mobile en commen ant par Android M me si ce n est pas l argument le plus convaincant nous pouvons signaler pour terminer ou Android t port sur ordinateurs portable notamment des netbooks et de ce fait nous pouvons nous imaginer d ployer la m me application sur des m dia mobiles ainsi que sur des m dias priori fixes Remarque Une id e serait par exemple de mettre un netbook tactile pour les personnes ag es l quipement tant plus grand il leur serait plus ais d utilisation et surtout sans la complexit d utilisation d un t l phone portable Notre choix se porte donc sur un quipement smartphone avec une plateforme Android 37 dos Santos Pedro Fuino Francesco Lala Alain Gef Another M anager for Pills Reminder M P 8 3 Plateforme de d veloppement Etant donn qu aucun de nous ne poss de de Smartphone avec Android l int gralit du code sera test e sur l mulateur fourni avec le SDK de Google Ce petit d tail implique quand m me que certaines fonctionnalit s ne pourront tre test es comme par exemple le vibrateur du t l phone l appel l envoi de SMS ou l utilisation de TIME pour identifier notre t l phone Nous tiendrons donc compte de ces facteurs dans le d veloppement sans pour autant les carter sous pr texte que nous ne pouvons les
15. le moment de la journ e SOIR 8 4 3 8 Adaptation de l interface graphique en fonction de l orientation Nous avons fait en sorte que notre application soit utilisable dans les deux modes d affichage du t l phone savoir Horizontal et Vertical Ce choix t motive par le fait que certains m dicaments au nom trop long ou aux informations compl mentaires compliqu es taient plus faciles lire sur un mode Horizontal Voici quelques images illustrant l application en mode Horizontal Kb 1 42 AM _Am Pm vm BARACLUDE Figure 35 Vue liste m dicament en mode horizontal ars Informations Compl mentaires BARACLUDE Ce m dicament provoque des vertiges et des tats de somnolence Fermer Figure 36 Informations compl mentaires en mode horizontal 8 4 3 9 R sultat final Apr s avoir mis en commun toutes les parties graphiques explicit es pr c demment et apport quelques touches de couleur pour rendre l application plus agr able utiliser et retirer le cot monotone d une application gris tre en tenant compte qu une application color e peut dans une certaine mesure remonter le moral des personnes devant prendre 47 dos Santos Pedro Fuino Francesco Lala Alain an Another Manager for Pills Reminder M un traitement m dical long et ou compliqu Nous sommes finalement arriv s un r sultat esth tique tr s proche de notre d finition initiale Indi
16. maladie et la date de d but de la maladie Ceci nous permet donc de donner plusieurs fois la m me maladie un patient des dates diff rentes Le patient peut avoir eu la grippe le 10 janvier 2009 et de nouveau le 10 janvier 2010 m me si nous ne lui souhaitons pas ceci Dans cette relation l utilisateur tant d ja li un m decin il ne nous est pas utile d ins rer l identifiant du m decin dans la relation Ceci serait une information redondante 6 12 2 4 Relation de m dicament Un utilisateur ayant une ou plusieurs maladies a un ou plusieurs m dicaments une date de d but de prise du m dicament un nombre de jours pendant lequel il doit le prendre un dosage et enfin une remarque 6 12 2 5 Relation de moment de la journ e de prise du m dicament Un utilisateur ayant une maladie et un m dicament pour cette maladie a un ou plusieurs moments de prise 25 dos Santos Pedro Fuino Francesco Lala Alain a Another Manager for Pills Reminder M P Nous voyons donc que nous avons essay au maximum d liminer les redondances d informations dans nos tables et relations Nous avons aussi commenc r fl chir au fait qu un m decin pourrait tre un patient de m me que pour un tuteur c est pourquoi nous avons laiss toutes les personnes dans la table utilisateurs 7 Partie serveur central Pour faire le lien entre la base de donn es que nous avons vu pr c demment et le mobile du patient que nous verrons un peu plus
17. pas bloquer l utilisateur le temps de la requ te Nous avons donc opt pour la deuxi me solution tout en g rant le fonctionnement de ces requ tes Nous avons donc d finis des requ tes prioritaires et d autres pouvant tres interrompues avant la fin de leur ex cution Nous avons choisis de d finir les requ tes prioritaires comme des requ tes entrainant une modification de la base de donn es toutes les requ tes d insertions 20 dos Santos Pedro Fuino Francesco Lala Alain Gef Another Manager for Pills Reminder M P suppressions mise jour Les autres requ tes s lection par exemple quand elles peuvent tre interrompues avant la fin de leur ex cution Ceci nous permet de r gler un probl me souvent rencontr s en Ajax Prenons un exemple simple Le m decin choisi d afficher les informations d un patient et choisi juste apr s d afficher le formulaire d ajout d une nouvelle maladie Le formulaire d ajout de la maladie va s afficher car la requ te prend moins de temps s ex cuter mais la premi re requ te est toujours entrain de s effectuer Une fois la premi re requ te termin e le formulaire d ajout de maladie va tre remplac par la fiche d taill es du patient Dans notre cas ceci ne peut se produire car lors de l envoi de la deuxi me requ te la premiere est arr t e gr ce la m thode abort de l objet XM LHttpRequest retourn par la fonction ajax Ceci est encore plus parlant l
18. retenu cette option Nous nous sommes servis de Helpers qui nous permettent d interfacer la base de donn es SQLite de mani re relativement simple nous avons ainsi d fini une classe helper pour chaque table 62 dos Santos Pedro Fuino Francesco Lala Alain Gef Another Manager for Pills Reminder M P Les classes helper contiennent du code SQL pour la cr ation la suppression et la mise jour d une table Une fois les helpers d finis nous pouvons instancier un objet SQLiteDatabase et y faire des requ tes en respectant les conventions de l API Il est noter que nous avons ajout quelques champs dans les helpers pour r cup rer le nom de la table par exemple II faut aussi signaler que l insertion se fait travers de e ContentValues et que le r sultat d une requ te retourne un Cursor ceci n est pas explicit plus en d tail car cette m thode est tr s proche de la mani re de faire de J DBC La classe mod le M_Medicament nous donne une abstraction totale sur comment les donn es sont impl ment es en dessous en nous permettant de r cup rer les m dicaments sous forme d objets m dicament sans se soucier de comment sont impl ment s les m dicaments en interne Ceci nous donne la possibilit de modifier le m dia de stockage de nos m dicaments sans modifier l int gralit de l application Remarque initialement dans la fonction de r cup ration des m dicaments nous avions pens
19. s quences pour la fermeture d une session 34 69 dos Santos Pedro Fuino Francesco Lala Alain
20. serait utilis e par des personnes responsables ayant toutes leurs capacit s mentales En effet une personne incapable de se souvenir qu elle doit prendre des m dicaments ou n tant pas consciente de son tat doit par mesure de s curit rester sous surveillance du personnel m dical 2 Cahier des charges 2 1 D finition du projet Il s agit de concevoir une application qui permette a un m decin de doser des m dicaments pour le patient et de lui rappeler chaque jour de prendre la dose prescrite au moment utile Le service m dical peut sur un service web entrer les dosages de m dicaments et l utilisateur recevra p riodiquement en temps utile des indications sur son traitement m dicamenteux II devra quittancer la prise des m dicaments de mani re syst matique On n inclura pas la gestion du stock de m dicaments chezle patient Cette application est surtout pr vue pour les m dicamentations lourdes et complexes impliquant plusieurs m dicaments prendre en des suites parfois complexes HIV chimioth rapies lourdes 2 2 Actions Actions du service m dical e Mettre jour la liste de m dicaments du patient e V rification si n cessaire du suivi du traitement Actions du patient e Voir la liste des m dicaments prendre e Quittancer la prise des m dicaments Disponibilit e Service web e T l phone Non pris en charge e Pas de gestion de stock pour le client 5 dos Santos Pedro Fuino Fr
21. tester dans l imm diat En ultime recours il est toujours possible d emprunter un Smartphone un de nos coll gues 2 vodafone Figure 21 Emulateur Android avec interface HTC M agic Nous avons le choix entre plusieurs m thodes de d veloppement de mani re simplifi e GG D veloppement sous Eclipse avec les modules de d veloppement et de debug fournis par Google 38 dos Santos Pedro Fuino Francesco Lala Alain aN Another M anager for Pills Reminder M P GG D veloppement sous Netbeans avec un plugin non officiel sans l acc s au debugger int gr GG D veloppement en mode diteur de texte avec le SDK en ligne de commande Nous avons pris la peine d essayer les diff rents modes et nous en avons retenu que le d veloppement sous Eclipse n est de loin pas id al mais au vu des choix disponibles il constitue le meilleur choix C est donc sous Eclipse que nous avons r alis l int gralit des d veloppements mobiles 8 4 Interface graphique Etant donn que notre application se destine au grand public a savoir des hommes et des femmes d ge vari s et sans connaissances informatiques techniques particuli res notre application se devait d tre simple conviviale et surtout intuitive 8 4 1 Definition Nous avons mis en place la r gle des 60 secondes savoir quelqu un qui n a jamais utilis notre application se doit de comprendre comment elle marche en moins d une minute Ce test r alis par d
22. une maladie grave n cessitant un traitement tr s sp cifique et tr s r actif on aura beaucoup de mises jour cela permet aussi de contr ler la fr quence de soumission des m dicaments qui ont d j t pris La configuration tant un l ment essentiel de notre application elle est automatiquement lanc e la premi re fois que l application est lanc e On suppose le sc nario suivant e Le m decin installe l application sur le smartphone e Le m decin lance l application et configure l application 50 dos Santos Pedro Fuino Francesco Lala Alain Gef Another Manager for Pills Reminder M P e Le m decin r cup re l IM El et inscrit le patient sur l interface web depuis son PC et lui d fini un ou plusieurs traitements constitu s d un ou plusieurs m dicaments e Le m decin valide la configuration du smartphone e Le m decin lance une mise jour e Le m decin rend le smartphone au patient en lui expliquant le fonctionnement e Le patient commence utiliser l application Dans le cas o un disfonctionnement emp cherait l application d enregistrer la configuration un m canisme emp che d avoir acc s a autre chose tant que la configuration n est pas remplie et valid e Ainsi on ne peut pas simplement fermer l application en esp rant que le 2 d marrage nous permette de contourner la phase de configuration et d avoir un acc s sur le menu principal par exemple Configuration AM PM 127 0 0
23. 1 000000000000000 Mot de passe Interval de mise jour Figure 42 Configuration de l application Remarque L mulateur n ayant pas de num ro d IM El la m thode syst me r cup rant l IM El retourne une chaine ne contenant quinze z ros Comme le champ IM El est d fini par le t l phone nous l avons affich dans un input qui est d sactiv ainsi m me si une ventuelle modification n aurait aucune incidence nous faisons clairement passer le message que ce champ est invariable Dans notre sc nario le patient n a aucune id e des param tres saisis dans la configuration et priori n y aura jamais acces Et pour viter que le patient n aille toucher la configuration un m canisme de mot de passe prot ge l acc s la configuration sauf pour le premier lancement en accord avec le sc nario Le mot de passe pour l authentification du patient sur le serveur n a aucun lien avec le mot de passe qui prot ge l acc s la configuration 51 dos Santos Pedro Fuino Francesco Lala Alain as Another Manager for Pills Reminder M P Actuellement ce mot de passe est cod en dur et a pour valeur 1337 Dans une solution commerciale il serait int ressant de prot ger la configuration avec un mot de passe g n r partir de l IM El du t l phone ainsi que de la date de mise en service Pour viter que quelqu un d couvre le mot de passe le publie sur Internet et que les patients aillent modifier la con
24. 4 68 dos Santos Pedro Fuino Francesco Lala Alain Q Another M anager for Pills Reminder M Figure 31 Informations compl mentaires Dialogue m dicament en retard 45 Figure 32 Confirmation prise m dicament Toast 46 Figure 33 Interface principale vide inner 46 Figure 34 Image de fond pour le moment de la journ e SOIR 47 Figure 35 Vue liste m dicament en mode horizontal ce ceccscsscsescsesssecseecsusssesesuscsussnsssrecneeresees 47 Figure 36 Informations compl mentaires en mode horizontal ccc ceeeceseecesesssecsesesessneeressseseneees 47 Figure 37 Interface graphique liste m dicaments 48 Figure 38 Message de notification dans la barre de notifications 48 OS IN Oe eat ONY A carters a 49 FOUT T0 NOUNCaNON 2 ea a TESEN 49 Figure 41 Menu D COR aa a ce ae ee n nna aana nannat 50 Figure 42 Configuration de l application 51 Figure 43 Dialogue d authentification iii 52 Figure 44 Dialogue de mise CO a a a a 52 Figure 45 Liste des m dicaments ii irirninennninnns 54 Figure AG Dialogue Tele E 55 Figure 47 Diagramme de fonctionnement riens 56 Figure 48 Cycles de vie d une application android 58 Tableau 1 Diagramme de s quences pour l obtention de l id de session 29 Tableau 2 Diagramme de s quences pour la mise jour du client cee eeseeseeeeseneeeeeeeeen 32 Tableau 3 Diagramme de s quence de la mise jour des m dicaments pris 33 Tableau 4 Diagramme de
25. G orka MY a a a on 12 Figure 7 Strucdure CES TENGE OI CS a das nn 13 Figure 6 ele en OWN EE 14 Figure 9 Informations de Connexion cannes scene sean tata ces sn 15 Figure 10 Proc dure de Connexion a a ee ee EEEn E nrn 17 Figure 11 Information sur le patient ea same canada nca der a cs 18 Figure 12 Informations sur la maladie du patient 18 Figure 13 Informations sur le m dicament ini 19 Figure 14 Message de notification de probl me r seau 21 Figure 15 Notification d une action correcte nes 22 Figure 16 Informations sur le champ nn 22 Figure 17 Erreur de remplissage du champ 23 Figure 18 Mod le conceptuel de la base de donn es AM PM cccscssscssssssessessrssrscsresessrsenneersean 24 Figure 19 Repr sentation sch matique d un message 26 Figure 20 Extrait de la pr sentation d Android Telecom Valley juillet 09 36 Figure 21 Emulateur Android avec interface HTC Magic 38 Figure 22 Esquisse interface graphique ns 39 Figure 23 Mod lisation de l interface graphique avec le toolkit graphique d Android cece 40 Figure 24 COMpOSant BOULONM COGIC a ae a mo asus 40 le Uigcwso wer 60 N CE AD DICO UO het ee eh i en er te 42 Figure 26 Bouton moment de la journ e midi nn 42 Figure 27 Bouton m dicament standard iii 43 Figure 28 Bouton m dicament en retard inner 43 Figure 29 Informations compl mentaires Toast 44 Figure 30 Informations compl mentaires Dialogue 4
26. I nous permet ainsi de compenser les lacunes que nous trouvons dans le langage HTML quant au rendu esth tique des pages 11 dos Santos Pedro Fuino Francesco Lala Alain Get Another Manager for Pills Reminder M 6 1 3 PHP Figure 5 Logo PHP PHP sigle de PHP Hypertext Preprocessor est un langage de scripts libre principalement utilis pour produire des pages Web dynamiques via un serveur HTTP mais pouvant galement fonctionner comme n importe quel langage interpr t de fa on locale 1 Nous allons ici nous en servir pour communiquer avec la base de du site et la g n ration de contenu dynamique Les diff rentes classes utilis es pour le site sont troitement li es la description de notre base de donn es Ceci nous permet ainsi de garder les m mes concepts aussi bien dans la base de donn es que dans les classes PHP 6 1 4 JavaScript Nous pouvons dire que le JavaScript repr sentera le c ur de notre application web dans la mesure o il nous permettra de rajouter un c t dynamique notre page HTM L mais surtout parce qu il tablira le lien entre l utilisateur qui voit notre site depuis son navigateur et la base de donn es o sont contenus l ensemble des informations De plus c est par le biais de ce langage que nous allons contr ler les objets Ajax 6 1 5 Ajax Gr ce Ajax Asynchronous JavaScript And XML qui est une technique d acc s aux informations de JavaScript nous pouvons
27. IFC2 AM PM Another Manager for Pills Reminder Auteurs dos Santos Pedro Fuino Francesco Lala Alain Responsables Jaton Markus Vincent M ark Date 11 01 2010 w Another M anager for Pills Reminder M P Table des mati res OCR a a 5 Ze CAMEOS Chal OCS ri aa A E a no once 5 2 1 D finition du projet vo cccccsccsecssescsecsescerscseserecsuecessessesensesusceusrsceuessueceuseanseeusonsennecnens 5 DD e le SR E ornate tad anes eaeedoenee 5 221 SOUS SEN VICE PCAN Cal a ab 6 DDD OLE 20 LE E 6 E Te e E caaenosdetanaateaieaseettarnense E E steam eannineicgedatectaqumvarnone 6 Big Gegen 1 A NTU INS SIRI Tech SP ee 8 S Definition UN medicameril sieniin ca ed ae om nn 9 5 1 Form canonique d un M ICAMEN retiennent 9 CMS EE 11 6 1 Technologies et leurs utilisations 11 I ere ee ee ee eee 11 e We a ee mn 11 ooe PRP santa cattanescs cestactes adnan vemnenas outa cence ceslacieaa naa ysautasunia aesaatecasuaetsnati am eaoe anata 12 SE ER DK lgl EE 12 E NT a a deastussmnviiaden neaeandecneses 12 GLO M OL a a rr 12 6 2 Organisation des r pertoires issus 13 63 Conventions Utilise ES Sn O R 13 6 4 Fonctionnement de l application 14 6 4 1 Proc dure de connexion een 14 e ROC CICS KI ee a ee ne a E N 16 643 Procedure eil deg EE 17 6 4 4 EENEG DEET 17 6 4 5 Proc dure de T Ch FCNe etes heu 17 6 4 6 Affichage des INTORMIAUION EE 18 6 4 7 Proc dure de d connexion SR na ee an on ie 19 6 4 8 Optimisat
28. Medicament En sachant que notre application manipule des listes de m dicament nous avons eu recours la classe Vector pour mod liser notre liste La liste ne n cessitant pas de m thodes particuli res ni de gestion interne complexe nous l avons utilis tel quel sans red finir une classe ListeM edicaments h ritant de Vector par exemple La classe Date de Java java util ne satisfaisant pas nos besoins nous avons d cid de cr er notre propre classe Date Notre classe contient les l ments jour mois et ann e ainsi que quelques m thodes utiles comme la r cup ration d un timeStamp de la date actuelle Initialement nous avions d clar les moments de la journ e sous forme d un type num r Cependant sa gestion tait lourde et peu pratique nous avons donc d cid d en faire une classe part enti re et de lui ajouter une certaine quantit de m thodes utiles pour faciliter leur gestion Nous pouvons signaler entre autre une red finition de toString qui nous permet d exporter le moment de la journ e sous forme de cha ne de caract res tolnt nous donne une valeur num rique en sachant que les moment de la journ e sont ordonn s comme suit nuit lt aube lt matin lt midi lt apr s midi lt soir Nous avons aussi fourni des m thodes permettant de r aliser des conversions vers un type MomentsJournee 8 7 2 Implementation des donn es Andoid met disposition plusieurs m thodes
29. Pupille a Smartphone Patient Figure 4 Choix de l infrastructure 5 D finition d un m dicament Avant de d finir des composantes plus pr cises de notre solution nous devons dans un premier temps nous mettre d accord sur la d finition d un m dicament ainsi m me si un m dicament est g r de mani re diff rente dans les diff rentes parties de notre solution nous avons une base commune c est dire la forme canonique de r f rence d un m dicament 5 1 Forme canonique d un m dicament Avant de nous concentrer sur la notion de m dicament de mani re pr cipit e nous avons pris le temps de r fl chir de mani re globale ainsi nous sommes partis d une maladie d un traitement pour arriver un m dicament une posologie et une fr quence Cette r flexion nous amen sur un concept de m dicament tr s pointu Cependant apr s discussion avec des personnes travaillant dans le domaine de la sant nous avons modifi notre conception pointue et exacte d un m dicament Nous avons aussi pu profiter de cette exp rience pour d finir une solution qui serait au plus proche d une solution r elle et surtout utilisable Sur cette base nous avons d fini qu un m dicament se devait d avoir les composantes suivantes 9 dos Santos Pedro Fuino Francesco Lala Alain w Another M anager for Pills Reminder M e Un nom qui indiquerait au patient quel m dicament prendre titre d exemple cela pourrait tre
30. ait de sa petite taille sa compatibilit entre les diff rents navigateurs et la base de plugins important qui y sont rattach s 6 7 Gestion des requ tes Afin de minimiser au maximum l utilisation de la bande passante nous avons choisi d utiliser de l Ajax nous permettant de minimiser la quantit d information t l charger Nous restons donc sur la m me page tout au long de notre navigation et chargeons uniquement les informations qui nous sont utiles Seul petit probl me nous avons choisi de ne pas g rer la possibilit d utiliser le bouton back permettant de revenir l action pr c dente Ce choix a t pris a cause du temps limit s que nous avions disposition Afin de le mettre en place nous avons pens deux solutions La premi re consiste fournir un bouton suivant et un bouton pr c dent dans l application afin de g rer ceci mais l encore nous avons un probl me la mise en favoris du lien Nous sommes donc venus une autre solution qui serait de changer l url en y ajoutant un param tre et ainsi de permettre la mise en favoris et les fonctions suivants pr c dents En Ajax il nous est possible de faire soit des requ tes synchrone ceci entrainant la suspension de toutes activit du navigateur jusqu la fin de la requ te et des requ tes asynchrone ceci nous permettant d envoyer plusieurs requ tes en m me temps au serveur Le premier cas ne convenait pas notre application car nous ne voulions
31. ait en sorte que l on puisse enregistrer plusieurs configurations les unes par dessus les autres et la configuration effective serait la derni re Ceci nous permet par exemple de revenir une version ant rieure ou simplement de mettre disposition plusieurs serveurs pour les sources de m dicaments 64 dos Santos Pedro Fuino Francesco Lala Alain EN Another Manager for Pills Reminder M 9 Ce qu il reste faire e La gestion du r seau ainsi que les m thodes de mise jour e Am liorer la gestion d erreur avec des r solutions d erreurs par sc nario pour que l application puisse se r cup rer automatiquement en cas de probl me e Corriger la m thode de r cup ration des m dicaments 10 Am liorations possibles 10 1 10 2 Partie Web ll serait aussi n cessaire de s curiser la proc dure de connexion en instaurant un m canisme rendant impossible les replay attacks par exemple en introduisant un nounce La v rification des champs de formulaire se fait uniquement sur le fait que le champ soit vide ou non et pour les nombre que ces derniers soient des entiers I serait bon de fixer des contraintes plus pr cises La partie visuelle du site est aussi totalement revoir Le graphisme est basique mais fonctionnel En ce qui concerne la classe de connexion la base de donn es elle n est fonctionnelle qu avec une base MySQL Cependant la classe peut tre compl t e pour la rendre compatible avec d a
32. ancesco Lala Alain Another M anager for Pills Reminder M P 2 2 1 C t service m dical Le service m dical doit tre capable de mettre jour la liste des m dicaments du patient prendre travers une interface web e Identification du patient o Le patient doit tre identifiable dans la base de donn es Voir les diff rentes mani res e Mise jour de la liste o Mise jour de la liste de m dicaments associ s au patient 2 2 2 C t patient L utilisateur re oit de mani re p riodique et au moment utile la liste ainsi que la quantit des m dicaments qu il doit prendre L application doit donc tre capable de e Etablir la connexion avec le serveur e S identifier au niveau de la base de donn es e T l charger la liste des m dicaments a prendre pour la journ e courante e Mettre jour la liste des alertes dans l agenda du t l phone e Mise jour de la liste toutes les 12h Au moment de l alarme la proc dure suivante doit tre mise en place e Arr ter l alarme e Affichage de la liste des m dicaments prendre dans l ordre avec la quantit e L utilisateur doit valider un un les m dicaments une fois pris e Sil application est ferm e alors qu il y a encore des m dicaments prendre attente de 5min avant de remettre une autre alarme e Pour chaque m dicament valider envoyer un message au serveur 2 3 S curit Dans la mesure o nous traitons des informations couvertes en grande partie par le secret m
33. cation du moment de la journ e ex matin M dicament prendre Liste de m dicament prendre Ecran Figure 37 Interface graphique liste m dicaments 8 4 3 10 Systeme de notifications Nous avons impl ment un syst me de notifications pour avertir l utilisateur dans deux principales situations 1 Lorsque l application n est pas lanc e mais que le service de gestion de m dicaments est actif une notification averti l utilisateur qu il a des m dicaments a prendre remarque il faut que l application aie t lanc e au moins une fois pour activer le service en arri re plan 2 Lorsque l utilisateur quitte l application alors qu il n a pas pris tous ses m dicaments une notification est aussi lanc e pour lui faire remarquer qu il n a pas pris tous ces m dicaments Une notification affiche un message temporaire sur la barre de notifications ilvous reste des m dicaments prendre Figure 38 Message de notification dans la barre de notifications Puis laisse une notification permanente dans le cache des notifications 48 dos Santos Pedro Fuino Francesco Lala Alain aN Another Manager for Pills Reminder M Notifications AM PM Rappel Il est lheure de prendre vos m dicam 12 00 AM Figure 39 Notification 1 AM PM Rappel Il vous reste des m dicaments prend 2 22 PM Figure 40 Notification 2 8 5 Architect
34. client pour que celui puisse fermer sa connexion Le serveur dans le cas d une demande OPEN v rifie que celle ci est bien effectu e avec une id 0 e d est diff rent de 0 un message d erreur est retourn au client Le serveur en utilisant l IM El fourni va chercher l id correspondant l utilisateur dans la base de donn es e L utilisateur n a pas pu tre trouv dans la base de donn es un message d erreur est retourn au client Le serveur stocke l id de l utilisateur dans la table des id et lui associe une id de session e L utilisateur est d j pr sent dans la table des id l ancienne id de session est retirer de la table et la nouvelle id de session est rajout e dans la table la place Le serveur renvoie en r ponse le message avec les param tres suivants Id id de session associ l id de l utilisateur dans la base de donn es Commande OPEN Option CONNEXION Arguments NULL 8 Le client cr e un nouvel objet Response partir de la cha ne de caract res re ue e L objet n a pas pu tre correctement cr fin de la proc dure et attente d une intervention humaine 9 Le client v rifie que tous les champs sont comme attendus e Un champ n est pas conforme fin de la proc dure et attente d une intervention humaine 10 Le client sauvegarde l id de la session pour dos Santos Pedro Fuino Francesco Lala Alain Gef Another Manager for Pills Reminder M les requ tes suivantes
35. dical nous devrons prendre en compte les points suivants par assurer la s curit des informations chang es Si l utilisateur se fait voler son portable il faut mettre en place un syst me permettant de bloquer les connexions de ce t l phone en particulier et changer dans la base de donn es les informations du t l phone ayant acc s au compte du patient Une technique serait d associer l identification au niveau de la base de donn es un num ro interne au t l phone IM El ll faut garantir que les applications clientes soient correctement identifi es et authentifi es avant de lui donner acces la base de donn es Une solution serait d introduire un interm diaire entre la base de donn es et l application cliente qui masquerait ainsi la base de donn es Tout au long du transfert il faudrait galement garantir que m me si les informations taient intercept es elles ne pourraient pas tre lues Il faudrait donc mettre en place un m canisme de chiffrement et de d chiffrement des messages chang s 6 dos Santos Pedro Fuino Francesco Lala Alain w Another M anager for Pills Reminder M P 3 Etat de l art Avant de nous lancer dans notre projet nous avons tudi les diff rentes solutions propos es ce jour dans le commerce ll existe des syst mes de boites compartiment contenant les m dicaments Ainsi le patient sait quelle heure il doit prendre quels m dicaments Cependant ce syst me r
36. diff rentes valeurs de champ ont t choisies de telle sorte garder l information de base Par exemple la date de prise d un m dicament a t d finie de type DATETIM E ceci permettant d ventuels calculs directement depuis la base de donn es Lors de la mise jour d un identifiant cette mise jour est propag e dans toutes les relations concern es tandis que lors d une suppression si un identifiant est pr sent dans une relation l action est bloqu e Ceci a t introduit afin d introduire une s curit suppl mentaire non pas seulement pour une ventuelle envie de d truire les donn es mais aussi pour une manipulation erron e et non pr vue du cot client et ou serveur Par exemple un super se trompant de m decin et voulant le supprimer Si le m decin est en relation avec d autres utilisateurs l action ne sera pas permise 6 12 2 Etude des relations Nous allons nous int resser maintenant en d tail chaque relation 6 12 2 1 Relation de tuteur Un utilisateur a un et un seul tuteur 6 12 2 2 Relation de m decin Un utilisateur a un et un seul m decin Ceci pourrait tre tendu avec une notion de m decin responsable et ensuite m decin auxiliaires 6 12 2 3 Relation de maladie Un utilisateur a une maladie avec une date de d but de la maladie ventuellement une remarque et une pr cision sur l tat de la maladie si elle est soign e ou non Ce qui va identifier un tuple vont tre l utilisateur la
37. draw et pour finir nous avons d utiliser l ajout dynamique pour g rer l ajout et la suppression de boutons m dicaments dans la vue principale Nous en retenons que pour une vue orient imbrication des composants l outil d clipse est assez performant car il reste tr s proche du xml Pour ce qui est de d finir une interface jolie droid draw est plut t recommand et pour tout ce qui est modification dynamique des composants d une vue nous sommes oblig s de passer par l ajout dynamique de composants par le code 8 4 3 2 Ic ne de l application Pour que l application soit facilement reconnaissable nous lui avons attribu une ic ne repr sentant un m dicament Avec une ic ne parlante il est beaucoup plus simple de retrouver l application parmi la multitude d applications qu un Smartphone contient ou risque de contenir http www droiddraw org 41 dos Santos Pedro Fuino Francesco Lala Alain Messagin gl Ge Another Manager for Pills Reminder D Alarm Clock Am Pm APIDemos Browser 7 e Dialer 42 Contacts Browser Calculator Camcorder Camera Contacts Figure 25 Ic ne de l application 8 4 3 3 Bouton Moment de la journ e Le moment de la journ e est compos d un simple bouton auquel nous avons retir l animation du clic et modifi la couleur d arri re plan Nous avons d fini une couleur diff rente pour l arri re plan du bouton pour chaque moment de la journ e r Midi
38. e en 6 moments avec une correspondance en fran ais ainsi cette solution est plus humaine qu une simple heure ou intervalle Nous avons retenu cette solution par rapport la notion de fr quence pour plusieurs raisons 1 Pour une personne qui doit prendre beaucoup de m dicaments avec des fr quences diverses il est plus facile de s y retrouver avec des moments dans la journ e 2 Il est plus facile pour le m decin de placer des m dicaments aux heures des repas avec ce syst me plut t qu avec une fr quence Il est aussi possible de mettre des m dicaments en dehors des heures des repas 3 Ce syst me permet d tablir une routine de prise de m dicaments en accord avec l ordonnance du m decin Cela am ne une structure Toutes les 4 heures on change de moment de la journ e ceci permet aux patients d adapter le syst me leurs modes de vies 4 Les moments de la journ e sp cifiant les heures de prises des m dicaments il est plus simple pour un m decin de planifier un m dicament prendre que le soir ou 10 dos Santos Pedro Fuino Francesco Lala Alain CN Another M anager for Pills Reminder M P que le matin par exemple Alors que la notion de fr quence aurait besoin d un renseignement suppl mentaire Voici ce quoi ressemble notre forme canonique de m dicament Nom du m dicament Moment de la journ e o le m dicament doit tre pris Date de prise du m dicament Dose Quantit de m dicament pr
39. emo En construction e http www medi memo com 6 Online JavaScript Compression Tool En Ligne e http jscompress com 7 JQuery En Ligne e http jquery com e http jqueryul com 8 PHP En Ligne e http php net index php 9 PHP Manual En Ligne e http www php net manual en 10 Standards W3C En Ligne e http www w3 org standards 11 OpenWeb pour les standards du web En Ligne e http openweb eu org articles changer pour utf8 12 MySQL reference manual En Ligne e http dev mysql com doc refman 5 5 en 13 Aide Sant les pilules bien tre En Ligne e http www aidesante fr 14 Distrimed Le mat riel m dical sur le net En Ligne e http www distrimed com 15 Andoid Developers En Ligne e http developer android com e http android developers blogspot com 67 dos Santos Pedro Fuino Francesco Lala Alain EN Another Manager for Pills Reminder M 16 Droid Draw Beta http www droiddraw org 17 FrAndroid La communaut des d veloppeurs francophones autour d Androide http dev frandroid com 18 Android developement Applications made for Android http www androiddevelopment org 19 AndroidiBlogger http androidblogger blogspot com 13 Table des illustrations Figure 1 Pilulier hebdomadaire Med emo ANNER 7 FOURS 2 CAO ISO a a 7 Figure 3 M divb E 8 Figure 4 Choix de HN te Ee en Die EE 9 oure E LOO lg Re eee ene eee eee er eee 12 FOU
40. endre Infos Informations compl mentaires sur un m dicament remarques ou contre indications Remarque Il est noter que ceci est une d finition de base d un m dicament tant donn que chaque partie de l application g re des informations diff rentes dans des conditions diff rentes il est logique que la d finition de m dicament volue 6 Site Web 6 1 Technologies et leurs utilisations Dans la partie web du projet AM PM diff rentes technologies ont t utilis es Nous allons ici en faire une description et pr ciser le contexte dans le quel ces technologies sont utilis es Nous avons essay d exploiter au maximum chaque technologie et de bien s parer leur utilisation 6 1 1 HTML Dans la mesure ou il s agit d une application web il aurait t difficile de contourner l HTM L Il s agit d un langage de balisage qui permet d crire de l hypertexte d o son nom Hypertext M arkup Language II nous est utile ici pour formater le contenu statique de nos pages web Nous construisons ainsi le squelette de notre site sur lequel nous ajouterons les feuilles de styles CSS et le contenu aussi bien statique que dynamique 6 1 2 CSS Le CSS Cascading Style Sheet traduit par feuille de style en cascade en fran ais est un langage informatique permettant de d crire la pr sentation des documents HTM L et XML C est le langage que nous allons utiliser pour appliquer un style nos diff rentes pages web I
41. erne dans deux structures diff rentes savoir une table M edicaments et une table Definitions toute deux appartenant la base B Medicaments La table M edicaments contient donc les champs suivants e ld identifiant du m dicament e Heure moment de la journ e o le m dicament doit tre pris e Date date de prise du m dicament 63 dos Santos Pedro Fuino Francesco Lala Alain a Another Manager for Pills Reminder M e _idDef identifiant de la d finition du m dicament La table Definitions contient les champs suivants e ld identifiant de la d finition e Nom Nom du m dicament e Infos Informations compl mentaires Cette s paration est tr s utile notamment pour les changes r seau en effet si la base de donn es contient d j les d finitions d un m dicament il est inutile de les re t l charger Autre avantage une m me d finition peut tre commune plusieurs m dicaments Cette s paration nous vite aussi de g rer des donn es plus cons quentes sur un appareil mobile ce qui pourrait nuire la r activit de l application ou la consommation des batteries Un objet Medicament se sert des deux tables pour constituer un m dicament avec tous les champs initialis s A l exception des champs enRetard et acked qui eux sont non permanents En effet le champ enRetard peut tre facilement d termin quand au champ acked n est pas sens tre enregistr tant donn qu un m dicamen
42. ervice d arri re plan Reprise application Mise jour du moment d la cu Mise a jour de la vue con la vue principale 8 Configuration Bouton Menu gt Quitter A propos Mise a jour SS Configuration D C Dialogue A propos Mise jour Figure 47 Diagramme de fonctionnement 56 dos Santos Pedro Fuino Francesco Lala Alain EN Another Manager for Pills Reminder M 8 7 Implementation de l application Une application mobile poss de un cycle de vie dans le cas d Android il y a sept tats onCreate cette m thode est appel e une fois lorsque l utilisateur clique le l ic ne de l application pour la premi re fois ou apr s un red marrage du t l phone lors du lancement de l application ou alors si l application a t tu e par un composant d Android pour gagner de la place m moire C est en quelque sorte le constructeur de l application onDestroy cette m thode est appel e juste avant que l application ne soit d truite apres l application est tu e et au prochain lancement un onCreate est lanc onStart onStart est lanc juste apres onCreate et toutes les fois que l application est mise en sommeil pour relanc e onStop onStrop est appel juste avant onDestroy et surtout chaque fois que l application va passer en mode sommeil onResume est appe
43. es de la fa on suivante 1 Un simple clic sur le nom du m dicament fait appara tre un message temporaire appel Toast sur Android message qui affiche l ensemble des informations compl mentaires du m dicament Ce message a une dur e d affichage d environ de 2 secondes 2 Un long clic sur le nom du m dicament affiche un dialogue muni d un bouton fermer et d un ascenseur si le texte est trop long Informations Compl mentaires BARACLUDE Ce m dicament provoque des vertiges et des tats de somnolence Figure 29 Informations compl mentaires Toast Informations as Compl mentaires BARACLUDE Ce m dicament provoque des vertiges et des tats de somnolence Fermer Figure 30 Informations compl mentaires Dialogue Il est noter qu une information compl mentaire sous forme de dialogue contiendra les informations de prise de m dicament originelles si celui ci s av rait tre un m dicament en retard Ainsi l utilisateur un moyen de savoir de quand date ce m dicament 44 dos Santos Pedro Fuino Francesco Lala Alain Another M anager for Pills Reminder M P A ce stade le message Toast n est pas tr s joli les pour mettre en vidence le titre du message ne sont pas tr s esth tiques il serait int ressant de red finir une classe h ritant de Toast pour y inclure la notion de titre Ce d tail n tant pas crucial nous l avons laiss pour une
44. es personnes de notre entourage sur base papier puis sur l mulateur nous a permis de r aliser une interface graphique minimaliste pur e et surtout ultra fonctionnelle Nous avons mis plusieurs possibilit s et celle qui a rencontr le plus grand succ s est celle qui affiche les m dicaments sous forme de liste avec un minimum de d tails affich s Voici donc l esquisse de notre interface graphique Indication du moment de la journ e ex matin M dicament prendre Liste de m dicament prendre Ecran Figure 22 Esquisse interface graphique Sur cette base nous avons mod lis chaque l ment de l interface avec des composants du toolkit graphique d Android 39 dos Santos Pedro Fuino Francesco Lala Alain aN Another M anager for Pills Reminder M Button CustomComponent Layout Layout Figure 23 Mod lisation de l interface graphique avec le toolkit graphique d Android Sur la figure ci dessus nous pouvons constater que la plupart des composants de notre interface existent d j Cependant il nous reste d finir l l ment central de notre interface graphique savoir le composant m dicament 8 4 2 Le composant m dicament Les composants m dicaments sont soumis plusieurs contraintes ils doivent afficher le nom du m dicament mettre en place un m canisme pour consulter le
45. este m canique et aucun rappel n est fourni au patient Figure 1 Pilulier hebdomadaire M ediM emo Dans les solutions lectroniques trouv es le pilulier pr venait le patient soit en vibrant dans le cas portatif soit en mettant un signal sonore Figure 2 Carrousel 7 dos Santos Pedro Fuino Francesco Lala Alain an Another M anager for Pills Reminder gt M Figure 3 M divib Ces solutions ne sont pas adapt es tous les types de traitement soit la taille des compartiments est trop petite ou alors le syst me de rappels peu flexible De plus il n est pas possible au m decin de contr ler en direct la prise des m dicaments 4 Choix de l infrastructure Afin de rendre notre approche des diff rents probl mes plus facile nous avons choisi de s parer ce projet en trois parties distinctes A l une des extr mit s de notre syst me nous avons la base de donn es qui peut tre dit e par le m decin gr ce l application web A l autre extr mit nous avons l application cliente qui se trouve sur le mobile du patient et qui doit pouvoir acc der la base de donn es pour r cup rer les informations dont elle a besoin pour fonctionner correctement La solution la plus vidente qui nous est venu l esprit dans un premier temps a t de permettre l application de directement pouvoir se connecter la base de donn es Cependant rendre notre base de donn es accessible de cette mani re n es
46. ets visuels non d rangeant am liorant l ergonomie de l application 6 10 Choix de l encodage Bien que pour le moment notre application ne soit pas multilingue cette derni re utilise le jeu de caract res UTF 8 afin d tre pr te l internationalisation aussi bien du cot des pages PHP que dans la base de donn es Cette pr paration est bien plus avantageuse faire des le d but que de devoir rependre tout un projet et de proc der la conversion 6 11 Pens e cologique L cologie tant au centre de toutes les discussions ces derni res ann es nous avons nous aussi apport notre petite contribution en choisissant un fond noir pour notre application ceci diminuant la consommation nerg tique C est un petit geste mais nous tenions le faire 6 12 Base de donn es AM PM Pour que notre application web puisse fonctionner nous avons besoin d installer la base de donn es Pour le moment cette derni re doit tre import e manuellement depuis le fichier dump mis disposition ll suffit de cr er une base de donn es de votre choix et d y importer le fichier dump Une fois cette op ration termin e il reste informer les param tres de configuration de l application avec les informations entr es pr c demment 23 dos Santos Pedro Fuino Francesco Lala Alain aN Another Manager for Pills Reminder M P 6 12 1 Modele conceptuel relationnel Cette base de donn es permettra la gestion des diff rents utilisateurs
47. fication et une vibration des que des m dicaments doivent tres pris Et s occupe de faire des mises jour automatiques sans en avertir l utilisateur avec des intervalles de mise jour d pendants de la valeur configur e dans la configuration 60 dos Santos Pedro Fuino Francesco Lala Alain CN Another Manager for Pills Reminder M P La partie r seau tant encore en d veloppement et par cons quent pas encore fonctionnelle le service l heure actuelle ne fait qu avertir l utilisateur qu il doit prendre des m dicaments 8 7 1 Structure de donn es Le m dicament tant le c ur de notre application il est vident que la structure m dicament soit notre structure principale Un m dicament est constitu des champs suivants e Nom Nom du m dicament e Informations Informations relatives au m dicament des remarques sur la posologie etc e ld Entier identifiant de mani re unique chaque m dicament e dDef Entier identifiant de mani re unique les informations compl mentaires au m dicament e Date Date laquelle un m dicament doit tre pris e Heure Moment de la journ e o le m dicament doit tre pris e EnRetard Bool en qui indique si un m dicament a t pris son heure juste ou s il est en retard e Ack Bool en qui indique si la personne a d j valid la prise du m dicament Afin de regrouper toutes ces informations sous un m me l ment nous avons cr une classe
48. fier et authentifier l utilisateur en acc dant la base de donn es L objectif de cette op ration est de pouvoir avoir dans la table d id que le serveur poss de une association directe entre l id de session que l utilisateur va avoir et l id que cet utilisateur dans la base de donn es ainsi il ne sera plus n cessaire par la suite d aller chercher pour chaque message de la session les informations sur ce patient Ceci nous permet donc de r duire le nombre de requ tes effectu es la base de donn es Une fois cette association r alis e l id de session est retourn e au client qui pourra alors la sauvegarder pour les prochains messages de cette session La suite des op rations r alis es par chacune des applications est retrouv e dans le tableau suivant La suite des op rations r alis es par chacune des applications est retrouv e dans le tableau suivant emt Serveur 1 Le client envoie un message d ouverture de session au serveur avec les informations suivantes Id 0 Commande OPEN Option CONNEXION Arguments IM El information permettant d identifier le patient 2 Le serveur cr e un nouveau thread pour traiter le message re u 27 dos Santos Pedro Fuino Francesco Lala Alain aN Another Manager for Pills Reminder M 3 Le serveur cr e un nouvel objet Request partir de la chaine de caract res re ue e L objet n a pas pu tre correctement cr un message d erreur est retourn au
49. figuration au risque de ne plus pouvoir utiliser leur application Suivant la gravit de la maladie cette maladresse pourrait co ter cher d o l int r t d une bonne protection Authentification ee Veuillez entrer le mot de passe pour d bloquer la configuration Figure 43 Dialogue d authentification 8 5 5 Mise jour La Mise jour est la partie de l application qui va initier une connexion avec le serveur puis va synchroniser la base de m dicaments locale avec la base de m dicaments du serveur De mani re g n rale une connexion ressemble ceci e Initier une connexion e S identifier gr ce l IM El du t l phone e _S authentifier avec le mot de passe e Recevoir la liste des m dicaments prendre e Envoyer la liste des m dicaments pris e Fermer la connexion Mise jour en cours Connexion Figure 44 Dialogue de mise jour 52 dos Santos Pedro Fuino Francesco Lala Alain EN Another Manager for Pills Reminder M P Nous avons d cid de nous servir de l IM El comme identifiant tant donn qu il est unique pour chaque t l phone il en a fait un candidat parfait Nous aurions aussi pu utiliser le num ro IM SI qui lui est d pendant du fournisseur de r seau Le choix de l IM El s est fait en se basant sur le fait que le patient tait libre de changer d op rateur sans pour autant devoir faire une quelconque d marche aupr s du m decin Nous avons arbitrairement pr
50. fonctionnelle certes mais ne respecte pas en r gle g n rale les directives de la philisophie Android 59 dos Santos Pedro Fuino Francesco Lala Alain an Another Manager for Pills Reminder M P Il est important de signaler ou Android poss de un syst me de droits pour une application donn e Ils sont d finis dans le fichier M anifest xml Dans ce fichier sont d finies quelles applications peuvent lancer tel ou tel intent sont aussi d clar s la port e d utilisation des applications savoir vont elles lire les donn es internes du t l phone peut elle faire vibrer le t l phone En sachant que si les droits ne sont pas d finis lors de l ex cution une exception est lanc e emp chant ainsi l ex cution d un service non autoris Gr ce ce fichier il est tr s simple de conna tre le scope d une application par rapport au mat riel et ainsi de pouvoir d celer des applications de type malware Dans notre projet nous avons d ajouter une s rie de droits pour pouvoir lancer des activity ainsi qu un service d arri re plan ainsi que des permissions relatives au mat riel lt uses permission android name android permission READ PHONE STATE gt lt uses permission gt lt uses permission android name android permission VIBRATE gt lt uses permission gt En ce qui concerne l impl mentation des classes nous avons d cid de d finir des l ments unitaires qui eux m mes d finissent en interne ce dont i
51. icaments o nous aurons sur le m me principe les informations utiles Figure 13 18 dos Santos Pedro Fuino Francesco Lala Alain aN Another M anager for Pills Reminder M Le Smith Jhon e e l Grippe Panadol Remarque Nuit 00 00 Boire un verre d eau Aube 04 0 Dosage Matin 08 0 1 mg Midi 12 00 Nombre de jours Apres Midi 10 Soir 20 00 0 Figure 13 Informations sur le m dicament 6 4 7 Proc dure de d connexion Nous avons choisi de fixer un timeout de session ceci apportant une s curit suppl mentaire si l utilisateur oublie de fermer sa session Ce timeout peut tre modifi par le responsable du site Il peut tre aussi efficace de pouvoir g rer le timeout en imaginant qu un poste doive garder une session ouverte pendant un intervalle de temps important ou au contraire un intervalle minimal 6 4 8 Optimisation du chargement des scripts Nous avons pris garde a s par au maximum chaque groupe d actions propre un groupe d utilisateur dans des fichiers s par s Ceci nous permet donc de ne charger que les fichiers de script n cessaire pour le groupe d utilisateur connect Ainsi un patient ne verra jamais les fonctions propres au m decin Une s curit est aussi plac e dans chaque fichier afin de s assurer qu tout moment l utilisateur est bien connect et qu il fait partie du bon groupe Nous avons aussi choisi de compresser nos fichiers JavaScript ainsi que de les obfusquer rendant leur lec
52. ills Reminder M P avons plut t int r t utiliser un layout pour nos composants graphique compos d autres l ments pour nous affranchir de la gestion d un canevas Notre classe BoutonM edic construit un l ment graphique appel widget sur android sur la base d un m dicament Ceci permet la classe de r cup rer les informations dont elle a besoin et de permettre une meilleure volution de notre classe En poussant l extr me nous aurions pu d finir une interface qui comporterait les m thodes getNom getinfos getAcked et ainsi nous aurions pu g n raliser notre BoutonM edic en une classe qui pourrait servir d autres applications comme pour une liste de courses par exemple Nous avons aussi adopt un visuel diff rent suivant si le m dicament prendre est l heure ou si c est un m dicament qui n a pas t pris temps et est par cons quent marqu comme en retard Nous avons mis un fond blanc pour les m dicaments l heure et un fond rouge pour les m dicaments en retard worn Figure 27 Bouton m dicament standard BARACLUDE Figure 28 Bouton m dicament en retard 8 4 3 5 Affichage des informations compl mentaires Une fois le BoutonM edic cr e il nous fallait d finir un moyen d afficher les informations compl mentaires lors du clic sur un bouton Initialement nous avions pens a un syst me qui irait augmenter la taille du bouton avec une petite animation growing up
53. ion du chargement des scripts 19 Bee 19 65 Respect EE 19 2 dos Santos Pedro Fuino Francesco Lala Alain CN Another M anager for Pills Reminder M P DO FOTW OO a me a ne ou 20 6 7 Gestion des IC 20 6 8 Installation de l application EE 21 C2 010 40 0 O enne n E EEEE E E EE EE 21 6 10 Choix de l encodage rennes 23 DLL M PENS ES a a a ee 23 6 12 Base de donn es ME PMR eee does eh ou 23 6 12 1 Mod le conceptuel relationnel nn 24 BEEM 25 Is PAT EE an a me niaii iiais 26 7 1 Protocole de communication E 26 EE 26 SO E 27 6 2 3 Mise ajour d Cent aa a ae a ee eee 29 6 2 4 Mise jour des m dicaments pris 32 6 2 4 Fermeture de session a on 33 6 3 Evolution vers le chiffrement des messages 34 E UE EE A E E T 35 8 1 Choix de l quipement mobile sasecissccscuascsassnduatanri meine dsninedvetaaiiederaesubandi decutesialdevaedeameiunnieniwtes 35 oL PDO CIS FOS creron ous 35 82 APDE marke UN EE 36 8 2 Choix de la plateforme nn 36 A TPAO EE 36 Dale AMAZIN a E vena cate A roars cies Genco ant cas dace eae dvcsnanaeienatonea ase aeetinn 37 E M el d EE 37 8 3 Plateforme de d veloppement inner 38 94 IN CAC CODE da at ea da te 39 EN E ere te ae a a de 39 8 4 3 Impl mentation inner 41 8 5 Architecture g n rale de l application nan 49 8 5 1 D claration centralis e des cha nes de caract res cccesccecssesssssserserssssersaseeen 49 SG M Ra a E ian nantes ne so nn 49 8 5 3 POSS Fa elt 49 3
54. ir la liste de tous ses patients L utilisation de l Ajax pose encore ici un probl me L utilisateur ayant acc s au fichier source contenant le code JavaScript il lui sera facile de trouver une requ te d affichage de patient de tester un identifiant et de r cup rer ainsi les informations de ce patient a donc t important de s curiser les requ tes SQL effectu es afin de ne pas autoriser un utilisateur l acc s des patients ne lui appartenant pas 6 4 1 4 Utilisateur inconnu Un utilisateur inconnu est soit un utilisateur enregistr mais ayant entr des informations de connexion erron es soit un visiteur de passage 6 4 2 Proc dures d ajout Toutes les proc dures d ajout de notre application fonctionnent sur le m me principe Un formulaire est pr sent a l utilisateur Ce formulaire est tout d abord v rifi en JavaScript puis finalement pass au serveur pour une deuxi me validation Si les informations sont correctes l ajout s effectue 16 dos Santos Pedro Fuino Francesco Lala Alain CS Another M anager for Pills Reminder M Figure 10 Proc dure de connexion 6 4 3 Proc dure de modification La modification s effectue de la m me fa on que l ajout la diff rence pr t qu il nous est n cessaire de passer l identifiant de ce qui va tre modifi Ici aussi il est critique de contr ler le droit de l utilisateur effectuer l action 6 4 4 Proc dure de suppression Il est important ici de
55. ition du m dicament demand Le serveur envoie en r ponse le message avec les param tres suivants e ld id de la session e Commande SEND e Option DEFINITION e Arguments d finition du m dicament demand Le client v rifie si la r ponse est conforme au protocole si non 31 dos Santos Pedro Fuino Francesco Lala Alain n Another M anager for Pills Reminder oM conforme passe au prochain m dicament et s arr te la fin en attente d une intervention humaine Le client met jour la d finition du m dicament dans sa base de donn es locale 12 Le client v rifie retire de sa base de donn es les m dicaments qui n taient pas dans la liste re ue Tableau 2 Diagramme de s quences pour la mise jour du client 6 24 Mise jour des m dicaments pris Une autre proc dure qui peut tre effectu pendant une session est l envoie par le client de la liste des m dicaments que le patient a bien pris Le but de cette op ration est de pouvoir suivre au niveau de la base de donn es la prise des m dicaments par le patient et ainsi de donner des informations suppl mentaires au m decin en lui permettant de mieux suivre le traitement de son patient Pour se faire le client envoie un message avec comme param tre de commande SEND et pour la valeur du param tre argument la liste desdits m dicaments Sur r ception de ce message le serveur va alors r cup rer l id du patient et mettre jour le
56. l juste apr s onStart mais surtout chaque fois qu une vue de l application occupe l cran onPause est le contraire de onResume elle est appel e avant chaque onStop et surtout chaque fois ou la vue de l application est remplac e par une autre vue d un autre application onRestart est lanc juste avant onStart a chaque fois qu une vue de l application occupe l cran La documentation Android nous fourni une image assez explicite sur les diff rents cycles de l application 57 dos Santos Pedro Fuino Francesco Lala Alain os Another Manager for Pills Reminder M IT onCreate User navigates onAlesume r back to the activil P vi The activity comes to the _ foreground Another activity comes _ in front of the activi The activity Other applications comes to the need memory foreground Figure 48 Cycles de vie d une application android Dans la solution livr e nous avons d fini le onCreate qui va initialiser l ensemble de l application Comme nous le verrons plus tard la seule chose qui reste en m moire volatile tant les http developer android com 58 dos Santos Pedro Fuino Francesco Lala Alain Gef Another Manager for Pills Reminder M P diff rentes instances d objets et un timestamp de la derni re mise jour nous n avons pas jug utile de red finir des comportements sp cifiques pour
57. l application est affich e savoir lors des appels onCreate et onResume Pour bien comprendre le cycle de vie d une application Android une explication plus d taill e est pr sente plus loin dans le rapport A ce 49 dos Santos Pedro Fuino Francesco Lala Alain aN Another Manager for Pills Reminder M P stade il nous suffit de savoir que le moment de la journ e n est pas mis jour si on laisse l application tourner Ce choix est d lib r est appuy par deux arguments 1 Uneutilisation standard du smartphone implique qu il va servir autre chose ainsi notre application n est pas la seule s afficher sur le t l phone II est inutile de tenir jour un affichage qui n est pas constamment affich 2 Les ressources occup es par un thread de rafraichissement ne sont pas justifi es pour un changement d affichage de quatre en quatre heures Mise jour Configuration propos Quitter Figure 41 Menu principal 8 5 4 Configuration La vue configuration nous permet de sp cifier les param tres de l application ainsi qu r cup rer le champ IM El sans devoir retirer la batterie pour que le m decin puisse remplir le formulaire du patient Le m decin devra renseigner les champs serveur et mot de passe pour que l application puisse communiquer avec le serveur maitre ainsi qu un intervalle de mise jour qui va d finir combien de fois par jour l application ira se mettre jour Supposant que pour
58. les diff rents cycles de vie de l application Dans l espoir de d velopper une application qui puisse voluer rapidement nous avons adopt une philosophie M VC mod le vue contr leur Nous avons s par notre application en deux parties distinctes la configuration et les m dicaments Chaque partie ayant son contr leur sa vue et son mod le La configuration a une vue jointe au contr leur Gr ce ce mod le il nous est facile de faire voluer la vue ou le contr leur sans que cela n ait d impact majeur sur l application justement cause de la s paration N anmoins nous avons t contraints d adapter un peu la philosophie d Android cause de certaines limitations Par exemple Android ne permet pas un thread de modifier une vue si le thread n est pas responsable de la dite vue Ce type de limitation nous a oblig adapter notre solution initiale vers une solution plus fonctionnelle et moins th orique Le fait que cette application soit notre entr e en mati re dans le d veloppement Android elle nous a fait faire des erreurs de jeunesse en effet nous nous sommes bas s sur un d veloppement d application standard mais ceci tait sans savoir que le d veloppement Android est plus ais si on respecte une certaine philosophie impos e par Google Cette philosophie est en r alit une m thodologie coupl e quelques recettes de cuisine qui une fois assimil e ne parait pas compliqu e mais qui reste n anm
59. ls ont besoin ainsi gr ce au m canisme de classes internes nous avons pu d clarer l int rieur des classes des classes qui appartiennent enti rement la classe m re Nous avons pr f r la solution nested plut t que l agr gation pour trois principales raisons 1 Les m thodes des classes internes peuvent directement acc der aux attributs de la classe conteneur Ceci nous permet de d clarer un certain nombre de m thodes priv es auxquelles les classes internes ont acc s mais pas les autres 2 Les classes internes peuvent tre cach es aux autres classes du m me paquetage ceci nous garantit une meilleure s paration du code tout en pr servant sa s curit notamment sur des donn es sensibles En d autres termes ceci nous permet de cacher la complexit interne 3 Les classes internes nous permettent r aliser une s paration franche des diff rents composants entre ceux qui sont r utilisables et ceux qui sont troitement li s Remarque nous avons utilis une convention de nommage pour nos fichiers ainsi ce qui commence par M_ est un mod le ce qui commence par C_ est un contr leur ce qui commence par S_ est un service ce qui commence par V_ est une vue et ce qui ne commence pas par une lettre distinctive est soit une classe utilitaire soit une classe standard soit une classe d activit comme M ain par exemple Nous avons r alis une classe service qui en th orie averti l utilisateur par une noti
60. ne snifferait les paquets envoy s lors de la connexion il pourrait r cup rer le mot de passe de l utilisateur en clair Pour le moment notre m thode de connexion n est pas optimis e au point de vue de la s curit du fait qu il est sensible aux replay attacks Un utilisateur en mesure de r cup rer le paquet contenant la demande de connexion pourrait reproduire l envoi du paquet ce qui lui permettrai de se connecter Une fois l utitilisateur connect il pourra voir la r ussite de sa connexion par le message de notification et l affichage de son nom et pr nom sur le site Figure 9 Connect en tant que S Smith John Figure 9 Informations de connexion 6 4 1 1 Patient Pour le moment le patient peut voir les diff rentes maladies qui sont en cours de traitements ainsi que les m dicaments s y rapportant 6 4 1 2 Super Utilisateur Le super utilisateur est l utilisateur pouvant ajouter modifier et supprimer un m decin voir la liste des m decins ou encore recherche un m decin en entrant son nom 6 4 1 3 M decin Le m decin est la partie principale de l application 15 dos Santos Pedro Fuino Francesco Lala Alain Another Manager for Pills Reminder M Ce dernier peut ajouter une nouvelle maladie ajouter un nouveau m dicament ajouter un patient ajouter un tuteur ajouter une maladie un patient ajouter un m dicament une maladie d un patient modifier un patient rechercher un patient vo
61. ntages d un Smartphone que d un simple t l phone ne serait ce que par le confort d utilisation ou par la facilit de synchronisation des donn es ou de connexion avec le PC Ces nouvelles fonctionnalit s facilitent la vie des professionnels et les capacit s graphiques attirent les jeunes consommateurs friands de jeux vid os et d applications inutiles 8 2 Choix de la plateforme Ayant d cid de nous orienter vers un d veloppement sur Smartphone il nous faut encore d cider sur quelle plateforme nous allons programmer notre solution nous avons restreint notre ensemble aux plateformes suivantes Java2me Android ou Iphone 8 2 1 Iphone Vu le nombre de Iphones en circulation la plateforme d Apple parait premi re vue tre une bonne solution pour notre application cependant les restrictions de d veloppement les co ts entra n s par ces derni res et la politique ferm e men e par Apple nous ont 36 dos Santos Pedro Fuino Francesco Lala Alain CN Another M anager for Pills Reminder M P d courag s de d velopper sur Iphone Nous pouvons aussi signaler ou au contraire des deux autres plateformes retenues l Iphone ne tourne que sur des quipements Iphone 8 2 2 Java2me Java2me offre la puissance de java sur un large panel de t l phone portables cependant il n y a pas de standard commun que tous les fabricants respectent Ceci implique que nous avons une plateforme peu homog ne De plus il y a certaines limitati
62. nte compl tement mise jour il est temps pour le client de fermer sa session Ceci est effectu en envoyant un message avec la commande CLOSE Sur r ception de ce message le serveur va aller chercher dans la table d id de session l id de la session courante et la retirer II r pondra alors un message contenant galement la commande CLOSE mais cette fois l id de session sera 0 Ainsi une fois la session ferm e il n y a plus moyen d acc der directement aux informations de la base de donn es pour cet utilisateur sans avoir s identifier de nouveau ce qui rend plus difficile le vole de session et ainsi l acc s pour des personnes non autoris es des informations confidentielles sur les patients 1 Le client envoie un message d ouverture de session au serveur avec les informations suivantes Id id de la session Commande CLOSE Option CONNEXION Arguments NULL Le serveur cr e un nouveau thread pour traiter le message re u Le serveur cr e un nouvel objet Request partir de la chaine de caract res re ue e L objet n a pas pu tre correctement cr un message d erreur est retourn au client pour que celui puisse fermer sa connexion Le serveur dans le cas d une demande CLOSE v rifie que celle ci est bien effectu e avec une id diff rente de 0 e Id gale a0 un message d erreur est 33 dos Santos Pedro Fuino Francesco Lala Alain aN Another M anager for Pills Reminder M retourn au client
63. oins assez complexe acqu rir ce qui explique notre orientation vers un d veloppement standard De mani re tr s simplifi e il faudrait d clarer une activity qui regroupe le contr leur et la vue le mod le lui peut tre facilement s par mais peut aussi tre inclus De mani re g n rale une vue se d clare sous forme de xml dans un fichier sp cial et l activity va charger sa vue depuis le xml En gardant l esprit qu une vue peut tre un affichage sur l ensemble de l cran une boite de dialogue etc On constate que chaque l ment est assez ind pendant des autres mais assez d pendant de fichiers xml d crivant la vue ou d autres ressources Par dessus le concept d activity vient le concept d Intent qui lui se trouve tre l l ment d clencheur d une activity Signalons ici que si aucun dispositif particulier n est pris la vue n est pas rafraichie automatiquement et peut m me tre bloqu e si un traitement de fond occupe le processeur ce qui peut poser probl mes lorsque l on veut calculer quelque chose et afficher des r sultats partiels par exemple Tout ceci pour dire que m me si le code est crit en java il faut avoir assimil la philosophie de programmation Android avant de se lancer dans un d veloppement orient production Au moment o la philosophie Android commen ait tre acquise il tait trop tard pour refondre l int gralit de l application ceci explique que notre solution est
64. oir une application simple et efficace facilitant son utilisation aux personnes n ophytes Chaque action entrainant une alt ration de la base de donn es ou la connexion d connexion de l utilisateur est sujette la notification de cette derni re a l utilisateur par un message color l informant directement visuellement et textuellement si une erreur est survenue ou si l action s est d roul e correctement Figure 15 21 dos Santos Pedro Fuino Francesco Lala Alain Another Manager for Pills Reminder Fermer Menu Simth Jean Simth Fox X Smith Eloy it v Medecin ajout avec succes Figure 15 Notification d une action correcte Chaque champ de formulaire une fois s lectionn par l utilisateur va afficher une information indiquant ce a quoi correspond le champ ceci facilitant la saisie Figure 16 Login Password Nom Prenom Mail Adresse LA Telephone Fixe Telephone Mobile Num ro de fixe de l utilisateur De la forme 0041 21 123 21 23 Figure 16 Informations sur le champ Lors de la soumission au m me endroit un conteneur de couleur diff rente pr vient l utilisateur si un champ est rempli de fa on incorrecte Figure 17 22 dos Santos Pedro Fuino Francesco Lala Alain n Another M anager for Pills Reminder oM Login Password Nom Prenom Mail Telephone Fixe Telephone Mobile Figure 17 Erreur de remplissage du champ Nous avons aussi int gr de petits eff
65. olutions auxquelles nous avions pens es se base sur le fait qu une fois identifier on pourrait utiliser un chiffrement par algorithme sym trique avec une cl aillant t configur e lors de l installation de l application sur le mobile Ainsi d s lors que la session est ouverte les messages suivants seraient chiffr s par une cl connue par les deux parties le client et le serveur De plus du c t serveur cette cl de chiffrement serait r cup r e dans la base de 34 dos Santos Pedro Fuino Francesco Lala Alain aN Another M anager for Pills Reminder M P donn es en m me temps que id du patient et rajouter comme information compl mentaire dans la table d id de session Une autre solution que nous avions en t te tait d impl menter une connexion SSL entre le serveur dans la mesure o nous tablissons la connexion en TCP Notre protocole et nos s quences ne changeraient pas et nos informations seraient chiffr es et sign es de mani re a assurer la confidentialit et l int grit des informations chang es 8 Partie mobile La partie mobile est la partie que le patient aussi appel client peut voir et toucher C est sur son t l phone qu il va consulter la liste des m dicaments et signaler par une action qu il les a pris La partie mobile se charge aussi de lui signaler quand il a des m dicaments prendre 8 1 Choix de l quipement mobile 8 1 1 Approche th orique Les t l phones n tant pas de
66. ons qui nous on pouss opter pour une autre plateforme signalons par exemple l interface graphique pauvre inesth tique et rudimentaire Pour d velopper une interface conviviale sur java2me nous devons r aliser nous m me l int gralit des graphiques et l interface GUI De plus comme signal plus haut les API de bas niveau tant tr s d pendantes du t l phone il serait possible que notre application refuse de fonctionner sur un type de t l phone nouveau ceci impliquerait que nous devrions inclure les t l phones cibles dans nos tests solution bien videment tr s difficile maintenir 8 2 3 Android Android tout comme les Smartphones a le vent en poupe et le fait que l API se base directement sur des fonctionnalit s de l OS apporte un confort au niveau du d ploiement de l application sur diff rents quipements Ainsi la m me application peut tre distribu e sur des quipements h t rog nes sans que cela n ait du tre test au pr alable Ceci assure la p rennit de notre application face aux volutions des quipements mobiles L interface graphique de base offerte par Android est soign e et poss de bon nombre de composants graphiques param trables De plus il existe la possibilit d y appliquer un th me pour faire voluer nos graphiques sans modifier beaucoup de code De mani re plus p dagogique nous nous sommes laiss s s duire par l attrait de la nouveaut que repr sente Android ainsi que par
67. ors d une recherche en direct d un patient en entrant son nom Chaque rel chement de touche relev avec l v nement JavaScript onKeyUp entraine l envoi d une requ te Ainsi apr s avoir entr deux lettre la premi re requ te sera stopp e au profit de la deuxi me Nous avons aussi pens cr er un syst me d tectant si un probl me r seau est peut tre existant Pour ce faire nous avons incorpor chaque requ te un timeout Lorsqu un certain nombre de requ tes n aboutit pas un message d erreur est affich l utilisateur lui indiquant le probl me possible Figure 14 Ces deux param tres peuvent bien s r tres modifi s pour le moment par la personne responsable de l installation de l application Figure 14 Message de notification de probl me r seau 6 8 Installation de l application Afin de faire fonctionner cette application il nous faut un serveur supportant au minimum le PHP5 car nous avons utilis la programmation orient e objet propos e par cette version et non pr sente dans les versions ant rieures ainsi qu une base de donn es M ySQL version 5 et sup rieure Apres cr ation et importation de la base de donn es il sera n cessaire de compl ter le fichier de configuration de base de donn es avec les informations ad quates 6 9 Ergonomie Tous les utilisateurs n ayant pas de connaissances accrues dans le maniement des diff rentes technologies nous nous sommes donn comme objectif de concev
68. ors de la proc dure de connexion nous avons pr t attention ne pas donner d informations a l utilisateur sur l erreur de connexion en lui disant que le nom d utilisateur est inconnu ou que le mot de passe est inexacte Il y a un contr le des informations entr es dans le formulaire tout d abord du c t client en JavaScript puis ensuite du c t serveur en PHP Si ces informations sont acceptables nous continuons avec la proc dure de connexion et nous allons v rifier la pr sence du couple login mot de passe dans la base de donn es Si ce couple est trouv nous initialisons les variables de sessions avec l identifiant de l utilisateur son identifiant de r le son nom et son pr nom Le r le le nom et le pr nom sont stock en session ceci afin d viter de faire des requ tes suppl mentaires pour aller les r cup rer Le mot de passe de l utilisateur est quand lui hach avec la m thode SHA 512 Cette derni re est une fonction de hachage cryptographique fournissant une empreinte de 512 bits Nous avons pr f r s cette m thode plut t que l ancienne SHA 1 afin de garantir un plus haut niveau de s curit tant donn que l empreinte est plus importante Le mot de passe entr par l utilisateur lors de sa connexion est dans un premier temps hach en JavaScript avec la m thode SHA 512 ceci afin d emp cher l envoi en clair au serveur du mot de passe Cet envoi en clair pourrait tre probl matique si par exemple une person
69. ouplesse de modification de ces derniers De plus SQLite souffre de certaines faiblesses dont voici les principales e Aucune gestion de comptes utilisateur Dans notre cas nous n en avons pas besoin tant donn que seule l application mobile a acc s la base de donn es en mode root e Les possibilit s de modifier la structure d une table sont limit es au renomage d une table et l ajout de colonnes Aucune gestion en ce qui concerne la modification ou la suppression Dans notre solution les structures de la base sont statiques et ne risquent pas de changer pendant l utilisation Par cons quent cette limitation ne pose aucun probl me e SQLite n est pas con u pour g rer plusieurs acc s concurrents ceci encore une fois n est pas une limitation dans notre application car seule l application va lire ou crire dans la table et tant bien m me si plusieurs threads auraient des acc s concurrents SQLite saurait le g rer De mani re g n rale nous saluons le fait ou Android embarque SQLite car il est un atout important pour des applications manipulant des donn es complexes ou en grand nombre L impl mentation d une base de donn es SQLite sous Android est possible de diff rentes fa ons tout d pend si on veut que nos donn es soient consultables depuis une autre application Dans ce cas il faudra cr er une classe h ritant de ContentM anager Comme nous avons simplement besoin des donn es en interne nous n avons pas
70. ouvons utiliser l outil int gr dans le sdk d clipse ceci nous donne le choix entre le mode graphique et le mode xml pour cr er la vue Au final c est le fichier xml qui est utilis par l activity Cet outil pr sente quelques instabilit s dans son mode d dition graphique et on se retrouve assez souvent diter le fichier xml la main e Nous pouvons utiliser un petit programme en ligne droid draw betat ce programme a les m mes fonctionnalit s que l diteur graphique d eclipse la seule diff rence qu il sait g rer les view en absolu et nous permet de voir les l ments graphiques avant de les mettre dans la vue Ceci est le mode d dition adopt par les programmeurs travaillant sous Netbeans en effet aucun diteur graphique n a t ajout dans le module de d veloppement Netbeans Cet outil est assez agr able d utilisation et produit des fichiers xml en tout point comparables ceux des outils d clipse e Nous pouvons cr er les vues la main en mode de programmation en cr ant et en ajoutant la vue les composants Ce mode l avantage que l on peut modifier une vue en cours de route et surtout nous pouvons impl menter une vue dynamique alors que les deux solutions pr c dentes sont plut t orient es vues statiques Nous avons dans le cadre de notre application mobile eut l occasion de tester les trois approches nous avons initialement utilis le composant d clipse puis essay droid
71. pareil mobile par exemple Par manque de temps il ne nous a pas t possible d int grer la gestion du r seau dans notre application et par cons quent nous n avons pu que a simuler une mise jour mise jour cod e en dur Ce point est signal plus loin dans le point Reste faire 8 5 6 Liste des m dicaments La liste des m dicaments est le point central de notre application c est la vue affich e par d faut depuis laquelle on a acc s au menu de l application qui lui nous permet d acc der aux autres vues 53 dos Santos Pedro Fuino Francesco Lala Alain Another Manager for Pills Reminder M em mem 4 BARACLUDE ma FUZEON el REBETOL E Figure 45 Liste des m dicaments Chaque m dicament prendre est mod lis par un composant graphique BoutonM edic compos d un bouton pour obtenir des informations sur le m dicament et un checkbox pour valider la prise du m dicament Cette vue est chapeaut e par un bouton dont la couleur du fond change en fonction du moment de la journ e qui affiche le moment de la journ e savoir e NUIT e AUBE e MATIN e MIDI e APRES MIDI e SOIR 8 5 7 Apropos Le dialogue propos comme son nom l indique affiche un message d propos avec le but de l application ses auteurs la date un copyright et une mention sur le cadre du projet savoir le cours IFC2 54 dos Santos Pedro Fuino Francesco Lala Alain Gef Another
72. pour tre en accord avec la liste des m dicaments Les images suivantes montrent a quoi ressemble un message de confirmation ainsi que la vue principale lorsque tous les m dicaments on t soigneusement pris 45 dos Santos Pedro Fuino Francesco Lala Alain w Another M anager for Pills Reminder M VOUS avez pris BARACLUDE Figure 32 Confirmation prise m dicament Toast Am Pm Figure 33 Interface principale vide 8 4 3 7 Images d arriere plan En ce qui concerne les images de fond des layout Android va regarder l extension de l image pour d terminer si l image contient des informations sur l tirement de l image Par exemple l image du moment de la journ e d finie pour le soir porte le nom bjsoir 9 png Et l image poss de des pixels noirs encadrant l image qui indiquent sur quels cot s on peut tirer l image Dans notre exemple l image est tirable sur tous ces cot s L tirement se fait sans que l image soit redimensionn e ce qui permet de garder une qualit graphique m me si la taille de l cran varie d un Smartphone un autre Remarque Il est aussi noter que les noms d images et plus g n ralement des ressources externes ne peuvent contenir que des minuscules et des lettres tout autre caract re est tr s souvent mal support par Android 46 dos Santos Pedro Fuino Francesco Lala Alain Gef Another Manager for Pills Reminder M Figure 34 Image de fond pour
73. pour stocker des donn es de mani re persistante e Stockage dans un fichier texte e Stockage dans une base de donn es SQLite e Stockage dans les pr f rences utilisateur 61 dos Santos Pedro Fuino Francesco Lala Alain aN Another Manager for Pills Reminder M e Stockage sur le r seau Le stockage sur le r seau a t d office limin tant donn que notre application est sens e fonctionner partout m me si il n y a pas d acc s wifi ou 3G Le stockage dans les pr f rences utilisateur ainsi que dans un fichier texte sont peu adapt s pour le stockage de grands volumes de donn es structur es Ainsi en accord avec les capacit s de la plateforme nous avons d cid de stocker nos informations sur une base de donn es SQLite D une part une base de donn es apporte un confort d utilisation et surtout rapidit d acc s l information compar a une solution bas e sur fichiers d autre part elle permet une scalabilit beaucoup plus importante qu une gestion bas e sur des fichiers La seule base qui pourrait tre facilement remplac e par un fichier est la base de donn es pour la configuration en effet dans ce cas pr cis ambivalence peut tre discut e La seule raison qui nous a amen a pr f r une base de donn es est le fait de pouvoir conserver un historique des modifications SQLite comme son nom l indique est une base de donn es l g re qui ne poss de ni la puissance des grands SGBD ni la s
74. prochaine version ou mise jour a Informations Compl mentaires BARACLUDE Ce m dicament provoque des vertiges et des etats de somnolence devait tre pris le 06 01 2010 le Matin Fermer Figure 31 Informations compl mentaires Dialogue m dicament en retard 8 4 3 6 Validation dela prise d un m dicament La validation d un m dicament se fait d un simple clic sur le checkbox lors de la validation du m dicament le m dicament BoutonM edic dispara t de la liste des m dicaments prendre n anmoins il est conserve tant qu il n a pas t communiqu au serveur comme quoi le m dicament a t pris Comme il est vident que plusieurs m dicaments vont tre affich s en m me temps nous avons d fini des ascenseurs automatiques lorsque le nombre de m dicaments ne tient plus sur une seule page Lors de la validation d un m dicament un message de confirmation appara t en m me temps que le m dicament dispara t de la liste Ce message a deux principales fonctions 1 Au d but l apparition du message de confirmation facilite la compr hension de pourquoi le m dicament dispara t et sert ainsi rassurer lors d un clic sur un m dicament 2 Dans un deuxi me temps ce message peut aussi servir si la personne se trompe de m dicament dans l id e que ses doigts soient assez gros pour qu elle clique sur le mauvais m dicament Le message lui signalerait le m dicament qu elle doit prendre
75. r cup rer tous les m dicaments jusqu maintenant ceci implique un op rateur de comparaison plus petit ou gal Or nous n avons pas r ussi a faire passer cet op rateur de dates dans la requ te Le r sultat est toujours nul Nous avons laiss la m thode intacte la seule diff rence que nous r cup rons tous les m dicaments puis sur chaque m dicament r cup r nous d cidons s il fait partie de l ensemble des m dicaments prendre ou non Ce bug nous oblige un traitement plus long de par le fait que la requ te de la base de donn es met plus de temps s ex cuter mais surtout le temps de traitement apr s coup Cette solution n tant pas d finitive nous l avons laiss e et mise de cot en attendant de trouver la solution de la requ te SQL ou de trouver une solution plus optimis e pour nous concentrer sur d autres parties de l application 8 7 3 Stockage des donn es Un m dicament est constitu de diff rentes informations celles ci ont t divis es en deux parties distinctes pour une question d optimisation Le m dicament et sa d finition de la m me mani re qu un m dicament est livr avec une notice d emballage commune tous les m dicaments d une m me bo te la d finition d un m dicament contient les informations relatives un ensemble de m dicaments et ceci sans que chaque m dicament doive transporter avec lui des donn es redondantes Ainsi un m dicament est stock en int
76. s il va donc envoyer une demande afin de compl ter les informations de ces derniers Le message envoy contient toujours la commande GET mais cette fois avec l option DEFINITION et en argument l id du m dicament Sur r ception du message le serveur va donc aller chercher dans la base de donn es a partir de l id du patient et du m dicament les informations n cessaires De m me que pour la r ponse pr c dente du serveur le message a la valeur SEND pour le param tre commande et la d finition en arguments Enfin une fois que la liste des m dicaments a t enti rement trait e le client va galement retirer de sa base de donn es les m dicaments qui ne sont plus dans la liste afin de ne plus les r afficher dans les m dicaments prendre Les avantages de cette s paration en deux tapes sont vidents dans la mesure o il n est plus n cessaire l application cliente de demander et de recevoir toutes les informations sur tous les m dicaments quand elle a d j pris les d finitions de ces derniers Dans le pire des cas c est dire lors de la premi re mise jour l application devra r cup rer toutes les informations mais pour la suite s il n y a pas de gros changements dans les prescriptions il lui suffira de mettre jour la liste des m dicaments uniquement 29 dos Santos Pedro Fuino Francesco Lala Alain an Another Manager for Pills Reminder M P Dans la mesure o nous avons un d bit tr s restrein
77. s informations de la base de donn es partir de la liste des m dicaments pris Pour cette op ration nous n avons pas tenu faire r pondre le serveur dans un premier temps Client Serveur 1 Le client envoie une demande de mise jour avec les param tres suivants ld Id de session Commande SEND Option UPDATE Arguments NULL Le serveur cr e un nouveau thread pour traiter le message re u Le serveur cr e un nouvel objet Request partir de la chaine de caract res re ue e L objet n a pas pu tre correctement cr un message d erreur est retourn au client pour que celui puisse fermer sa connexion Le serveur v rifie les diff rents param tres e Si un des param tres n est pas 32 dos Santos Pedro Fuino Francesco Lala Alain Gef Another Manager for Pills Reminder M conforme au protocole un message d erreur est retourn au client 5 Le serveur en utilisant l id de l utilisateur associ e l id de session en cours ainsi que la liste des m dicaments pris fournis en arguments du message va mettre jour les informations de la base de donn es Tableau 3 Diagramme de s quence de la mise jour des m dicaments pris Nous pouvons remarquer que cette op ration peut avoir lieu juste avant la mise jour des informations du client ou bien lorsque le patient prend une s rie de m dicaments 6 24 Fermeture de session Une fois toutes les requ tes effectu es et l application clie
78. s informations relatives au m dicament disposer d un m canisme pour signaler comme quoi on a effectivement pris le m dicament et tout ceci dans une forme tr s compacte Nous avons d cid de d finir un nouveau composant graphique qui serait lui m me compos d l ments graphiques de base Button CheckBox Nom m dicament Layout Figure 24 Composant BoutonM edic La figure ci dessus montre notre nouveau composant graphique il est constitu d un bouton qui a pour texte le nom du m dicament et il est accompagn d un checkbox Sur ces l ments nous avons d fini les comportements suivants e Le checkbox sert indiquer la prise du m dicament e Le bouton sert afficher les informations relatives au m dicament Les deux l ments sont regroup s dans un Layout ceci nous permet de mettre une couleur de fond une bordure et surtout mieux ajuster l espacement entre les m dicaments gr ce une marge commune 40 dos Santos Pedro Fuino Francesco Lala Alain Gef Another M anager for Pills Reminder M P Signalons ici que l ensemble des images utilis es dans la partie mobile proviennent d Internet et n ont t retenues que les images libres de droits ou avec licence libre et ou avec utilisation non restrictive 8 4 3 Implementation 8 4 3 1 Cr ation d une interface android ll existe diff rentes fa ons d impl menter une interface graphique sous Android e Nous p
79. s ordinateurs au sens puissance et rapidit il faut essayer de g rer un maximum de choses en dehors du t l phone et ainsi garder une application mobile qui est rapide et r active Cette contrainte nous oblige segmenter notre solution pour arriver une solution ou le mobile est certes au c ur mais sa principale fonction est de servir d interface entre le patient et le serveur de m dicaments Avant de d cider sur quelle plateforme nous voulions d velopper notre solution mobile il nous fallait tout d abord d terminer la liste des mat riels sur lesquels nous pouvions distribuer notre solution De nos jours une quantit incroyable de mat riels portables sont quip s de dispositifs r seaux nous avons ainsi d termin notre ensemble de discussion savoir 1 T l phones portables 2 Smartphones 3 PDA 4 Netbook 5 EbookReader En ce qui concerne la plateforme de d veloppement nous avons retreint notre ensemble de discussion a cing plateformes 1 Java2Me 2 dotNet 3 Symbian 4 PalmOS 5 Android En sachant que les Smartphones ont toutes les qualit s des agendas personnels il est facile de pr dire qu ils vont s rement remplacer les t l phones mobiles classiques ainsi que les PDA dans un futur proche En se basant sur ce constat nous pouvons donc liminer deux des 35 dos Santos Pedro Fuino Francesco Lala Alain aN Another Manager for Pills Reminder M P cing quipements portables susmentionn s
80. t les diff rentes images utilis es e styles o dossier contenant les styles de l application Afin de prot ger l acc s nos scripts nous avons plac s la racine de notre application un fichier htaccess emp chant l acc s direct aux diff rents fichiers 6 3 Conventions utilisees Afin de garder une certaine concision dans notre programmation nous avons choisis des conventions de nommage pour les fichiers mais aussi dans notre code C est ainsi que tous nos fichiers de classes commencent par le nom du fichier suivi de class puis de l extension Toutes les actions sont symbolis es par des verbes par exemple l action d ajouter un patient ajouterPatient 13 dos Santos Pedro Fuino Francesco Lala Alain Q Another M anager for Pills Reminder oM w P En ce qui concerne les noms de variables nous avons utilis la convention dromadaire maVariable et la mise en majuscule des constantes M ACONSTANTE 6 4 Fonctionnement de l application Notre application n cessite que le JavaScript soit actif sinon un message d erreur invite l utilisateur l active Une fois le JavaScript actif nous avons plusieurs cas e Patient e M decin e Super utilisateur e Utilisateur inconnu Nous allons voir les d roulements possibles pour chaque type d utilisateur 6 4 1 Proc dure de connexion Figure 8 Proc dure de connexion 14 dos Santos Pedro Fuino Francesco Lala Alain EN Another Manager for Pills Reminder M P L
81. t soumis au serveur est ensuite supprim de la base Lors de la mise jour on d termine si les d finitions existent et dans le cas contraire on demande au serveur de nous les transmettre De la m me mani re la date de la derni re mise jour n est pas stock e de mani re permanente Ceci aura pour cons quence que l utilisateur va se mettre jour chaque fois qu il ira d marrer l application c est dire chaque fois qu il va quitter l application via le menu ou s il red marre son Smartphone puis lance l application En supposant que l utilisateur aura un comportement normal le nombre de mises jour n est pas ou peu affect par ce choix Dans le cas o l utilisateur va syst matiquement quitter l application chaque utilisation une mise jour sera faite chaque d marrage ou par l interm diaire du service d arri re plan Il serait n anmoins envisageable dans une solution future de stocker cette valeur dans les pr f rences utilisateur Ainsi la valeur serait permanente et le nombre de mise jour serait diminu pour un utilisateur qui irait syst matiquement quitter l application La configuration est une autre donn e essentielle qu il faut stocker de mani re permanente Nous avons d cid de cr er une structure ConfigurationAM PM pour mod liser une configuration Elle est ensuite stock e dans une base de donn es diff rente des m dicaments savoir B Configuration Nous avons aussi f
82. t sur la connexion internet du mobile compar ce que nous sommes habitu s avoir quand nous d veloppons sur des ordinateurs cette solution l avantage galement de r duire le flux de donn es chang es au strict minimum ce qui vite tous probl mes li s une surcharge de la connexion Dans le tableau suivant nous pouvons voir la suite des op rations r alis es par les deux applications lors de cette proc dure de mise jour Den CCS 1 Le client envoie une demande de mise jour avec les param tres suivants ld Id de session Commande GET Option UPDATE Arguments NULL Le serveur cr e un nouveau thread pour traiter le message re u Le serveur cr e un nouvel objet Request partir de la chaine de caract res re ue e L objet n a pas pu tre correctement cr un message d erreur est retourn au client pour que celui puisse fermer sa connexion Le serveur v rifie les diff rents param tres e Si un des param tres n est pas conforme au protocole un message d erreur est retourn au client Le serveur en utilisant id de l utilisateur associ e l id de session en cours extrait de la base de donn es et g n re la liste contenant les informations r duites sur les m dicaments prendre e Laliste de m dicament est vide la chaine de caract re normale est alors remplac e par NULL Le serveur renvoie en r ponse le message avec les param tres suivants Id id de session associ
83. t tout simplement pas possible et ce principalement pour des raisons de s curit En effet une fois que le mobile est entre les mains du patient nous avons un contr le plus restreint sur les requ tes qu il peut effectuer la base de donn es et lui donner la possibilit d acc der directement aux informations qui s y trouvent pose de nombreux probl mes ne serait ce qu au niveau de la confidentialit vis a vis des autres patients II nous a donc fallu cr er une entit de contr le des acc s la base de donn es afin de pouvoir garantir le secret m dical c est dire que les informations d un patient ne soient pas divulgu es une tierce personne Le serveur que nous avons impl ment r pond alors ce besoin Il est noter qu au niveau de cette infrastructure de communication entre la base de donn es et l application cliente du patient nous avons un mod le que nous pouvons assimiler au mod le MVC Ainsi notre base de donn es joue le r le de mod le l application cliente celui de vue et au milieu nous avons le serveur qui prend le r le du contr leur en fournissant la vue les informations dont elle a besoin du mod le Si nous regardons le syst me dans l ensemble nous avons donc une repr sentation de notre infrastructure qui ressemble au sch ma suivant 8 dos Santos Pedro Fuino Francesco Lala Alain Another M anager for Pills Reminder M Site web Serveur mise jours Patient Tuteur
84. tard nous avons mis en place un serveur Dans cette partie nous allons donc pr senter l infrastructure compl te que nous avons tablie pour g rer ces communications ainsi que les implications qu elle a du c t serveur et du c t client 7 1 Protocole de communication Dans la mesure o il s agit de deux syst mes distants il nous a fallu mettre en place un protocole permettant la communication entre le serveur et l application cliente Des messages sont ainsi chang s entre les deux entit s 7 1 1 Messages Les messages sont chang s entre le serveur et l application cliente du patient Ces messages contiennent les informations suivantes e d de session Comme nous le verrons un peu plus tard chaque communication avec le serveur doit faire partie d une session e Commande Il s agit de l action demand e Pour le moment et sans que cette liste se veuille exhaustive les commandes possible sont OPEN pour ouvrir la session CLOSE pour fermer la session GET pour demander une information et SEND pour envoyer une information e Option Dans la mesure ou il est possible d avoir plusieurs op rations par commandes c est dans cette partie du message que nous pr cisons quelle op ration nous voulons effectuer e Arguments C est ici que nous trouvons les informations n cessaires la r alisation de la commande ou bien dans le cas d un SEND les informations demand es Ce qui nous donne un message qui ressemble a
85. ture plus complexe un n ophyte Pour ce faire nous avons utilis le site JSCompress 6 qui nous permet facilement de le faire 6 4 9 Choix de la pr sentation Tous les aspects visuels de l application peuvent tres modifi s au travers des fichiers de style Ceci permet une personnalisation de l application en fonction de la demande 6 5 Respect des normes Nous avons mis un point d honneur respecter les diff rentes recommandations formul es par le W3C le World Wide Web Consortium organisme de standardisation des technologies du World Wide Web Notre site est donc valide XHTM L 1 1 ceci nous permettant de fournir un 19 dos Santos Pedro Fuino Francesco Lala Alain aN Another M anager for Pills Reminder M P document tourn vers le futur s parant proprement les fonctionnalit s caract re obsol te de HTM L4 Un autre point essentiel a t de fournir une application cross browser Ceci a impliqu un travail plus important mais une application web destin e uniquement a un seul type de navigateur n tait pas dans notre optique Nous avons donc test avec succ s cette application sur les navigateurs suivants e Internet Explorer 7 et 8 e Op ra 9 et 10 e Mozilla Firefox 3 0 3 5 e Safari 4 e Google Chrome 3 6 6 Framework JQuery JQuery est un Framework simplifiant le parcours du document HTML la manipulation du DOM la gestion des v nements les animations et l Ajax Nous avons choisi ce Framework du f
86. u sch ma suivant Figure 19 Repr sentation sch matique d un message 26 dos Santos Pedro Fuino Francesco Lala Alain aN Another Manager for Pills Reminder M P Afin de faciliter la lecture et la s paration des diff rentes parties du message nous avons inclus des s parateurs repr sent sur le sch ma par le mot Sep Ainsi lors de la r ception d un message l application serveur ou client peut g n rer un objet message partir de cette cha ne de caract res Dans les parties suivantes nous allons voir les diff rentes s quences de message qui interviennent entre le serveur et le client ainsi que les op rations qui sont r alis es par chacune de ces applications 7 1 2 Session Comme expliqu avant la premi re chose que doit effectuer le client lorsqu il d sire se mettre jour est d obtenir du serveur une id de session Au del du fait qu il soit n cessaire d obtenir cette id pour respecter le protocole cette tape sert galement la s curit de l application puisque c est ici que nous allons identifier et authentifier le patient Nous avons ainsi une s paration complete entre cette partie et la partie o l utilisateur une fois identifi et authentifi effectue les demandes de mise jour la base de donn es Le client va donc dans un premier temps envoyer sa demande au serveur dans un message format selon le protocole Sur r ception de ce message le serveur va chercher identi
87. ue nous avons mis en place nous pouvons r ellement aider des personnes ayant de grosses prescriptions avec de nombreux m dicaments prendre des heures pr cises mieux vivre leur maladie en se pr occupant moins de la prise de leurs m dicaments Au del de cet aspect ce projet nous a galement permis de r aliser un travail d ing nieur dans le domaine m dical et nous a donc oblig nous conformer aux exigences du milieu afin de r pondre aux attentes 12 Annexes Diagramme de classe de la partie mobile e Diagramme de classes Partie M obile pdf Sch ma relationnel de la base de donn es e Schema Base De Donnees Relationnelle png 12 1 Manuels Manuel d utilisation de la partie mobile e Manuel d utilisation Partie M obile pdf M anuel d utilisation de la partie web e Manuel d utilisation Partie Web pdf 12 2 Feuilles de tests Feuille de tests partie mobile e Feuille de Tests Partie Mobile pdf Feuille de tests partie web e Feuille de Tests Partie Web pdf 13 R f rences 1 DIMARZIO J r me Android A Programmer s Guide Osborne M cGraw Hill 2008 66 dos Santos Pedro Fuino Francesco Lala Alain Gef Another Manager for Pills Reminder M P 2 GARIN Floren Android D velopper des applications mobiles pour Googles phones Dunod 2009 3 GRAM LICH Nicolas Andbook Android Programming pdf source http andbook anddev org 4 Icon Finder En Ligne e http www icontinder net 5 Medi M
88. ure g n rale de l application Nous avons segment notre application en plusieurs tats ou vues qui sont les suivantes e Configuration e Mise jour e Liste des m dicaments e Apropos 8 5 1 D claration centralis e des cha nes de caract res Android mettant disposition un m canisme de cha nes de caract res stock es dans un fichier xml nous l avons exploit Ceci permet de d clarer tous les textes potentiellement affichables dans un fichier Cette d claration centralis e apporte deux grands avantages e En cas de faute d orthographe coquille sur l interface graphique il est ais de retrouver le texte fautif pour le corriger e En cas de traduction de l application il n est pas n cessaire de parcourir l int gralit du code source pour remplacer les cha nes il suffit de remplacer le fichier xml et l application change de nom automatiquement 8 5 2 Menu Le menu est l l ment qui permet d acc der toutes les vues de l application ainsi que de quitter Le menu n est cependant accessible que sur la vue principale savoir la liste des m dicaments Il est d clar dans le onCreate de l activit principale savoir le M ain Toutes les actions du menu sont d finies dans le contr leur La taille des boutons du menu est automatiquement d finie par Android suivant le nombre d l ments que poss de le menu 8 5 3 Moment de la journ e Le moment de la journ e est mis jour chaque fois que
89. utres moteurs de base de donn es comme Oracle par exemple Partie Mobile Meilleure gestion du cycle de vie de l application Mettre sur les informations des m dicaments en retard un bouton permettant de joindre le m decin traitant ou une hotline Ajouter un champ dans la configuration pour que le m decin puisse y mettre le num ro de t l phone Stocker la date de derni re mise jour dans les pr f rences utilisateur pour que l application se mette jour moins souvent Lancer le service d arri re plan au d marrage d Android sans tre oblig de d marrer manuellement l application pour activer le service 65 dos Santos Pedro Fuino Francesco Lala Alain n Another M anager for Pills Reminder oM P 11 Conclusion L application que nous avons d velopp e r pond un besoin grandissant d ordonner la liste des m dicaments qui se fait de plus en plus longue dans les prescriptions De plus il permet au m decin d avoir un suivi du patient distance sans avoir arranger un rendez vous La prise de contact avec des personnes du milieu m dical ainsi que l avis d utilisateurs potentiels nous ont permis de fa onner une interface graphique autant pour le mobile que pour l interface web au plus proche de ce que les futurs utilisateurs attendent d un tel produit Il ne s agit surement pas de la solution parfaite et de nombreuses am liorations sont encore possibles Cependant nous pensons qu avec le syst me q

Download Pdf Manuals

image

Related Search

Related Contents

21世紀のモノづくり  HP SCANJET N6010 User's Manual  QStor Manual - Video Door Entry Systems  Samsung HMX-H104BP User Manual  - HS  Modul PHU 3400(X)-110 www.knick.de/protos  ふくしま「あったか絆住宅」をつくる会  Revue Technica, année 1946, numéro 73  HeartStart Event Review Pro User Guide  00 - Freightliner Trucks  

Copyright © All rights reserved.
Failed to retrieve file