Développement D'une Application Dédiée À L'analyse Des Données Médicales
Développement D'une Application Dédiée À L'analyse Des Données Médicales
Développement D'une Application Dédiée À L'analyse Des Données Médicales
RAPPORT DE
Stage d’Ingénieur
Auteur :
Ouhibi Mouhamed
Entreprise : Yobitrust
Encadrant Entreprise : Mr. Agrebi Saïd
Adresse : Technopark El Gazala - B11 ,Ariana, Tunisie.
Tél : (+216) 53 994 295
J’ai l’honneur d’exprimer à travers ces courtes lignes mes sincères reconnaissances à mon
encadrant Mr. Agrebi Saïd qui m’a accordé sa confiance et attribué des missions
valorisantes durant ce stage et qui m’a formé et accompagné tout au long de cette
expérience professionnelle avec beaucoup de patience et de pédagogie.
De ma part, j'espère que ma conduite et mon apprentissage ont laissé une bonne
impression de l’école supérieure des communications de Tunis et ont affirmé son image
de marque.
Table des matières
Introduction Générale 1
3 Conception ............................................................................................................... 22
3.1 Conception globale............................................................................................... 22
3.2 Architecture de l’application ................................................................................ 25
3.3 Diagramme de classe ............................................................................................ 26
3.4 Structure de données ........................................................................................... 27
3.4.1 Base de données orientée documents ............................................................. 27
3.4.2 Représentation des données dans une base orientée documents ................. 28
3.5 Conclusion ........................................................................................................... 29
4 Réalisation ................................................................................................................ 30
4.1 Environnement de travail .................................................................................... 30
4.1.1 Environnement matériel .................................................................................. 30
4.1.2 Environnement logiciel .................................................................................... 31
4.2 Choix techniques.................................................................................................. 32
4.2.1 Framework Spring Boot .................................................................................. 32
4.2.2 Framework React Native ................................................................................ 32
4.2.3 SGBD MongoDB ............................................................................................. 32
4.3 Aperçu sur le travail réalisé : Application mobile ................................................ 33
4.3.1 Chronogramme................................................................................................. 36
4.4 Conclusion ........................................................................................................... 36
Conclusion et perspectives 37
Netographie 39
Table des figures
AI Artificial Intelligence
NLP Natural Language Processing
MQTT Message Queuing Telemetry Transport
HTTP Hypertext Transfer Protocol
JSON JavaScript Object Notation
MVC Model View Controller
IDE Integrated Development Environment
API Application Programming Interface
Introduction générale
« Les données, c’est la nouvelle huile. » (Cité par l’entrepreneur innovant Will
Murphy). Avec les évolutions importantes qu’a connue la technologie ces dernières
années, les données ne cessent d’acquérir une importance cruciale au fil du temps. Elles
sont devenues le nouveau carburant pour donner une valeur aux grandes entreprises.
Par conséquent, la taille des données demeure en augmentation exponentielle de sorte
que d’innombrables papiers et méthodes ont été développés afin d’analyser
d’importantes sources de données aussi rapidement et efficacement que possible. Cette
taille gigantesque de données a fait naître de nouvelles voies de développement qui
influencent plusieurs secteurs notamment celui de l’e-santé. Ceci est dû à l’exploitation
de la TIC qui a énormément influencé le secteur de santé. Cette tendance s’affirme sous
un seul et unique objectif : combattre la maladie et la mort.
L’innovation dans cette industrie a permis de procurer l’Homme des moyens pour
devenir acteur de sa santé, révéler ou prédire l’apparition de certaines maladies plus
précocement, fournir des diagnostiques plus précises, établir un lien plus fort entre les
patients et les médecins et optimiser la création des nouveaux traitements. Par
conséquent, on trouve de nos jours plusieurs médecins qui encouragent l’utilisation de
ces applications.
Parmi les branches influencées par l’e-santé est le suivi d’un mode de vie sain connu
sous le nom « Healthy life style ». De nos jours, l’Homme moderne a atteint une
certaine maturité au point qu’il est devenu conscient des différents dangers qui peuvent
menacer sa santé tel que l’obésité.
D’après l’OMS 2,8 millions de personnes au moins décédant chaque année du fait de leur
surpoids ou de leur obésité[URL1]. En effet, cette dernière peut être à l’origine de
1
plusieurs maladies comme le diabète et le cholestérol et augmente énormément le risque
de mortalité.
Ainsi grâce à l’impact des réseaux sociaux comme Instagram la notion healthy life style
a connu une énorme célébrité et devenue en vogue dans le monde entier.
Face à la gravité des problèmes dues aux tel problème (exemple : obésité), un suivi
régulier devient un besoin crucial pour la survie des personnes atteintes et même pour
ceux qui veulent jouir d’une vie plus saine loin des maladies. L’application de
l’intelligence artificielle dans le domaine de la santé est devenue la tendance du siècle
par excellence. Comme les autres domaines, l’industrie médicale est bouleversée par les
technologies de l’IA qui a nettement élargi son champ d’applications. Avec
l’apprentissage profond qui s’accentue en permettant la collecte et l’analyse des données
massives le diagnostic médical, les techniques de prévention, de suivi des patients, ainsi
que les traitements ont connu un véritable essor.
Dans cette optique, mon travail vise à offrir l’utilisateur un moyen de suivre sa santé
pour mener à un mode de vie plus sain, grâce à une application conviviale.
2
Chapitre 1
Contexte du projet
• Présentation et emplacement
3
• Priorités Stratégiques
1.1.2 Yobitrust
• Présentation
• Forme juridique
4
des statistiques, de l’apprentissage automatique, de l’informatique répartie, de l’industrie
4.0 et de la ville intelligente, ainsi que dans le domaine de la biologie, des neurosciences
et des sciences cognitives.
• L’équipe Yobitrust
1- Said Agrebi responsable de la science des données et expert statisticien avec près de
20 ans d’expérience dans la direction de projets de business intelligence, de big data
et de science des données avec des multinationales (Allianz, Engie, L’Oréal, SG,
Thales, Eads, GIE CB, Scor, etc.)
2- Sans doute, il n’ya pas d’entreprise prospère sans son équipe d’experts dans différents
domaines que je peux citer : la santé et les maladies, l’images et le textes, la
génétique etc.
5
à développer un système dual « Application Mobile - Appareil connecté » pour
l'accusation, le suivi et l'analyse de des données santé a la base d’un système de gestion
et d’analyse distribuée en BackEnd
Créer un système autonome qui réponde aux besoins. Va aider les gens (normaux ou
patients) à suivre en temps réel leur état de santé, être averti en cas d'anomalie et être
alerté en cas de menace potentielle.
Mon travail consistait à développer la partie FrontEnd Mobile en React native ainsi que
la partie gestion des donnes BackEnd , développer l’API REST en Spring Boot . Les
outils technologiques permettant de répondre à ce sujet sont nombreux et le défi
consistait à développer une application conviviale qui répond aux besoins de l’utilisateur
en temps réel.
1.3 Conclusion
6
Dans le chapitre suivant, je vais aller un peu plus loin dans les détails en expliquant des
notions théoriques fondamentales relatives à la compréhension du projet.
7
Chapitre 2
Analyse et spécification des besoins
Le but de l’analyse préalable du projet est de définir ce que le système doit faire
« le quoi » sans se préoccuper de la façon dont il doit le faire « le comment ». En effet,
la réussite de toute étude dépend de la qualité de son départ. De ce fait, l’étape de
spécification constitue la base de départ de ce travail.
Les besoins fonctionnels se réfèrent aux fonctions de base que l'application a une
fois développées doit exposer.
8
L’application doit fournir un ensemble spécifique des services qui sont :
• Création des comptes
• Authentification
• Gestion de profile ( nom , âge , groupe sanguin …)
• Lancer des tests médicaux : L'état de santé en fonction de Signes vitaux
• Consulter l’historiques des mesures de signes vitaux
• Connecter l’appareil* pour faire des mesures en temps réel
• Commencer une discussion avec le Chatbot ( service qui aide l’utilisateur à
interpréter les résultats a la base d’une conversation normale )
Nous expliquerons dans cette section les acteurs qui interagissent avec le système
et les divers cas d'utilisation avec leurs scénarios associés. Par la suite, nous proposons
quelques diagrammes de séquence pour mieux comprendre l’application conçue.
9
grande fluidité et une facilité en matière de représentation graphique des différents
diagrammes.
Un acteur est un élément externe qui interagit avec le système, il prend des
décisions et des initiatives. On considère dans cette application :
• Client : la personne qui utilise les services disponibles sur l'application mobile
• L’appareil de mesure : un appareil tiers, responsable de l'acquisition des
données (température, glycémie ...) et de l'envoyer au nom d'un utilisateur
• Base de données : entité de stockage des donnes
• Service de chatbot : un service externe ayant accès au profil et à l'historique
d'un patient afin de déterminer la réponse appropriée
10
Figure 2.1 - Diagramme des cas d’utilisation
11
• Diagramme de séquence du cas d’utilisation : SignUp
12
• Diagramme de séquence du cas d’utilisation : LogIn
13
• Diagramme de séquence du cas d’utilisation : consult measurement
record
14
• Diagramme de séquence du cas d’utilisation : Edit profile
15
• Diagramme de séquence du cas d’utilisation : Quick test
16
« Generate health status according to data »* :
L’une des fonctions de notre application est d’interpréter les résultats des mesures
des signaux vitaux. Bien que cette interprétation soit clairement un problème de
classification AI, nous n’avons pas le temps de créer un tel modèle. Mais au lieu
de ça, nous avons pensé d’implémenter une fonction mathématique qui retourne
si la valeur mesurée est dans des intervalles normaux, la fonction est :
17
• Diagramme de séquence du cas d’utilisation : continuous data
storing _connecting_device
Figure 2.7 - Diagramme de séquence du cas d’utilisation : continuous data storing _connecting_device
18
• Diagramme de séquence du cas d’utilisation : continuous data
storing _device_send_data
Figure 2.8 - Diagramme de séquence du cas d’utilisation : continuous data storing _device_send_data
19
• Diagramme de séquence du cas d’utilisation :
Chatbot_without_data_access
20
• Diagramme de séquence du cas d’utilisation :
Chatbot_with_data_access
2.3 Conclusion
Dans cette partie, nous avons décrit les fonctionnalités de l’application tout en
précisant les différents cas d’utilisations et les diagrammes de séquence. Nous essayerons
dans le chapitre qui suit de concevoir clairement l’architecture de ce système.
21
Chapitre 3
Conception
Dans cette phase, nous allons présenter une vue d'ensemble complète de notre
projet tout en détaillant les autres parties dont mes collègues ont les responsables.
22
La solution proposée par Yobitrust est une solution de End-To-End qui intègre
plusieurs technologies réparties comme suit :
Notre appareil IoT est un gadget portable intelligent, qui détecte les signes vitaux
de l'utilisateur tels que la température, glycémie, rythme cardiaque et d’autres (en totale
6 variables) et envoie les données de manière configurable via le protocole MQTT ou
bien communication à travers les APIs http. L’utilisateur a le choix soit d'autoriser un
transfert continu des données, soit d'imposer une approbation préalable à chaque
utilisation ; l'appareil fonctionne indépendamment de l'appareil, ce qui exige un flux de
données indépendant allant de l'appareil directement au serveur. bien entendu,
l'utilisateur doit toujours avoir le contrôle sur l'appareil, qui est assuré par
l'intermédiaire du serveur. Cette indépendance entre l'appareil et l'application mobile
donne à l'utilisateur la flexibilité et l'efficacité dans certains cas particuliers, tels que
l'utilisation de l'appareil chez un autre utilisateur (un ancien, un patient ...) ou même
l'utiliser pour faire des activités sportives pour cela l’appareil doit répondre à certains
besoins et respecter quelques contraintes, comme :
- Autonome en termes de connectivité : pour cela, l'appareil est équipé de
modules wifi, 3G / 4G / LTE. Et pour les grands espaces dépourvus de Wi-Fi et d'un
réseau cellulaire puissant, nous envisageons actuellement d'utiliser le réseau LoRa.
L’appareil doit déterminer la meilleure alternative pour envoyer des données à partir des
technologies ci-dessus, en respectant certaines contraintes telles que le coût, la vitesse,
l'efficacité et le coût énergétique de la communication
- Efficace en termes de consommation d'énergie : l'appareil doit répondre
aux spécifications ; détecter les signes vitaux et transmettre les données à la demande,
avec une autonomie de batterie relativement longue. L’utilisation d'un capteur précis
peut affecter la contrainte d'autonomie de la batterie. Pour la contrepartie, la qualité
des données est également essentielle pour que le système fonctionne normalement
- Flexible en termes d'utilisation : le périphérique doit prendre en charge
plusieurs utilisateurs, ce qui signifie que le même périphérique doit être partageable pour
plusieurs utilisateurs. Comme nous spécifions précédemment que le périphérique et
l'application mobile sont indépendants, la question qui se pose est de savoir comment
lier chaque opération de mesure à un utilisateur spécifique plutôt que de lier chaque
périphérique à un utilisateur. pour cela, nous avions prévu d’identifier chaque appareil
avec un ID unique, que l’utilisateur (à travers l’application mobile) devait indiquer,
23
lorsqu'un utilisateur est abonné à l’appareil , aucun autre utilisateur n’est autorisé à s’y
abonner (un abonnement unique via l'identifiant de l'appareil)
Un chatbot est un outil logiciel qui utilise le traitement du langage naturel (NLP)
pour l’interaction homme-machine (IHM) et l’apprentissage automatique (ML). "La
complexité d'un chatbot est proportionnelle à l'étendue du domaine". Un domaine
ouvert nécessite une base de connaissances plus étendue, tandis qu'un domaine fermé
possède une base de connaissances plus spécifique qui a été développée pour atteindre un
objectif spécifique. Nous avons réservé une interface de communication dans notre
application afin de faciliter l'interprétation des données de chaque utilisateur. le principe
est d'utiliser un chatbot qui interprète la question et y répondre en fonction de l'état
physique de l'utilisateur . De manière très classique, le fonctionnement d’un Chatbot est
le suivant :
24
• Sécurisation du système :
Nous pouvons protéger nos données par un mot de passe et utiliser des mesures
de sécurité plus avancées, telles que le cryptage des communications, le contrôle d'accès
basé sur les rôles, le filtrage IP et l'audit.
MVC est un patron de conception (ou design pattern en anglais) désormais très répandu
pour réaliser des sites web. Ce design pattern est une solution reconnue permettant de
séparer l’affichage des informations (la vue), les actions de l’utilisateur (le contrôleur) et
l’accès aux données (le modèle).[URL4]
25
Figure 3.3 - architecture mvc
Les diagrammes de classes sont l'un des types de diagrammes UML les plus
utiles, car ils décrivent clairement la structure d’un système particulier en modélisant ses
classes, ses attributs, ses opérations et les relations entre ses objets.
26
• Users : cette classe contient tous les détails de l'utilisateur. Chaque
utilisateur est identifié par son id, son nom, email et le hash de mot de
passe. Un utilisateur peut ajouter des data, commences une
conversation avec chabot, connecter un appareil …
• Devices : cette classe contient l’ID d’appareil ainsi l’ID utilisateur que
l’utilise (on peut se trouve dans des cas ou l’appareil et partageable entre
plusieurs utilisateurs ou que aucun utilisateur l’utilise)
• Data : cette classe représente les données des mesures stocker via
l’appareil ou bien manuellement par l’utilisateur, la partie « process »
et le résultat d’analyse générée par le system
• Conversations : cette classe contient tout les conversation (question –
réponse)
L’approche que nous avons adaptée pour notre projet consiste à utiliser une base
de données NoSQL orientée document pour des raisons liées à la flexibilité et à
l'évolutivité dont nous avons besoin pour des traitement à long terme (migration Big
Data, application AI …)
27
3.4.2 Représentation des données dans une base orientée
documents
D’une manière générale, les documents structurés sont des graphes dont chaque
partie est auto-décrite
28
3.5 Conclusion
29
Chapitre 4
Réalisation
Les choix des environnements logiciel et matériel ainsi que les technologies
constituent une étape primordiale dans la mise en œuvre de tout projet. De ce fait, ce
chapitre sera consacré à la présentation des déploiements matériels, langages, outils de
programmation ainsi qu’aux technologies adoptés qui me permettent d’aboutir à la
réalisation de ce travail.
Dans les parties qui suivent je vais détailler les environnements matériels et
logiciels qui m’ont permis d’accomplir ce travail.
30
4.1.2 Environnement logiciel
Dans cette partie, nous listons les différents logiciels que nous avons utilisés tout
au long du développement de notre application :
• MongoDB Compass
• Postman
• IntelliJ IDEA
31
4.2 Choix techniques
MongoDB est une base de données distribuée, universelle et basée sur des
documents, qui a été conçue pour les développeurs d'applications modernes et pour l'ère
du Cloud , répartissable sur un nombre quelconque d'ordinateurs et ne nécessitant pas
de schéma prédéfini des données.[URL14]
32
4.3 Aperçu sur le travail réalisé : Application mobile
Ces interfaces ont été capturées lors de l'exécution de l'application dans les
conditions suivantes
33
Figure 4.9 - Interface d’authentification avec error Figure 4.10 - Interface de profile
34
Figure 4.13 - Interface de Résultat de test Figure 4.14 – interface de health record
35
4.3.1 Chronogramme
Ce travail a été réalisé durant une période de 2 mois.En effet les deux premiéres
semaines étaient dédiées à la documentation et la familiarisation avec les outils de
travail. Dans la semaine qui suit je me suis concentrée sur la conception et la
spécification des besoins du systéme. Puis, la quatiéme et la cinquiéme semaine étaient
celles de l’implémentaion des interfaces du font end. Durant les deux semaines suivantes
j’ai développé le service BackEnd, En fin pendent la dernière semaine j’ai travaillé sur la
mise en oeuvre de system dans ça intégrité
4.4 Conclusion
36
Conclusion et perspectives
J'ai utilisé le Framework "React native" pour concevoir l'application mobile et "Spring
boot" pour les services web. Cette application permet aux utilisateurs de suivre et
d'interpréter leur état de santé.
A travers ce document, nous avons détaillé, en quatre chapitres, les différentes étapes de
la réalisation de ce travail. Tout d'abord, nous avons présenté l'organisme d’accueil et le
cadre général de notre travail. Dans le Deuxième chapitre, nous avons spécifié les
besoins que nous a permis de préciser les différentes fonctionnalités offertes par le
système. Ensuite, nous avons présenté la conception en mettant en évidence
l'architecture du système. Enfin, nous avons décrit les outils utilisés et notre réalisation.
Pour conclure, après deux mois, mon expérience s’enrichit et mes connaissances
approfondissent. En outre, ce projet j’ai donné l’occasion de me mettre dans les
conditions de travail en équipe et sous la supervision d'un encadrant qui m’a
essentiellement préparé pour démarrer la vie professionnelle en renforçant ma
compétence et en améliorant ma capacité de travail.
Finalement, en guise de perspectives pour ce projet, nous prévoyons intégrer des models
Machine learning plus sophistiqués afin de permettre de prédire l’état de la santé plus
précisément et même de prédire les cas des maladies et des dangers potentiels , aussi
d’implémenter des services de gestion de régime alimentaire supplémentaires
37
Résumé — Ce rapport décrit les étapes de conception et de développement d’une
système dédiée à la gestion et l’analyse des données médicales d’un utilisateur ,travaillé
avec un groupe d’ingénieurs dans le cadre d’un stage d’été de deux mois.
Mots clés : Gestion de données, analyse de données, l’état de santé, les signaux vitaux
38
Netographie
[URL1] https://www.who.int/features/factfiles/obesity/fr/
[URL2] https://yobitrust.com/
[URL3] https://blog.octo.com/compte-rendu-petit-dejeuner-psychanalyse-du-
chatbot/
[URL4] https://www.javatpoint.com/spring-mvc-tutorial
[URL5] https://aws.amazon.com/fr/nosql/document/
[URL6] https://code.visualstudio.com/
[URL7] https://www.mongodb.com/products/compass
[URL8] https://www.getpostman.com/
[URL9] https://www.jetbrains.com/idea/
[URL10] https://spring.io/projects/spring-boot
[URL11] https://openclassrooms.com/fr/courses/4668056-construisez-des-
microservices/5122425-decouvrez-le-framework-spring-boot
[URL12] https://facebook.github.io/react-native/
[URL13] https://medium.com/@Nextoo/react-native-a6ea0138f1b7
[URL14] https://www.mongodb.com/mongodb-scale
39