End of Studies Projects

*** Projects targeted to undergraduate student stages. Specific English translation available upon request.

1 – Contexte

Le GRIIS est un groupe interdisciplinaire dont un des projets majeurs consiste à concevoir et réaliser une plateforme permettant l’obtention et l’utilisation de données parmi les acteurs du monde de la santé et des services sociaux, tout en assurant la sécurité des données et l’anonymisation des participants. Les sources de ces données sont souvent hétérogènes (multiples modèles de connaissance, multiples schémas de données, multiples systèmes de base de données). De plus, elles évoluent indépendamment les unes des autres, ce qui rend le défi encore plus important.

La plateforme PARS3 est une solution développée par le GRIIS qui veut répondre à ces besoins et aux demandes des principaux acteurs impliqués dans le domaine (cliniciens, chercheurs, gestionnaires et patients). Cette plateforme est en cours de développement. L’équipe qui s’en occupe est composée de professionnels et d’étudiants chercheurs. Le développement est actuellement dans une phase d’exploration par prototypage. Plusieurs projets de fin d’études sont disponibles au sein du GRIIS dans ce contexte.

 

2 – Description des projets

2.1 Mise en place d’une façade à JOOQ en Java

Pour des raisons de sécurité, de stabilité et de maintenabilité, nous aimerions pouvoir disposer d’une façade sécuritaire permettant l’accès aux nombreuses bases de données utilisées lors de l’exploitation de PARS3. L’environnement de développement retenu utilise Liquibase afin de générer, maintenir et déployer facilement les bases de données du système. Le framework JOOQ est utilisé pour simplifier leur utilisation en Java. Si JOOQ offre une première protection contre des attaques externes (notamment l’injection), il serait utile de disposer d’une façade assurant une deuxième ligne de défense et un découplage de JOOQ lui-même. Finalement, une évaluation de performance devra être réalisée afin de confirmer le choix de cette approche.

Concepts : sécurité, maintenabilité, découplage, bases de données.

Technologies : Java, JOOQ, Liquibase, SQL.

2.2 Développement d’un service d’anonymisation dans la plateforme

Les fonctions de sécurité et d’anonymisation sont réalisées grâce à plusieurs services qui tendent à minimiser la rétention de connaissance locale. L’architecture décentralisée rend ainsi les attaques localisées moins pertinentes, car, par exemple, les données ne sont jamais accompagnées des identifiants des patients. Ce projet consiste à développer un des services de PARS3 qui s’occupe de récupérer, générer et maintenir des tables assurant l’anonymisation des patients à travers le système.

Concepts : anonymisation, chiffrement, sécurité, décentralisation.

Technologies : Java, Spring, Camel, Grails.

2.3 Développement d’applications clientes de la plateforme

Dans le but d’obtenir les données et les utiliser, la plateforme PARS3 communique avec plusieurs applications clientes qui assurent le lien entre les intervenants d’un projet d’acquisition de données (PAD). Parmi ces applications, l’application de gestion des résultats obtenus lors des extractions est une composante essentielle qui permet à un chercheur de recevoir, de traiter, d’analyser et de présenter les données de santé et le fruit de leur analyse. Ce projet consiste à mettre en place une telle application. Nous disposons d’une pile technologique (Vue.js, Webpack, Babel, SASS, ES5/ES6) assemblée afin de construire celle-ci. Cependant, il sera possible d’utiliser toute autre technologie permettant d’augmenter les fonctionnalités offertes au chercher ou de diminuer le temps d’élaboration et d’évolution de l’application. D’autres applications nécessaires au bon déroulement d’un projet d’acquisition des données (voir le diagramme ci-joint) pourraient également être développées dans le cadre d’autres projets.

Concepts : interfaces personne-machine, UI/UX, manipulation de données.

Technologies : Vue.js, HTML5, Polymere, Python, R.

2.4 Mise en place d’un superviseur de système

L’architecture du système PARS3 comporte plusieurs dizaines de services d’une quinzaine de types différents. Les services sont en grande partie agnostiques les uns des autres et leur gestion est complètement décentralisée. La surveillance du système représente donc un défi de taille que nous vous invitons à relever. Afin de pouvoir suivre les services, déceler les goulots d’étranglement et étudier la stabilité du système, ce projet propose de mettre en place un superviseur des services et une configuration permettant d’envoyer des alertes à différents acteurs, tout en préservant la sécurité des données et l’intégrité du système. Le système est présentement déployé sur des serveurs virtuels portés par une infrastructure DELL PowerEdge VRTX.

Concepts : surveillance et contrôle, analyse de performance, machines virtuelles, multiples serveurs physiques.

Technologies : Scripting, Zabix, ELK/Prometheus.

2.5 Développement d’un répertoire d’algorithmes d’identification de cas

Dans le domaine de la recherche en santé et services sociaux, les algorithmes de sélection de cas peuvent être construits à partir de données administratives de santé, comme les codes diagnostiques ou les codes de médicaments et permettent d’identifier des populations spécifiques d’individus. Il existe un grand nombre d’algorithmes développés par différents groupes de recherche à travers le monde ayant chacune des caractéristiques métrologiques spécifiques. Un travail de recension des algorithmes a déjà été réalisé par notre équipe de recherche. Afin de pouvoir partager les différents algorithmes recensés pour différentes thématiques de santé, ce projet propose de développer un répertoire des algorithmes de sélection de cas interrogeable, facile d’utilisation et accessible en ligne.

Le projet consiste à développer une application web permettant d’exploiter ce répertoire. Plus spécifiquement, il faut modéliser et créer la base de données, définir des fonctions permettant d’allier la recherche textuelle et la recherche structurée, développer une interface personne-machine conviviale.

Concepts : bases de données, interfaces personne-machine, UX/UI.

Technologies : PostgreSQL, Vue.js, HTML5, Python ou Java.