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
  • Installer LibreChat
  • 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
  • Connecteurs de bases de données
  • Authentification et permissions
  • Fichiers sur le serveur
  • Sauvegarde et restauration
  • Contribuer au code
  • Glossaire
  • Raccourcis clavier
  • Notes de version
Documentation Projet Concepts

Concepts

Explorer ce que contient réellement une base : le dictionnaire, les effectifs par concept, les statistiques de valeurs et les listes de concepts.

En résumé

Cette page répond à une question : qu’y a-t-il réellement dans cette base ? Elle parcourt le dictionnaire de la base connectée — quel que soit son modèle — et donne pour chaque concept le nombre d’enregistrements, le nombre de patients et la distribution des valeurs. Les concepts retenus se rassemblent dans une liste de concepts qui voyage avec le projet.

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

Savoir ce qu’on a avant de le chercher

Un entrepôt de santé décrit des milliers de concepts possibles. Votre base n’en contient qu’une fraction, et rien ne dit d’avance laquelle : un entrepôt de réanimation aura la ventilation et les catécholamines en abondance, et presque rien en oncologie.

D’où l’ordre des opérations. Avant d’écrire un critère de cohorte sur « lactate », il faut savoir si le lactate est présent, sous quel code, combien de fois, et avec quelles valeurs. C’est ce que donne cette page.

Le dictionnaire de la base

La page n’impose aucun modèle de données. Elle lit la ou les tables de dictionnaire que le schéma de la base déclare, et s’adapte à ce qu’elle y trouve.

Une base OMOP

La table concept : identifiant, nom, code, vocabulaire, domaine, classe, statut standard. La page affiche toutes ces colonnes.

Une base MIMIC

d_items et d_labitems, souvent déclarées ensemble. Pas de vocabulaire standardisé, et d_items n’a pas de colonne de code : ces colonnes n’apparaissent simplement pas.

Un modèle maison

Votre propre table de référence. Il suffit qu’elle porte un identifiant et un libellé ; tout le reste est facultatif.

Une base peut avoir plusieurs dictionnaires

Quand le schéma en déclare plusieurs, la page les réunit et ajoute une colonne indiquant de quel dictionnaire vient chaque ligne. Sur MIMIC, c’est ainsi que d_items et d_labitems se parcourent d’un seul tenant.

Sans dictionnaire déclaré, la page reste vide

Elle annonce alors qu’aucune table de concepts n’a été trouvée. C’est le mapping du schéma qui désigne cette table — il faut la déclarer avant que cette page ne serve à quelque chose.

Le tableau

Une ligne par concept, avec deux colonnes qui font tout l’intérêt de la page :

  • Enregistrements — combien de fois ce concept apparaît dans la base ;
  • Patients — combien de patients distincts sont concernés.

L’écart entre les deux se lit. Trois cent mille enregistrements de fréquence cardiaque pour huit cents patients, c’est un monitorage continu. Huit cents enregistrements pour huit cents patients, c’est une mesure ponctuelle à l’admission. Ces deux données ne s’exploitent pas de la même façon.

Le tableau des concepts sur une base MIMIC-IV : la colonne Dict Key indique le dictionnaire d'origine (ici d_items), et il n'y a pas de colonne de code. À droite, le détail d'un concept avec son histogramme et sa distribution.
Le tableau des concepts sur une base MIMIC-IV : la colonne Dict Key indique le dictionnaire d'origine (ici d_items), et il n'y a pas de colonne de code. À droite, le détail d'un concept avec son histogramme et sa distribution.

Les autres colonnes dépendent du dictionnaire : vocabulaire, code, domaine, classe, validité. Elles se redimensionnent, se réordonnent par glisser-déposer et se masquent.

La base parcourue se choisit en tête de la barre d’outils, parmi celles du projet : changer de base change le dictionnaire, et donc les colonnes.

Quand le modèle distingue un code standard et un code d'origine

Certains modèles, dont OMOP, enregistrent un événement sous deux concepts : le standard et le source d’origine. Linkr compte alors les deux, et un concept apparaît dans les effectifs qu’il figure sous l’une ou l’autre forme. Vous ne passez donc pas à côté de données mal alignées. Sur un modèle sans cette distinction, il n’y a qu’un seul code, et la question ne se pose pas.

Chercher et filtrer

La recherche porte sur le nom, le code et l’identifiant, avec une tolérance aux fautes de frappe.

La recherche se déclenche sur Entrée, pas à la frappe

C’est délibéré. Un dictionnaire complet peut dépasser le million de lignes : relancer une recherche approchée à chaque caractère rendrait la page inutilisable. Tapez, puis Entrée. Échap efface.

Le bouton Filtres, l’icône de curseurs à côté du choix de la base, regroupe les colonnes filtrables du dictionnaire. Lesquelles, là encore, dépendent de la base : domaine et classe si le modèle les déclare, vocabulaire s’il en a un, et le statut Std — Standard, Classification, Non standard — sur les modèles qui en portent un. L’icône passe en couleur dès qu’un filtre est actif.

