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.
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.
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.
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 indique aussi votre position dans l’ensemble filtré — patient 37 sur 412 — ce qui 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.
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.

Composer le tableau
Le tableau s’organise en onglets, chacun portant une grille de widgets redimensionnables. Le bouton Modifier la disposition ouvre l’édition : ajouter un onglet, ajouter un widget, déplacer, redimensionner.
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.
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.
La couleur dépend de la position dans la sélection
Décocher puis recocher un concept le renvoie à la fin, et il change donc de couleur. 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 configuration se fait en quatre onglets.
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. Purement visuel : elles ne créent aucune colonne.
Variables — les colonnes à remplir. Chacune 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 valeur autorisée devient une liste déroulante à la saisie, ce qui empêche les variantes d’orthographe.
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. Chaque section indique son avancement — 3 / 7 renseignées — même repliée, et une pastille de couleur sur le bouton résume l’état du patient courant : rien, en cours, ou complet.
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.