HealTech PFE 2022 2023
HealTech PFE 2022 2023
HealTech PFE 2022 2023
Thème
En préambule à ce travail,
Pour nous avoir permis d’être ce que nous sommes devenus aujourd’hui, pour la
force et le courage qu’il nous a donné afin de terminer ce travail, nous remercions le
SEIGNEUR des mondes par qui tout est possible, Allah le tout Miséricordieux.
Nous tenons à adresser notre gratitude et nos sincères remerciements à nos encadrants
Lt-Col. KENAZA Tayeb et Col. ZAIDI Abdelhalim. Nous les remercions pour la
confiance qu’ils nous ont témoigné en nous proposant ce sujet, leur disponibilité, leur
patience, leurs conseils et directives très instructives. Nous les remercions énormément
pour l’autonomie qu’ils nous ont laissé tout en nous aiguillant sur des prises de réflexions
riches et porteuses.
Nos vifs remerciements vont également aux membres du jury pour l’intérêt qu’ils ont
porté à notre travail en acceptant de l’examiner et de l’enrichir par leurs propositions.
Nous remercions aussi tous les officiers de la Brigade Élèves pour l’encadrement qu’ils
nous ont garanti le long de notre cursus au sein de l’École Militaire Polytechnique (EMP).
Enfin, nous remercions tout le personnel du département Informatique ainsi que nos
enseignants pour la qualité de la formation qu’ils nous ont prodiguée au cours de ces trois
années passées à l’EMP, pour leurs conseils, leur disponibilité, ainsi que leur patience et
leur encadrement.
Dédicaces
Merci Au Noble Allah Dieu le Tout-Puissant qui m’a donné le courage et la patience
pour réaliser ce travail.
- éJ¯ A¿PAJ.Ó AJ. J£ @Q J» @ YÔ g é<Ë YÒ mÌ '@ -
À ma chère mère, source de tendresse, l’être le plus cher, l’ âme de mon cœur, parfum de
ma vie, toi qui es toute la générosité et magnanimité, tu as été le fondement et le pilier à
chaque étape de ma vie. Aujourd’hui, Ayant terminé un long parcours, je t’exprime mon
profond respect et ma gratitude infinie. Que dieu te garde pour moi.
À mon cher père, mes yeux avec lesquels je vois, mon ami dans les moments difficiles et
les moments de joie, la source de ma détermination. Tu as été le pilier solide sur lequel
j’ai construit ma vie. Aujourd’hui, ayant atteint ce que tu espérais de ton fils, je te
présente avec sincérité ma gratitude pour tout ce que tu as fait pour moi.
A mes merveilleux frères, toujours présents pour me soutenir sans hésitation, à mon
frère Amin, Younes, Hamza et ma sœur Sara, je prie Allah de vous protéger, de vous
guider tout au long de votre vie et de vous remplir de bonheur et de réussite.
À ma deuxième famille, mes chers amis que j’ai eu la chance de rencontrer : Abdelkader,
S.Yacine, Houcine, Zakaria, Lotfi, Aymen, Idris, Sohaib, Tarek, Nacera, Narimane,
Fatiha, Amina, Chahinez et Fatima. Je souhaite exprimer ma gratitude particulière
envers mes amis Lahcen et Lamis. Leur amitié sincère et leur soutien inébranlable ont
été d’une grande valeur tout au long de mon parcours.
Je remercie sincèrement du fond du cœur tous ceux qui m’ont connue, qui m’ont
soutenue par leurs mots ou qui m’ont offert un sourire. Je vous suis infiniment
reconnaissante.
Miloud
Dédicaces
Je souhaite exprimer ma gratitude envers le noble Allah , Dieu tout-puissant, qui m’a
accordé le courage, la force et la patience nécessaires pour accomplir ce travail.
Je dédie humblement ce travail à ceux envers qui, quelles que soient les paroles que
j’emploie, je ne pourrai jamais exprimer sincèrement mon amour.
À mes chers parents, à l’homme précieux offert par Dieu, à qui je dois ma vie, ma
réussite et tout mon respect, à mon cher père qui ne cesse de me conseiller, d’encourager
et de soutenir tout au long de mes études.
À la femme qui a souffert sans me laisser souffrir, qui n’a jamais refusé mes demandes et
qui a déployé tous les efforts pour me rendre heureux, ma merveilleuse mère. Que ce
travail soit l’accomplissement de vos souhaits les plus chers et le fruit de votre soutien
infaillible. Merci d’être toujours là pour moi.
À celui qui sait toujours comment apporter la joie et le bonheur à toute la famille, à ma
chère sœur Soumaya pour son soutien, ses encouragements, son humour dans les
moments difficiles et la joie qu’elle a apportée jour et nuit.
À mes adorables frères Abdelghani et Bilal pour leur présence dans ma vie et leur
soutien. Que Dieu les protège et leur accorde chance et bonheur.
À toute la famille, mes oncles, mes tantes, mes cousins et mes cousines. Que Dieu leur
accorde une longue et heureuse vie, remplie d’amour et de réussite.
À toure mes amis, mes chers amis que j’ai eus la chance de rencontrer : Hamza,
Elarousi, Moussa, Mwafak, Issa, Aymen, Ammar et Tedjani.
Sans oublier mon binôme Miloud pour son soutien moral, sa patience et sa
compréhension tout au long de ce projet. Je lui souhaite une vie pleine de prospérité.
À ma deuxième famille, mes chers amis que j’ai eus la chance de rencontrer : Tarek,
Adil, Mohamed, Salah, Ishak, yahia, Adel, Nadji, Abdelmalek, Oussama, Merabet, Djafar
et Mehdi.
À tous les confrères et consœurs de la promotion.
Introduction générale 1
ix
EMP Table des matières
x
EMP Table des matières
Bibliographie 91
Annexes 97
A Contrats intelligents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
B Déploiement du réseau blockchain . . . . . . . . . . . . . . . . . . . . . . . 114
C Application web pour les hopitaux . . . . . . . . . . . . . . . . . . . . . . . 115
xi
Liste des figures
xiii
EMP Liste des figures
xiv
Liste des tableaux
xv
Liste des acronymes
xvii
EMP Liste des acronymes
xviii
Introduction générale
1
EMP Introduction générale
De plus, il est essentiel de maintenir une symétrie de l’information pour les patients et de
leur accorder le droit de contrôler leurs données en termes d’accès et de partage.
Dans ce projet, une architecture basée sur la blockchain est proposée pour sécuriser
le partage des données de santé sous le contrôle des patients. Le schéma proposé inclut
la technologie blockchain et la technologie du système de fichiers interplanétaire (IPFS).
Dans cette architecture, les DSE sont stockés et gérés dans l’IPFS et accessibles selon les
adresses cryptés sur les systèmes basés sur la blockchain, qui visent à sécuriser le partage
des DSE avec une grande efficacité.
Nous nous intéressons dans notre travail à concevoir et développer un nouveau méca-
nisme d’accès aux DSE fondé sur la blockchain pour soutenir le partage des DSE entre
les hôpitaux sous le contrôle des patients. En plus, nous choisissons l’IPFS pour accéder
aux fichiers de DSE de grande taille à haute vitesse avec l’autorisation des patients.
Le reste de ce rapport est structuré comme suit.
— Dans le chapitre I, nous traitons des spécifications concernant les données médicales.
Nous allons ensuite porter notre attention sur le dossier de santé électronique et
examiner les diverses technologies qui facilitent le partage de ces dossiers.
— Dans le chapitre IV, nous présentons les technologies utilisées pour mettre en œuvre
l’architecture proposée et démontrons le système avec des cas d’utilisation et des
tests de performance.
Le rapport sera clôturé par une conclusion générale résumant l’essentiel de ce que nous
avons réalisé dans ce projet ainsi qu’une série de perspectives qui peuvent l’améliorer.
2
Chapitre I
I.1 Introduction
Les dossiers médicaux sont des documents essentiels pour la prise en charge des patients,
et leur partage entre les professionnels de santé peut améliorer la qualité des soins et la
coordination des interventions. Le DSE est une solution numérique qui permet de stocker
et de partager les informations médicales des patients de manière sécurisée et efficace. Les
systèmes de partage des dossiers médicaux électroniques se sont développés pour offrir des
solutions innovantes aux professionnels de santé et aux patients.
Cependant, le choix d’un système de partage de dossier de santé électronique approprié
peut être complexe, car il existe de nombreux critères à prendre en compte, tels que la
sécurité, la confidentialité, l’interopérabilité et des autres critères importants. Dans ce
chapitre, nous allons explorer ce qu’est la gestion des données médicales et les différentes
options de partage des dossiers médicaux électroniques, en examinant leurs avantages et
leurs inconvénients.
Nous aborderons également les tendances et les perspectives futures en matière de tech-
nologie de partage de dossiers médicaux électroniques, ainsi que les technologies utilisées,
telles que la blockchain, le cloud et les réseaux informatique.
Les données médicales sont des informations relatives à la santé d’un individu, telles
que ses antécédents médicaux, les diagnostics reçus, les traitements suivis et les résultats
de ces traitements [1]. Ces données peuvent être collectées à partir de diverses sources,
notamment les dossiers médicaux, les résultats d’examens médicaux, les données de sur-
veillance de la santé publique, les enquêtes sur la santé et les essais cliniques.
L’utilisation de ces données est cruciale pour la recherche en santé, car elle permet
de mieux comprendre les maladies, de développer de nouveaux traitements et de mieux
évaluer l’efficacité des interventions médicales. Les données médicales peuvent également
être utilisées pour améliorer la qualité des soins de santé, en surveillant les résultats des
traitements et en favorisant la recherche médicale [2].
Cependant, l’utilisation de données médicales soulève des questions de confidentialité et
de sécurité. Les informations relatives à la santé sont des données sensibles et doivent être
protégées pour garantir la confidentialité des patients et préserver leur droit à la vie privée.
Les lois et les règlements en matière de confidentialité des données, tels que la Loi sur la
Protection des Renseignements Personnels et les Documents Électroniques (LPRPDE) [3]
et la loi algeriènne n° 18-07 du 10 juin 2018 relative à la protection des personnes physiques
dans le traitement des données à caractère personnel, ont été établis pour protéger les
5
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
1. Données de diagnostic : Ces données sont utilisées pour identifier une maladie ou
une condition médicale chez un patient. Elles peuvent inclure des résultats d’exa-
mens médicaux tels que des analyses de sang, des radiographies ou des Imageries
par Résonance Magnétique (IRM), ainsi que des informations sur les symptômes
rapportés par le patient.
2. Données de traitement : Ces données comprennent des informations sur les trai-
tements médicaux administrés à un patient, tels que les médicaments prescrits, les
interventions chirurgicales ou les thérapies de réadaptation.
4. Données de recherche clinique : Ces données sont collectées dans le cadre d’essais
cliniques pour évaluer l’efficacité et la sécurité des interventions médicales. Elles
peuvent inclure des données sur les participants à l’étude, les protocoles de l’étude,
les résultats des examens médicaux et les résultats des traitements administrés.
5. Données de gestion des soins de santé : Ces données sont utilisées pour gérer les
soins de santé d’un patient, telles que les informations sur les rendez-vous médicaux,
les traitements suivis et les factures médicales.
Chacune de ces catégories de données médicales peut être utilisée pour différentes appli-
cations, notamment la recherche médicale, la surveillance de la santé publique, la gestion
des soins de santé et l’amélioration de la qualité des soins de santé.
Il existe une variété de sources de données médicales qui peuvent être exploitées pour
la recherche médicale, la surveillance de la santé publique et la gestion des soins de santé.
Il est primordial de sélectionner une source fiable et pertinente en fonction de ses besoins.
Voici quelques-unes des sources de données médicales utilisées à travers le monde.
6
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
Dossiers médicaux : Les dossiers médicaux des patients contiennent des informations sur
leur historique médical, y compris les antécédents familiaux, les diagnostics, les traitements
et les résultats des examens médicaux. Les dossiers médicaux électroniques sont de plus
en plus courants et permettent une collecte de données plus facile et plus précise [3].
Registres de santé : Les registres de santé sont des bases de données qui contiennent des
informations sur des groupes spécifiques de personnes atteintes d’une maladie ou d’une
condition médicale donnée. Ces registres peuvent être utilisés pour suivre l’incidence et
la prévalence de la maladie, évaluer l’efficacité des traitements et surveiller les tendances
dans l’évolution de la maladie.
Enquêtes sur la santé : Les enquêtes sur la santé sont des enquêtes menées auprès
d’échantillons de populations pour collecter des données sur leur santé et leur comporte-
ment. Ces enquêtes peuvent fournir des informations sur les facteurs de risque de maladies,
les comportements de santé et les attitudes à l’égard des soins de santé .
Essais cliniques : Les données de recherche clinique sont collectées dans le cadre d’essais
cliniques pour évaluer l’efficacité et la sécurité des interventions médicales. Ces données
peuvent inclure des données sur les participants à l’étude, les protocoles de l’étude, les
résultats des examens médicaux et les résultats des traitements administrés [6].
Chacune de ces sources de données médicales peut fournir des informations précieuses
pour la recherche médicale, la surveillance de la santé publique et la gestion des soins de
santé. Cependant, il est important de protéger la confidentialité et la sécurité des données
pour garantir l’utilisation responsable et éthique de ces informations.
Les données médicales présentent plusieurs caractéristiques qui les rendent uniques et
parfois difficiles à utiliser [7]. Les caractéristiques clés des données médicales incluent :
Complexité : Les données médicales peuvent être très complexes, car elles peuvent in-
clure des informations sur plusieurs aspects de la santé d’un patient, comme les antécédents
7
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
Hétérogénéité : Les données médicales peuvent provenir de différentes sources, être col-
lectées à des moments différents et être stockées dans des formats différents, ce qui peut
rendre difficile leur intégration et leur analyse [1].
Volume : Les données médicales peuvent être volumineuses, surtout lorsqu’elles sont
collectées sur de grandes populations, ce qui peut nécessiter des outils et des méthodes
d’analyse sophistiqués [1].
Les dossiers de santé électroniques (DSE) sont devenus une composante clé des systèmes
de santé au cours des dernières années. Selon la définition de International Organization
for Standardization (ISO), le DSE est un référentiel numérique de données sur les patients
stocké et échangé de manière sécurisée, accessible par plusieurs utilisateurs autorisés.
Il contient des informations rétrospectives, concurrentes et prospectives et son objectif
principal est de soutenir des soins de santé continus, efficaces et intégrés de qualité. Les
DSE stockent une multitude de données sur chaque rencontre du patient avec le système
de santé, telles que les informations démographiques, les diagnostics, les résultats des tests
de laboratoire et d’imagerie, les ordonnances, les notes cliniques, et bien plus encore. Bien
que principalement conçus pour améliorer l’efficacité opérationnelle des soins de santé, de
nombreuses études ont mis en évidence des utilisations secondaires pour les applications
d’informatique clinique, telles que la recherche, les initiatives d’amélioration de la qualité,
la gestion de la santé de la population et les systèmes de prise de décision clinique [8].
8
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
Ces capacités et d’autres liées aux DSE sont des exigences des critères ”d’utilisation
significative”énoncés dans la loi Health Information Technology for Economic and Clinical
Health (HITECH) de 2009 [1].
Un système CDS est un système qui aide les professionnels de santé à prendre des
décisions en matière de soins aux patients. Certaines fonctionnalités d’un système CDS
incluent la fourniture des dernières informations sur un médicament, la recoupement des
allergies d’un patient à un médicament et des alertes pour les interactions médicamen-
teuses et autres problèmes potentiels signalés par l’ordinateur. À mesure que de plus en
plus de systèmes CDS sont utilisés, on peut s’attendre à ce que certains erreurs médicales
soient évitées et qu’au final, le patient reçoive des soins plus efficaces et plus sûrs.
Les systèmes CPOE permettent aux professionnels de santé de saisir les ordres (par
exemple, pour les médicaments, les tests de laboratoire, la radiologie) dans un ordina-
teur plutôt que sur papier. La numérisation de ce processus élimine les erreurs médicales
potentiellement dangereuses causées par la mauvaise écriture des médecins. Cela rend
également le processus de commande plus efficace. L’utilisation d’un système CPOE, en
particulier lorsqu’il est lié à un système CDS, peut entraı̂ner une amélioration des soins.
HIE est le processus de partage d’informations de santé électroniques au niveau du
patient entre différentes organisations et peut réduire les coûts liés aux tests redondants
qui sont commandés parce qu’un fournisseur n’a pas accès aux informations cliniques
stockées dans un autre lieu. Les patients ont généralement des données stockées dans
plusieurs endroits où ils reçoivent des soins. Historiquement, les fournisseurs s’appuient
sur l’envoi par fax ou par courrier postal d’informations pertinentes les uns aux autres,
ce qui rend difficile leur accès en ”temps réel” lorsque cela est nécessaire. HIE facilite
l’échange de ces informations via les DSEs, ce qui peut entraı̂ner une prestation de soins
plus rentable et de meilleure qualité.
9
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
Certains chercheurs ont noté que l’intégration de la technologie DSE dans les flux de
travail cliniques peut perturber les habitudes de travail des acteurs de santé et entraı̂ner
des coûts financiers pour les organisations de soins de santé. De plus, l’adoption des
DSE peut entraı̂ner une perte temporaire de productivité car les acteurs de santé doivent
consacrer du temps à la formation et à l’apprentissage de la nouvelle technologie.
En ce qui concerne les questions de confidentialité et de sécurité, les DSE contiennent
des informations sensibles sur les patients, Ce qui soulève des préoccupations quant à la
protection de ces données contre les accès non autorisés et pour éviter l’utilisation de ces
dossiers à des fins malveillantes [9].
Enfin, les DSE peuvent également avoir des conséquences imprévues sur la relation
entre les patients et les acteurs de santé, ainsi que sur la qualité globale des soins. Il est
donc important pour les organisations de santé d’évaluer soigneusement les avantages et
les inconvénients de l’adoption des DSE avant de les mettre en œuvre, et de prévoir des
mesures pour atténuer les effets négatifs potentiels [10].
Les dossiers de santé électroniques (DSEs) ont révolutionné la façon dont les données
de santé sont stockées, partagées et utilisées dans les systèmes de santé modernes. Pour
assurer l’interopérabilité et la qualité des données, des normes ont été mises en place pour
les DSEs.
Les normes de DSE sont des spécifications techniques pour l’organisation, l’échange
et l’utilisation de données de santé électroniques. Elles sont essentielles pour garantir
l’interopérabilité des DSE entre les différents systèmes de santé et éviter les problèmes
d’échange [11]. À cette fin, plusieurs normes de DSE ont été développées afin de struc-
turer les données des DSE pour les échanges de données. La structuration des DSE pour
l’échange de données médicales en soutenant une représentation d’informations signifi-
catives entre les systèmes d’information de santé à l’intérieur ou entre les organisations
de soins de santé. Ces normes comprennent Clinical Document Architecture (CDA) [12],
Health Level Seven International (HL7) [13], openEHR [14] et Cross-Enterprise Document
Sharing (XDS) [15].
Pour le transfert des données, l’organisation HL7 a développée Fast Healthcare In-
teroperability Resource (FHIR) qui est une norme moderne d’interopérabilité en matière
de santé. Elle est conçue pour faciliter l’échange d’informations de santé entre différents
systèmes et applications de santé, tels que les dossiers de santé électroniques (DSE), les
10
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
systèmes d’aide à la décision clinique et les applications mobiles de santé. La norme FHIR
fournit un ensemble d’Application Programming Interface (API) RESTful basées sur
Hypertext Transfer Protocol (HTTP), permettant aux plateformes de soins de santé de
communiquer et de partager des données représentées sous forme de formats Extensible
Markup Language (XML) ou JavaScript Object Notation (JSON) [13]. Et pour la structu-
ration des dossiers de santé électronique, la norme Systematized Nomenclature of Medicine
Clinical Terms (SNOMED) est une terminologie clinique exhaustive utilisée dans le do-
maine de la santé pour décrire les observations cliniques, les procédures et les résultats.
Elle est gérée par International Health Terminology Standards Development Organisa-
tion (IHTSDO) et elle fait partie des terminologies les plus populaires dans le domaine
de la santé.
SNOMED offre une façon standardisée de capturer et de partager les données cliniques
dans différents environnements et systèmes de santé, permettant ainsi aux professionnels
de la santé de communiquer efficacement et avec précision sur l’état de santé d’un patient.
Elle comprend plus de 350 000 concepts, avec des identifiants uniques pour chaque concept,
et est régulièrement mise à jour pour refléter les changements dans les pratiques cliniques
et la terminologie [16].
Ces normes sont devenues des outils indispensables pour faciliter l’échange de données
et la collaboration entre les professionnels de santé, améliorant ainsi la qualité des soins et
réduisant les erreurs médicales [17]. L’adoption des normes DSE communes est essentielle
pour améliorer la qualité des soins de santé et la gestion des données de santé électroniques
à l’échelle nationale et internationale.
11
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
Les systèmes de partage de données médicales sont des plateformes technologiques qui
permettent aux prestataires de soins de santé, aux patients et à d’autres entités autorisées
d’échanger et d’accéder de manière sécurisée à des informations médicales. Ces systèmes
facilitent le transfert de données de patients dans différents environnements de soins de
santé, tels que les hôpitaux, les cliniques et les laboratoires, dans le but d’améliorer les
soins et les résultats pour les patients.
Les systèmes de partage de données médicales peuvent inclure des dossiers de santé élec-
troniques (DSE), des échanges d’informations de santé et le partage des données cliniques,
telles que les antécédents médicaux, les résultats de tests et les plans de traitement [2].
L’objectif de ces systèmes est de s’assurer que les prestataires de soins de santé ont accès
à des informations complètes et précises sur les patients, leur permettant de prendre des
décisions plus éclairées en matière de soins.
Les systèmes de partage de données médicales sont devenus de plus en plus importants
dans les soins de santé ces dernières années en raison des nombreux avantages qu’ils
offrent. Certains des principaux avantages des systèmes de partage de données médicales
comprennent [9] :
— Amélioration des soins pour les patients : Les systèmes de partage de données
médicales permettent aux prestataires de soins de santé d’accéder à des informations
complètes et à jour sur les patients, ce qui peut les aider à prendre des décisions plus
éclairées en matière de soins. Cela peut conduire à une amélioration du diagnostic,
du traitement et des résultats pour les patients.
12
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
médicales peuvent aider à améliorer la coordination des soins entre différents pres-
tataires de soins de santé, tels que les médecins généralistes de soins primaires, les
spécialistes et les hôpitaux. Cela peut conduire à de meilleures transitions de soins
et à des soins plus cohérents pour les patients.
Ces systèmes sont devenus nécessaires dans les centres de santé tels que les hôpitaux
pour aider les professionnels de santé et améliorer la qualité des soins.
Le partage des dossiers médicaux est un aspect crucial de la prestation de soins de santé
efficaces et coordonnés. Cependant, la mise en place de systèmes de partage de dossiers
médicaux soulève de nombreux défis pour les prestataires de soins de santé, les patients et
les fournisseurs de technologies de l’information. Dans cette partie, nous allons examiner
les défis les plus courants auxquels sont confrontés les systèmes de partage des dossiers
médicaux :
— Interopérabilité : Les données médicales sont souvent stockées dans des formats
et des systèmes différents, ce qui peut rendre difficile le partage et l’intégration
des données entre différentes organisations de santé. Les systèmes de partage des
données médicales doivent être en mesure de gérer une variété de formats de données
et de communiquer efficacement avec différents systèmes.
13
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
conséquences graves pour les patients, les prestataires de soins de santé et les or-
ganisations de soins de santé. De plus, ces violations peuvent entraı̂ner des pertes
financières importantes pour les organisations, des sanctions réglementaires et des
poursuites judiciaires.
Les systèmes de partage de dossiers médicaux sont essentiels pour améliorer la qualité
des soins de santé et la coordination entre les différents prestataires de soins de santé.
Cependant, ces systèmes sont confrontés à plusieurs défis et pour surmonter ces défis,
il est important de mettre en place des mécanismes de sécurité solides pour protéger la
confidentialité des patients et de favoriser l’adoption des systèmes de partage de données
par les professionnels de la santé et les patients. En outre, il est crucial de choisir la
technologie la plus appropriée pour les systèmes de partage de données médicales, qui doit
être capable de gérer efficacement les différents formats de données et de communiquer
avec d’autres systèmes de santé. En fin de compte, le choix de la technologie utilisée peut
avoir un impact significatif sur la sécurité, l’efficacité et l’adoption des systèmes de partage
de données médicales.
Le partage des dossiers médicaux a beaucoup évolué au cours des années précédentes.
Dans cette partie, nous présentons les technologies pertinentes utilisées pour le partage
des dossiers médicaux. Nous commençons par les réseaux informatiques (spécialement
Wide Area Network (WAN)) basés sur les entrepôts et les bases de données [19], le cloud
computing [20] et la blockchain [21].
14
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
Dans l’architecture centralisée (voir Figure I.1), des copies des dossiers médicaux élec-
troniques - sous forme exhaustive ou résumée - sont transmises à un système centralisé
à l’échelle nationale, qui fonctionne comme un référentiel pour l’ensemble des dossiers
médicaux électroniques des patients dans le pays. Cela est appelé un modèle ”push”, basé
sur le concept de pousser les données des fournisseurs de soins de santé vers le site central.
Le ”poussage” des données médicales des centres médicaux vers les référentiels centraux
se produit périodiquement,par exemple, au Danemark, cela se produit chaque nuit [22].
Dans l’architecture distribuée (voir Figure I.2), toutes les informations seraient stockées
et gérées localement dans les différents fournisseurs de soins de santé et établissements.
Des liens de référence maintenus de manière centrale dans un système central indiqueraient
où se trouvent les enregistrements de données d’origine. Cela est appelé un modèle ”pull”,
car l’agence centrale demande toutes les données nécessaires aux fournisseurs chaque fois
qu’une demande de dossier médical électronique d’un patient est émise. Le modèle ”pull”
n’implique pas de référentiel central, car les données ne peuvent être demandées que
lorsqu’un utilisateur en fait la demande [23].
L’architecture centralisée présente les avantages de la disponibilité, de la performance
et de la rapidité de réponse aux requêtes. En revanche, l’utilisation d’un entrepôt de
données centralisé contenant des données provenant de sources multiples présente souvent
des difficultés de contexte et de codification des données, et leur complexité de conception
conduit généralement à des retards importants dans la mise en œuvre et l’utilisation
effective [23]. De plus, cela peut nécessiter des coûts énormes pour la mise en place du
magasin d’informations central, et il souffre d’incohérences de données sur le système
central puisque les données du patient sont généralement envoyées périodiquement au
15
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
système central. Enfin, la création d’un système accessible à l’échelle nationale contenant
toutes les données des patients augmenterait le risque de violations de la sécurité [22].
L’architecture distribuée présente l’avantage d’un coût réduit pour la mise en place
du système central car elle ne contient aucune duplication de données médicales. Cette
architecture a également l’avantage unique de la cohérence des données et de l’accès aux
dernières informations sur le patient en fonction des besoins. De plus, cette approche aide
à assurer la protection des informations des patients et à répondre aux préoccupations
concernant les menaces pesant sur la vie privée et la sécurité, car les informations du
patient restent à la source plutôt que d’être dupliquées dans une base de données centra-
lisée. Cependant, les requêtes pour accéder aux données du patient chez les fournisseurs
de soins de santé distants peuvent prendre beaucoup de temps pour être traitées. Cela
place des charges supplémentaires sur le réseau de communication et les systèmes sources
auxquels on accède, donc les retards d’accès sont susceptibles d’être inacceptables [23].
Le partage des dossiers médicaux sur le Cloud Computing est devenu une pratique
courante pour les professionnels de la santé en raison de l’importance grandissante de cette
technologie et ses avantages. Les organisations sont incitées à utiliser le Cloud Computing
pour le partage des dossiers médicaux en raison des nombreux avantages qu’il offre. Cela
permet aux praticiens de collaborer plus efficacement en partageant des informations sur
les patients, ce qui peut améliorer la qualité des soins. Les dossiers médicaux stockés dans
16
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
le Cloud sont accessibles à distance et peuvent être mis à jour en temps réel, ce qui peut
faciliter la coordination entre les professionnels de la santé. Cependant, le stockage des
données médicales sur des serveurs distants comme le montre dans la Figure I.3 qui soulève
des inquiétudes concernant la confidentialité et la sécurité des données. Des mesures de
sécurité et des protocoles doivent être mises en place pour assurer la protection des données
sensibles, tels que la cryptographie, l’authentification forte, et la sauvegarde régulière des
données [24].
En effet, cela présente une difficulté importante qui réside dans la confiance que les uti-
lisateurs peuvent accorder aux fournisseurs de services cloud. Un tel manque de confiance
découle du manque de transparence et de la perte de contrôle des données [26, 27] par les
utilisateurs dans les environnements cloud, notamment :
Il existe plusieurs travaux qui utilisent le cloud pour le partage des dossiers médicaux,
parmi ceux-ci, on peut citer CamFlow [28] et le travail de Ji-Jiang et al. [29]. La gestion des
informations médicales basée sur le cloud computing est confrontée aux mêmes problèmes.
De plus, en raison des réglementations de sécurité et de confidentialité de la loi Health
17
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
I.4.4.3 Blockchain
18
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
graves pour la santé des patients [21]. En effet, la blockchain permet de garantir l’intégrité
des données et d’éviter toute altération ou falsification. Il y a plusieurs travaux dans le
domaine de la blockchain qui contiennent des points forts et des points faibles en fonction
des critères de sécurité, confidentialité, et le stockage. Parmi ces travaux, on peut citer
MedRec [33], MedRec+ [34] et MedBlock [35].
L’utilisation de la blockchain pour la sécurisation du partage et de la gestion des don-
nées médicales offre de nombreux avantages et représente une évolution majeure dans le
domaine de la santé numérique.
La Table I.1 met en évidence les caractéristiques clés de trois technologies de partage
des données médicales, à savoir les réseaux informatique [19], Cloud Computing [24] et
la Blockchain [36, 37] , dans le contexte du partage des dossiers médicaux. En examinant
les critères clés il est possible de voir que les technologies ont leurs avantages et leurs
inconvénients distincts.
En termes de sécurité, la blockchain est considérée comme ayant une sécurité élevée,
ce qui est particulièrement important pour les dossiers médicaux contenant des informa-
tions sensibles et personnelles. Le cloud computing, quant à lui, a une sécurité moyenne,
tandis que les réseaux informatiques ont une sécurité faible, ce qui peut entraı̂ner une
vulnérabilité aux violations de données.
En termes de confidentialité, la blockchain est également considérée comme ayant une
confidentialité élevée, tandis que le cloud computing et les réseaux informatiques ont une
confidentialité faible. L’accessibilité est considérée comme élevée pour la blockchain, ce qui
facilite l’accès aux dossiers médicaux par les professionnels de la santé, tandis que le cloud
Réseau informa-
Critères Cloud Computing Blockchain
tique
Sécurité Faible Moyen Élevé
Confidentialité Faible Moyen Élevé
Accessibilité Faible Moyen Élevé
Évolutivité Moyen Élevé Moyen
Interopérabilité Faible Élevé Élevé
Asymétrie de l’in-
Faible Faible Élevé
formation
Confiance Moyen Moyen Élevé
19
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
computing a une accessibilité moyenne et les réseaux informatiques ont une accessibilité
faible.
L’évolutivité est considérée comme moyenne pour la blockchain, tandis que le cloud
computing a une évolutivité élevée et les réseaux informatiques ont une évolutivité
moyenne. En termes d’interopérabilité, la blockchain et le cloud computing sont consi-
dérés comme ayant une interopérabilité élevée, tandis que les réseaux informatiques ont
une interopérabilité faible. L’asymétrie de l’information est considérée comme élevée pour
la blockchain, ce qui signifie que l’information est partagée de manière équitable entre les
parties concernées, tandis que le cloud computing et les réseaux informatiques ont une
asymétrie de l’information faible.
Enfin, en ce qui concerne la confiance, la blockchain est considérée comme ayant une
confiance élevée, car elle utilise une technologie décentralisée qui garantit l’authenticité
et l’intégrité des données. Le cloud computing a une confiance moyenne, tandis que les
réseaux informatiques ont une confiance moyenne à faible en raison de la vulnérabilité
aux attaques malveillantes et aux violations de données.
Dans notre solution de partage de dossiers médicaux, nous avons choisi d’utiliser la
blockchain en raison de ses avantages en matière de sécurité, de confidentialité, d’inter-
opérabilité et l’asymétrie de l’information pour les données des médicales. Nous avons
également pris en compte l’évolutivité et les coûts supplémentaires associés à la mise en
place et à la maintenance de la blockchain, et nous avons travaillé pour optimiser son
utilisation en fonction de nos besoins spécifiques.
I.6 Conclusion
Les données médicales sont cruciales pour les professionnels de la santé car elles leur
permettent de diagnostiquer les maladies, prescrire des traitements adaptés et fournir
des soins personnalisés. Ces données aident également à identifier les tendances en santé
publique, évaluer l’efficacité des traitements et soutenir la recherche médicale. Le partage
des données médicales entre les professionnels de la santé peut améliorer la qualité des
soins, éviter les erreurs médicales et faciliter la coordination des soins pour les patients
Dans ce chapitre, nous avons présenté les notions essentielles relatives aux données
médicales et aux systèmes de partage de ces données. Nous avons exposé les avantages et
les défis du partage des dossiers médicaux, ainsi que les différents technologies de partage
des DSEs. Enfin, nous avons effectué une comparaison entre les technologies existantes
dans le domaine du partage des dossiers médicaux, en se basant sur leurs caractéristiques
respectives. À la suite de cette analyse, nous avons choisi la blockchain comme solution
pour le partage des dossiers médicaux, en raison de ses caractéristiques uniques et de ses
20
EMP Chapitre I. Concepts fondamentaux sur le partage des dossiers médicaux
avantages potentiels. Dans le chapitre suivant, nous allons approfondir notre présentation
de cette technologie et expliquer comment elle peut être utilisée pour le partage des
dossiers médicaux de manière sécurisée et efficace.
21
Chapitre II
II.1 Introduction
25
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
II.2.1 Définition
Une blockchain est une base de données ou un registre distribué partagé entre les
nœuds d’un réseau informatique [40]. Il enregistre des informations au format numérique
de manière électronique et est surtout connu pour son rôle crucial dans les systèmes de
cryptomonnaie, comme Bitcoin [39], pour maintenir un enregistrement sécurisé et décen-
tralisé des transactions sans avoir besoin d’un tiers de confiance.
La principale différence entre une base de données classique et une blockchain réside
dans la structure des données. Une blockchain collecte des informations sous forme de
groupes, appelés blocs, qui contiennent des ensembles d’informations [41]. Une fois remplis,
les blocs sont fermés et liés au bloc précédent, formant ainsi une chaı̂ne de données connue
sous le nom de blockchain. Toutes les nouvelles informations sont compilées dans un
nouveau bloc qui sera ajouté à la chaı̂ne une fois rempli.
La technologie de la blockchain peut sembler complexe ; cependant, elle peut être sim-
plifiée en examinant chaque composant individuellement. À un niveau élevé, la technologie
de la blockchain intègre des mécanismes bien connus de la science informatique ainsi que
des primitives cryptographiques (telles que les fonctions de hachage cryptographiques, les
signatures numériques et la cryptographie à clé asymétrique). Ces éléments sont combinés
avec des concepts de tenue de registres, tels que des registres à ajout uniquement.
26
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
Une transaction représente une interaction entre les parties. Dans les cryptomon-
naies [43], par exemple, une transaction représente un transfert de la cryptomonnaie entre
les utilisateurs du réseau de blockchain. Pour les entreprises, une transaction pourrait
être un moyen d’enregistrer les activités qui se produisent sur des actifs numériques ou
physiques. Chaque bloc dans une blockchain peut contenir zéro ou plusieurs transac-
tions. Pour certaines implémentations de blockchain, un approvisionnement constant en
nouveaux blocs (même avec zéro transaction) est essentiel pour maintenir la sécurité du
réseau de blockchain [44].
Les données qui composent une transaction peuvent être différentes pour chaque im-
plémentation de blockchain, cependant, le mécanisme de transaction est largement le
même. Un utilisateur du réseau de blockchain envoie des informations au réseau, telles
que l’adresse de l’expéditeur (ou un autre identifiant pertinent), la clé publique de l’expé-
27
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
Les contrats intelligents sont des programmes informatiques autonomes stockés sur la
Blockchain [46]. Lorsque des conditions prédéfinies sont remplies, ils s’exécutent automa-
tiquement, ce qui permet de gérer et d’exécuter des transactions sans intervention d’une
tierce partie, comme une organisation gouvernementale, une banque ou toute autre en-
tité. Les termes de l’accord sont codés dans les lignes de code, ce qui les différencie des
contrats papier traditionnels, dans lesquels les termes et conditions sont énoncés dans un
28
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
document et sont exécutoires par la loi. Les contrats intelligents permettent donc une
automatisation des transactions, ce qui les rend plus sûrs et plus rapides que les contrats
traditionnels.
1. Un nouveau bloc est créé à chaque fois qu’une transaction est envoyée par un utili-
sateur.
2. Les blocs sont ensuite distribués à tous les nœuds connectés du réseau et chacun
d’entre eux dispose d’une copie complète de la blockchain.
3. Une fois que le bloc est diffusé à tous les nœuds connectés, ils effectuent une véri-
fication pour s’assurer que le bloc n’a pas été modifié. Ce processus entier du bloc
étant ajouté sur la blockchain est fait par les nœuds atteignant un consensus où ils
décident quels blocs sont valides pour être ajoutés sur la blockchain et quels blocs
ne le sont pas. Ce processus de validation de la transaction est connu sous le nom
d’exploitation minière et le nœud effectuant cette validation est connu sous le nom
de mineur.
4. Si cette vérification se déroule avec succès, les nœuds ajoutent ce bloc à leur propre
copie de la blockchain et la transaction est terminée.
29
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
Preuve de travail : Dans le modèle preuve de travail, appelé en anglais Proof of Work
(PoW), un utilisateur publie le prochain bloc en étant le premier à résoudre une énigme
computationnelle intensive [44]. La solution à cette énigme est la ”preuve” qu’il a effectué
un travail. L’énigme est conçue de telle sorte que la résolution de l’énigme soit difficile,
mais que la vérification de la validité d’une solution soit facile. Cela permet à tous les
autres nœuds complets de facilement valider tous les blocs proposés suivants, et tout bloc
proposé qui ne satisfait pas l’énigme serait rejeté.
Une méthode d’énigme courante consiste à exiger que la somme de contrôle de hachage
d’un en-tête de bloc soit inférieure à une valeur cible (voir la Figure. II.3).
Nouveau bloc
Oui
Publication du
bloc
30
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
Preuve d’enjeu : La preuve d’enjeu, appelé en anglais Proof of Stake (PoS), a été propo-
sée pour surmonter les inconvénients de la consommation excessive d’énergie de la preuve
de travail PoW dans le bitcoin. Ethereum utilise la preuve d’enjeu pour parvenir à un
consensus. Au lieu d’investir dans des ressources qui peuvent effectuer des calculs rigou-
reux pour les calculs de hachage en preuve de travail, la preuve d’enjeu propose d’acheter
de la cryptomonnaie et de l’utiliser comme enjeu dans le réseau [44]. L’enjeu est direc-
tement proportionnel à la chance de devenir le validateur de bloc. Pour parvenir à un
consensus, le validateur de bloc est sélectionné de manière aléatoire et n’est pas prédéter-
miné. Les nœuds produisant des blocs valides reçoivent des incitations, mais s’ils ne sont
pas inclus dans la chaı̂ne existante, ils perdent également une certaine quantité de leur
enjeu.
Les réseaux blockchain sont classés en trois types : publics, privés et consortiaux. Les
blockchains publiques sont ouvertes à tous et sont caractérisées par une décentralisation
totale. Les blockchains privées sont utilisées pour le partage de données privées entre un
31
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
Une blockchain publique est une plateforme ouverte où n’importe qui peut rejoindre,
effectuer des transactions et miner, sans restriction [41]. Elle est également connue sous
le nom de blockchain sans autorisation. Tous les utilisateurs ont l’autorité totale pour lire
et écrire des transactions, vérifier la blockchain ou examiner n’importe quelle partie de
celle-ci à tout moment. La blockchain est transparente et il n’y a pas de nœuds validateurs
spécifiques. Le consensus est atteint par l’un des mécanismes de consensus décentralisés
tels que la preuve de travail ou la preuve d’enjeu.
Une blockchain de consortium est une blockchain partiellement privée et avec autorisa-
tion, contrôlée par un ensemble de nœuds prédéterminés qui décident qui peut rejoindre et
miner [41]. Elle utilise un schéma de multi-signature pour la validation de bloc, la rendant
partiellement centralisée. Les autorisations de lecture et d’écriture peuvent être publiques
ou limitées aux participants du réseau, et un consortium contrôlé par une majorité peut
conduire à la manipulation de la blockchain, compromettant ainsi son immuabilité et son
irréversibilité.
32
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
II.3.1 Decentralization
La blockchain peut apporter des solutions en rendant le système de gestion des données
distribué, où toutes les parties prenantes peuvent contrôler les dossiers médicaux sans avoir
besoin d’une autorité centralisée. De plus, cela encourage l’innovation et l’autonomie, car
chacun peut rejoindre le réseau en tant que nœud et contribuer à son fonctionnement.
La décentralisation dans la blockchain est une avancée importante qui révolutionne de
nombreux domaines.
33
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
L’une des caractéristiques principales d’IPFS est qu’il s’agit d’un réseau pair à pair.
Contrairement au modèle client-serveur où vous avez généralement de nombreux clients
qui consomment à partir d’un seul serveur, avec le modèle pair à pair, chaque ordinateur
(généralement appelé un pair) dans le réseau IPFS joue à la fois le rôle de serveur et de
client. Cela signifie que chaque pair IPFS peut devenir un membre productif du réseau.
Comme illustré dans la Figure. II.4, au lieu de dépendre d’un seul serveur au centre du
réseau auquel les clients se connectent, chaque pair se connecte à plusieurs pairs. Étant
donné que le fichier jpg est stocké sur trois des pairs, deux de ces trois nœuds peuvent être
hors service et le fichier sera toujours accessible au réseau. De plus, n’importe quel nombre
de pairs peut devenir un fournisseur pour le fichier jpg, une fois qu’ils l’ont téléchargé à
partir du réseau [47].
Avec IPFS, les nœuds mettent en commun leurs ressources, telles que la connexion
34
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
Internet et l’espace disque, et veillent à ce que la disponibilité des fichiers soit résiliente
et décentralisée.
Dans IPFS, les données sont adressées par contenu plutôt que par emplacement, rom-
pant ainsi avec le modèle traditionnel client-serveur du web. Cela signifie qu’un même
fichier peut être hébergé sur plusieurs nœuds IPFS, et chaque fichier stocké dans le sys-
tème est identifié par un hachage cryptographique de son contenu, appelé Identifiant de
Contenu ou CID. Ce CID est une longue chaı̂ne de lettres et de chiffres qui est unique à
ce fichier, garantissant son intégrité et permettant son identification précise [50].
IPFS possède également la capacité de découper un fichier en plusieurs blocs en fonction
de sa taille, et chaque bloc se voit attribuer son propre CID. Cette approche permet
d’optimiser l’efficacité du système, en permettant une distribution plus efficace des données
et une récupération plus rapide des fichiers.
L’un des avantages majeurs de l’adressage par contenu est la flexibilité qu’il offre aux
utilisateurs. En effet, il est possible de récupérer un CID à partir de n’importe quel nœud
IPFS tant qu’il y a au moins un nœud qui le fournit au réseau. Ainsi, la disponibilité des
fichiers n’est pas dépendante d’un seul emplacement centralisé, mais plutôt de la capacité
collective des nœuds du réseau à fournir les données demandées.
Cette approche décentralisée et basée sur le contenu rend IPFS résilient aux pannes
et aux changements de serveurs, offrant une meilleure expérience d’utilisation et une plus
grande fiabilité dans l’accès aux données [47].
35
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
Le stockage des dossiers médicaux des patients peut se faire sous forme de dossiers
de santé électroniques DSE, qui sont généralement conservés dans des bases de données
largement distribuées ou centralisées ou sur des serveurs cloud [51]. Le but principal du
stockage des DSE sur une blockchain est de permettre aux patients d’accéder facilement
à leurs dossiers médicaux chaque fois que cela est nécessaire, tout en permettant aux
professionnels de santé d’accéder aux dossiers de manière réglementée [52].
L’interopérabilité est un défi important en ce qui concerne la gestion des dossiers des
patients, et il est préférable que les dossiers des patients soient accessibles à plusieurs
hôpitaux pour améliorer à la fois l’interopérabilité axée sur les patients et celle axée
sur les hôpitaux. En outre, la technologie blockchain peut être utilisée pour authentifier
les transactions sur les dossiers médicaux des patients grâce à l’utilisation de contrats
intelligents [53].
Liu et al. [36] ont élaboré un système de partage de données médicales basé sur la
blockchain, qui permet le stockage, la gestion et le partage sécurisé de ces données, tout
en ayant des coûts de calcul et de communication réduits. Leur modèle de partage et
de protection de données médicales est léger et utilise la technologie de re-encryption
de proxy pour permettre aux médecins de différents hôpitaux de partager des données.
Les informations médicales stockées dans la blockchain sont hautement sécurisées et ne
peuvent pas être altérées facilement. Les auteurs ont également amélioré le mécanisme de
consensus en utilisant une version améliorée du protocole de preuve d’enjeu délégué, ce
qui le rend à la fois sécurisé, fiable et efficace.
Azaria et al. [33] ont présenté un cadre appelé MedRec, qui utilise la technologie de
blockchain pour décentraliser les dossiers de santé. Leur mise en œuvre a utilisé une
catégorie de blockchain publique qui incite les mineurs à extraire de nouveaux blocs en
offrant l’accès à des données cliniques dépersonnalisées. Selon les auteurs, leur approche
36
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
Thwin and Vasupongayya [55] ont proposé un modèle de contrôle d’accès utilisant
la technologie blockchain pour les dossiers de santé personnels (Personal Health Re-
cord (PHR)). Les auteurs ont utilisé la re-encryption par proxy comme système de contrôle
d’accès ainsi que d’autres techniques cryptographiques pour préserver la confidentialité
des données. Les enregistrements cryptés ont été stockés dans un cloud tandis que les mé-
tadonnées ont été stockées dans la blockchain. Dans ce modèle, le processus de partage des
données dépend d’un intermédiaire, le serveur mandataire responsable de la re-encryption.
Ainsi, le serveur mandataire est responsable des clés de cryptage et d’autres informations
nécessaires pour le processus d’authentification.
Les travaux de Boumezbeur et al. [37] proposent un cadre sécurisé de partage et de
contrôle d’accès aux dossiers de santé électroniques (DSE) appelé ”BAcP-EHR”, tout en
préservant la vie privée des utilisateurs, dans le contexte de l’étude des méthodes de
gestion des données de santé partagées via la blockchain et le Cloud. Cette proposition
utilise la technologie blockchain Ethereum pour le DSE et garantit le stockage sécurisé des
dossiers électroniques dans le Cloud en spécifiant les autorisations d’accès des utilisateurs
à travers des contrats intelligents de la blockchain. Elle utilise également des primitives
cryptographiques pour chiffrer les DSE et les clés secrètes afin de garantir la confidentialité
des DSE et la vie privée des utilisateurs.
Weiquan Ni et al. [56] ont proposé une architecture appelée ”Healchain” qui comprend
trois couches : la couche utilisateur, la couche Blockchain et la couche de stockage. Dans
la couche utilisateur, différentes sortes de données de santé sont découvertes et collectées
par de nombreux dispositifs portables tels que des bracelets, des gants intelligents, des
montres intelligentes, des bagues intelligentes et des vêtements intelligents. Elles sont
ensuite envoyées via une station de base et un point d’accès wifi à des serveurs spécifiques
agissant en tant que nœuds Blockchain de consortium. Dans la couche Blockchain, les
mineurs coopèrent pour vérifier l’intégrité des données et l’authenticité des utilisateurs
correspondants en examinant les informations d’authentification. Lorsque des données de
37
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
santé authentiques sont vérifiées, les données sont stockées dans la couche de stockage
IPFS. IPFS est introduit en tant que couche hors chaı̂ne et les données de santé sont
stockées dans l’IPFS, tandis que l’entrée de hachage est enregistrée dans la Blockchain.
L’avantage de ce système est qu’il assure une authentification appropriée des données
grâce à différents processus d’authentification. Il collecte des données en temps réel, ce
qui est très bénéfique pour l’analyse prédictive de la santé des patients.
Honglei et al. [57] présente une méthode sécurisée de partage des DSE, nommée ”BEAS-
IEFS”, dans le cadre de l’étude des méthodes de partage de données de santé via la block-
chain et l’IPFS. Cette méthode repose sur une blockchain Ethereum, nommée blockchain-
based EHR Abstract System (BEAS), qui assure la sauvegarde des résumés des DSE et
le contrôle d’accès, ainsi que sur un système de fichiers interplanétaires (IPFS) nommé
IPFS-based EHR File System (IEFS) qui permet de sauvegarder et partager des DSE de
grande taille. Dans la blockchain BEAS, seules les adresses des hachages des fichiers DSE
générées par l’IEFS sont cryptées par les clés publiques des patients et sauvegardées dans
les résumés DSE.
Révocation Recherche
Année Stockage Chiffrement Évolutivité Anonymisation Complexité
de l’accès par mot-clé
[33] 2016 Local ✗ ✓ ✓ ✓ ✗ Élevée
[56] 2019 IPFS ✓ ✓ ✗ ✗ ✗ Moyen
[36] 2019 Local ✗ ✓ ✗ ✗ ✗ Élevée
[37] 2022 Cloud ✓ ✓ ✗ ✓ ✗ Moyen
[57] 2022 IPFS ✗ ✓ ✓ ✓ ✓ Faible
Table II.1 — Comparaison des plateformes de partage de DSE basé sur la blockchain.
Dans ce qui suit, nous mettons l’accent sur quelques aspects nécessitant plus de re-
cherche :
38
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
— Stockage : Une façon pratique de stocker et de sécuriser les Données de Santé Élec-
troniques (DSE) consiste à les conserver dans la blockchain. Une approche courante
est le stockage On-chain comme dans le cas de MedBlock [35]. Cependant, cette
méthode entraı̂ne une charge de stockage élevée sur le système, et toute modifica-
tion des données ou autorisation d’accès nécessite l’ajout d’un nouveau bloc à la
blockchain. Afin de surmonter les limitations des méthodes On-chain, d’autres ap-
proches stockent les DSE en dehors de la blockchain, appelées Off-chain. Cela peut
être réalisé via le stockage local, comme dans le cas de MedRec [33], le stockage en
cloud, comme dans les cas de BBDS [58] et Boumezbeur et al. [37], ou encore en
utilisant l’IPFS, comme dans les cas de BEAS-IEFS [57].
— Chiffrement : Le rôle essentiel du chiffrement dans les systèmes de partage de dos-
siers médicaux ne peut être sous-estimé. Grâce à l’utilisation de techniques de chif-
frement symétrique et asymétrique, les informations médicales sensibles sont proté-
gées et sécurisées contre tout accès non autorisé, assurant ainsi leur confidentialité
et leur intégrité. Différentes approches ont été proposées pour atteindre cet objec-
tif. D’une part, les méthodes Healchain [56] et Boumezbeur et al. [37] utilisent le
chiffrement symétrique pour sécuriser les DSE. Cela signifie que les données sont
chiffrées à l’aide d’une clé secrète partagée entre les parties autorisées, garantissant
ainsi une protection robuste des informations médicales. D’autre part, les méthodes
MedRec [33], Liu et al. [36], BEAS-IEFS [57] adoptent une approche différente en
conservant les DSE en clair, c’est-à-dire sans les chiffrer. Cependant, ces méthodes
mettent en place des mécanismes de sécurité et de contrôle d’accès rigoureux pour
prévenir les accès non autorisés et garantir la confidentialité des données.
— Evolutivité : Le terme ”Evolutivité” ou ”scalabilité” est généralement utilisé pour
décrire la manière dont un système gère une augmentation du nombre de tâches et
d’opérations, en termes de débit, de latence, de temps de démarrage et de coûts
de transaction. Les méthodes MedRec [33], BBDS [58], Boumezbeur et al. [37],
BEAS-IEFS [57] sont des exemples de travaux qui gèrent correctement l’aspect de
l’évolution, car cet aspect est essentiel au partage de DSE entre différentes entités.
— Anonymisation : Cette méthode permet de préserver l’anonymat des propriétaires
de données lorsqu’ils externalisent leurs informations dans le Cloud ou sur l’IPFS, en
utilisant différentes techniques, telles que l’utilisation de l’adresse de la blockchain
de l’utilisateur. Les méthodes MedRec [33] et BEAS-IEFS [57] sont des méthodes
qui anonymisent les données sans les chiffrer. Cela rend plus difficile l’identification
des propriétaires des données en cas de vol. Les travaux BBDS [58], Boumezbeur
et al. [37] n’assurent pas l’anonymisation des données, Cela indique que ces mé-
39
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
Cependant, il existe encore des défis à surmonter, tels que la consommation de puissance
de calcul et la capacité de stockage dans la blockchain. Pour résoudre ces problèmes,
certains auteurs ont adopté un design de stockage croisé où seules les informations de
référence sont stockées dans une blockchain et une copie réelle des informations peut être
stockée en utilisant IPFS. Il est clair que l’utilisation de la blockchain pour gérer les
informations de santé est un domaine de recherche en développement qui présente des
avantages prometteurs pour améliorer les soins de santé.
Les systèmes de partage de dossiers de santé électronique (DSE) fondés sur la blockchain
ont le potentiel de résoudre de nombreux problèmes dans le domaine de la santé, tels que
la gestion des données médicales et la sécurité des données. Cependant, ils sont également
confrontés à des défis et des restrictions.
L’un des défis les plus importants est lié à la confidentialité des données [51]. Les
40
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
informations médicales sont hautement sensibles et doivent être protégées contre l’accès
non autorisé. Les systèmes de partage de DSE basés sur la blockchain doivent s’assurer
que les données ne sont accessibles qu’aux personnes autorisées, tout en garantissant que
les patients ont un contrôle total sur l’accès à leurs propres informations.
Un autre défi est lié à la complexité des données médicales [59]. Les dossiers de santé
contiennent souvent des informations complexes et volumineuses, ce qui peut rendre dif-
ficile leur traitement sur la blockchain. Les systèmes de partage de DSE doivent être
capables de stocker et de traiter efficacement de grandes quantités de données pour être
utiles aux professionnels de la santé.
En outre, la réglementation gouvernementale est également un défi important pour les
systèmes de partage de DSE basés sur la blockchain [60]. Les lois sur la confidentialité des
données médicales varient d’un pays à l’autre et les développeurs doivent s’assurer que
leurs systèmes respectent les réglementations en vigueur. Les réglementations en matière
de protection des données peuvent également changer rapidement, ce qui rend difficile la
conformité à long terme.
Enfin, la sécurité est un défi majeur pour les systèmes de partage de DSE basés sur la
blockchain [60]. Les attaques de pirates informatiques peuvent compromettre la sécurité
des données et les développeurs doivent prendre des mesures pour protéger les informations
médicales stockées sur la blockchain.
En résumé, les systèmes de partage de DSE basés sur la blockchain ont le potentiel
de résoudre de nombreux problèmes dans le domaine de la santé, mais ils sont également
confrontés à des défis et des restrictions liés à la confidentialité des données, à la com-
plexité des données médicales, à la réglementation gouvernementale et à la sécurité. Les
développeurs doivent travailler à surmonter ces défis pour que les systèmes de partage de
DSE basés sur la blockchain soient efficaces et acceptés dans le domaine de la santé.
Après avoir examiné la littérature concernant les concepts et les approches liés au
partage sécurisé des dossiers de santé électroniques (DSE) en utilisant la technologie blo-
ckchain, nous avons identifié les limites et les défis des solutions existantes. Dans notre
démarche de développement d’une plateforme de partage des dossiers médicaux, nous nous
sommes concentrés sur la mise en place d’une solution répondant aux critères importants
de notre plateforme. À cet égard, nous nous sommes intéressés à la solution proposée par
BEAS-IEFS [57], qui utilise l’IPFS comme support de stockage des DSE afin de résoudre
le problème de stockage dans la blockchain.
La sécurité de ces plateformes est essentielle pour garantir la confidentialité des pa-
41
EMP Chapitre II. Blockchain et gestion des dossiers médicaux
II.7 Conclusion
Dans ce chapitre, nous avons présenté la technologie blockchain ainsi que ses bénéfices,
avantages et défis. Nous avons également abordé les enjeux en matière de sécurité liés à
cette technologie et examiné son application dans le domaine du partage des DSE. Ensuite,
nous avons étudié plusieurs travaux dans ce domaine et réalisé une étude comparative pour
identifier les objectifs fonctionnels et les cibles de sécurité nécessaires pour concevoir une
architecture complète pour le système proposé, conformément aux exigences énoncées dans
ce chapitre. Dans le chapitre suivant, nous détaillons notre proposition pour répondre aux
besoins identifiés.
42
Chapitre III
CONCEPTION DE LA PLATEFORME
HEALTHTECH
EMP Chapitre III. Conception de la plateforme HealthTech
III.1 Introduction
Dans le but de répondre aux besoins croissants des institutions de santé, qui souhaitent
un partage sécurisé des dossiers de santé électroniques (DSE) entre les différents acteurs
impliqués, nous proposons une architecture centrée sur le patient et qui assure plusieurs
aspects essentiels de la sécurité, en particulier garantir la confidentialité des informations
médicales sensibles contenues dans les DSE.
En effet, notre objectif est de créer une plateforme qui offre toutes les fonctionnalités
nécessaires pour faciliter le partage des données entre les acteurs de santé. Cela inclut des
mécanismes de consentement clairs, des autorisations d’accès granulaires et des protocoles
de communication sécurisés pour prévenir tout accès non autorisé et assurer le contrôle
approprié des données. Notre travail vise à proposer une plateforme fiable, évolutif et
sécurisé, qui offre ses services aux différents intervenants.
La plateforme proposée, que nous avons dénommée ”HealthTech”, est conçu pour as-
surer un partage sécurisé des données de santé électroniques (DSE) basé sur la blockchain
Ethereum. Cette dernière garantit la sauvegarde des résumés des DSE et le contrôle d’ac-
cès aux DSE via les contrats intelligents. Notre travail contient également une application
web orientée vers les hôpitaux dans le but d’interagir avec la blockchain et de gérer et de
partager les DSE entre différentes organisations.
Nous présenterons dans ce chapitre les grandes lignes de la conception de notre pla-
teforme. En particulier, nous commençons par présenter l’architecture et ses composants
principaux tels que la blockchain, IPFS, l’autorité de santé et les centres de santé. Ensuite,
nous abordons le fonctionnement et l’interaction entre les différents composants. Enfin,
nous présenterons une application web destinée aux hôpitaux, qui représente le centre de
santé de notre plateforme et qui permet d’interagir avec elle et de gérer le dossier de santé
électronique selon des normes universelles.
Elle joue le rôle d’une institution de confiance capable de garantir l’authentification des
participants de la plateforme. Cette autorité est responsable du déploiement de l’ensemble
des contrats intelligents sur la blockchain, de la gestion des comptes des utilisateurs et de
45
EMP Chapitre III. Conception de la plateforme HealthTech
Utilisateurs
pharmacie
Médecin
Hôpital
Lab
patient
)p
)d
ub
em
(1) inscription
lie
an
r/c
de
on
-p
su
ub
lte
lie
rl
e
r/c
ré
on
su
s
ul
m
te
é
r
autorité sanitaire smart contract
Superviser Superviser
l’administration de l’IPFS.
En supervisant l’inscription des acteurs, l’autorité de santé vérifie l’identité et les qua-
lifications des utilisateurs, garantissant ainsi l’intégrité du réseau et la confiance des par-
ticipants. Elle joue un rôle de surveillance pour prévenir les activités frauduleuses ou non
autorisées, tout en s’assurant que les utilisateurs respectent les politiques et les réglemen-
tations de la plateforme.
Grâce à son rôle central dans la gestion des comptes blockchain et des nœuds IPFS,
ainsi que dans la supervision de l’inscription des acteurs, l’autorité de santé renforce la
confiance et la sécurité au sein de la plateforme de partage des DSE. Sa présence garantit
une gouvernance solide et efficace, favorisant ainsi un échange d’informations médicales
sécurisé et conforme aux normes de confidentialité.
46
EMP Chapitre III. Conception de la plateforme HealthTech
— Patient : c’est l’individu qui sollicite les services proposés par le système de santé
tels que les soins médicaux, les soins infirmiers, l’aide aux personnes, etc.
Dans la pratique, nous utilisons IPFS pour stocker les fichiers de dossiers médicaux
électroniques et nous publions les adresses de hachage invariables et permanentes des
fichiers DSE sur la blockchain en tant que clés de validation et index d’accès. Dans cette
étude, nous suggérons que les institutions médicales participent à la construction du réseau
IPFS. En d’autres termes, ce réseau est une sorte de système fédéral de serveurs de nœuds
appartenant à chaque institution médicale. Les institutions médicales contribuant aux
serveurs de nœuds ont le droit de demander les DSE stockés dans l’IPFS. Compte tenu
de la diversité des données DSE, nous suggérons que les fichiers de chaque DSE soient
regroupés en un seul fichier, par exemple, un fichier zip, avant d’être soumis à l’IPFS.
La Blockchain est une entité qui stocke les contrats intelligents, la signature DSE
et les clés cryptées, nous utilisons les contrats intelligents d’Ethereum pour créer des
représentations intelligentes des dossiers médicaux existants qui sont stockés dans des
nœuds individuels sur le réseau. Nous construisons les contrats pour contenir des méta-
données ou un résumé sur le DSE, la propriété de l’enregistrement, les autorisations et
l’intégrité des données. Le système dans sa conception utilise cinq différents contrats
intelligents (Pour plus de détail sur les contrats intelligents, voir l’annexe A) :
47
EMP Chapitre III. Conception de la plateforme HealthTech
48
EMP Chapitre III. Conception de la plateforme HealthTech
1. Fonctions d’inscription :
— getEHR : Fournit les résumés des DSE aux médecins ou aux patients. Elle
reçoit en entrée l’identifiant du patient et du DSE.
49
EMP Chapitre III. Conception de la plateforme HealthTech
— shareEHR : Utilisée par l’acteur de santé pour publier des DSE dans la
plateforme. Elle reçoit les informations nécessaires sur les DSE.
❖ Contrat intelligent “EHR”
Ce contrat est spécifique à un seul patient (chaque patient possède une instance du
contrat ”EHR”). Il est chargé de toutes les opérations relatives aux dossiers de santé
électroniques (DSE), telles que l’ajout, les requêtes et les autorisations concernant
le DSE du patient. Ce contrat ne peut être utilisé qu’à partir du contrat intelligent
”Patient”, donc toutes les fonctions de ce contrat sont utilisées par les fonctions du
contrat ”Patient” :
— addEHRAbstract : Permet d’ajouter des résumés de DSE associés au patient
propriétaire du contrat.
— getEHRAbstract : Cette fonction est utilisée uniquement par le propriétaire,
c’est-à-dire le patient, pour consulter son DSE.
— getEHRbyActor : Cette fonction est utilisée si un acteur souhaite consulter le
DSE d’un patient.
— setRequest : Cette fonction est utilisée par l’acteur de santé à partir du contrat
”Patient” pour ajouter des demandes associées à ce patient.
— setResponse : Cette fonction est utilisée par le patient pour répondre aux
demandes.
Après avoir présenté les différents composants de notre architecture dans la section
précédente, nous allons détailler dans cette section les interactions entre ces composants
ainsi que les procédures garantissant le bon fonctionnement de notre plateforme. Tout
d’abord, nous pouvons résumer le fonctionnement de notre plateforme à travers quatre
principales procédures : l’inscription auprès de l’autorité de santé, la demande d’autorisa-
tion effectuée par l’acteur de santé au patient, comprenant les deux types de publication
et de consultation. La troisième procédure concerne la publication des DSE dans la pla-
teforme par l’acteur de santé (par exemple, un médecin). La dernière procédure concerne
la consultation des DSE et ses différentes étapes. Les détails de chaque procédure seront
abordés dans les sections suivantes.
50
EMP Chapitre III. Conception de la plateforme HealthTech
Dans notre plateforme, le patient reçoit un DSE après son interaction avec l’acteur de
santé dont une copie de ce document est immédiatement stockée localement via le système
d’information du centre de santé. Afin de garantir la confidentialité des données médicales
du patient, il est recommandé de crypter le document avec une clé secrète du système du
centre de santé d’accueil avant de le stocker dans les bases de données dédiées. Seuls les
utilisateurs autorisés ont accès aux informations stockées. Pour permettre l’accès au DSE
du patient aux autres intervenants, notre système propose de publier le document dans le
réseau IPFS. Cette publication nécessite cependant une autorisation préalable du patient.
Une fois que le patient a interagi avec l’acteur de santé pour lui créer son DSE, ce dernier
lui demande d’autoriser la publication ou la consultation de son DSE. À cette fin, l’acteur
de santé utilise la fonction ”sendRequest” du contrat intelligent ”Patient” pour établir une
demande d’autorisation de publication ou de consultation du DSE. Cette demande inclut
l’identifiant du patient, le type de demande et, dans le cas d’une demande de consultation,
l’identifiant du DSE concerné. La Table. III.1 illustre la structure d’une demande dans la
blockchain et la Figure III.2 schématise les différentes vérifications et procédures (en cas
d’échec) nécessaires pour ajouter une nouvelle demande dans la blockchain.
Une fois créée, cette demande est soumise au patient concerné pour validation. La
Figure III.3 illustre les interactions entre les différentes entités impliquées dans la création
d’une demande et la réponse du patient. Comme le montre la partie gauche de la figure, le
médecin (demandeur) commence par identifier le DSE spécifique à consulter en effectuant
une recherche par mots-clés dans les résumés des DSE stockés dans la blockchain.
51
EMP Chapitre III. Conception de la plateforme HealthTech
Attribut Description
RequestID L’identifiant de la demande.
ActorID L’identifiant de l’utilisateur de l’acteur de santé (médecin).
Pour enregistrer l’heure exacte à laquelle le patient répond à cette de-
Timestamp
mande.
RequestType Le type de la demande (publication ou consultation).
L’état de la demande initialement est ”PENDING”, puis il peut passer à
State
l’état ”ACCEPTED” ou ”REJECTED”.
La clé utilisée pour chiffrer le DSE dans l’IPFS. Lors de la création, ce
secretKey champ est vide, puis le patient le remplit avec la clé secrète chiffrée par
la clé publique du médecin.
L’adresse de fichier DSE dans IPFS. Ce champ est vide initialement, puis
ipfsAddress le patient le remplit avec l’adresse IPFS chiffrée par la clé publique du
médecin.
Table III.1 — Structure d’une demande stockée dans la blockchain.
Une fois que le DSE est identifié, une demande d’autorisation de consultation du DSE
est établie et adressée au patient concerné. Pour valider cette demande, le patient suit les
étapes suivantes :
Vérification de
Demande d'authorisation Non Signalement d'une anomalie
l'identité de l'acteur
de publication / consultation de santé à l'autorité de santé.
Oui
Oui
52
EMP Chapitre III. Conception de la plateforme HealthTech
dispatch
getEHR(patient_id)
Identification du return
DSE
search(key_word)
getEHRByIndex(ehr_id)
return
Récupération du
DSE et de la clef getActorPubKey(actorID)
publique du
médécin return
encrypt(ipfsAddr,
secretKey)
setResponse(req_id, ipfsAddr,
secretKey, state)
Réponse event()
return
Dans notre proposition, l’autorisation a une période de validité d’un (1) jour. Cela per-
met d’accorder plus de temps à l’acteur de santé pour profiter davantage de l’autorisation
accordée à ce DSE. Une fois que la période de validité est écoulée, l’autorisation n’est plus
valable, et sa révocation est effectuée de manière systématique.
53
EMP Chapitre III. Conception de la plateforme HealthTech
dispatch
getPatientByIndex(p_id)
Obtient la clé
publique du
return
patient.
post(EHR)
Publier le DSE ipfsHashAddress
dans l'IPFS
encrypt(ipfsAddr,
Publier le sucretKey)
résumé du
addEHRAbstract()
DSE
event()
1. D’abord, l’acteur de santé récupère la clé publique du patient. Cela est réalisé en uti-
lisant la fonction ”getPatientByIndex” du contrat intelligent ”Patient” on lui donne
l’identifiant du patient (patientID), qui renvoie les informations du patient, y com-
pris sa clé publique.
2. Après cela, le fichier DSE est crypté à l’aide d’une clé secrète générée aléatoirement
en utilisant le chiffrement symétrique AES-256. Ce fichier crypté est ensuite envoyé
au réseau IPFS pour être publié. En retour de cette étape, l’acteur de santé reçoit
l’adresse de hachage du DSE.
3. Cette adresse de hachage et la clé secrète sont ensuite cryptées à l’aide de la clé
publique du patient. Ensuite, l’acteur de santé procède à la publication des données
relatives au DSE dans la blockchain en utilisant la fonction ”shareEHR” du contrat
intelligent ”Patient”, la structure de donner qui représente un DSE dans la blockchain
est illustrée dans la Table III.2.
4. Après l’achèvement de cette opération, le patient est informé de la publication de
son DSE grâce à une communication On-chain. De plus, la référence de ce DSE est
enregistrée dans la liste des DSE publiés, qui est visible dans son compte utilisateur.
54
EMP Chapitre III. Conception de la plateforme HealthTech
Attribut Description
EHR ID L’identifiant de DSE.
Le titre du DSE récapitule brièvement le sujet global abordé (pour
Title
la recherche du DSE en utilisant des mots-clés).
L’identifiant utilisateur de l’acteur de santé (par exemple, un mé-
ActorID
decin).
Signature La signature du médecin sert à authentifier le résumé du DSE.
La clé utilisée pour crypter le DSE du patient avant de le stocker
SecretKey
dans l’IPFS.
L’adresse hashée du DSE dans IPFS, qui est cryptée et utilisée
ipfsAddress
comme index des fichiers DSE.
Table III.2 — Illustration d’un résumé de DSE.
Pour garantir une consultation sécurisée des DSE, voici les étapes suivantes illustrées
dans la Figure III.5 :
dispatch
verifyAutorisation(req_id)
Vérification de
l'autorisation de return
consultation
getRequestByIndex(req_id)
Obtention de la
clé et de (ipfsAddr, sucretKey)
l'adresse IPFS
decrypt(ipfsAddr, sucretKey)
get(ipfsHashAddress)
Obtention du
DSE et EHR
déchiffrement
decrypt(EHR)
getActorPublicKey(actorID)
Vérification de public_key
l'intégrité
verify(hash, signature)
55
EMP Chapitre III. Conception de la plateforme HealthTech
Dans cette section, nous présentons les étapes de réalisation de notre application web
qui représente le centre de santé dans notre système. L’objectif est de vérifier les fonction-
nalités de notre système et de faciliter l’interaction entre les différents utilisateurs de la
plateforme. Nous commençons par la spécification des besoins de notre application, ainsi
que les besoins fonctionnels et non fonctionnels. Ensuite, nous présentons l’architecture
de l’application, la modélisation conceptuelle, ainsi que le diagramme de cas d’utilisation
qui permet d’illustrer et de définir le contexte et les exigences des parties essentielles de
notre système.
Dans notre démarche de conception, nous avons suivi la norme FHIR de HL7 pour éviter
les problèmes d’interopérabilité. Pour clarifier l’avantage d’utilisation de la blockchain,
celle-ci encapsule l’interopérabilité du système, car tous les acteurs interagissent avec
la blockchain et utilisent les mêmes fonctions. Nous avons échangé les données selon le
format JSON, qui est l’un des formats de la norme FHIR les plus utilisés et qui facilite la
structuration du DSE.
Le DSE est structuré selon l’implémentation de l’organisation Health Design Chal-
lenge 1 , qui a créé cette structuration pour contenir toutes les informations nécessaires
avec respect des nomenclatures existantes dans le domaine médical.
Afin de mettre en place notre plateforme, nous avons identifié un ensemble de besoins
fonctionnels et non fonctionnels lors des étapes initiales. Dans cette section, nous allons
1. http://healthdesignchallenge.com/(consulté le 12/03/2023)
56
EMP Chapitre III. Conception de la plateforme HealthTech
Notre application doit remplir des fonctionnalités qui assurent une gestion efficace de
ces composants. Ces fonctionnalités sont décrites sous forme d’un ensemble de besoins
fonctionnels. Les besoins que notre plateforme couvre sont divisés en deux types : les
besoins qui interagissent avec notre système, tels que les demandes d’autorisations, le
partage et la consultation des DSE, et des besoins supplémentaires utilisés localement
dans les hôpitaux pour une bonne utilisation de l’application. Il s’agit notamment de
l’authentification des utilisateurs, la gestion des profils (administrateur, médecin, employé
et patient), la gestion des rendez-vous et la gestion des dossiers de santé électroniques.
Nous allons détailler chacune de ces fonctionnalités dans la suite :
5. Gestion des rendez-vous : Les patients peuvent prendre des rendez-vous qui sont
57
EMP Chapitre III. Conception de la plateforme HealthTech
créés par les employés de chaque service. Les rendez-vous sont attachés à des méde-
cins spécifiques qui peuvent voir l’ensemble des rendez-vous créés et gérer l’état des
rendez-vous, qu’ils soient terminés ou non. Les patients peuvent également consulter
la liste des rendez-vous en attente et accéder à l’historique de leurs rendez-vous.
Les exigences non fonctionnelles sont toutes les exigences qui définissent des critères
pouvant être utilisés pour évaluer le fonctionnement d’un système. Dans ce qui suit, nous
allons présenter les besoins non fonctionnels intégrés dans notre plateforme.
3. Scalabilité : L’application doit être capable de gérer une croissance future de la base
de données médicales et de la population d’utilisateurs. Il est important de concevoir
l’application pour être évolutive pour répondre aux besoins futurs.
4. Disponibilité : L’application doit être disponible en tout temps pour les utilisateurs
autorisés pour accéder aux données médicales. Il est important de maintenir des
niveaux élevés de disponibilité pour garantir que les professionnels de santé peuvent
accéder aux informations de santé des patients en temps opportun.
6. Fiabilité : L’application doit être capable de gérer des erreurs et des pannes de
manière efficace pour minimiser les temps d’arrêt et garantir la disponibilité des
données médicales. Il est important de concevoir l’application pour être fiable pour
garantir que les professionnels de santé peuvent accéder aux informations de santé
des patients en tout temps.
58
EMP Chapitre III. Conception de la plateforme HealthTech
7. Facilité d’utilisation : L’application doit être intuitive et facile à utiliser pour les
professionnels de santé et les patients. Il est important de concevoir l’application
pour être simple d’utilisation pour garantir qu’elle est utilisée efficacement et qu’elle
améliore la qualité des soins.
Dans notre application, nous avons délibérément opté pour une architecture orientée
service afin de maximiser sa flexibilité, sa scalabilité et sa maintenabilité. Cette approche
se traduit par une conception modulaire, où chaque fonctionnalité est encapsulée dans un
service indépendant. Cette architecture permet une séparation claire des responsabilités
et favorise la réutilisation des services à travers différents modules de l’application.
Grâce à cette approche, nous pouvons facilement ajouter de nouvelles fonctionnalités
en développant des services distincts et en les intégrant sans perturber le reste du système.
Cela nous permet également de faire évoluer notre application en distribuant les services
sur plusieurs serveurs, ce qui améliore les performances et la résilience en cas de pannes.
Pour garantir pleinement la réalisation de nos objectifs, nous avons mis en place un
écosystème d’API robuste qui facilite l’interconnexion entre le backend et le frontend de
notre application (voir la Table. III.3). Ces API jouent un rôle essentiel dans la transmis-
sion fluide des données et des fonctionnalités, permettant ainsi une expérience utilisateur
optimale.
59
EMP Chapitre III. Conception de la plateforme HealthTech
API Méthodes
/login post
/logout post
/admin/<id>/ get - put - patch - delete
/admin/<id>/resetPassword/ post
/service/ get - post
/service/<id>/ get - put - patch - delete
/doctor get - post
/doctor/<id>/resetPassword/ post
/employee get - post
/employee/<id>/ get - put - patch - delete
/employee/<id>/resetPassword/ post
/patient get - post
/profile get
/hospital get - post
/appointment get - post
/appointment/<id> get - put - patch
/record/ get - post
/record/<id> get
Les API que nous avons développées offrent une interface claire et structurée, permet-
tant à la partie frontend d’accéder aux fonctionnalités et aux données du backend de
manière efficace et sécurisée. Chaque API est conçue pour répondre à des besoins spéci-
fiques, offrant des points d’accès définis pour les différentes opérations et les services de
notre application.
L’architecture de nos API conçue de manière à être évolutive et adaptable. Nous avons
adopté des normes et des protocoles modernes, en choisissant Representational State
Transfer (REST), afin d’assurer une intégration flexible et une communication efficace
entre le frontend et le backend. Cela nous permet de développer et de déployer de nou-
velles fonctionnalités rapidement, tout en maintenant stabilité et cohérence au sein de
notre application.
60
EMP Chapitre III. Conception de la plateforme HealthTech
Le diagramme de cas d’utilisation est un outil crucial pour organiser les besoins et dé-
montrer les grandes fonctionnalités du système. Il présente le comportement du système du
point de vue de l’utilisateur. Notre application comporte quatre types d’acteurs clés : l’ad-
ministrateur, le médecin, l’employé et le patient, ainsi que d’autres acteurs secondaires tels
que la blockchain. La Figure III.6 montre comment l’application est modélisée en termes
de gestion des utilisateurs et des DSE, en utilisant un diagramme de cas d’utilisation.
Gestion
Gestion des
des
médecins
médecins
Gestion
Gestion des
des
Administrateur
<<include>> patients
patients
Voir les <<include>>
statistiques de
l'hopital
Gestion des
admins
Gestion des <<include>>
services et ces S'authentifier
composants
<<include>>
Voir Profil
<<include>>
<<include>>
Gestion
Gestion des
des
rendez-vous
rendez-vous
Employe
<<include>>
<<include>>
Accéder à
l'historique des soins
au
médicaux
tor
<<extend>>
isé
Au l'his
tor to
à
le
Gestion des
isé riqu
pa
Médecin
rta
l'a e
<<include>>
Voir profil
<<include>>
Voir l'historique
<<include>>
Voir les DSEs Patient
Voir les patiens Faire des Voir les rendez-
des patiens consultations vous
61
EMP Chapitre III. Conception de la plateforme HealthTech
composants du centre tels que les services et les laboratoires. Le médecin, quant à lui, est
responsable de la gestion des DSE en termes de création et de partage sur la blockchain. Il
y a également l’employé, dont l’objectif est de réaliser les tâches relatives à chaque service,
telles que la gestion des rendez-vous. Tout accès au dossier patient doit être autorisé par
le patient et vérifié par la communauté de la blockchain pour garantir la sécurité et la
confidentialité des données médicales.
Pour parvenir à une conception complète de notre application, nous présentons dans la
Figure III.7 la modélisation conceptuelle des données qui représente les différentes entités
de l’application ainsi que la structure du DSE. Le Modèle Conceptuel des Données (MCD)
a pour objectif d’écrire de manière formelle et abstraite les données qui seront utilisées
par le système d’information. Le MCD contient quatre tables représentant les différents
utilisateurs de l’application, tels que l’administrateur, l’employé, le médecin et le patient.
L’employé est en relation avec la table des rendez-vous, ce qui lui confère la responsabilité
de la création des rendez-vous. Chaque rendez-vous est lié à la fois à un médecin et à un
patient.
La table de consultation est une table essentielle qui représente le dossier de santé
électronique et permet la création d’un DSE conforme aux normes de standardisation.
Chaque consultation contient des informations essentielles telles que le titre, la date, et
est associée à la table du médecin et au service correspondant. Chaque dossier de santé
peut contenir un résumé de consultation comprenant un compte rendu qui peut inclure
les maladies, les médicaments, les allergies et les traitements. Il est également possible
d’ajouter des analyses de laboratoire. Le MCD contient d’autres tables supplémentaires
qui sont ajoutées pour assurer l’efficacité et une utilisation optimale de l’application.
62
EMP
allergie role AppartientE
nom Caractère long id_role <pi> Numérique <O> 0,n a
Employé 1,1
0,n reaction Caractère long description_role Caractère long variable
1,1
gravité Caractère long Identifiant_1 <pi> matricule_E <pi> Numérique <O> 0,n
... Identifiant_1 <pi>
1,1
AppartientES
1,n
contient_allergie AppartientSM Appartient
1,1 M Heritage_E_P Hopital
id_hopital <pi> Numérique <O>
1,n
Maladie 1,n nom_hopital Caractère long variable
adresse_hopital Caractère long variable
code_maladie <pi> Numérique <O> 0,n Service fax Numérique
Personne
lib_maladie Caractère long variable 0,n
code_service <pi> Numérique <O> nom Caractère long Identifiant_1 <pi>
Identifiant_1 <pi> 1,n ...
lib_service Caractère long prenom Caractère long
... Engendrer appartientMS
chef_service Caractère long numero_telephone Numérique 1,n
0,n Identifiant_1 <pi> photo Image
... date_de_naissance Date
contient_maladie
sexe Caractère long FaireE
date_inscription Date
0,n 0,n email Caractère long variable
password Caractère long variable
compte rendu
code_compte_rendu <pi> Numérique <O> Demander
description Caractère long variable 0,n
Identifiant_1 <pi>
... Heritage_Personne
0,n 1,1 1,1 1,1
0,n 0,n
Contient_m
Médecin RendezVous
Administreur
matricule_A <pi> Numérique 1,1
role_admin Caractère long
Identifiant_1 <pi> 0,n
1/1
III.5 Conclusion
Le développement d’une plateforme pour le partage des dossiers médicaux sur une blo-
ckchain privée nécessite une architecture globale qui regroupe ses différentes composantes,
telles que décrit dans les chapitres I et II. Pour bien mener la réalisation de notre pla-
teforme, nous avons suivi des standards universels pour le développement de dossiers de
santé électronique afin de résoudre le problème d’interopérabilité. Ainsi, nous avons opté
pour un développement modulaire dans la plateforme pour les différents composants, et
nous avons utilisé des nouvelles technologies émergentes pour que la plateforme réponde
à nos besoins et permette une utilisation sécurisée des différentes fonctionnalités avec le
respect de la vie privée des patients.
Dans ce chapitre, nous avons donné les objectifs de notre travail, puis nous avons
détaillé l’architecture proposée qui répond aux besoins de notre plateforme. Nous avons,
dans un premier temps, présenté l’architecture et ses composants principaux tels que
la blockchain, IPFS, l’autorité de santé et les utilisateurs finaux. Nous avons, par la
suite, décrit son fonctionnement et la séquence d’événements qui la régissent. Enfin, pour
l’interaction avec notre plateforme proposée, nous avons présenté la conception et les
étapes de réalisation d’une application web orientée vers les hôpitaux, qui a pour but
d’interagir avec la plateforme pour le partage des dossiers médicaux.
64
Chapitre IV
RÉALISATION DE LA PLATEFORME
HEALTHTECH
EMP Chapitre IV. Réalisation de la plateforme HealthTech
IV.1 Introduction
La création d’une plateforme de partage de dossiers médicaux sur une blockchain pri-
vée est un défi complexe en raison des difficultés liées à la mise en œuvre d’un réseau
blockchain et IPFS, ainsi qu’à l’intégration de ces composantes dans l’application web
développée pour faciliter son utilisation par les utilisateurs finaux. Afin de concrétiser
les fonctionnalités proposées par notre conception, nous avons développé les principales
fonctionnalités de notre plateforme afin d’évaluer le travail réalisé dans le cadre de ce
projet.
Dans ce chapitre, nous présentons notre plateforme développée et ses fonctionnalités.
Tout d’abord, nous commençons par la présentation du réseau blockchain, expliquant les
étapes de sa mise en œuvre et toutes les technologies utilisées pour son déploiement. En-
suite, nous présentons le système de stockage IPFS. De plus, afin de tester pleinement
les différentes fonctionnalités de notre plateforme, nous présentons l’application web dé-
veloppée pour les hôpitaux, représentant un centre de santé que nous avons proposé dans
notre système. Enfin, nous terminons ce chapitre par une analyse des performances de
notre système.
Les réseaux blockchain sont des infrastructures décentralisées et sécurisées qui per-
mettent de stocker et de partager des données de manière transparente. La technologie
blockchain repose sur un réseau distribué de nœuds qui valident et enregistrent les tran-
sactions de manière chronologique dans des blocs. Chaque bloc est lié au précédent par
un processus de hachage, formant ainsi une chaı̂ne de blocs immuables.
Les réseaux blockchain offrent également des fonctionnalités avancées, telles que les
contrats intelligents. Ces contrats autonomes sont des programmes auto-exécutables qui
se lancent lorsque certaines conditions prédéfinies sont remplies. Ils permettent l’automa-
tisation des processus et l’élimination des intermédiaires, ce qui peut simplifier et accélérer
les transactions.
En ce qui concerne le choix de la blockchain, nous avons opté pour Ethereum en raison
de ses caractéristiques techniques, de ses propriétés de sécurité et des nombreuses pos-
sibilités qu’elle offre aux développeurs. Cela nous permet de satisfaire un grand nombre
d’exigences de sécurité liées à la conception du système proposé, notamment en assurant
le partage sécurisé des dossiers de santé électroniques entre les différents intervenants dans
un système global de e-santé.
67
EMP Chapitre IV. Réalisation de la plateforme HealthTech
Dans cette partie, nous décrivons les outils logiciels et les technologies que nous avons
utilisées pour le développement et le déploiement du réseau blockchain.
Ethereum est une blockchain publique/privée et décentralisée qui offre bien plus qu’une
simple crypto-monnaie. Il s’agit d’une plateforme globale pour l’exécution de contrats in-
telligents, des applications décentralisées (dApps) et du développement de tokens numé-
riques. Avec Ethereum, les développeurs peuvent créer et déployer des contrats intelligents
qui automatisent les transactions et les interactions entre les parties sans avoir besoin d’un
intermédiaire.
- Ganache Ganache est un simulateur de réseau blockchain largement utilisé dans l’éco-
système Ethereum pour le développement et les tests de contrats intelligents. Il fournit un
environnement local qui permet aux développeurs de créer des réseaux blockchain privés
pour simuler les fonctionnalités et le comportement d’un réseau Ethereum réel. Avec Ga-
nache, nous pouvons générer instantanément des adresses Ethereum, simuler des comptes
avec des soldes en Ether et déployer des contrats intelligents sur le réseau de simulation.
Ce simulateur offre une grande flexibilité en permettant de contrôler différents aspects du
réseau, tels que la gestion des transactions, les blocs minés et les événements.
Ganache facilite également le processus de débogage des contrats intelligents en four-
nissant des outils de surveillance de l’état du contrat, des journaux de débogage et une
interface utilisateur conviviale. Un autre avantage de Ganache est sa rapidité et sa légè-
68
EMP Chapitre IV. Réalisation de la plateforme HealthTech
reté, ce qui permet aux développeurs de tester et de déployer rapidement leurs contrats
intelligents sans avoir à attendre les temps de confirmation réels sur le réseau principal
Ethereum.
- Go-etheruem Lorsque nous exécutons notre propre nœud Ethereum, nous aurons la
possibilité d’utiliser cette blockchain de manière entièrement privée, autonome et décen-
tralisée. Cette approche nous offre un haut niveau de confiance, car nous serons en mesure
de vérifier de manière indépendante chaque aspect de l’utilisation d’Ethereum, garantis-
sant ainsi la sécurité et l’intégrité de notre plateforme. Grâce à des nœuds Geth personnel,
nous pouvons mettre en place une blockchain privée.
Geth offre une grande flexibilité en permettant aux utilisateurs de personnaliser leurs
paramètres réseau, tels que la vitesse de synchronisation, les niveaux de journalisation
et les stratégies de consensus. En tant que client bien établi et maintenu activement par
la communauté Ethereum, Geth est une option privilégiée pour les développeurs et les
utilisateurs qui souhaitent accéder et interagir avec le réseau Ethereum de manière fiable
et sécurisée. L’exécution d’un nœud Geth est illustrée dans la Figure. IV.2.
69
EMP Chapitre IV. Réalisation de la plateforme HealthTech
IV.2.1.2 Docker
Docker est une plateforme open source qui permet aux développeurs de construire,
déployer, exécuter, mettre à jour et gérer des conteneurs : des composants normalisés et
exécutables qui combinent le code source de l’application avec les bibliothèques du système
d’exploitation (SE) et les dépendances nécessaires pour exécuter ce code dans n’importe
quel environnement.
Docker est également largement utilisé pour le déploiement de nœuds Blockchain et
IPFS. Il permet de créer des conteneurs qui contiennent tous les composants nécessaires
pour exécuter un nœud Blockchain ou IPFS. Les conteneurs Docker encapsulent tous les
composants requis pour exécuter ces nœuds, y compris les logiciels, les protocoles réseau
et les bibliothèques. En utilisant Docker, on peut facilement créer, distribuer et déployer
ces nœuds sur différentes machines ou clusters, permettant ainsi une mise en œuvre plus
efficace de ce système de stockage et de partage décentralisé de fichiers.
70
EMP Chapitre IV. Réalisation de la plateforme HealthTech
Vyper et Serpent, tout en bénéficiant d’une suite complète d’outils de développement (voir
la Figure. IV.3). L’IDE offre des fonctionnalités telles que la coloration syntaxique, l’au-
tocomplétion, la détection d’erreurs et la possibilité de déboguer les contrats intelligents.
Remix propose également un simulateur intégré qui permet aux développeurs de tes-
ter leurs contrats intelligents avant de les déployer sur la blockchain réelle. Une fois le
développement terminé, Remix facilite le déploiement des contrats intelligents sur diffé-
rents réseaux Ethereum, en offrant des options pour la configuration des paramètres de
déploiement et la gestion des adresses de contrat. En résumé, Remix est un outil essentiel
pour les développeurs Ethereum, offrant une expérience de développement fluide et des
fonctionnalités avancées pour la création et le déploiement de contrats intelligents.
71
EMP Chapitre IV. Réalisation de la plateforme HealthTech
Pour présenter efficacement notre plateforme, nous avons élaboré un scénario (consultez
la Figure IV.4) qui implique trois centres de santé (hôpitaux). Dans un premier temps,
nous déploierons des nœuds blockchain (nœuds Ethereum) au sein de chaque hôpital à
l’aide du client Geth.
Hôpital 02
Hôpital 01 Hôpital 03
72
EMP Chapitre IV. Réalisation de la plateforme HealthTech
La Figure IV.5 montre l’exécution du premier nœud dans le réseau blockchain. Le cadre
en jaune souligne l’identifiant de ce nœud.
Ensuite, la Figure IV.6 présente le démarrage du deuxième nœud avec son identifiant
et son adresse blockchain.
Enfin, La Figure IV.7 met en évidence l’exécution du troisième nœud, avec l’identifiant
et le compte blockchain affichés dans l’image.
Pour assurer la connectivité entre les différents nœuds, nous utiliserons la commande
”admin.peers” de Geth afin de visualiser les nœuds appartenant au même réseau.
73
EMP Chapitre IV. Réalisation de la plateforme HealthTech
Dans notre système, nous utilisons IPFS pour stocker des données structurées et cryp-
tées qui représentent, dans notre cas, les DSE. À des fins de démonstration, nous avons
installé le serveur IPFS appelé ”kubo (go-ipfs)” comme illustré dans la Figure. IV.10.
Ainsi, chaque centre de données dispose d’un nœud IPFS qui lui permet de contribuer
avec ses ressources au processus de stockage des DSE. L’ajout des nœuds IPFS garantit
une disponibilité accrue des données sur la plateforme, renforçant ainsi considérablement
leur accessibilité.
Après l’installation d’un nœud IPFS, ce dernier contient une interface appelée WebUI
qui permet d’accéder à différentes fonctionnalités d’IPFS. L’interface WebUI affiche une
vue d’ensemble du nœud IPFS auquel nous sommes connecté. Nous pouvons y trouver
des informations telles que l’adresse ID du nœud, le nombre de blocs, la taille totale du
répertoire, etc. (voir Figure IV.9). IPFS, via son interface, permet d’explorer les fichiers,
de les télécharger et de les publier. Chaque opération nécessite l’utilisation d’un CID
(Content Identifier) pour le téléchargement ou la publication. De plus, l’interface WebUI
offre des fonctionnalités de gestion des paramètres. Nous pouvons configurer différentes
options telles que le stockage des données, les paramètres de routage, les paramètres de
sécurité, etc.
74
EMP Chapitre IV. Réalisation de la plateforme HealthTech
Dans notre travail, nous avons interagi avec les nœuds IPFS en utilisant des API
implémentées dans l’application web développée. Ainsi, cette opération est transparente
pour les utilisateurs finaux. Nous avons démontré l’utilisation d’IPFS dans le processus
de partage et de consultation, comme décrit dans la section suivant (IV.5).
Figure IV.10 — Interface WebUI pour la gestion des données dans un nœud IPFS.
Nous avons développé un prototype d’une application web pour l’autorité de santé, qui
est une composante principale de notre système.
L’autorité de santé est responsable de la gestion des comptes dans la blockchain. L’ap-
plication contient 3 parties comme montré dans la Figure IV.11 : l’autorité de santé, les
acteurs de santé et les patients. Les deux dernières parties sont utilisées pour les tests
75
EMP Chapitre IV. Réalisation de la plateforme HealthTech
Après d’être connectée avec un compte blockchain de l’autorité qui est créée lors du
déploiement, cette dernière peut ajouter des centres de santé tels que les hôpitaux et les
laboratoires. L’autorité a besoin d’inclure l’identifiant du centre, le nom et l’adresse dans
la blockchain (voir la Figure IV.12).
Figure IV.12 — Interface web pour l’ajour d’un nouveau centre de santé.
Les acteurs de santé tels que les médecins sont également inscrits par l’autorité de santé.
Nous avons démontré le processus d’inscription dans la partie III.3.1. L’autorité remplit les
informations des acteurs, telles que l’identifiant, le nom, l’adresse blockchain et l’identifiant
du centre auquel ils appartiennent (voir figure IV.13).
76
EMP Chapitre IV. Réalisation de la plateforme HealthTech
La réalisation d’une application web orientée aux hôpitaux pour le partage des dossiers
médicaux sur une blockchain privée est un travail complexe qui nécessite une étude minu-
tieuse des besoins et une conception soigneuse de l’architecture. Dans cette section, nous
présentons notre application web développée pour répondre à ces besoins. Nous avons
choisi des technologies performantes pour garantir la scalabilité et l’interopérabilité du
système afin de permettre à différents utilisateurs d’interagir avec les données médicales
stockées sur la blockchain de manière sécurisée.
Nous commençons par décrire l’environnement de travail, y compris les outils et techno-
logies utilisés. Ensuite, nous abordons le processus d’opérations blockchain pour présenter
le fonctionnement du système grâce à l’utilisation de contrats intelligents. Enfin, nous
présentons les interfaces graphiques permettant aux utilisateurs de naviguer et d’interagir
avec les données médicales stockées sur la blockchain.
77
EMP Chapitre IV. Réalisation de la plateforme HealthTech
Dans cette partie, nous décrivons l’ensemble des outils logiciels et des frameworks que
nous avons utilisés pour développer notre plateforme.
- VueJs : Vue.js est un framework JavaScript (JS) open-source pour construire des inter-
faces utilisateur et des applications à une seule page. Il utilise une architecture model–view
basée sur des composants et un Document Object Model (DOM) virtuel, ce qui le rend
efficace et polyvalent pour construire des interfaces utilisateur dynamiques.
- Django : Django est un framework web open-source écrit en Python. Il est utilisé
pour construire la partie backend des applications web et est connu pour son approche ӈ
batteries incluses”, ce qui signifie qu’il possède beaucoup de fonctionnalités intégrées pour
les tâches courantes de développement web telles que l’authentification des utilisateurs,
la gestion de la base de données. Il suit le modèle architectural modèle-vue-contrôleur
(MVC) et favorise le développement rapide et un design propre et pragmatique.
- Web3Js : Web3.js est une bibliothèque JavaScript pour interagir avec la blockchain
Ethereum. Elle permet aux développeurs d’interagir avec le réseau Ethereum, y compris
l’envoi et la réception d’Ether et l’interaction avec des contrats intelligents. Elle fournit une
API simple à utiliser pour les développeurs, ce qui facilite l’intégration de la fonctionnalité
de la blockchain dans les applications web.
- Axios : Axios est une bibliothèque JavaScript qui simplifie la réalisation de requêtes
HTTP depuis une application web. Elle fournit une API propre et facile à utiliser pour
effectuer des opérations asynchrones, telles que la récupération de données à partir d’un
API, l’envoi de données de formulaire ou le téléchargement de fichiers. Axios est construit
sur l’API XMLHttpRequest et elle est isomorphe donc elle peut fonctionner dans le navi-
gateur et serveur Node.js avec le même code source.
78
EMP Chapitre IV. Réalisation de la plateforme HealthTech
- Metamask : MetaMask est une extension de navigateur populaire qui agit comme une
interface utilisateur pour interagir avec des applications décentralisées (dApps) basées sur
la technologie blockchain. Il s’agit essentiellement d’un portefeuille numérique qui permet
aux utilisateurs de gérer leurs actifs cryptographiques et d’effectuer des transactions en
toute sécurité.
MetaMask prend en charge différents réseaux blockchain tels qu’Ethereum et permet
aux utilisateurs de stocker et d’envoyer des tokens, de signer des transactions et d’in-
teragir avec des contrats intelligents. Il fournit également une fonctionnalité de gestion
des identités permettant aux utilisateurs de gérer plusieurs adresses et de connecter leurs
comptes à différents sites et dApps, la Figure. IV.15 illustre le processus d’importation
d’un compte dans MetaMask.
Nous discutons dans cette partie la mise en place d’une application de partage des
dossiers médicaux dans une blockchain privée. Nous présentons les différentes fonctionna-
lités de l’application offertes aux hôpitaux, qui permettent une utilisation intuitive de la
plateforme.
79
EMP Chapitre IV. Réalisation de la plateforme HealthTech
Nous divisons notre présentation des fonctionnalités en deux groupes. Nous commen-
çons par les fonctionnalités principales de notre système qui interagissent avec les différents
composants de celui-ci, tels que la blockchain et IPFS. Ensuite, nous présentons ensemble
les fonctionnalités supplémentaires que nous avons jugées nécessaires pour une utilisation
optimale de notre application.
80
EMP Chapitre IV. Réalisation de la plateforme HealthTech
81
EMP Chapitre IV. Réalisation de la plateforme HealthTech
Après le partage, les dossiers sont stockés dans IPFS de manière décentralisée et sont
identifiés par une adresse de hachage nommé en anglais Content Identifier (CID) qui est
sauvegardée dans les résumés de la blockchain, le processus de partage est montré dans
la Figure. IV.19.
Médecin Patient
1 - Envoyer une demande de
partage
2 - Accepter la demande
3 - Partager le DSE
4 - DSE
IPFS
Blockchain
82
EMP Chapitre IV. Réalisation de la plateforme HealthTech
Le stockage dans IPFS permet de maintenir la disponibilité des DSE (Dossiers de Santé
Électroniques) même en cas de panne de certains nœuds.
L’accès aux dossiers de santé des patients se fait en deux étapes (voir la Figure. IV.21).
Tout d’abord, la récupération de l’ensemble des résumés des patients existant dans la blo-
ckchain, puis la récupération des DSE stockés dans l’IPFS en utilisant les CID sauvegardés
dans les résumées de la blockchain.
Il est important de noter que cette approche permet de garantir la sécurité et l’intégrité
des dossiers de santé, car les informations essentielles sont stockées dans la blockchain, tan-
dis que les données volumineuses sont conservées dans l’IPFS, assurant ainsi une gestion
efficace des dossiers médicaux.
83
EMP Chapitre IV. Réalisation de la plateforme HealthTech
Médecin Patient
1 - Envoyer une demande de
consultation
2 - Accepter la demande
3 - Consultation
8 - DSE
6-
En
és
vo
m ye
r le
su
ha
ré
7- (C chag
s
Ré
de
ID
és
cu ) ed
m
r
pé ' ad
de
su
rat res
an
ion
ré
se
em
du
de
-D
DS
er
E
4
oy
nv
-E
5
Blockchain
IPFS
Pour optimiser l’utilisation de notre application, nous avons ajouté plusieurs fonction-
nalités complémentaires. Cela inclut la gestion des profils, permettant aux utilisateurs de
créer et gérer différents profils en fonction de leurs rôles. De plus, nous avons intégré la
consultation de l’historique local, offrant un accès rapide aux informations précédemment
consultées, telles que les DSE et autres éléments pertinents. Enfin, notre application pro-
pose un système de gestion des rendez-vous, permettant aux utilisateurs d’organiser et
de planifier des rendez-vous directement au sein de l’application. Les sections suivantes
fourniront une explication détaillée et une présentation complète de ces fonctionnalités
complémentaires.
84
EMP Chapitre IV. Réalisation de la plateforme HealthTech
Seuls les utilisateurs avec des informations d’accès correctes peuvent utiliser les fonc-
tionnalités de notre plateforme. La Figure. IV.23 montre l’interface web pour accéder à
notre plateforme.
85
EMP Chapitre IV. Réalisation de la plateforme HealthTech
86
EMP Chapitre IV. Réalisation de la plateforme HealthTech
La Figure. IV.26 représente l’ensemble des DSE créés localement dans l’hôpital, ils sont
définis par leur titre, leur date d’ajout et le service de consultation.
Une fois qu’un médecin a examiné l’importance d’un DSE, il peut le partager afin qu’il
soit accessible par les différents hôpitaux.
Ainsi, comme présenté dans la Figure. IV.27 le médecin peut voir l’ensemble des DSE
récupérés de la blockchain si le patient accepte leur demande de consultation. Donc, le
médecin peut accéder au DSE créé par différents hôpitaux pour mieux comprendre l’état
de santé du patient et son historique médical.
87
EMP Chapitre IV. Réalisation de la plateforme HealthTech
chaque service. Après la demande d’un médecin, il crée un rendez-vous pour un patient
avec une date et une heure spécifiée. Le médecin peut également ajouter des notes sur
le rendez-vous. Après la création d’un rendez-vous, le médecin peut voir l’ensemble des
rendez-vous qui lui sont attachés et peut changer l’état d’un rendez-vous à ”Terminé” ou
”annulé”. Le patient peut également voir l’ensemble des rendez-vous avec les notes et l’état
qui leur sont attachés, ainsi que l’historique des rendez-vous créés.
IV.6 Conclusion
Le partage des dossiers médicaux entre les hôpitaux nécessite une plateforme qui
contient plusieurs composants pour toucher efficacement les différents critères. L’utili-
sation de la blockchain permet de garantir une grande sécurité, confidentialité et une
asymétrie de l’information. De plus, nous avons amélioré notre plateforme en utilisant un
stockage décentralisé avec l’utilisation de IPFS, ce qui permet d’assurer une disponibi-
lité élevée. Ces composants sont devenus des éléments cachés pour les utilisateurs finaux,
c’est pourquoi nous avons développé une application web pour les hôpitaux qui facilite
l’interaction avec les différents composants de notre système.
Dans ce chapitre, nous avons présenté les différentes étapes et les outils utilisés pour la
mise en œuvre de la blockchain et l’IPFS. À la fin, nous avons présenté l’interaction entre
les différents composants du système en utilisant l’application web, qui offre différentes
fonctionnalités développées spécifiquement pour les centres de santé, tels que les hôpitaux
dans notre cas.
88
Conclusion générale et perspectives
La technologie blockchain est une solution innovante pour résoudre de nombreux dé-
fis mondiaux. Le développement d’une plateforme de partage des dossiers médicaux sur
une blockchain privée nécessite d’assurer plusieurs fonctionnalités complexes pour bien
atteindre l’objectif et bénéficier de la blockchain. Plusieurs critères sont importants dans
le partage des dossiers médicaux, tels que la sécurité, la confidentialité, l’asymétrie de
l’information, etc.
D’après la littérature, plusieurs solutions ont été introduites dans le domaine de par-
tage des dossiers médicaux, mais restent incapables d’assurer les critères importants pour
le partage de données médicales. Une technique très récente que nous avons explorée dans
notre projet pour le stockage de données est IPFS, qui est un réseau de stockage permet-
tant de stocker les données de manière décentralisée et de garder une bonne gestion des
données médicales, cela garantit plusieurs critères tels que la disponibilité des données.
Dans notre projet de fin d’études, nous nous sommes intéressés au développement d’une
plateforme de partage des dossiers médicaux sur une blockchain privée et basée sur un
réseau de stockage décentralisé IPFS. Nous avons, pour cela, exploité les différents outils
matériels et logiciels existants pour mettre en œuvre une plateforme qui regroupe un
ensemble de fonctionnalités, parmi lesquelles le partage des dossiers médicaux entre les
centres et les prestataires de santé.
Notre travail est partagé en deux volets, notamment la mise en œuvre d’une architecture
globale qui contient la blockchain, le système de stockage, et l’autorité de santé d’un coté,
et de l’autre coté le développement d’une application web qui interagit avec les différents
composants de la plateforme et suit des standards universels pour le partage de dossiers
de santé électronique.
Le travail que nous avons réalisé a montré que le développement d’une plateforme de
partage des dossiers médicaux sur une blockchain privée est un processus assez complexe
vu les différentes spécifications et critères que la plateforme doit respecter. En effet, notre
plateforme suit une architecture modulaire qui se divise en 4 modules principaux à savoir
la blockchain, IPFS, l’autorité de santé et les centres médicaux tels que les hôpitaux qui
89
EMP Conclusion générale et perspectives
contiennent les utilisateurs finaux tels que les médecins et les patients. Pour le réseau blo-
ckchain, nous avons effectué le déploiement d’un réseau réel qui est basé sur la technologie
Ethereum et géré par une autorité de santé responsable du déploiement des contrats intel-
ligents qui gèrent le réseau blockchain et les inscriptions des différents utilisateurs. Nous
avons également déployé un réseau de stockage décentralisé IPFS avec un cryptage élevé
pour les données. IPFS garde les données confidentielles et sécurisées tout en assurant
leur disponibilité, même dans le cas d’une panne de quelques nœuds de stockage.
Le deuxième volet auquel nous nous sommes intéressés dans notre projet est le déve-
loppement d’une application web pour les hôpitaux qui gère la création et le partage des
dossiers de santé électronique selon des standards universels tels que FHIR et SNOMED.
Le médecin n’est pas capable de gérer les dossiers de santé électronique d’un patient si ce
dernier n’accepte pas les demandes d’autorisation de médecins, ce qui garantit la confi-
dentialité et la vie privée du patient. L’application contient d’autres fonctionnalités telles
que la gestion des utilisateurs et des services par l’administration, la gestion des rendez-
vous par les différents employés de chaque service et la gestion des dossiers de santé
électronique par les médecins. Cela facilite grandement l’utilisation de notre plateforme
et permet d’améliorer la qualité des soins et des recherches scientifiques.
Enfin, nous pensons que notre projet peut être amélioré de différentes manières. Nous
envisageons dans la future d’inclure d’autres volets tels que :
90
Bibliographie
[1] N. Menachemi and T. H. Collum, “Benefits and drawbacks of electronic health record
systems,” Risk management and healthcare policy, pp. 47–55, 2011.
[3] R. S. Evans, “Electronic health records : then, now, and in the future,” Yearbook of
medical informatics, vol. 25, no. S 01, pp. S48–S61, 2016.
[6] P. Schloeffel, “Electronic health record definition, scope and context. iso,” TC,
vol. 215, 2002.
[7] L. J. Kish and E. J. Topol, “Unpatients—why patients should own their medical
data,” Nature biotechnology, vol. 33, no. 9, pp. 921–924, 2015.
[8] J. Jin, G.-J. Ahn, H. Hu, M. J. Covington, and X. Zhang, “Patient-centric autho-
rization framework for sharing electronic health records,” in Proceedings of the 14th
ACM symposium on Access control models and technologies, pp. 125–134, 2009.
91
EMP Bibliographie
[12] R. Wodak, “Mediation between discourse and society : Assessing cognitive approaches
in cda,” Discourse studies, vol. 8, no. 1, pp. 179–190, 2006.
[13] D. Bender and K. Sartipi, “Hl7 fhir : An agile and restful approach to healthcare
information exchange,” in Proceedings of the 26th IEEE international symposium on
computer-based medical systems, pp. 326–331, IEEE, 2013.
[15] R. Noumeir and B. Renaud, “Ihe cross-enterprise document sharing for imaging :
interoperability testing software,” Source code for biology and medicine, vol. 5, pp. 1–
15, 2010.
[18] H. Jin, Y. Luo, P. Li, and J. Mathew, “A review of secure and privacy-preserving
medical data sharing,” IEEE Access, vol. 7, pp. 61656–61669, 2019.
[19] A. AlJarullah and S. El-Masri, “A novel system architecture for the national integra-
tion of electronic health records : a semi-centralized approach,” Journal of medical
systems, vol. 37, pp. 1–20, 2013.
92
EMP Bibliographie
[22] A. Jalal-Karim and W. Balachandran, “The optimal network model’s performance for
sharing electronic health record,” in 2008 IEEE International Multitopic Conference,
pp. 149–154, IEEE, 2008.
[23] D. Daglish and N. Archer, “Electronic personal health record systems : a brief review
of privacy, security, and architectural issues,” in 2009 world congress on privacy,
security, Trust and the Management of e-Business, pp. 110–120, IEEE, 2009.
[24] A. Ibrahim, B. Mahmood, and M. Singhal, “A secure framework for sharing electro-
nic health records over clouds,” in 2016 IEEE International Conference on Serious
Games and Applications for Health (SeGAH), pp. 1–8, IEEE, 2016.
[25] Y. Guo, M.-H. Kuo, and T. Sahama, “Cloud computing for healthcare research infor-
mation sharing,” in 4th IEEE international conference on cloud computing technology
and science proceedings, pp. 889–894, IEEE, 2012.
[27] K. Ren, C. Wang, and Q. Wang, “Security challenges for the public cloud,” IEEE
Internet computing, vol. 16, no. 1, pp. 69–73, 2012.
[28] T. F.-M. Pasquier, J. Singh, D. Eyers, and J. Bacon, “Camflow : Managed data-
sharing for cloud services,” IEEE Transactions on Cloud Computing, vol. 5, no. 3,
pp. 472–484, 2015.
[29] J.-J. Yang, J.-Q. Li, and Y. Niu, “A hybrid solution for privacy preserving medical
data sharing in the cloud environment,” Future Generation computer systems, vol. 43,
pp. 74–86, 2015.
[30] A. Hajian, V. R. Prybutok, and H.-C. Chang, “An empirical study for blockchain-
based information sharing systems in electronic health records : A mediation pers-
pective,” Computers in Human Behavior, vol. 138, p. 107471, 2023.
[32] R. Jabbar, N. Fetais, M. Krichen, and K. Barkaoui, “Blockchain technology for heal-
thcare : Enhancing shared electronic health record interoperability and integrity,” in
2020 IEEE International Conference on Informatics, IoT, and Enabling Technologies
(ICIoT), pp. 310–317, IEEE, 2020.
93
EMP Bibliographie
[33] A. Azaria, A. Ekblaw, T. Vieira, and A. Lippman, “Medrec : Using blockchain for me-
dical data access and permission management,” in 2016 2nd international conference
on open and big data (OBD), pp. 25–30, IEEE, 2016.
[34] H. Yang and B. Yang, “A blockchain-based approach to the secure sharing of health-
care data,” in Proceedings of the norwegian information security conference, pp. 100–
111, Nisk J Oslo, Norway, 2017.
[35] K. Fan, S. Wang, Y. Ren, H. Li, and Y. Yang, “Medblock : Efficient and secure
medical data sharing via blockchain,” Journal of medical systems, vol. 42, pp. 1–11,
2018.
[36] X. Liu, Z. Wang, C. Jin, F. Li, and G. Li, “A blockchain-based medical data sharing
and protection scheme,” IEEE Access, vol. 7, pp. 118943–118953, 2019.
[37] I. Boumezbeur, Zarour and Karim, “Privacy-preserving and access control for sharing
electronic health record using blockchain technology,” Acta Informatica Pragensia,
vol. 11, no. 1, pp. 105–122, 2022.
[38] S. Haber and W. S. Stornetta, How to time-stamp a digital document. Springer, 1991.
[40] D. Yermack, “Corporate governance and blockchains,” Review of finance, vol. 21,
no. 1, pp. 7–31, 2017.
[43] S. Houben, Robby and Alexander, “Cryptocurrencies and blockchain,” Legal context
and implications for financial crime, money laundering and tax evasion, pp. 1–86,
2018.
[44] D. Yaga, P. Mell, N. Roby, and K. Scarfone, “Blockchain technology overview,” arXiv
preprint arXiv :1906.11078, 2019.
[46] L. W. Cong and Z. He, “Blockchain disruption and smart contracts,” The Review of
Financial Studies, vol. 32, no. 5, pp. 1754–1797, 2019.
94
EMP Bibliographie
[47] J. Benet, “IPFS - Content Addressed, Versioned, P2P File System,” July 2014.
arXiv :1407.3561 [cs].
[48] D. C. Nguyen, P. N. Pathirana, M. Ding, and A. Seneviratne, “Blockchain for secure
ehrs sharing of mobile cloud based e-health systems,” IEEE access, vol. 7, pp. 66792–
66806, 2019.
[49] S. Kumar, A. K. Bharti, and R. Amin, “Decentralized secure storage of medical
records using blockchain and ipfs : A comparative analysis with future directions,”
Security and Privacy, vol. 4, no. 5, p. e162, 2021.
[50] Y. Chen, H. Li, K. Li, and J. Zhang, “An improved p2p file system scheme based
on ipfs and blockchain,” in 2017 IEEE International Conference on Big Data (Big
Data), pp. 2652–2657, IEEE, 2017.
[51] T. McGhin, K.-K. R. Choo, C. Z. Liu, and D. He, “Blockchain in healthcare appli-
cations : Research challenges and opportunities,” Journal of Network and Computer
Applications, vol. 135, pp. 62–75, 2019.
[52] D. V. Dimitrov, “Blockchain applications for healthcare data management,” Health-
care informatics research, vol. 25, no. 1, pp. 51–56, 2019.
[53] S. A. Abdullah Albeyatti and U. micheal, “Meddicalchain : The healthcare of tomor-
row,” vol. 12, MDPI AG, 2018.
[54] N. Nchinda, A. Cameron, K. Retzepi, and A. Lippman, “Medrec : a network for
personal information distribution,” in 2019 international conference on computing,
networking and communications (ICNC), pp. 637–641, IEEE, 2019.
[55] T. T. Thwin and S. Vasupongayya, “Blockchain-based access control model to pre-
serve privacy for personal health record systems,” Security and Communication Net-
works, vol. 2019, 2019.
[56] W. Ni, X. Huang, J. Zhang, and R. Yu,“Healchain : A decentralized data management
system for mobile healthcare using consortium blockchain,” in 2019 Chinese Control
Conference (CCC), pp. 6333–6338, IEEE, 2019.
[57] H. Li, X. Yang, H. Wang, W. Wei, and W. Xue, “A controllable secure blockchain-
based electronic healthcare records sharing scheme,” Journal of Healthcare Enginee-
ring, vol. 2022, 2022.
[58] Q. Xia, E. B. Sifah, A. Smahi, S. Amofa, and X. Zhang,“Bbds : Blockchain-based data
sharing for electronic medical records in cloud environments,” Information, vol. 8,
no. 2, p. 44, 2017.
[59] M. Reisman,“Ehrs : the challenge of making electronic data usable and interoperable,”
Pharmacy and Therapeutics, vol. 42, no. 9, p. 572, 2017.
95
EMP Bibliographie
[60] G. S. Birkhead, M. Klompas, and N. R. Shah, “Uses of electronic health records for
public health surveillance to advance public health,” Annual review of public health,
vol. 36, pp. 345–359, 2015.
96
Annexes
Le bon fonctionnement d’un système in-
formatique est conditionné par le choix
judicieux des différentes technologies et
des outils de travail appropriés. Dans
cette partie du travail, nous présentons
en détail la configuration et le dévelop-
pement de notre système proposé pour
le partage des dossiers médicaux au sein
d’une blockchain privée, afin d’assurer
la compréhension adéquate et la repro-
ductibilité du système.
EMP Annexe A. Contrats intelligents
A Contrats intelligents
Dans cette annexe, nous présentons le code Solidity des contrats déployés dans notre
plate-forme HealthTech.
98
EMP Annexe A. Contrats intelligents
36 }
37 /* * @dev remove account from authority
38 @param _address address to remove */
39 function rmAccount ( address _address ) public onlyAuthority {
40 ( uint index , bool exist ) = che ck Hea lt hAu tho ri ty ( _address ) ;
41 require ( exist == true , " center does not exist !! " ) ;
42
43 authorities [ index ] = authorities [ authCount ];
44 authCount - -;
45 } }
99
EMP Annexe A. Contrats intelligents
29 uint index = 0;
30 bool exist = false ;
31 for ( uint i = 0; i < centers . length ; i ++) {
32 if ( centers [ i ]. id == _id || centers [ i ]. addr == _address ) {
33 exist = true ;
34 index = i ;
35 break ;
36 }
37 }
38 return ( index , exist ) ;
39 }
40 /* *
41 * ////////////////////////////////////////////////////////////
42 * PUBLIC METHODS FOR CONTRACT INTERFACE
43 * ////////////////////////////////////////////////////////////
44 */
45
46 function getNumberOfCenters () view public returns ( uint ) {
47 uint len = centers . length ;
48 return len ;
49 }
50
51 function getCenterByIndex ( uint _index ) view public returns ( uint ,
string memory , address ) {
52 require ( _index >=0 && _index < centers . length , " Wrong Index !! " ) ;
53 return ( centers [ _index ]. id , centers [ _index ]. name , centers [ _index
]. addr ) ;
54 }
55
56 function addHealthCenter ( uint _id , string memory _name , address
_account ) public onlyAuthority {
57 ( , bool exist ) = checkHealthCenter ( _id , _account ) ;
58 require ( exist == false , " center id or account already exist !! " ) ;
59
60 centers . push ( center ( _id , _name , _account ) ) ;
61 }
62
63 function rmHealthCenter ( uint _id ) public onlyAuthority {
64 ( uint index , bool exist ) = checkHealthCenter ( _id , address (0) ) ;
65 require ( exist == true , " center does not exist !! " ) ;
66
67 centers [ index ] = centers [ centers . length -1];
68 centers . pop () ;
100
EMP Annexe A. Contrats intelligents
69 }
70 }
101
EMP Annexe A. Contrats intelligents
102
EMP Annexe A. Contrats intelligents
103
EMP Annexe A. Contrats intelligents
8
9 /* *
10 * @title Patient
11 * @dev Implements Patient methods
12 */
13 contract Patient {
14
15 HealthAuthority authority ;
16 HealthActor actor ;
17
18 struct patient {
19 uint id ;
20 string name ;
21 address addr ;
22 EHR ehr ;
23 string public_key ;
24 }
25 patient [] patients ;
26
27 modifier onlyAuthority () {
28 ( uint index , bool exist ) = authority . ch eck Hea lt hAu th ori ty ( msg .
sender ) ;
29 require ( exist , " Caller have not permession " ) ;
30 _;
31 }
32
33 constructor ( address authorityAddress , address actorAddress ) {
34 authority = HealthAuthority ( authorityAddress ) ;
35 actor = HealthActor ( actorAddress ) ;
36 }
37
38 /* *
39 *
///////////////////////////////////////////////////////////////////////
42 */
43 function checkPatient ( uint _id , address _address ) view public
returns ( uint , bool ) {
44 uint index = 0;
104
EMP Annexe A. Contrats intelligents
69 */
70 // //////// ONLY CALL BY PATIENT //////////
71 function getNumberOfRequest () public view returns ( uint256 ) {
72 ( uint index , bool exist ) = checkPatient (0 , msg . sender ) ;
73 require ( exist , " You are not a patient !! " ) ;
74 return patients [ index ]. ehr . getNumberOfRequest () ;
75 }
76 function getRequestByIndex ( uint256 _requestID ) public view returns (
string memory , uint256 , EHR . RequestType , EHR . RequestState , string
memory ) {
77 ( uint index , bool exist ) = checkPatient (0 , msg . sender ) ;
78 require ( exist , " You are not a patient !! " ) ;
105
EMP Annexe A. Contrats intelligents
106
EMP Annexe A. Contrats intelligents
134 */
135
136 function getNbOfEHR ( uint _patientID ) public view returns ( uint256 ) {
137 ( uint index , bool exist ) = checkPatient ( _patientID , msg . sender ) ;
138 require ( exist , " This patient does not exist !! " ) ;
139 return patients [ index ]. ehr . ehrCount () ;
140 }
141
142 // test
143 function getEHR ( uint _ehrID , uint _patientID ) view public returns (
string memory , uint256 , string memory , string memory , string memory
, string memory , string memory ) {
144 // EHR = ( title , date , actorName , centerName , hash , ipfs ,
secretKey )
145
146 // // if the caller is patient
147 ( uint index , bool isPatient ) = checkPatient (0 , msg . sender ) ;
148 if ( isPatient ) {
149 EHR . EHRAbstract memory temp1 = patients [ index ]. ehr .
getEHRAbstract ( _ehrID ) ;
107
EMP Annexe A. Contrats intelligents
108
EMP Annexe A. Contrats intelligents
///////////////////////////////////////////////////////////////////////
185 */
186 function addPatient ( uint _id , string memory _name , address _account ,
string memory _pKey ) public onlyAuthority {
187 ( , bool exist ) = checkPatient ( _id , _account ) ;
188 require ( exist == false , " patient id or account already exist !! " ) ;
189
190 patients . push ( patient ( _id , _name , _account , new EHR () , _pKey ) ) ;
191 }
192
193 function rmPatient ( uint _id ) public onlyAuthority {
194 ( uint index , bool exist ) = checkPatient ( _id , address (0) ) ;
195 require ( exist == true , " patient does not exist !! " ) ;
196
197 patients [ index ] = patients [ patients . length -1];
198 patients . pop () ;
199 }
200 }
109
EMP Annexe A. Contrats intelligents
18 CANCELLED
19 }
20 struct request {
21 uint actorID ;
22 uint256 timestamp ;
23 RequestType rType ;
24 RequestState state ;
25 string ipfsAddress
26 string secretKey
27 }
28 request [] requests ;
29 enum EHRType {
30 examen ,
31 SCANNER
32 }
33 struct EHRAbstract {
34 // uint id ; index in the array of EHRAbstract
35 string title ;
36 uint256 date ;
37 uint actorID ;
38 string ehrHash ;
39 string ipfsHashAddress ;
40 string secretKey ;
41 }
42 // EHRAbstract [] ehrArray ;
43 mapping ( uint256 = > EHRAbstract ) public ehrArray ;
44 uint256 public ehrCount = 0;
45
46 constructor () {}
47
48
49 /* *
50 * /////////////////////////////////////////////////////////
51 * PUBLIC METHODS FOR REQUEST PURPOSE
52 * /////////////////////////////////////////////////////////
53 */
54 function c he ckE xpi re dRe qu est s () internal {
55 for ( uint i =0; i < requests . length ; i ++) {
56 if ( requests [ i ]. state == RequestState . PENDING ) {
57 uint256 currentTimestamp = block . timestamp ;
58 uint256 timeDifference = currentTimestamp - requests [ i ].
timestamp ;
59 if ( timeDifference > EXPIRED_TIME ) {
110
EMP Annexe A. Contrats intelligents
111
EMP Annexe A. Contrats intelligents
== _type ) {
96 uint256 timeDifference = currentTimestamp - requests [i
-1]. timestamp ;
97 if ( timeDifference > EXPIRED_TIME ) { // CANCELLED
98 return ( RequestState . CANCELLED , 0) ;
99 } else {
100 return ( requests [i -1]. state , i -1) ;
101 }
102 }
103 }
104 return ( RequestState . CANCELLED , 0) ;
105 }
106
107 // ### for internal utilization ###
108 function checkRequest ( uint _requestID ) view public returns ( bool ,
bool ) {
109 uint256 currentTimestamp = block . timestamp ;
110 uint256 timeDifference = currentTimestamp - requests [ _requestID
]. timestamp ;
111
112 if ( timeDifference > EXPIRED_TIME ) { // CANCELLED
113 return ( false , false ) ;
114 }
115 if ( requests [ _requestID ]. state == RequestState . ACCEPTED ) {
116 return ( true , true ) ;
117 }
118 return ( true , false ) ; // REFUSED OR PENDING
119 }
120 /* *
121 * /////////////////////////////////////////////////////////
122 * PUBLIC METHODS FOR EHR PURPOSE
123 * /////////////////////////////////////////////////////////
124 */
125
126 // // /// // /// // /// // /// FOR OWNER
127 function getEHRAbstract ( uint _ehrID ) view public returns (
EHRAbstract memory ) {
128 require ( _ehrID > 0 && _ehrID <= ehrCount , " EHR does not exist !!
");
129 return ehrArray [ _ehrID ];
130 }
131
132 // // /// // /// // /// // /// FOR ACTOR
112
EMP Annexe A. Contrats intelligents
113
EMP Annexe C. Application web pour les hopitaux
166 }
114
EMP Annexe C. Application web pour les hopitaux
Nous avons dans cette partie bien détaillé la mise en œuvre de l’application web déve-
loppée.
Dans cette section, nous avons détaillé la conception de notre application web pour les
hôpitaux afin de bien comprendre la structure et le fonctionnement de l’application.
Diagramme de classe
Dans notre conception de l’application, nous avons créé le diagramme de classes, qui
est utilisé pour modéliser la structure des classes et les relations entre elles. Ils servent à
la fois pour la conception initiale de l’application en définissant les classes, leurs attributs
et leurs méthodes, ainsi que pour la modélisation des relations entre ces classes. Les
diagrammes de classes sont également utilisés comme documentation pour l’application,
offrant une vue d’ensemble de sa structure et facilitant la compréhension du code pour les
développeurs futurs. Ils sont également utiles pour la communication entre les membres
de l’équipe de développement et les parties prenantes, en fournissant une représentation
visuelle claire de l’architecture de l’application.
115
EMP
user
+ nom : String patient
+ prenom : String - matricule_P : Long
hopital + dateDeNaissance : Date - situationFamilliale : String
+ genre : String - numeroTel : Long
- id_hopital : Number + dateInscription : Date - adresse : Long
- nom_hopital : String + email : Long - photo : String
- adresse_hopital : Long + username : String - taille : Number
- fax : Long 0..* staff + authentification () : java.lang.Boolean - poids : Float
0..* - adresse : java.lang.Long ... - group sanguin : String
- photo : java.lang.Long - password : String
0..1 - password : java.lang.Long + voir_liste_autorisation () : java.lang.Object
- num_tel : java.lang.Long + repondre_autorisation () : java.lang.Boolean
+ voir_rendezvous () : java.lang.Object
+ voir_DSE () : java.lang.Object
...
1..1
médecin
- matricule_M : Long
- grade_scientifique : String
+ demande_consultation () : java.lang.Boolean
+ demande_partage () : java.lang.Boolean
admin + voir_DSE () : java.lang.Object
employe
- matricule_A : Number + partager_DSE () : java.lang.Object
+ voir_rendez-vous () : java.lang.Object - matricule_E : Long
- roleAdmin : String 1..*
+ voir_liste_medecins () : java.lang.Object + cree_rendezvous () : java.lang.Object
+ ajouter_user () : java.lang.Object + voir_liste_employees () : java.lang.Object 0..1 + voir_liste_medecins () : java.lang.Object
+ modifer_user () : java.lang.Object ... + voir_liste_patients () : java.lang.Object rendez_vous
+ supprimer_user () : java.lang.Boolean
... - code_rendezvous : int
+ voir_user () : java.lang.Object 1..*
+ ajouter_lab () : java.lang.Object - date_rendezvous : Date
+ supprimer_lab () : java.lang.Boolean - lib_rendezvous : Long
+ ajouter_composant () : java.lang.Object consultation
+ ajouter_medicaments () : java.lang.Object
- id_consultation : int
+ voir_statistique () : java.lang.Number traitement
... - titre : String 0..*
- date : Date - nom : int
- période : Date
- instructions : String
116
compte_rendu allergie
0..* 0..1
1/3
Dans ce paragraphe, nous avons représenté et expliqué les différents choix et technolo-
gies utilisés dans le développement de notre application web
Architecture de l’API
ans notre développement de l’application, nous avons choisi l’architecture REST pour
la création des API, qui est utilisée par la partie frontend avec la bibliothèque Axios.
’API REST Framework de Django est une extension puissante qui facilite la création
d’API RESTful dans le backend. Elle fournit des fonctionnalités telles que la sérialisation
des données, la gestion des requêtes HTTP, la gestion des authentifications et des autori-
sations, ainsi que la définition des points d’entrée (endpoints) de l’API. Grâce à cette API,
117
EMP Annexe C. Application web pour les hopitaux
vous pouvez définir les ressources et les opérations disponibles dans votre backend Django,
ce qui permet au frontend de communiquer avec le backend de manière standardisée.
D’un autre côté, Axios est une bibliothèque populaire de requêtes HTTP pour Vue.js.
Elle facilite l’envoi de requêtes depuis le frontend vers le backend, permettant ainsi de
consommer les API créées avec Django REST Framework. Axios prend en charge les
requêtes GET, POST, PUT, DELETE, et fournit des fonctionnalités avancées telles que
la gestion des en-têtes, des paramètres, des intercepteurs de requêtes et de réponses, ainsi
que la gestion des erreurs. Avec Axios, vous pouvez établir des connexions HTTP fiables
et flexibles entre le frontend Vue.js et l’API RESTful du backend Django.
En combinant l’API REST Framework de Django avec Axios de Vue.js, vous pou-
vez réaliser des opérations telles que la récupération de données à partir du backend, la
création, la mise à jour et la suppression de ressources, tout en respectant les principes
REST. Vous pouvez également gérer les autorisations et l’authentification en utilisant les
fonctionnalités fournies par l’API REST Framework et Axios.
Backend
Dans la partie backend, nous avons divisé notre projet en plusieurs modules en fonc-
tionnalité de notre application. Nous avons créé 3 modules principaux tels que ”Accounts”,
”Appointment” et ”Record” (voir la Fig. C.2, et nous avons utilisé quelques modules pré-
existants dans le projet Django. Cette division modulaire présente plusieurs avantages
tels que la maintenabilité du code, une meilleure réutilisation du code et une plus grande
flexibilité et évolutivité de l’application.
118
EMP
119
Frontend
1 Nom de projet : H e a l t h A p p F r o n t
2 - . vscode
3 - public
4 - src
5 - assets
6 - auth
7 - components
8 - router
9 - store
10 - userPages
11 - views
12 - App . vue
13 - main . js
14 - . dockerignore
15 - . env
16 - . eslintrc . js
120
EMP Annexe C. Application web pour les hopitaux
17 - . gitignore
18 - Dockerfile
19 - README . md
20 - index . html
21 - package . json
22 - vite . config . js
Code Source
Notre code source de la plateforme est dans GitHub en mode privé. Le projet est divisé
en 4 dépôts :
Dépôt de la blockchain et de l’autorité de santé :
https://github.com/Badro1859/EHR-SHARE-SYS
Chaque projet contient un fichier Readme qui comprend l’ensemble des étapes pour
l’installation et le déploiement.
121
Résumé : L’accès à l’historique médical des patients est une chose très importante dans les
soins médicaux, pouvant sauver des vies ou causer des erreurs graves. Plusieurs technologies sont
utilisées pour répondre à ce besoin, permettant d’accéder à l’historique des patients, mais elles
présentent quelques défis importants tels que l’interopérabilité, l’asymétrie de l’information et
la confidentialité de la vie privée des patients.
Pour surmonter ces défis, nous avons développé, dans le cadre de ce projet, une plateforme de
partage des dossiers médicaux sur une blockchain privée. Cette plateforme permet aux différents
acteurs de santé d’accéder au dossier de santé électronique de manière totalement sécurisée et
fluide, tout en respectant les autorisations accordées par les patients, qui conservent un contrôle
total sur leurs DSE. Dans le but d’améliorer la qualité des soins tout en préservant la vie privée
des patients.
Mots-clés : Blockchain, Partage des données médicales, Confidentialité des données, dossier
de santé électronique, IPFS, Cryptographie.
Abstract :
Access to patient’s medical history is of utmost importance in medical care, as it can save
lives or lead to serious errors. Several technologies are used to address this need, enabling access
to patient histories, but they pose significant challenges such as interoperability, information
asymmetry, and patient privacy.
To overcome these challenges, we have developed, as part of this project, a platform for sharing
medical records on a private blockchain. This platform allows different healthcare stakeholders to
securely and seamlessly access electronic health records while respecting the permissions granted
by patients, who retain full control over their EHRs. The goal is to improve the quality of care
while preserving patient privacy.
Keywords : Blockchain, Medical Data Sharing, Electronic health record, Cryptographie, Data
privacy, IPFS.
: jÊÓ
¨ñ¯ð ©JÖßð h@ð P B@ Y® JK à @ áºÖß IJ k ,úæQÖÏ @ t'PAK é¯QªÓ @ Yg ø PðQåË@ áÓ , éJ jË@ éK A«QË@ ÈAm× ú¯
. .
à P@ñJË@ ÐY«ð ¯@ñJË@ ÐY« ÉJÓ HAK
Ym' ék. @ñK AîDºËð , ék. AmÌ '@ è Yë éJJ.ÊJË ÐYjJ HAJ
J®K èY« Yg. ñK . èQ¢k ZA¢k @
.úæQÖÏ @ éJ ñk ¡®kð HAÓñÊªÖ Ï @ ú¯
Ö Ï ( á»ñÊK
HCm . é»PA . ) ÉJºË@ éÊÊ éJ J® K úΫ YÒJªK é JÓ QK ñ¢JK AJÔ¯ , HAK
. YjJË@ è Yë úΫ I.ʪJÊË
, éÊð éJÓ @ é®K Q¢. úGð QºËB @ éjË@
Ém. úÍ@ ÈññË@ éJ jË@ éK A«QË@ ÈAm.× ú¯ áÒJêÒÊË é JÖÏ @ è Yë iJK .úæQÖÏ @
ám' úÍ@ ¨ðQåÖÏ @ @ Yë ¬YîE . éJ Kð QºËB @ ÑîECm . ú¯ ÉÓA¾Ë@ ÕºjJËAK. àñ¢®Jm' áK YË@ úæQÖÏ @ à X@ úΫ ZA JK. ½Ë Xð
.úæQÖÏ @ éJ ñk úΫ A®mÌ '@ð éJ jË@ éK A«QË@ èXñk.
éJ ñk ,úGð QºËB @ éjË@
Ém. ,ÉJºË@ éÊÊ , éJ J.¢Ë@ HA Ó
KAJJ.Ë@ é»PA KAJJ.Ë@ éJ ñk : éJ kAJ®ÖÏ @ HAÒʾË@
, HA
. IPFS , Q® Ë@ , HA KAJJ.Ë@