Un clic sur une ligne ouvre son détail. Ctrl ou Cmd + clic ajoute une ligne à la sélection, Maj + clic sélectionne une plage : le panneau de droite annonce alors N concepts sélectionnés, prêts à partir dans une liste.

demo.linkr.interhop.org
3
Vocabulary IdConcept IdConcept NameConcept CodeDomain IdConcept Class IdStdPatientsEnregistrements
LOINC3047181Lactate [Moles/volume] in Blood32693-4MeasurementLab TestS781 842
LOINC3016723Creatinine [Mass/volume] in Serum or Plasma2160-0MeasurementLab TestS962 184
LOINC3000963Hemoglobin [Mass/volume] in Blood718-7MeasurementLab TestS921 576
LOINC3027018Heart rate8867-4MeasurementClinical ObservationS10048 210
SNOMED132797Sepsis91302008ConditionClinical FindingS41312
SNOMED201826Type 2 diabetes mellitus44054006ConditionClinical FindingS34268
RxNorm1321341Norepinephrine7512DrugIngredientS52487
ICD10CM45600511Sepsis, unspecified organismA41.9Condition4-char billing codeNS38290
38 412 conceptsCtrl/Cmd + clic ou Maj + clic : sélection multiple
Lactate [Moles/volume] in Blood32693-4
LOINC

Détail du concept

Concept Id3047181
Domain IdMeasurement
Concept Class IdLab Test
Standard ConceptS

Statistiques des données

Enregistrements1 842
Patients78
La barre d'outils et le tableau. Cliquez sur la base pour passer d'une base OMOP à une base MIMIC : Vocabulary Id et Concept Code disparaissent, Dict Key apparaît. Ouvrez les Filtres, cherchez « lactate » puis Entrée, et Ctrl-cliquez plusieurs lignes avant d'utiliser +.

Le détail d’un concept

Cliquer une ligne ouvre le panneau de droite : les métadonnées du concept, puis ses statistiques.

Pour un concept porteur d’une valeur numérique — une biologie, une constante — Linkr calcule minimum, maximum, moyenne, médiane, écart-type, et trace un histogramme.

C’est un contrôle de qualité immédiat. Une créatinine dont la moyenne est à 1,2 est en mg/dL ; à 105, en µmol/L. Un poids qui monte à 7 000 signale des grammes mélangés à des kilos. Ces problèmes se voient sur l’histogramme en quelques secondes, et coûtent des semaines s’ils sont découverts après l’analyse.

Exclure les valeurs aberrantes pour lire le graphique

Une seule valeur absurde écrase tout l’histogramme. L’option Exclure les valeurs aberrantes le limite aux 1er–99e percentiles, et une ligne sous le graphique dit combien de valeurs ont été laissées de côté. Seul l’histogramme change : minimum, maximum et moyenne restent calculés sur toutes les valeurs. À utiliser pour lire la distribution — mais les valeurs aberrantes, elles, restent à traiter.

Sous les chiffres, une boîte à moustaches résume la même distribution : la boîte va du premier au troisième quartile, le trait marque la médiane, les moustaches le minimum et le maximum. Démarrer à zéro, au-dessus de l’histogramme, choisit entre un axe partant de zéro et un axe resserré sur les valeurs.

L’icône SQL, à droite du nom, affiche les requêtes derrière ces statistiques, utile pour vérifier ce qui est compté, ou pour reprendre la requête ailleurs.

demo.linkr.interhop.org
Lactate [Moles/volume] in Blood32693-4

LOINC

Statistiques des données

Enregistrements1 842
Patients78

Histogramme

020406080

Distribution des valeurs

Valeurs non nulles1 842
Min0,3
Max98
Moyenne2,41
Médiane1,7
Écart-type4,87

Réglages des concepts

Stats

Calcule le nombre d’enregistrements et la distribution des valeurs du concept sélectionné. Désactivez pour naviguer plus vite.

Exclure les valeurs aberrantes

Limite l’histogramme aux 1er–99e percentiles, pour qu’une valeur aberrante n’écrase pas le graphique.

Le détail d'un lactate, à côté des Réglages des concepts. Activez Exclure les valeurs aberrantes : quelques valeurs saisies en mg/dL écrasaient l'histogramme, qui retrouve sa forme. Désactivez Stats : plus rien n'est calculé. L'onglet Dictionnaire de données montre Mettre à jour et Changer.

Les deux interrupteurs se trouvent dans les Réglages des concepts, l’icône d’engrenage de la barre d’outils, onglet Général : Stats coupe le calcul pour parcourir beaucoup de concepts plus vite, et Exclure les valeurs aberrantes agit sur l’histogramme de tous les concepts consultés.

La génération de la liste

Compter les occurrences de chaque concept sur un entrepôt entier est coûteux. En mode serveur, Linkr calcule donc ces effectifs une fois et les conserve.

Sur une base neuve, un bandeau annonce que la liste n’a pas encore été générée et propose de la générer — opération qui peut prendre un moment sur une base volumineuse. Un bouton Actualiser la régénère ensuite, avec la date de dernière actualisation.

