Vue d'ensemble

Une vue d’ensemble du fonctionnement de LinkR

Introduction

Voici une vision globale de LinkR :


  • LinkR s'articule autour de projets, dans lesquels des sets de données sont chargés, contenant des données au format OMOP et utilisant des terminologies standards.
  • Ces données peuvent être mises en qualité grâce à l'utilisation et au partage de scripts de data cleaning.
  • Dans ces projets, l'utilisateur peut visualiser et analyser les données à l'aide de widgets, qui utilisent des plugins paramétrés.
  • Il est également possible d'accéder à un environnement de développement R et Python via la console de développement.

Voyons maintenant ces différents éléments un à un.

Sets de données

LinkR fonctionne avec OMOP, un modèle de données commun international pour les données de santé.

Vous pouvez importer des données depuis différentes sources : une base de données, des fichiers Parquet ou des fichiers CSV.

Un même set de données peut être utilisé dans plusieurs projets.

Pour l’instant il est nécessaire de coder en R le script d’import des données. Une interface graphique sera codée dans une prochaine version.

Voir comment importer des données.

Intégration de données d'autres formats qu'OMOP

Il n'est actuellement pas possible d'importer des données autres qu'au format OMOP.

Il est prévu dans les prochains développements d'intégrer :

  • Des données au format FHIR
  • Des données dans un format personnalisé (typiquement un recueil de données au format CSV ou Excel)

Terminologies

Le modèle de données OMOP se base sur des terminologies standards, tells que :

  • LOINC pour la biologie
  • SNOMED pour les diagnostics
  • RxNorm pour les médicaments
  • etc

Les terminologies sont souvent importées en même temps que les données.

Toutes ces terminologies sont disponibles sur Athena.

Voir les terminologies.

Scripts de data cleaning

Les données importées au format OMOP nécessitent souvent d’être mises en qualité à l’aide de scripts de data cleaning.

Un exemple classique est représenté par les données de poids et taille, qui, du fait de la façon dont sont créés les logiciels de soin, comportent souvent des données aberrantes, par exemple par inversion entre les champs poids et taille.

Des scripts pour exclure ce type de données sont souvent réalisés. LinkR permet de faciliter le partage de tels scripts, qui, du fait de l’utilisation du modèle de données commun OMOP, seront susceptibles de fonctionner sur les différents sets de données importés dans LinkR.

Quelques autres exemples de scripts :

  • calcul de scores, tels que l’IGS-2 ou le score SOFA
  • calcul de diurèse, en faisant la somme des différents paramètres (sonde urinaire, néphrostomie etc)
  • etc

Voir comment créer un script de data cleaning.

Projets

Un projet est un environnement R et Python où seront analysées des données.

Un projet peut correspondre à une étude (par exemple une étude sur la prédiciton de la mortalité), mais également à des analyse de données hors étude, tels que la création de tableaux de bord (un tableau de bord permettant de visualiser l’activité d’un service hospitalier par exemple).

Lors de la création d’un projet, l’utilisateur choisit les données à utiliser, depuis les sets de données chargés dans l’application.

Le projet s’articulera autour de deux pages principales :

  • Page de données individuelles : ici, l’utilisateur pourra recréer l’équivalent d’un dossier clinique, en créant des onglets où il configurera des widgets, par exemple :

    • un onglet “Hémodynamique” où nous créerons des widgets permettant de visualiser la fréquence cardiaque, la pression artérielle et les traitements anti-hypertenseurs reçus par le patient)

    • un onglet “Notes” où nous afficherons toutes les documents textuels concernant le patient (compte-rendus hospitaliers, notes cliniques quotidiennes etc)

    • un onglet “Infectiologie” où nous afficherons toutes les données concernant l’infectiologie (prélèvements bactériologiques, antibioques reçus etc)

    • etc

  • Page de données agrégées : ici, l’utilisateur créera de la même façon des onglets où il configurera des widgets. Il s’agira d’analyses sur un groupe de patients, par exemple :

    • un onglet “Données démographiques” où l’utilisateur affichera les données démographiques du groupe de patients (âge, sexe, durée de séjour, mortalité etc)

    • un onglet “Données aberrantes” où sera affichée la distribution des différents paramètres et excluera les données aberrantes

    • un onglet “Analyse de survie” où un widget sera configuré pour réaliser l’analyse de survie de la population sélectionnée

    • etc

A l’aide de l’interface low-code (qui associe une interface de code et une interface graphique), le travail collaboratif entre data scientists, statisticiens et cliniciens devient plus facile.

Voir comment créer un projet.

Plugins

Les plugins sont des briques de code R et Python qui permettent d’ajouter des fonctionnalités à LinkR.

Comme nous l’avons vu dans le paragraphe précédent, les projets s’articulent en onglets.

Ces onglets comportent des widgets, qui sont des plugins appliqués à des données.

Par exemple, si je choisir le plugin “Timeline var. continues” pour être appliqué au paramètre “Fréquence cardiaque”, le widget résultant sera un graphique sous forme de timeline qui affichera la fréquence cardiaque du patient sélectionné.

Il existe des plugins de données individuelles, qui sont les éléments permettant de recréer un dossier médical, par exemple :

  • Lecteur de document : ce plugin permet d’afficher les documents textuels (compte-rendus hospitaliers, notes cliniques) et de les filtrer (avec recherche de mot clef ou avec filtre sur le titre par exemple)
  • Timeline var. continues : comme évoqué ci-dessus, pour afficher les données temporelles sous forme de timeline
  • Tableau de données : permet d’afficher les données sous forme de tableau de données, comme par exemple l’affichage de la biologie d’un patient en fonction de l’horaire de prélèvement
  • etc…

Nous avons aussi des plugins de données agrégées, qui serviront à visualiser et analyser des données agrégées, par exemple :

  • Analyse de survie : permet de réaliser des analyses de survie
  • Machine learning : pour entraîner et évaluer des modèles de machine learning, avec des librairies R ou Python
  • etc…

Voir comment créer un plugin.

Widgets

Les widgets correspondent à des plugins appliqués à des données.

Après avoir créé un onglet, je peux y ajouter plusieurs widgets.

Ces widgets peuvent être changés de taille et déplacés sur la page.

Groupes de patients

Au niveau d’un projet, un set de données peut être partagé en plusieurs groupes de patients (ou subsets).

Un groupe de patients est un sous-ensemble du set de données global, après avoir appliqué des filtres pour sélectionner des patients.

Voici des exemples de groupes de patients que l’on pourrait imaginer sur la base de données MIMIC, qui comporte les séjours de plus de 50 000 patients en réanimation, adulte et pédiatrique :

  • Patients de plus de 18 ans admis en réanimation médicale pour COVID-19
  • Patients ayant un code CIM-10 de pneumopathie infectieuse et ayant été traité par Amoxicilline
  • Patients exclus : il peut être utile de créer un groupe avec uniquement les patients exclus des analyses
  • etc…

Pour l’instant il est nécessaire de coder en R les scripts pour créer les groupes de patients. Une interface graphique sera codée dans une prochaine version.

Voir comment créer un groupe de patients.

Conclusion

Nous avons vu les différents éléments composant LinkR.


Nous allons maintenant voir :