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 Projet Construire

Construire une cohorte

Construire une cohorte dans le constructeur : le niveau d'une ligne (patient, hospitalisation, séjour en unité), les neuf types de critère et leurs formulaires, la combinaison en ET, OU et NON par groupes, figer la cohorte avec Alimenter, et l'import / export au format OHDSI ATLAS.

En résumé

Une cohorte se construit dans l’ordre de son écran : le niveau d’une ligne, puis les critères — neuf types, de l’âge au texte libre —, assemblés en groupes par ET, OU et NON. Alimenter fige ensuite la liste des membres, et la définition s’échange au format OHDSI ATLAS.

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

Une cohorte se crée depuis la page Cohortes du projet. Elle s’ouvre sur le constructeur, que cette page parcourt de la barre d’outils aux critères, puis à leur combinaison.

L’écran du constructeur

Une cohorte s’ouvre sur deux volets. À gauche, les Critères — ou, par la bascule Critères / SQL, la requête qu’ils engendrent. À droite, les résultats de la dernière exécution. Les deux icônes en forme d’œil, aux extrémités de la barre d’outils, replient l’un ou l’autre volet pour donner toute la largeur au second.

Le constructeur de cohorte : les critères à gauche, chacun avec sa couleur, les résultats à droite. Ici trois critères en ET, dont un Décès inversé par NOT — soit « vivant à la sortie ».
Le constructeur de cohorte : les critères à gauche, chacun avec sa couleur, les résultats à droite. Ici trois critères en ET, dont un Décès inversé par NOT — soit « vivant à la sortie ».

La barre d’outils porte aussi Importer et Exporter (au format ATLAS, voir plus bas), Rapport, Alimenter et Exécuter.

Une ligne par quoi ?

Avant les critères, une question à trancher, dans la barre d’outils : Une ligne par quoi ?

NiveauCe qu’une ligne représente
PatientUne personne, quel que soit son nombre de passages.
HospitalisationUn séjour hospitalier. Un même patient peut apparaître plusieurs fois.
Séjour en unitéUn passage dans une unité — un séjour en réanimation au sein d’une hospitalisation.

Le choix dépend de la question posée. « Combien de patients ont reçu de la noradrénaline ? » se compte au niveau patient ; « quelle est la durée médiane de séjour en réanimation ? » au niveau séjour en unité.

Ce choix se change à tout moment

Le niveau se modifie sans perdre les critères. Il vaut la peine de comparer : une cohorte de 800 patients peut correspondre à 1 200 hospitalisations, et l’écart est souvent instructif.

Les critères

Ajouter un critère propose neuf types — et, sous Logique, Ajouter un groupe (ET/OU).

Âge

Un minimum, un maximum, en années, mois ou jours — âge actuel ou à l’admission.

Sexe

Homme, femme, inconnu.

Décès

Décédé ou vivant, durant l’hospitalisation, durant le séjour en unité, ou à n’importe quel moment.

Période

Une fenêtre de dates.

Durée de séjour

En heures, jours ou mois, au niveau hospitalisation ou séjour en unité.

Lieu de soins

Une ou plusieurs unités.

Concept

Un diagnostic, un médicament, un examen. Le plus utilisé — voir ci-dessous.

Texte libre

Une recherche dans les comptes rendus.

Liste d’identifiants

Des patients, des hospitalisations ou des séjours désignés un par un — une colonne collée depuis un tableur.

Un critère se déplie pour se régler, et se replie sur une ligne de résumé — À l’admission ≥ 18 ans. Son type se change depuis le menu en tête du critère déplié.

demo.linkr.interhop.org
NOT
Table d'événements
Concepts sélectionnés (2)
Lactate [Moles/volume] in BloodLactate [Moles/volume] in Arterial blood
Filtre de valeur1
2
Nombre d'occurrences
2

Au niveau d'extraction de la cohorte (patient, hospitalisation ou unité)

NOT
Nom
Anticoagulants
NON
Aaé=e
Sous-chaîne : « art » correspond aussi à « artère » et « particulier ».Ne correspond qu’au mot entier : « art » correspond à « art » mais pas à « artère ».Une expression régulière. Utilisez | pour les alternatives (hepar|lovenox), .* pour du texte quelconque, ^ et $ pour le début et la fin.
héparine, énoxaparine, warfarine
Ajouter un autre champ
NOT
Identifiants de
Identifiants