Actualisez après avoir alimenté la base

Les effectifs datent de la dernière génération. Après un chargement de nouvelles données par un pipeline ETL, la page affiche encore les anciens chiffres tant que vous n’avez pas actualisé.

Rassembler des concepts dans une liste

En parcourant, vous repérez les concepts qui vous intéressent : les six codes qui désignent une ventilation mécanique, les quatre façons dont une créatinine est enregistrée. Une liste de concepts les rassemble.

Sélectionnez une ou plusieurs lignes, puis + — ou Entrée — pour les ajouter à la liste active ; son survol dit laquelle. La flèche à côté permet de choisir une autre liste de destination ou d’en créer une (Nouvelle liste). Le bouton de liste, avec son compteur, ouvre la fenêtre Liste de concepts.

Dans cette fenêtre, une liste se choisit, se renomme avec le crayon, se supprime, se vide avec Effacer, et surtout se copie au format SQL, R ou Python. C’est le geste qui fait gagner le plus de temps : vos trente codes de ventilation atterrissent dans un script sans une seule recopie manuelle, chacun suivi d’un commentaire qui rappelle son vocabulaire et son nom.

demo.linkr.interhop.org

Liste de concepts

Vocabulary IdIDNomCode
LOINC3047181Lactate [Moles/volume] in Blood32693-4
LOINC3016723Creatinine [Mass/volume] in Serum or Plasma2160-0
LOINC3000963Hemoglobin [Mass/volume] in Blood718-7

Presse-papiers

IN (
3047181 -- LOINC - Lactate [Moles/volume] in Blood
, 3016723 -- LOINC - Creatinine [Mass/volume] in Serum or Plasma
, 3000963 -- LOINC - Hemoglobin [Mass/volume] in Blood
)
La fenêtre Liste de concepts. Passez de ID à Code, puis de SQL à R et Python : le texte copié, affiché dessous, change de forme. Les codes non numériques sont mis entre guillemets.

Copier par identifiant ou par code

Les deux sont proposés quand le dictionnaire a une colonne de code. Quand il n’en a pas — d_items sur MIMIC, par exemple — seul l’identifiant est offert : copier des codes ne produirait que des chaînes vides.

Une liste voyage avec le projet

Elle est exportée, versionnée et partagée avec lui. Le travail de repérage — souvent plusieurs heures — se transmet donc à qui reprend le projet, au lieu d’être refait.

Liste de concepts et concept set : deux choses différentes

Les deux noms se ressemblent. Ils ne jouent pourtant pas le même rôle.

Liste de concepts

La vôtre, constituée à la main.

Rattachée au projet. Vous l’alimentez en parcourant le tableau, vous la modifiez à volonté, et elle part avec le projet.

Concept set

Importé, en lecture seule.

Vient d’un dictionnaire de données installé dans l’espace de travail — un référentiel publié par un réseau de recherche. Partagé par tous les projets.

Autrement dit : un concept set est un référentiel que vous recevez, une liste de concepts est une sélection que vous produisez.

Enrichir le tableau avec un référentiel

Les Réglages des concepts, onglet Dictionnaire de données, permettent d’importer un dictionnaire de données — à ne pas confondre avec le dictionnaire de la base, qui vient du schéma. Celui-ci est un référentiel externe : ses concept sets s’affichent en colonnes supplémentaires — nom, catégorie, sous-catégorie.

L’appariement se fait sur le vocabulaire et le code du concept. Ces colonnes ne sont donc proposées que si la base en déclare les deux.

L’intérêt : vous voyez immédiatement qu’un concept appartient au groupe « marqueurs inflammatoires » défini par le référentiel, sans avoir à le savoir. Le nom du concept set est cliquable et ouvre sa fiche.

Le référentiel est partagé par tout l'espace de travail

La page n’en accueille qu’un à la fois. Mettre à jour réimporte le référentiel — une nouvelle version du même dictionnaire — sans rien retirer ; Changer l’échange contre un autre. Les concept sets étant partagés avec tous les projets de l’espace de travail — y compris les projets d’alignement de concepts — ce changement les concerne tous, et ne s’annule pas. L’ancien n’est supprimé qu’une fois le nouveau importé : annuler l’import ne casse rien.

Une liste de concepts n'alimente pas encore un critère de cohorte

Les concepts d’un critère de cohorte se choisissent indépendamment. Pour l’instant, une liste sert au suivi de données individuelles et à l’export vers vos scripts — pas à remplir un critère.

Pour aller plus loin

  • Schémas — déclarer le dictionnaire d’une base, sans quoi cette page reste vide.
  • Cohortes — utiliser un concept repéré ici comme critère.
  • Alignement de concepts — faire correspondre vos codes locaux à une terminologie standard.
  • Introduction à OMOP — un modèle de données standard et ses terminologies.
PrécédentBases de donnéesSuivantCohortes

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) · AGPLv3 (logiciel)