Importer des données

Comment importer des données depuis différentes sources : bases de données, Parquet, CSV…

Introduction

Il est possible dans LinkR de gérer plusieurs sources de données (au format OMOP).

Ces sources données pourront chacune être réutilisées dans plusieurs projets.


Il est possible d'importer des données depuis différentes sources :


  • Une base de données relationnelle (DuckDB, PostgreSQL...)
  • Des fichiers Parquet
  • Des fichiers CSV

Il sera prochainement possible d'importer des données dans un format personnalisé (recueil de données) et au format FHIR.

Créer un set de données

Pour importer des données, rendez-vous sur la page Sets de données depuis le menu en haut de l’écran.

Cliquez ensuite sur l’icône Plus (+) à gauche de l’écran pour créer un nouveau set de données.

Choisissez un nom. Pour l’exemple, nous importerons le set de données MIMIC-III.

Pour plus d’informations sur la base de données MIMIC, rendez-vous ici.

Une fois le set créé, cliquez sur le widget correspondant à ce set et rendez-vous sur l’onglet Code à droite de l’écran.

Vous verrez que du code R a été généré automatiquement.

Ce code vous donne deux exemples de l’utilisation de la fonction import_dataset, que nous allons voir en détails.

Fonction import_dataset

Pour importer des données dans LinkR, nous utilisons la fonction import_dataset.

Voici les arguments de la fonction, que l’on utilisera en fonction du type de données à importer (fichier ou connexion à une base de données) :

  • omop_version : c’est la version d’OMOP des données que vous allez importer (“5.3” ou “5.4”)
  • data_folder : dans le cas de l’import de données depuis un dossier, c’est le dossier contenant les données
  • con : dans le cas de l’import de données depuis une base de données, c’est l’objet de connexion à la base de données
  • tables_to_load = par défaut, toutes les tables OMOP seront chargées depuis la source indiquée. Si vous ne souhaitez charger qu’une partie de ces tables, renseignez ici les tables à importer. Par exemple load_tables = c('person', 'visit_occurrence', 'visit_detail')

Connexion à une base de données

Vous pouvez importer des données à une partie d’une connexion à une base de données.

Configurez d’abord l’objet de connexion con avec la librairie DBI, puis utilisez la fonction import_dataset.

L’argument con prendra notre objet con en valeur.

# Objet de connexion. Nous voyons ceci en détail en-dessous.
con <- DBI::dbConnect(...)

# Fonction pour charger les données au chargement du projet
import_dataset(omop_version = "5.4", con = con)

Ce code établira une connexion à la base de données au chargement d’un projet utilisant ce set de données.

Voici un exemple avec une connexion à une base PostgreSQL locale.

# Connexion à la base PostgreSQL locale
con <- DBI::dbConnect(
    RPostgres::Postgres(),
    host = "localhost",
    port = 5432,
    dbname = "mimic-iv-demo",
    user = "postgres",
    password = "postgres"
)

# Chargement des données au lancement du projet
import_dataset(omop_version = "5.4", con = con)

Importer des fichiers

Vous pouvez également importer des fichiers sans passer par une connexion à une base de données.

Pour cela, renseignez la localisation des fichiers dans l’argument data_folder.

Par exemple, mettons que les fichiers de ma base de données soient dans le dossier /data/mimic-iv-demo/ :

/data/mimic-iv-demo/
--- person.parquet
--- visit_occurrence.parquet
--- visit_detail.parquet
--- measurement.parquet

Je les charge comme ceci.

import_dataset(omop_version = "5.4", data_folder = "/data/mimic-iv-demo/")

Exécution de la fontion

Une fois votre script configuré, vous pourrez exécuter le code avec le bouton “Exécuter” à gauche de l’écran (icône Play), ou depuis le raccourci CTRL/CMD + SHIFT + ENTER.

Si les données sont correctement importées, vous aurez comme ceci le décompte de lignes par table.

En cas d’erreur, le message d’erreur s’affichera dans ce champ (à droite de l’écran)..

C’est donc ce script qui s’exécutera à chaque fois que vous chargerez un projet qui utilise ce set de données.

Vous pouvez créer des scripts plus complexes, qui iront par exemple télécharger les données depuis une source extérieure, les transformer et les sauvegarder localement. C’est par exemple ce que nous faisons avec le script pour télécharger la base MIMIC-IV démo.

Charger certaines tables

Vous pouvez choisir de n’importer que certaines tables depuis la base de données, avec l’argument tables_to_load.

Vous n’avez qu’à renseigner dans un vecteur de caractères les tables à importer, comme ceci :

# Chargement des tables person, visit_occurrence, visit_detail et measurement seulement
tables <- c("person", "visit_occurrence", "visit_detail", "measurement")

# Ajout de l'argument tables_to_load dans import_dataset
import_dataset(omop_version = "5.4", con = con, tables_to_load = tables)

Depuis le catalogue de contenus

Vous pouvez également installer un set de données depuis la librairie des contenus.

Ceci vous permettra de télécharger le code permettant de charger des données (et uniquement le code, on ne télécharge jamais de données depuis le catalogue de contenus).

Retrouvez le tutoriel ici.

Conclusion

Nous avons vu comment importer des données, depuis une base de données ou depuis des fichiers.


Voyons maintenant comment utiliser ces données au sein d'un projet.