3 identifiants

Trois critères dépliés : un Concept avec un filtre de valeur et un nombre d'occurrences, un Texte libre — changez de mode pour lire l'aide qui l'accompagne — et une Liste d'identifiants, dont le compteur suit ce que vous collez.

Le critère Concept

Vous choisissez la table d’événements — diagnostics, prescriptions, biologie — puis, avec Sélectionner des concepts, les concepts concernés. Deux raffinements s’ajoutent, chacun dans une section repliable :

  • un filtre de valeur : une créatinine, mais seulement au-dessus de 200 µmol/L. Plusieurs filtres peuvent se cumuler, et l’opérateur between borne des deux côtés ;
  • un nombre d’occurrences : au moins trois mesures, et non une seule.

Le nombre d’occurrences se compte au niveau de la cohorte. Sur une cohorte au niveau patient, « au moins 3 » signifie trois fois pour ce patient, tous séjours confondus.

Sur une cohorte au niveau hospitalisation ou séjour en unité, seuls comptent les événements datés pendant ce séjour, entre l’entrée et la sortie. « Séjours avec un lactate supérieur à 2 » retient les séjours où le lactate a été mesuré, et non tous les séjours d’un patient qui en a eu un un jour. Pour « à n’importe quel moment », choisissez le niveau patient. Si une table d’événements n’a pas de date dans le mapping du schéma, le critère ne peut pas être limité au séjour, et le formulaire le signale.

Le critère Texte libre

Pour ce que les données structurées ne portent pas : une mention dans un compte rendu.

  • Nom — ce que la recherche désigne, anticoagulants ; il remplace les termes sur le critère replié.
  • Le champ — le Corps du document ou son Titre.
  • Le mode — Contient (une sous-chaîne : « art » trouve aussi « artère »), Mot entier (« art » ne trouve que « art ») ou Expression régulière (hepar|lovenox).
  • Aa et é=e — par défaut, la casse et les accents sont ignorés : « hemorragie » trouve « hémorragie ». Ces deux boutons les font compter.
  • Les termes — séparés par des virgules. Quand il y en a plusieurs, N’importe quel terme ou Tous les termes doivent apparaître.

Ajouter un autre champ enchaîne une deuxième recherche, par ET ou par OU — sur le titre et le corps par exemple — et toutes portent sur un même document. NON, en tête d’une recherche, exclut les documents qui y répondent. La Note en bas du formulaire n’entre pas dans la requête : elle sert à expliquer le critère.

Le mot entier évite les faux positifs

Chercher Contient « sepsis » remonte aussi « asepsie ». Le mode Mot entier écarte ce bruit, qui est la première cause de cohorte trop large.

Ce critère exige des comptes rendus mappés

Si aucune table de documents n’est déclarée dans le schéma de la base, la recherche ne peut pas s’exécuter : le critère reste affiché, à titre descriptif, mais ne filtre rien. Voir Schémas.

Le critère Liste d’identifiants

Pour les cas où la population est déjà connue, patient par patient : une liste tirée d’un registre, les dossiers relus par un confrère. Identifiants de fixe ce que désignent les numéros — Patient, Hospitalisation ou Séjour en unité — et la zone Identifiants accepte une colonne collée depuis un tableur, ou une liste séparée par des virgules, des espaces ou des retours à la ligne. Le compteur sous la zone indique combien d’identifiants ont été reconnus.

Combinée aux autres critères, elle sert autant à restreindre qu’à écarter : avec NOT, elle exclut une liste de patients — ceux qui ont refusé l’usage de leurs données, par exemple.

Un âge en jours ou en mois demande une date de naissance

Le critère Âge accepte les années, les mois et les jours — utile en néonatologie. Si le schéma de la base ne porte que l’année de naissance, un âge en jours ou en mois ne peut pas être calculé : le formulaire le signale, et le critère ne sélectionnerait personne.

Combiner : ET, OU, NON

Les critères s’assemblent en groupes, et les groupes s’imbriquent. C’est ce qui permet d’exprimer une définition réelle :

