Étude de cas · Projet

Construire une base de recherche avec Claude

Des dizaines de fichiers de cohortes, d'exports et de registres, plusieurs milliers de patients : comment une base unique, versionnée et pseudonymisée s'est construite avec un orchestrateur et des sous-compétences, et ce que chaque incident a appris.

10étapes
8difficultés rencontrées
3points d'alerte
Plusieurs mois, par séances courtes, puis une sentinelle hebdomadaire
1

Idée

Quel problème, en une phrase ?

  1. Nommer le problème en une phrase

    « Combien de patients avons-nous avec tel phénotype et telle donnée ? » prend une semaine : des dizaines de fichiers, chacun avec sa façon d'identifier un patient, ses unités et ses trous. Le besoin n'est pas un tableur de plus, c'est une base unique qui répond en minutes, en effectifs seulement.

    DifficultéChaque projet avait recréé sa propre extraction, avec des effectifs qui ne concordaient jamais.

    SolutionUne seule base, jamais de base parallèle ; tout nouveau besoin devient une requête sur cette base.

2

Concept

Que sera l'outil, et que fera-t-il ?

  1. Écrire le cadre avant la première ligne de code

    Base légale, accord du délégué à la protection des données et de la recherche clinique, endroit où le traitement par IA est autorisé, personne qui décide des gels. Puis la règle de travail : l'IA ne travaille que sur la base pseudonymisée ; le coffre (clé de correspondance et originaux) n'est ouvert que sur demande explicite, sur le poste.

    !Aucune donnée identifiante dans la conversation : on montre des noms de colonnes, des structures et des effectifs.

  2. Découper en briques plutôt qu'en un skill géant

    Un orchestrateur « base » qui porte les règles communes (pipeline, index, gel, publication) et route ; des sous-compétences par pathologie, séparées ; une seule brique de requête ; une brique par registre. L'orchestrateur ne fait jamais le détail.

    À dire à Claude

    « Voici le skill de ma base de recherche. Repère ce qui relève des règles communes et ce qui relève d'une pathologie ou d'un registre, et propose un découpage en orchestrateur et sous-compétences, avec pour chacune ce qu'elle couvre et ce qu'elle exclut. »

    DifficultéL'orchestrateur avait grossi jusqu'à faire le détail de chaque pathologie : il devenait illisible et se contredisait.

    SolutionÉclaté en sous-compétences ; l'orchestrateur ne garde que les règles communes et le routage.

3

Réalisation

Que demander à Claude, dans quel ordre ?

  1. Un rituel de début de session

    À chaque séance, Claude lit le plan et le journal, puis résume l'état en trois lignes : où on en est, ce qui bloque, la prochaine étape. Quand une règle naît, le skill, le plan et le journal sont mis à jour au même tour, pas « plus tard ».

    DifficultéUne règle décidée en séance, oubliée à la suivante.

    SolutionAucune règle n'existe tant qu'elle n'est pas écrite au même tour dans le skill, le plan et le journal.

  2. Intégrer les sources une à une

    Chaque nouvelle source passe une check-list : comment elle identifie un patient, quelles feuilles sont des dictionnaires ou des tableaux transposés, puis une architecture à deux étages (l'inclusion, puis l'enrichissement, qui n'ajoute jamais de patient). On repart du script de la cohorte la plus proche ; chaque valeur reste tracée jusqu'à sa cellule.

    DifficultéQuelques dizaines de faux patients sont nés d'une feuille transposée : les en-têtes de colonnes avaient été lus comme des identités.

    SolutionRepérage des feuilles transposées et des dictionnaires avant tout import, et contrôle « l'enrichissement n'ajoute aucun patient » à chaque passage.

  3. Rapprocher les patients par score

    Identité tolérante aux fautes, date de naissance avec une tolérance, faisceau d'arguments ; trois seuils (certain, probable, douteux) ; le douteux reste en base avec son motif. Un test placebo mesure la part de liens dus au hasard.

    DifficultéDeux personnes différentes fusionnées parce qu'elles partageaient la même date de naissance et un nom proche.

    SolutionRègle « date de naissance unique » comptée sur tout le périmètre, plafond de liens par fiche, et vérification humaine mensuelle d'un échantillon de liens certains.

    !Jamais de fusion sur un seul paramètre.

4

Épreuve

Comment prouver que ça marche ?

  1. Contrôler la qualité sans noyer le signal

    Rapport qualité en cinq familles, arbitrage des écarts en bloc, puis gel numéroté et horodaté avec copie figée. Une variable sans décision n'est pas retenue ; une correction de fond ouvre une nouvelle version.

    DifficultéPlusieurs milliers d'alertes au premier passage, dont l'immense majorité fausses : plus personne ne les lisait.

    SolutionPlus d'alerte sur un identifiant ni de plage sur une variable 0/1, unités mélangées soupçonnées seulement sur au moins deux fichiers avec un regroupement net par facteur 10, convention de signe ramenée à la valeur absolue.

  2. Auditer la couverture année par année

    Trois niveaux de chiffres (personnes recensées, avec un fichier source, avec des mesures en base) et, pour chaque source, un audit annuel : un examen est « disponible » s'il porte plusieurs mesures ou un compte rendu, les examens seulement datés montrent les trous.

    DifficultéUne année presque vide a d'abord été lue comme une absence d'examens.

    SolutionUn ré-export identique a prouvé que le manque venait de la source ; on distingue désormais un trou de source d'un échec de liaison, avec un recomptage indépendant.

5

Mise en service

Comment le livrer, le publier, le faire durer ?

  1. Traiter un gisement d'examens sans clinique comme un objet de méthode

    Un stock de plusieurs milliers d'examens sans données cliniques associées n'est ni jeté ni mélangé à la base : on profile d'abord ses colonnes (types, taux de remplissage, plages), puis on sépare ce qui est publiable sans issue (description, faisabilité, reproductibilité) de ce qui demande une liaison au statut vital, soumise à son propre cadre.

    !Pas de question clinique sur ce gisement avant le profilage.

  2. Répondre en minutes et surveiller chaque semaine

    Toute liste de patients déclenche une requête longitudinale ; un bon d'extraction produit un classeur normalisé, pseudonymisé, journalisé ; les panneaux statistiques portent leurs limites et masquent les petits effectifs. Une sentinelle hebdomadaire en lecture seule rend un verdict OK, alerte ou erreur, comparé au précédent.

    DifficultéUne base ouverte sur un dossier réseau s'est retrouvée dans un état incohérent après une coupure.

    SolutionBase copiée en local, traitements reprenables, écritures tout ou rien avec recomptage, publication par copie vérifiée puis bascule.

← La méthode en cinq temps