Linkr
Accueil Ressources Outils Documentation Blog Démo
EN
  • Qu'est-ce que Linkr ?
  • Modes de déploiement
  • Démarrage rapide
  • Installation locale
  • Avec Docker
  • Installation manuelle
  • Client-only
  • Votre premier projet
  • Linkr dans un EDS
  • Espaces de travail et projets
  • Le pipeline de données
  • Entités et partage
  • Versioning et collaboration
  • Vue d'ensemble
  • Projets
  • Wiki
  • Plugins
  • Membres et rôles
  • Paramètres
  • Schémas
  • Obtenir et explorer
  • Mapping
  • Bases de données
  • Sous-bases dérivées
  • Qualité des données
  • Catalogue de données
  • Construire et publier
  • Anonymiser
  • Collections de scripts SQL
  • Pipelines ETL
  • Construire et exécuter
  • Générer les scripts
  • Présentation
  • Projets d'alignement
  • Vue d'ensemble
  • Concepts cibles
  • Éditeur d'alignements
  • Suggestions
  • Agent IA
  • Évaluation
  • Export
  • Vue d'ensemble
  • Bases de données
  • Concepts
  • Cohortes
  • Construire
  • Résultats, SQL et rapport
  • Données individuelles
  • Pipeline
  • Jeux de données
  • IDE
  • Applications web
  • Versioning
  • Vue d'ensemble
  • Onglets et widgets
  • Widgets intégrés
  • Widgets d'analyse
  • Cartes de contrôle (SPC)
  • Questionnaires et eCRF
  • Code R et Python
  • Filtres, paramètres et export
  • Vue d'ensemble
  • Mode présentation
  • Exporter un rapport
  • Agents
  • Serveur MCP
  • Skills
  • Import et export
  • Versioning git
  • Catalogue communautaire
  • Publier du contenu
  • Installation en production
  • Configuration
  • Authentification et permissions
  • Fichiers sur le serveur
  • Sauvegarde et restauration
  • Contribuer au code
  • Glossaire
  • Raccourcis clavier
  • Notes de version
Documentation Entrepôt de données Construire et exécuter

Construire et exécuter un pipeline

Construire un pipeline ETL onglet par onglet : les onglets, l'écriture des scripts SQL, l'exécution pas à pas (pause, arrêt, erreurs), puis le contrôle qualité source / cible, statistiques et concepts.

En résumé

Un pipeline ETL se construit dans ses onglets : on y écrit ou génère les scripts SQL, on choisit les bases source et cible, on exécute la chaîne dans l’onglet Pipeline, puis l’onglet Contrôle qualité compare les deux bases pour dire si la conversion a perdu quelque chose.

Client Disponible en mode client-only — tout fonctionne dans le navigateur, sans backend. Backend Disponible avec le backend FastAPI.

Un pipeline se crée depuis la page Pipelines ETL de l’entrepôt. Ses scripts désignent les bases par leur rôle — source., target., vocab. — comme l’explique la page d’ensemble ; cette page suit le reste, onglet par onglet.

Les onglets

OngletCe qu’on y fait
PipelineLe tableau de bord d’exécution : les scripts en cartes, dans l’ordre où ils s’enchaînent. C’est ici qu’on choisit les bases source et cible, qu’on réordonne, qu’on active ou désactive une étape et qu’on lance.
ScriptsL’éditeur proprement dit, avec le résultat des requêtes — et le bouton Générer depuis les schémas.
Explorer les schémasVoir côte à côte les tables de la source et celles de la cible — indispensable quand on écrit la correspondance.
VocabulaireGénérer les scripts de vocabulaire depuis un projet d’alignement de concepts.
Contrôle qualitéVérifier ce que l’exécution a produit : les effectifs des deux bases, et le détail concept par concept de ce qui a été aligné.

S’y ajoutent Aperçu, Readme, Licence et Versioning, comme pour les autres entités.

Seuls les fichiers SQL sont des étapes

Le dossier d’un pipeline peut contenir d’autres fichiers — un README en Markdown, des notes, du code d’appoint en Python ou en R. Ils voyagent avec le pipeline, mais l’onglet Pipeline ne montre que les fichiers .sql, et c’est eux seuls qu’une exécution enchaîne. Un fichier Markdown ouvert dans l’onglet Scripts s’affiche en aperçu plutôt que d’être exécuté.

Écrire les scripts

Un script ETL est du SQL ordinaire, que l’on peut écrire entièrement à la main. Mais l’essentiel d’une conversion vers OMOP se déduit de ce que Linkr sait déjà, et deux générateurs l’écrivent à votre place :

  • Générer depuis les schémas, dans l’onglet Scripts — les scripts qui chargent les patients, les séjours et les événements, déduits du mapping de schéma de la source et de celui de la cible.
  • L’onglet Vocabulaire — les scripts qui chargent la traduction de vos codes locaux, déduits d’un projet d’alignement de concepts.

Ce qu’ils produisent reste des scripts ordinaires, que vous relisez et modifiez ; Linkr repère ensuite ceux que vous avez retouchés avant de les régénérer. Tout est détaillé dans Générer les scripts.

Exécuter, et vérifier

L’onglet Pipeline montre la chaîne telle qu’elle s’exécutera : la base source en haut, les scripts SQL dans leur ordre, la base cible en bas. On y choisit les deux bases, on glisse une carte pour la déplacer, on désactive une étape avec son interrupteur, et le bouton Exécuter le pipeline lance le tout. Chaque carte a aussi son propre bouton, pour exécuter un script isolé pendant la mise au point.

