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.
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.

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.
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.
Un bouton de filtres 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.
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. À utiliser pour lire la distribution — mais les valeurs aberrantes, elles, restent à traiter.
Un bouton affiche le SQL derrière ces statistiques, utile pour vérifier ce qui est compté, ou pour reprendre la requête ailleurs.
Les statistiques se désactivent dans les réglages si vous parcourez beaucoup de concepts et voulez aller plus vite.
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 + pour les ajouter à la liste active. Le menu déroulant à côté permet de changer de liste de destination ou d’en créer une ; l’icône de liste ouvre son contenu.
Depuis cette fenêtre, une liste se renomme, se vide, 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.
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 de la page 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, et Remplacer 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 remplacement 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.