Année académique
2020/2021
Table des matières
1
CONCLUSION ..................................................................................................................................... 37
CHAPITRE IV. CONCEPTION ................................................................................................................... 38
INTRODUCTION ................................................................................................................................. 39
I. Conception préliminaire ............................................................................................................ 39
Nom du logiciel .................................................................................................................................. 39
1. Présentation de la technologie utilisée pour le front-end ........................................................ 39
2. Logo ....................................................................................................................................... 39
3. Gabarit de mise en page........................................................................................................ 40
II. CONCEPTION DETAILLEE ........................................................................................................... 43
1. Diagramme de classes du cote serveur ................................................................................. 43
III. ARCHITECTURES DES PLATEFORMES UTILISEES .................................................................... 45
1. Architecture cote serveur...................................................................................................... 45
2. Architecture cote client ......................................................................................................... 46
CONCLUSION ..................................................................................................................................... 46
CHAPITRE V : REALISATION ET TEST ...................................................................................................... 47
INTRODUCTION ..................................................................................................................................... 48
I. DESCRIPTION DE L’ENVIRONNEMENT ........................................................................................... 48
Conception ................................................................................................................................ 48
Environnements de développement de back-end .................................................................... 48
Environnement de développement Front-end ......................................................................... 49
Environnement de dessin et maquettage ................................................................................. 49
Gestion de projet ....................................................................................................................... 49
II. TESTS ......................................................................................................................................... 49
Affichage des patients à travers les services de l’API .................................................................... 49
Ajout dans la base de données grâce aux services de l’API .......................................................... 50
Interface de connexion pour le personnel médical....................................................................... 50
III. Fiche de présence et présentation des différents travaux
2
3
CHAPITRE I: CADRE
GENERAL ET CADRE
SPECIFIQUE DU PROJET
4
INTRODUCTION GENERALE ET CADRE DU PROJET
L’organisation hospitalière est caractérisée par une activité complexe. Elle est
aujourd’hui fortement interpellée par le développement informatisé du processus
de soins au patient mis à la disposition des médecins, des personnels soignants et
des services administratifs. Ces dernières années, les réformes hospitalières en
termes de gouvernance ont incité à la modernisation des systèmes d’information
dans le prolongement de l’e-santé. Grâce aux progrès de la médecine, le partage
des données médicales a été déployé dans la prise en charge des patients
permettant de contrôler les dépenses et d’évoluer vers une qualité de la santé
publique.
Aujourd’hui, afin d’accéder aux données médicales du patient et d’améliorer
la qualité des soins, le système d’information hospitalier encourage la
circulation du dossier patient entre tous les professionnels médicaux dans la
prise en charge du patient consultant ou hospitalisé. Si de nombreux chercheurs
et théoriciens étudient les phénomènes liés au système d’information hospitalier,
peu s’interrogent sur le dossier patient informatisé et son impact sur la qualité de
production de soins.
La qualité de production de soins nous amène à mettre en place une
Application ou une plateforme de Gestion du dossier patient informatisé
dans les hôpitaux publics camerounais et dont l’administration centrale sera
logée au Ministère de la santé publique.
A partir d’une étude exploratoire. Plus largement, elle appréhende les
interrogations à l’égard du système d’information hospitalier qui rythme la
production de soins, de la fin du séjour hospitalier ou du classement des
documents archivés. Deux approches sont envisagées pour atteindre notre
objectif. Les recherches sur le contenu s’attachent à se demander « de quoi il est
composé ». Les recherches sur le processus mettent en évidence le
comportement de « l’objet dans le temps », afin de saisir son évolution
(Grenier & Josserand, 2007). La mise en place du dossier patient informatisé
aura un impact sur l’organisation hospitalière qui ne produit pas les mêmes
effets dans tous les services médicaux. Cette « équivocité de la technologie »
(Weick, 1990) induit des différences dans l’accompagnement du patient selon
les médecins, les disciplines médicales. L’objectif de notre projet vise à mettre
œuvre un système de gestion du dossier patient informatisé et son rôle sera
d’amélioration de la qualité de soins ; de favoriser une prise en charge rapide
5
des patients dans les hôpitaux ; de réduire la durée des patients dans les hôpitaux
et même éviter la saturation des hôpitaux et la réduction des dépenses des
patients. A partir du comité de pilotage responsable de l’informatisation du
dossier patient dans quelques hôpitaux et services de santé du Cameroun, nous
présenterons les travaux effectues et La démarche adoptée dans le cadre
d’analyse et conception retenu et l’application obtenue à la fin du projet.
6
En outre, il est aussi nécessaire de préciser que, lors des troubles de connexion
pendant la modification du dossier patient ou alors lors de sa création, le
système devra réaliser l’opération et la synchronisera directement lorsque l’on
sera dans des conditions de connexion stables.
Tout développement de logiciel nécessite de reposer sur une méthode. Il existe différentes
méthodes de développement mais aussi divers types de cycles de développement entrant dans
la réalisation d'un logiciel. Ces cycles prendront en compte toutes les étapes de la conception
d’un logiciel.
L’objectif du chef de projet est de pouvoir mener son projet à terme en respectant les délais
et le budget alloué. Pour atteindre cet objectif, il doit prendre en compte les 3C (voir Figure 4
ci-dessous) qui sont les trois contraintes que constitue le projet.
Une méthode classique est une méthode de développement figée. Le client expose sa
problématique au début et le développeur s’en charge entièrement de lui livrer à la fin de la
période programmée au projet la solution complète. Aucun retour vers client ne se fait tout au
long de la période du développement de la solution.
Les cycles classiques de développement d'applications sont : les modèles en cascade, les
modèles en V, le prototypage et les modèles en spirale.
Dans un cycle « en cascade » (comme indiqué dans la Figure 5 ci-dessus) les risques sont
détectés tardivement puisqu’il faut attendre la fin du développement pour effectuer la phase
de test. Plus le projet avance, plus l’impact des risques augmente : il sera toujours plus
difficile et coûteux de revenir en arrière lorsqu’on découvre une anomalie tardivement.
8
1. Les méthodes agiles
Les méthodes de développement dites « méthodes agiles » (en anglais Agile Modeling, noté
AG) visent à réduire le cycle de vie du logiciel en développant une version minimale, puis en
intégrant les fonctionnalités par un processus itératif basé sur une écoute client et des tests
tout au long du cycle de développement.
Les méthodes agiles prônent quatre valeurs fondamentales (entre parenthèse, les citations du
manifeste) :
L'équipe (« Personnes et interaction plutôt que processus et outils »).
L'application (« Logiciel fonctionnel plutôt que documentation complète »)
La collaboration (« Collaboration avec le client plutôt que négociation de contrat »)
L'acceptation du changement (« Réagir au changement plutôt que suivre un plan »).
Parmi les méthodes agiles, nous distinguons 2TUP, RUP4 et XP5.
a. La méthode 2TUP
9
Avantages : cette méthode permet essentiellement la séparation entre les besoins
fonctionnels et techniques (voir Figure 3 ci-dessus).
b. La méthode RUP
Définition : se caractérise par une approche globale nommée « Vue 4+1 ». Les 5
composants de cette vue sont : la vue des Cas d'utilisation, la vue Logique, la vue
d'Implémentation, la vue du Processus, la vue du Déploiement (voir Figure
7cidessous).
c. La méthode XP
Définition : est très axée sur la partie construction de l'application. Une de ses
originalités réside dans l’approche de planification qui se matérialise sous la forme
d’un jeu intitulé « Planning Game » et qui implique simultanément les utilisateurs et
les développeurs. La Figure 5 ci-dessous illustre le cycle de vie de la méthode XP.
10
Avantages : On notera des techniques particulières liées à la production du code
comme la programmation en binôme, l'appropriation collective du code, la Ré
factorisation et l’Intégration continue.
11
Processus distinct, rigoureux, de Gestion des risques intégrée dans le
Gestion des risques gestion des risques. processus global, avec
responsabilisation
de chacun dans l’identification et la
résolution des risques.
Pilotage par les risques.
Les méthodes agiles seront plus utilisées pour les gros projets car elles offrent une meilleure
adaptabilité, visibilité et gestion des risques. Elles pourraient tout aussi bien être utilisées
pour les projets où il n’y pas de documentations détaillées, le client peut alors voir
l’évolution du projet et l’adapter selon ses besoins.
En revanche, les méthodes classiques seront plus utilisées si nous avons une idée très
précise du projet avec un cahier des charges et planning très détaillé où nous avons anticipé
tous les risques possibles.
Le chef de projet se retrouve souvent seul face à lui-même lors de la prise de décision, de
gérer les retours client, devant l’incertitude afin de satisfaire le client tout en respectant les
3C. On pourrait alors l’assimiler à un art martial car il doit avoir une grande maitrise de soi et
de l’environnement de chaque projet auquel il est amené à gérer.
Devant le nombre de méthodes disponibles, le choix parmi elles devient difficile, beaucoup
de questions peuvent se poser à un chef de projet lors d’un démarrage de projet :
Comment vais-je organiser les équipes de développement ?
Quelles tâches attribuer à qui ?
Quel temps faudrait-il pour livrer le produit ?
Comment faire participer le client au développement afin de capter les besoins de
celui-ci ?
Comment éviter des dérives et de mauvaises estimations qui vont allonger les coûts et
le temps de développement ?
Comment vais-je procéder pour que le produit soit évolutif et facilement
maintenable ?
Nous pouvons citer à ce propos les méthodes de développement objet suivantes : 2TUP,
RUP, XP, AUP6 et Open UP.
C’est ainsi que notre choix s’est orientée vers la méthode agile en particulier la méthode
2TUP, du fait de son approche nouvelle et originale est essentiellement de la séparation entre
les besoins techniques et fonctionnels.
12
Notre projet est basé sur un processus de développement bien défini qui va de la
détermination des besoins fonctionnels attendus du système jusqu’à la conception et le
codage final. Ce processus se base lui-même sur le Processus Unifié (Unified Process) qui est
devenu un standard général réunissant les meilleures pratiques de développement.
Cette méthode ne se base aucunement sur un processus linéaire mais bien, sur un
développement itératif et incrémental.
Nous allons d’abord définir les différents concepts et étapes constituant la méthode 2TUP
1. Définition de 2TUP
2TUP (Two Track Unified Process) implémente le processus unifié, méthode de
développement qui considère le cycle de vie d'un logiciel sous-forme incrémentale et
itérative afin de s'adapter aux changements continuels dans l'organisation du système
d'information à représenter. En ce sens, il renforce le contrôle sur les capacités d’évolution et
de correction de tels systèmes.
2. Description de la méthode 2TUP
La méthode 2TUP sépare initialement les aspects techniques des aspects fonctionnels avant
de les regrouper dans la phase de réalisation. La figure ci-dessous (Figure 9) détaille les
différentes phases du développement.
13
La capture des besoins techniques, qui recense toutes les contraintes sur les choix
de dimensionnant et la conception du système. Il s’agit de la spécification des outils
(logiciels), de la structure des matériels à exploiter ainsi que la prise en compte des
contraintes d’intégration avec l’existant (pré requis d’architecture technique).
La conception générique, qui définit ensuite les composants nécessaires à la
construction de l’architecture technique. Cette conception est complètement
indépendante des aspects fonctionnels spécifiés dans la branche gauche. Elle a pour
objectif de d’uniformiser et de réutiliser les mêmes mécanismes pour tout un système.
L’architecture technique construit le squelette du système, son importance est telle
qu’il est conseillé de réaliser un prototype de manière à valider les principes par le
codage et les tests.
La branche du milieu se compose de quatre phases :
La conception préliminaire, qui consiste à appliquer les concepts liés aux
fonctionnalités du système et à intégrer les composants techniques au système. Il
s’agit d’intégrer les fonctions métiers et applicatives dans l’architecture technique
définie dans la phase de conception générique.
La conception détaillée, qui étudie ensuite comment réaliser chaque composant.
L’étape de codage, qui produit ses composants et tests au fur et à mesure les
unités de code réalisées.
L’étape de recette, qui consiste enfin à valider les fonctionnalités du système
développé.
Writing of presentation
CONCLUSION
Ayant présenté le secteur médical camerounais et les désirs de ce dernier, les méthodes de projets
où nous avons choisi le 2TUP, il est nécessaire afin de modéliser et concevoir une plateforme
connectée pour la gestion d’un dossier patient, d’établir un ensemble opérations
hiérarchiques suivant ce processus unifié.
14
CHAPITRE II: ETUDE
PRELIMINAIRE ET CAPTURE
DES BESIONS
15
I. ETUDE PRELIMINAIRE
1. Dictionnaire de données
16
20 boodGroup Groupe sanguin du patient Alphanumérique NOT NULL
21 Rhesus Rhesus du patient Alphanumérique NOT NULL
a. Besoin opérationnels
17
• La sécurité au niveau de l’accès aux données : assurer la confidentialité
du dossier patient.
• La modification du dossier patient ne doit se faire que par le personnel
médical.
• Le système devra gérer un grand nombre de patients; de ce fait, un
grand volume de dossiers patient, hôpitaux et personnel médical.
• Le système doit pouvoir fonctionner en plein temps c’est-à-dire 24h/24
• Lors des trouble de connections, les données devront être enregistrées
chez le client et une foi la connexion rétablie, elles devront être
envoyées dans la base de donnée centrale.
b. Choix techniques
Dans ce contexte où les besoins techniques sont directement en quelques sortes des conséquences
des besoins opérationnels eux même désire des futurs utilisateurs du logiciel, nous présentons ci-
dessous les différents concepts entrant dans les attentes d’un point de vue technique ou
informatique.
i. API
« Application Programming interface » interface de programmation d’application est un
ensemble normalisé, hiérarchique et ordonné de classes, de méthodes, de fonctions et de constantes
qui sert de façade par laquelle un logiciel offre des service à un autre.
Notre système devant être portatif et assez distribué, il devra couvrir le maximum de médias : le web
(ce qui inclut tout type de medias pouvant y accéder), une application desktop pour la sédentarité du
personnel médical, et une application mobile dans le cadre de fournir un dossier patient numérique
disponible chez le patient et facilement utilisable.
Pour atteindre ces objectifs, aurons donc besoin de mettre sur pied une « API » pouvant fournir des
services à des clients web, mobiles et desktop. Mais dans le cadre de ce projet, nous limiterons à la
production du client web.
18
Figure 9: description des services d'une API Figure 8:Description du fonctionnement d'une API:
En outre, le Framework pring boot offre des outils techniques permettant de définir les « API
RestFul ».
iii. Mariadb
C’est un gestionnaire de base de données sous licence GPL tournant sous tout système
garantissant une certaine portabilité. Elle permet de gérer une quantité importante de données
telles celles relative au stockage et à la gestion des dossiers patients.
Il est à noter que cette base de donnée pourrait migrer vers un plus volumineuse dans le cas où
19
iv. La base de données Derby
Derby est une base de donnée embarqué dans spring boot, l’on la sollicitera dans le but de stocker
des données lors des trouble de connexions liés à la base de données centrale MariaDb ; données
qui, lorsque la connectivité avec la base de donnée centrale sera rétablie, devront y être stockées.
v. DAO
« Data Accessing Objet » objet d’accès aux données est patron utilisé dans l’architecture
logicielle objet.
20
Patient Authentication
Impression du document patient
Consultation des dossiers patient
Administrateur services Ajout des hôpitaux et personnel
médical
Muter le personnel médical
Mise à jour des informations sur le
personnel médical et sur les
hôpitaux
21
Raffinage du diagramme de cas d’utilisation modifier le dossier patient
Sommaire
Titre Consultation des dossiers patient
22
o Le système affiche un message d’erreur
o Retour à l’étape du scenario nominal pour s’authentifier
Sommaire
Titre modification du dossier patient
23
Scenarios alternatifs
11.b) si l’utilisateur saisir les informations erronées du patient :
o Le système affiche un message d’erreur
o Retour à l’étape du scenario nominal pour la recherche du
dossier patient.
Sommaire
Titre création du dossier patient
Scenarios alternatifs
15. a non recherche du dossier patient s’il n’existe pas et passage à 16
Après ce qui précède, il est important de définir à priori les différentes classes pouvant intervenir
dans le système.
24
Figure 12: Diagramme de classes candidates
25
pied un API, qui pourra fournir ses services aux applications web, desktop et mobiles; mais dans ce
projet, nous nous limiterons à la version web.
CONCLUSION
Les cadres général et spécifiques du projet et le cahier de charge ainsi présentés, à partir des besoins
fonctionnels et opérationnels, nous avons comme attente de réaliser une application web fournir par
une API Restful grâce à spring boot et en utilisant le SGBD MariaDb. Ceci fait, nous devons analyser
toutes les données récupérées .Cette dernière opération fera l’objet du prochain chapitre intitulé
analyse et organisation des données.
26
27
CHAPITRE III. ANALYSE ET
ORGANISATION
DES DONNEES
28
INTRODUCTION
Dans cette section, nous avons identifié les classes d'analyse qui vont participer
à la
réalisation des cas d'utilisation.
Il y a trois types de classes : « entité », « contrôle », « services » et « accès
données ».
Ces classes seront représentées dans les diagrammes de classes participantes.
Les classes « entité » vont seulement posséder des attributs. Ceux-ci
représentent généralement les informations persistantes de l'application et
des champs de saisie. Elles constituent en outre les différentes classes
tuple.
Les classes « contrôle » vont seulement posséder des opérations. Ceux-ci
correspondent à la logique de l'application, au travail de règles.
Les classes « services » vont posséder elles aussi des opérations
correspondantes aux services fournis aux différents contrôles de
l’application.
Nous représenterons et détaillerons certains d'entre eux dans la section
suivante.
29
1. Diagramme de classes fonctionnels
Le diagramme de classes fonctionnelles définies l’ensemble des relations entre les différentes classes
entités. Il est donc défini comme suit :
30
3. Diagramme de package fonctionnel
Ce diagramme permet de ressembler des classes à fortes cohérence ensemble en occurrence les
classes « medicalStaff », « Patient » qui s’insère dans le package « acteurs » ; et par ailleurs les
classes relative au dossier patient « MedicalNoteBook », « Examen », « prescription », « Result »,
« InTakeInLoad » qui s’insèrent dans le package « InTakeInLoad ».
31
Les différents packages constitués forment ainsi des services que produiront notre applications, il est
donc nécessaires de les mettre en communication dans l’optique d’obtenir le fonctionnement final
de notre logiciel.
1. Diagramme d’activités
Les diagrammes d’activités permettent de d’illustrer de façon pragmatique, dynamique et
fonctionnels les cas d’utilisations dans le but comprendre le fonctionnement du système à mettre sur
pied. Nous n’illustrerons que ces cas complexes notamment la modification du dossier patient :
« Note book ».
32
Figure 17: Diagramme d'activités du cas d'utilisation modifier le dossier patient
33
2. Diagramme états transitions
Les diagrammes état-transitions font percevoir le différent comportement des objets et ainsi
permettent d’appuyer la recherche des opérations à implémenter dans les classes associées.
Dans le cadre de notre projet, l’objet au comportement le plus complexe est le dossier patient :
« NoteBook » ; ce dernier n’étant qu’une composition des prises en charge : « InTakeInLoad », elles
même compositions de consultations, examens, prescriptions, résultats d’examen et potentiellement
d’allergie des patients, il est nécessaire de tout d’abord décrire de comportement des objets les plus
internes.
34
b. Diagramme de état transition du dossier patient
3. Diagrammes de séquence
Dans un système, les diagrammes de séquence sont nécessaire dans de but de recueillir les différents
messages échangé entre un acteur, ce en fonction du temps.
35
Diagramme de séquence de la modification du dossier patient
36
Consultation du dossier patient
ONCLUSION
Dans ce chapitre, nous avons décrit l'étape d’analyse de la méthode 2TUP de point de vue
statique avec la présentation de quelques diagrammes de classes et de point de
vue dynamique en précisant certains diagrammes de séquence, d’activités, et d’état transition
le plus souvent relatif au dossier patient constituant la gestion dynamique de notre système.
Le chapitre suivant présentera l'étape de la conception.
37
CHAPITRE IV. CONCEPTION
38
INTRODUCTION
Après la phase d’analyse, nous allons entamer, dans ce chapitre la conception du projet. En
utilisant la méthode 2TUP, dans un premier temps, nous commenceront par une conception
préliminaire présentant le logo et la conception de l’application web et des interfaces
associées par la suite, nous passeront à une conception détaillée du projet en tenant compte
des contraintes fonctionnelles et technologiques rencontrées.
I. Conception préliminaire
Cette partie est consacrée pour la présentation de la charte graphique de notre application qui
est un document de travail qui contient l’ensemble des règles d’utilisation des signes
graphiques qui constitue l’identité graphique pour pouvoir les décliner sur différents support
d’une même identité.
Nom du logiciel
Nous avons choisi « E-Medical note book » pour electronic medical note book pour la traduction
française « Carnet médicale électronique »
Par ailleurs, le slogan adopté est « Save your health » de traduction française préserver notre santé
car le but de ce logiciel est de permettre l’amélioration des services de prise en charge des patients.
La technologie front-end que l’on utilisera dans le cadre de ce projet sera le Framework React Js.
React Js est un Framework JavaScript permettant de fournir des interfaces pour application web.
Nous l’utiliserons cette technologie particulièrement pour la facilité de définition des composants,
l’aisance dans les requêtes des « API Rest Full » et la grande communauté dont il dispose.
2. Logo
Le logotype de notre solution, représenté dans la Figure ci-dessous, est à l’origine de
relation de lettrage « Elctronic Medical notebook », et un médicament symbolisant la guérison
39
car le but notre de notre logiciel est de fournir un dossier patient numérique comportant tous
les antécédents médicaux du patient, permettant une meilleure gestion des soins en vue de son
rétablissement.
Par ailleurs, le symbole de connexion réseau symbolise que le document est numérique et
accessible partout où que nous soyons.
40
b. Formulaire de connexion du personnel médical
41
d. Page Présentant un dossier patient et l’ensemble de des prise en charge
Les bandes bleues présentent les différentes prises en charge et le bouton « more » situé à
juste en bas permet d’afficher les informations relatives aux prises en charge (examens,
consultation…etc.).
Dans le sidecar, une fois le critère de recherche spécifieé (recherche par hôpitaux, par date,
par médecin, par examen, par médicament pris…etc.).
La pagination des prise en charge peut être sélectionnée avec au bas de la page
Le bouton « Plus » permet au personnel médical d’ajouter des informations dans le dossier
patient (ce bouton ne sera pas présent dans l’interface fourni au patient car celui-ci ne peut
lui-même insérer des informations médicales dans son dossier.
42
e. Affichage détaillée des prise en charge dans un dossier patient
Dans cette interface, s’ajoute le bouton d’impression dans la «Sidebar » imprimant tous les prises en
charges déroulée dans la page.
Dans cette partie, nous allons présenter de façon détaille les différentes classes, des méthodes et
des attributs. Nous insisterons sur les diagrammes de la cote serveur.
43
a. Diagramme de classes des couches controlleur et acces donnees lies aux patients
44
b. Diagramme de classes des couches contrôleur et accès données lies aux Prises en
charges(InTakeInLoad).
Ces diagrammes seront pareillement structures pour les autres entités et constituent des packages
pour chaque entité.
45
développement du système ne dépendra absolument pas de la machine sur laquelle il fonctionnera.
La Figure ci-dessous représente les couches de l’architecture Java
Notre architecture de la cote back-end ne prend pas en compte la couche présentation car nous
implémentons le principe d’API Rest Full.
Navigateur
Chrome, Edge, Firefox, Opéra
Framework
React Js
CONCLUSION
Dans ce chapitre, nous avons présenté l’étape de la conception soit le diagramme de classe descriptif
du projet. Le chapitre qui suit sera consacré spécialement à la phase de réalisation et aux différents
tests qui ont été faits tout au long de ce projet
46
CHAPITRE V : REALISATION ET
TEST
47
INTRODUCTION
Après avoir finalisé l’étape de conception, nous passons dans ce chapitre à l’implémentation de notre
application. Nous commençons par la définition de notre environnement de développement. Par la
suite, nous enchainons par la présentation et la description détaillée des différentes étapes de la
solution finale.
I. DESCRIPTION DE L’ENVIRONNEMENT
Conception
Au niveau de la phase de conception, nous avons utilisé l’AGL Bouml pour la représentation des
éléments UML.
48
Environnement de développement Front-end
Pour le développement du coté front-end nous utilisons l’éditeur Visual studio code
Gestion de projet
Pour la gestion du code, nous utilisons le logiciel git et le dépôt gitLab.
II. TESTS
49
Ajout dans la base de données grâce aux services de l’API
50