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 Données individuelles

Données individuelles

Parcourir le dossier d'un patient : les tableaux patient, les widgets, et le recueil manuel qui alimente un jeu de données.

En résumé

Un tableau patient affiche le dossier d’un patient à la fois : chronologie, comptes rendus, vue d’ensemble des événements. Vous composez vous-même ses onglets et ses widgets, comme un tableau de bord. Le panneau de recueil permet de saisir des variables en lisant le dossier — et ce que vous tapez alimente directement un jeu de données.

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

Descendre au niveau du patient

Le reste de l’entrepôt compte et agrège. Cette page fait l’inverse : elle montre un dossier, avec ses dates, ses valeurs et ses comptes rendus.

Deux usages, très différents et également importants.

Vérifier

Contrôler sur pièces ce qu’une requête affirme.

Une cohorte annonce 412 patients : en ouvrir trois et lire leur dossier dit en quelques minutes si les critères sélectionnent bien ce que vous croyez. C’est le contrôle que rien ne remplace, et celui qu’on saute trop souvent.

Recueillir

Saisir ce qu’aucune table ne porte.

Beaucoup de variables cliniques se lisent dans un compte rendu et se saisissent à la main. Cette page met la saisie à côté du dossier, et envoie le résultat dans un jeu de données.

Le recueil manuel est-il appelé à disparaître ?

En partie, sans doute : des techniques de traitement automatique du langage suffisamment fiables extrairont un jour ces variables des comptes rendus, sans saisie.

Mais cela ne supprime pas le besoin — cela le déplace vers le premier usage. Une extraction automatique se vérifie, et se vérifie précisément comme ici : en ouvrant des dossiers et en comparant ce que la machine a compris à ce que le texte dit. Plus l’extraction est automatisée, plus cette page compte.

Les tableaux patient

L’entrée Données individuelles liste des tableaux. Chacun est une composition que vous définissez — ses onglets, ses widgets, sa base de données.

Cela permet d’avoir plusieurs vues du même projet : un tableau Réanimation centré sur l’hémodynamique et la ventilation, un tableau Biologie pour les courbes de laboratoire.

Chaque tableau a sa propre base

La base se choisit à la création du tableau. Deux tableaux d’un même projet peuvent donc lire deux bases différentes — par exemple votre base dans son format d’origine, et la base OMOP qu’un pipeline ETL en a tirée. Pratique pour contrôler ce que la conversion a produit, dossier par dossier.

Choisir un patient

La barre latérale de droite pilote la navigation, de haut en bas.

demo.linkr.interhop.org
Cohorte
Patients (412)
Rechercher un ID…
1 / 9
37 / 412
Hospitalisation1 / 1
Séjour en unité1 / 2
Âge57 ans
SexeHomme
Statut vitalVivant
Durée d'hospitalisation16 jours
Durée séjour en unité6 jours
La barre latérale : cohorte, liste des patients avec leur sexe, âge et nombre d'hospitalisations, puis hospitalisation, séjour en unité et démographie. Survolez un patient pour son résumé, ouvrez les filtres, et utilisez les flèches du pied de liste pour avancer patient par patient.

Filtrer par cohorte

Un menu déroulant propose Tous les patients ou l’une des cohortes du projet. C’est le lien principal entre les deux pages : vous définissez une population dans Cohortes, et vous ne parcourez plus qu’elle.

Une cohorte figée se comporte différemment

Si la cohorte a été alimentée, Linkr lit sa liste de membres figée. Sinon, il rejoue ses critères à chaque affichage — la liste peut donc changer si la base a été mise à jour. Pour un travail de relecture qui s’étale sur plusieurs jours, figez la cohorte : la liste restera la même du début à la fin.

Filtrer et chercher

Un bouton d’entonnoir ouvre les filtres : sexe, âge, date d’admission et statut vital. Une zone de recherche complète le dispositif, sur l’identifiant du patient uniquement — il n’y a pas de recherche par nom, et c’est cohérent avec un entrepôt pseudonymisé.

La liste affiche 50 patients par page. Chaque ligne porte l’identifiant, le sexe, l’âge et le nombre d’hospitalisations ; le survol ouvre un résumé plus riche — âge à la première et à la dernière hospitalisation, nombre d’hospitalisations et de séjours, durée cumulée, statut vital.

Naviguer patient par patient au clavier

Les flèches ↑ et ↓ passent d’un patient au suivant, en changeant de page toute seule au besoin. Le pied de la liste porte deux compteurs : la page, à gauche — 1 / 9 —, et votre position dans l’ensemble filtré, à droite — 37 / 412 —, chacun avec ses flèches. Ce second compteur permet de suivre l’avancement d’une relecture complète.

Restreindre à une hospitalisation