demo.linkr.interhop.org
7/8 scriptsRéa CHU — exportRéa CHU — OMOP 5.4
1
00_vocabulary.sql
2
10_person.sql
3
20_visit_occurrence.sql
4
30_visit_detail.sql
5
40_note.sqldésactivé
6
50_measurement.sql
7
51_drug_exposure.sql
8
99_prune_vocabulary.sql

Cliquez sur un nœud pour voir les détails

L'onglet Pipeline : la source (orange), huit scripts dont un désactivé, la cible (vert). Cliquez sur ▶ : les cartes prennent leur statut une à une, le script désactivé est ignoré, et l'exécution s'arrête sur 50_measurement.sql, dont le détail s'ouvre à droite avec l'erreur. Essayez aussi la pause et l'arrêt en cours de route.

La progression s’affiche dans la barre d’outils, requête par requête, avec le nom du script en cours et le temps écoulé — sur un script de vocabulaire dont une seule instruction peut durer plusieurs minutes, c’est ce qui distingue un traitement qui avance d’un blocage. Une exécution qui échoue s’arrête au premier script en erreur, et Linkr ouvre directement le panneau de détail sur le script fautif.

Les scripts s’exécutent dans l’ordre des cartes, pas dans celui de leurs noms. Quand les deux divergent — un script 35_… glissé après un 50_… —, le bouton de tri alphabétique de la barre d’outils les réaligne ; il est grisé quand l’ordre suit déjà les noms.

Mettre en pause et arrêter ne sont pas la même chose

Pause suspend l’exécution sans la terminer : la reprise relance depuis son début le script interrompu, puis continue, dans la même exécution.

Arrêter y met fin. Dans les deux cas, l’instruction déjà envoyée à la base va jusqu’au bout — une partie du script a donc pu être appliquée. Sur une base cible à moitié remplie, mieux vaut la recréer à vide plutôt que relancer par-dessus.

Ensuite vient l’onglet Contrôle qualité, qui répond à la seule question qui compte : la conversion a-t-elle perdu quelque chose ? Il propose deux vues.

demo.linkr.interhop.org
Filtrer :Calculé le 28/09/2026 à 10:42
StatutVocabulaire sourceCode sourceDescriptionPatients sourceLignes sourceID cibleLignes attenduesLignes cible
AbsentREA_LOCALBIO_PCTProcalcitonine8122 140448171302 1400
MoinsREA_LOCALBIO_KPotassium sérique3 02148 902302310348 90246 115
PlusREA_LOCALBIO_NASodium sérique3 01948 877301955048 87749 012
OKREA_LOCALVS_FCFréquence cardiaque3 102912 4403027018912 440912 440
OKREA_LOCALVS_SPO2SpO23 098887 31040762499887 310887 310
OKREA_LOCALVS_TEMPTempérature3 087201 5443020891201 544201 544
L'onglet Contrôle qualité, vue Concepts : chaque code source reçoit un verdict, et les puces de la barre servent de filtres — cliquez sur « Absent » pour ne garder que les concepts arrivés sans alignement. La vue Statistiques met les deux bases côte à côte.

Statistiques met les deux bases côte à côte : patients, hospitalisations, séjours en unité, répartition par sexe, durées de séjour, et le nombre de lignes de chaque table. Un écart inattendu — trois mille patients d’un côté, deux mille huit cents de l’autre — signale une jointure qui a éliminé des lignes en silence.

Concepts est plus fin, et fonctionne autrement qu’on ne l’imagine : les deux colonnes sont lues dans la base cible. Une base source dans son format d’origine n’a pas de colonnes comparables ; en revanche, une fois convertie en OMOP, chaque table porte à la fois le concept d’origine et le concept standard auquel il a été aligné. Comparer les deux dit exactement combien de lignes sont arrivées avec un code source, et combien ont effectivement trouvé une correspondance.

Chaque concept reçoit un verdict — Absent, Moins, Plus ou OK — utilisable comme filtre, et le tout s’exporte en CSV. « Absent » est celui qu’on regarde en premier : des lignes sont arrivées, aucune n’a été alignée.

La colonne « Lignes attendues » n'est pas redondante

Quand plusieurs codes source pointent vers le même concept cible, le nombre de lignes d’un code pris isolément ne correspond pas au total attendu. La colonne affiche donc la somme de tous les codes qui alimentent ce concept — sans quoi un verdict « OK » à côté de deux nombres différents ressemblerait à un bug.

Les comptages patients demandent un schéma des deux côtés

Sans mapping de schéma sur une base, Linkr ne sait pas ce qu’est un patient : il ne peut compter que des lignes par table. Voir Schémas.

Pour aller plus loin

  • Générer les scripts — les scripts de chargement OMOP et de vocabulaire, écrits par Linkr.
  • Pipelines ETL — les rôles source, cible et vocabulaire, et le partage d’un pipeline.
  • Bases de données — créer la base cible vide depuis un schéma.
  • Schémas — indispensables aux comptages patients du contrôle qualité.
  • Qualité des données — contrôler la base cible une fois remplie.
PrécédentPipelines ETLSuivantGénérer les scripts

Produit

  • Accueil
  • Démo

Ressources

  • Documentation
  • Ressources
  • Outils
  • Blog

Communauté

  • Code source Framagit
  • Code source Github

À propos

  • InterHop.org
  • Contact

2021–2026 InterHop — CC BY-NC-SA 4.0 (site) · GPLv3 (logiciel)