âge ≥ 18 ans ET (sepsis OU choc septique) ET NON décédé

demo.linkr.interhop.org
Une ligne par
À l'admission ≥ 18 ansNOT
Infection graveNOT
SepsisNOT
Choc septiqueNOT
Ajouter un critère
NOT DécédéNOT
Réanimation médicaleNOT
Ajouter un critère

385

résultats

184ms
Total
Age >= 18
Infection grave
NOT Deceased
Total2 000
Age >= 181 922(-78)
Infection grave516(-1 406)
NOT Deceased385(-131)
Un arbre de critères vivant, calculé sur une population fictive de 2 000 patients. Cliquez sur une pastille AND pour la passer en OR, sur l'interrupteur NOT, ou sur l'icône d'alimentation pour désactiver un critère : l'effectif et l'attrition suivent.

Chaque critère — et chaque groupe — porte ses commandes :

  • AND / OR, la pastille entre deux éléments, qui décide comment l’un rejoint le précédent. Un clic la bascule ;
  • NOT, qui l’inverse — c’est ainsi qu’on écrit un critère d’exclusion ;
  • Activer / Désactiver, l’icône d’alimentation, qui le neutralise sans le supprimer ;
  • la poignée à gauche, qui le déplace par glisser-déposer.

Un groupe se nomme avec le crayon — ce nom est celui qui apparaît dans l’attrition. En haut du panneau, Tout replier et Tout désactiver agissent sur tout l’arbre d’un coup.

Dans un même groupe, ET l’emporte sur OU, comme en SQL : A ET B OU C se lit (A ET B) OU C. Dès que vous mélangez les deux, un groupe rend l’intention explicite, pour vous comme pour le relecteur.

Désactiver plutôt que supprimer

C’est le geste à retenir pour tester une définition : désactivez un critère, relancez, comparez l’effectif. Vous mesurez son poids réel sans perdre son paramétrage — et vous pouvez le réactiver après.

L’exécution, la lecture de l’attrition et des autres onglets de résultats, la requête SQL et le rapport de cohorte sont détaillés dans Résultats, SQL et rapport.

Figer une cohorte

Alimenter enregistre la liste des membres à un instant donné. La barre d’outils affiche ensuite Figée le avec sa date ; son survol rappelle le nombre de membres figés.

La distinction avec l’exécution est importante :

Exécuter

Un aperçu, recalculé à chaque fois.

Sert à mettre au point la définition. Si la base évolue, l’effectif change.

Alimenter

Une liste figée, conservée.

C’est cette liste que lit la page Données individuelles. Elle ne bouge plus tant que vous ne la régénérez pas.

L’intérêt est la reproductibilité. Un entrepôt hospitalier se met à jour en continu : sans instantané, deux analyses lancées à un mois d’intervalle ne portent pas sur les mêmes patients, et vos chiffres deviennent impossibles à retrouver. Figer la cohorte fixe le dénominateur.

Régénérer demande confirmation — Régénérer la cohorte — en rappelant que les effectifs peuvent différer si la base a changé.

Échanger avec OHDSI ATLAS

Une définition s’importe et s’exporte au format JSON d’OHDSI ATLAS. Une définition publiée par un réseau de recherche se rejoue donc sur votre base, et la vôtre peut partir vers un partenaire qui n’utilise pas Linkr. À l’import, Linkr annonce le nombre de critères détectés et les avertissements éventuels — ce qu’ATLAS exprime et que Linkr ne sait pas traduire.

Les cohortes voyagent avec le projet

Une cohorte fait partie de l’export : ses critères partent avec le projet, dans un fichier lisible et versionnable. Les résultats d’exécution, eux, restent locaux — ils dépendent de la base, pas de la définition.

Pour aller plus loin

  • Résultats, SQL et rapport — exécuter, lire l’attrition, modifier le SQL, produire le rapport.
  • Cohortes — ce qu’est une cohorte, et ce qu’elle alimente.
  • Concepts — repérer les concepts à mettre dans un critère.
  • Schémas — ce que le mapping doit déclarer pour que les critères fonctionnent.
  • Concevoir une étude — écrire des critères d’inclusion défendables.
PrécédentCohortesSuivantRésultats, SQL et rapport

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)