Sous la liste, deux sélecteurs affinent le contexte : l’hospitalisation, puis le séjour en unité quand le schéma en déclare. Chacun liste les dates d’entrée et de sortie, la durée et le type de séjour ou l’unité, et ses flèches — 1 / 2 — passent d’un séjour au suivant.

Par défaut, aucun n’est sélectionné : les widgets montrent tout le dossier. Choisir une hospitalisation restreint l’affichage à celle-ci.

Un bloc de démographie ferme la barre latérale : âge, sexe, statut vital, et durées de séjour. L’âge affiché est celui au début du séjour sélectionné, pas l’âge actuel — c’est celui qui a un sens clinique. Quand le tableau a un recueil manuel, un bloc Recueil s’y ajoute : le statut du patient et le nombre de variables remplies.

Un tableau patient : les onglets en haut, deux widgets Chronologie au centre, et la barre latérale à droite — cohorte, liste des patients, hospitalisation et démographie.
Un tableau patient : les onglets en haut, deux widgets Chronologie au centre, et la barre latérale à droite — cohorte, liste des patients, hospitalisation et démographie.

Composer le tableau

Le tableau s’organise en onglets, chacun portant une grille de widgets redimensionnables. Le bouton Modifier ouvre l’édition — ajouter un onglet, ajouter un widget, déplacer, redimensionner —, et Terminé la referme.

Quatre widgets sont fournis.

Résumé patient

Démographie, âge, sexe, nombre de séjours, et la liste des hospitalisations avec leur représentation dans le temps.

Chronologie

Les courbes dans le temps : constantes, biologie, doses. C’est le seul widget où l’on choisit les concepts à tracer.

Notes cliniques

Les comptes rendus, avec recherche plein texte et sets de mots surlignés en couleur — « anticoagulants » en bleu, « hémorragie » en rouge, dans tous les documents.

Vue d’ensemble des données

Tout ce que le patient a, par table et par concept, en bandes de densité. Excellente pour repérer un trou dans le recueil ou une période sans donnée.

À quoi s’ajoutent les plugins d’entrepôt, qui exécutent du R ou du Python pour produire un affichage sur mesure.

Choisir les concepts d’une chronologie

Le sélecteur de concepts est le même tableau que la page Concepts, avec un panneau Sélectionnés à droite où chaque concept porte sa couleur. Cliquer la pastille ouvre la palette, avec une couleur Personnalisée en dernier recours.

Le bouton Ajouter depuis une liste de concepts reprend une liste que vous avez constituée : ses concepts viennent s’ajouter à la sélection en cours, dans l’ordre de la liste, sans rien retirer. Les concepts déjà sélectionnés gardent donc leur couleur — les nouveaux prennent les suivantes.

demo.linkr.interhop.org

Cliquez sur une ligne pour la cocher ou la décocher.

Sélectionnés3
Heart rate3027018
Systolic blood pressure3004249
Diastolic blood pressure3012888
Le panneau Sélectionnés d'une chronologie. Décochez la fréquence cardiaque, puis recochez-la : elle passe en fin de liste, et prend la couleur de sa nouvelle position.

La couleur dépend de la position dans la sélection

La couleur automatique suit l’ordre : rouge, bleu, vert, orange… Décocher puis recocher un concept le renvoie à la fin, et il change donc de couleur. Une couleur choisie à la main, elle, reste attachée au concept. Sans conséquence sur les données, mais bon à savoir si vous comparez deux captures d’écran.

Voir et modifier le SQL d’un widget

L’éditeur d’un widget a un onglet Code qui montre la requête réellement exécutée. Utile pour comprendre, et pour vérifier ce qui est compté.

Pour la Chronologie et les Notes cliniques, cette requête se modifie à la main. Le Résumé patient est en lecture seule : sa mise en page attend des colonnes précises.

Quand la requête ne peut pas être construite

Plutôt qu’un éditeur vide, Linkr affiche ce qui manque dans le mapping du schéma. C’est presque toujours là qu’est le problème quand un widget reste vide.

Le recueil manuel

C’est la fonctionnalité qui change le plus la vie d’une étude rétrospective.

Le principe : vous déclarez des variables à recueillir, un panneau de saisie s’ouvre à droite du dossier, et ce que vous tapez est écrit dans un jeu de données — le même que celui de la page Jeux de données.

Pourquoi cela compte

La méthode habituelle est un tableur à côté du logiciel métier, recopié ensuite. Chaque recopie perd de l’information et ajoute des erreurs. Ici la saisie est la donnée : elle est immédiatement traçable, exportable, et traçable dans l’historique des modifications du jeu de données.

Le mettre en place

La fenêtre Configurer le recueil manuel s’ouvre depuis le panneau de recueil — le bouton Configurer le recueil d’un tableau qui n’en a pas encore, puis l’icône de réglages en tête du panneau. Elle a quatre onglets.

demo.linkr.interhop.org

Configurer le recueil manuel

Choisissez le jeu de données qui reçoit ce que vous saisissez, et comment ses colonnes identifient le patient. Les saisies y sont écrites directement : elles peuvent donc être modifiées, tracées et exportées comme n'importe quelle autre donnée.

Ventilation invasive
#Durée de ventilation (jours)
AaMode ventilatoire initial
#SOFA à l'admissionExistante
#IGS II

Créez une colonne, ou recueillez-en une que le jeu de données possède déjà.

La fenêtre de mise en place du recueil. Parcourez ses quatre onglets : le jeu de données et ses colonnes d'identification, les sections, les variables — créées ou existantes —, et le mode d'enregistrement.

Jeu de données — vous choisissez un jeu existant, ou vous en créez un. La création est l’option à privilégier : le nouveau jeu naît avec les colonnes d’identification — patient, hospitalisation, séjour — nommées comme la base active les nomme. Il se raccorde donc à l’entrepôt sans renommage.

Sections — des titres pour grouper les variables dans le panneau, dans l’ordre que fixent leurs flèches. Purement visuel : elles ne créent aucune colonne, et en supprimer une laisse ses variables en place, simplement dégroupées.

Variables — les colonnes à remplir, rangées chacune dans une section. Ajouter une variable crée une colonne ; Utiliser une colonne existante… recueille une colonne que le jeu de données possède déjà, marquée Existante. Chaque variable a un type, un libellé, une description, et peut être obligatoire, limitée à des valeurs autorisées ou bornée par un minimum et un maximum. Une liste de valeurs autorisées devient une liste déroulante à la saisie, ce qui empêche les variantes d’orthographe. Une valeur hors bornes, elle, est signalée sous le champ sans être refusée : c’est souvent une faute de frappe, mais parfois la vraie mesure.

Général — l’enregistrement, automatique (chaque valeur est écrite en sortant du champ) ou manuel (les modifications attendent votre validation).

Deux façons de retirer une variable, qui ne font pas la même chose

Une variable créée pour le recueil possède sa colonne : la supprimer supprime la colonne du jeu de données, et les valeurs déjà saisies avec elle. Linkr demande confirmation en annonçant combien de valeurs seraient perdues.

Une variable existante — une colonne que le jeu de données avait déjà — se retire seulement du recueil : la colonne reste.

L’utiliser

Le panneau s’ouvre sur le bouton Recueil, à côté du dossier plutôt que par-dessus : on lit l’un en remplissant l’autre. Chaque section indique son avancement — 2/3 — même repliée, et Tout déplier / Tout replier la ferment ou l’ouvrent toutes. Une pastille de couleur sur le bouton résume l’état du patient courant.

demo.linkr.interhop.org
HémodynamiqueBiologie

Remplissez un champ : le compteur de la section et la pastille du bouton suivent.

Recueil
100024281 / 3/
Ventilation invasive*
#Durée de ventilation (jours)
AaMode ventilatoire initial
#SOFA à l'admission*

Obligatoire.

#IGS II
Sortie de réanimation
Décès en réanimation*

Obligatoire.

Le panneau de recueil, pour trois patients. Remplissez un champ : le compteur de sa section avance, et la pastille du bouton Recueil passe du gris à l'ambre, puis au vert quand tous les champs obligatoires (*) sont remplis. Un SOFA de 30 est signalé sans être refusé.
  • Gris — rien n’est recueilli pour ce patient.
  • Ambre — le recueil est commencé, mais un champ obligatoire reste vide.
  • Vert — tous les champs obligatoires sont remplis. Sans champ obligatoire, une seule valeur suffit.

En enregistrement automatique, une valeur est écrite quand vous quittez le champ ou appuyez sur Entrée. En enregistrement manuel, un point signale chaque champ modifié, et Enregistrer — ou Cmd+S — écrit le tout.

Une ligne par patient, jamais deux

Revenir sur un patient déjà saisi modifie sa ligne au lieu d’en ajouter une. Le recueil est un formulaire, pas un journal. Changer de patient efface les modifications non enregistrées : elles appartenaient au dossier que vous quittez.

Comme toute modification d’un jeu de données, une saisie passe par le journal des opérations : elle s’annule, et elle se relit.

Limites à connaître

  • La liste des patients affiche 50 patients par page.
  • La Vue d’ensemble des données charge au plus 4 000 événements par requête : au-delà, les bandes de densité restent groupées plutôt que de montrer les événements un par un.
  • Un widget script s’exécute sur le serveur en mode serveur, et dans votre navigateur en mode navigateur.

Pour aller plus loin

  • Cohortes — restreindre la liste des patients.
  • Jeux de données — ce que le recueil alimente.
  • Concepts — repérer les concepts à tracer.
  • Le recueil manuel de données — les bonnes pratiques, au-delà de l’outil.
PrécédentRésultats, SQL et rapportSuivantPipeline

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)