Moteur de raisonnement d'éligibilité aux essais cliniques

Moteur de raisonnement d'éligibilité aux essais cliniques

Un modèle d'appariement de patients lit une note comme du texte, si bien qu'il confond un cathéter veineux central avec un cathétérisme cardiaque et exclut un patient qui était éligible. TrialProof ne laisse un LLM que lire la note, résout le sens via un graphe de connaissances SNOMED-CT, et calcule ELIGIBLE, EXCLUDED ou NEEDS-REVIEW dans un code déterministe qu'un LLM ne peut pas outrepasser. Chaque verdict porte une trace de raisonnement qu'un régulateur peut classer.

100%

Exactitude de décision sur le jeu doré étiqueté

contre 53.8% pour la baseline lexicale équitable (13 cas)

0 contre 3

Patients éligibles perdus

TrialProof en perd 0 là où la baseline en perd 3

100% contre 0%

Couverture des traces de raisonnement

Chaque verdict est tracé ; identique au bit près à la relance

Ceci est une démo exécutable sur un jeu doré étiqueté, fixe. Tous les patients, notes et protocoles sont synthétiques, l'ontologie est un sous-graphe SNOMED-CT constitué de 24 concepts, et les connecteurs tels que l'ingestion FHIR en direct sont simulés.

Le patient éligible que votre apparieur jette

Le mode de défaillance derrière les exclusions abusives dans l'appariement de patients par IA.

L'IA d'appariement de patients lit les notes cliniques comme du texte, si bien qu'elle confond des mots qui se ressemblent mais signifient des choses différentes sur le plan médical. L'échec canonique est concret. Un essai d'anticoagulant de phase III exclut le cathétérisme cardiaque ; la note d'un patient indique la pose d'un cathéter veineux central. Un apparieur par similarité voit deux procédures de cathéter cardiovasculaire, leur attribue un score élevé, et exclut un patient qui était éligible. Les évaluations publiées confirment que les modèles d'IA commettent exactement cette erreur de cathétérisme (Fierce Biotech, 2025).

La même classe d'erreur dépasse une seule procédure. Elle couvre la négation, où « aucune preuve de diabète » est appariée comme un diabète. Elle couvre les antécédents familiaux attribués au patient. Et elle couvre les clauses d'exception, telles que sauf si achevé plus de 12 mois avant la randomisation, qu'un score de similarité ne peut pas représenter du tout. Un meilleur modèle de base n'en élimine aucune, parce que ce ne sont pas des problèmes de langue. Ce sont des problèmes de logique.

Le coût n'est pas académique. Le retard d'enrôlement coûte 800,000 dollars par jour en ventes de prescriptions perdues pour chaque jour de glissement d'un essai (Tufts CSDD Impact Report, 2024), montant à 840,000 dollars par jour en oncologie et 1.4 million dollars par jour dans les essais cardiovasculaires (Tufts CSDD). 80% des essais manquent leurs calendriers d'enrôlement (consensus du secteur, 2025), l'échec de sélection moyen coûte 1,200 dollars (Antidote.me, 2025), et les procédures d'essai sont devenues 139% plus complexes depuis 2005 (IQVIA, 2026). Face à de tels chiffres, un patient éligible écarté à tort n'est pas une erreur d'arrondi.

Comment TrialProof fonctionne

Les agents conseillent sur l'extraction. Un code déterministe décide de l'éligibilité. C'est neuro-symbolique : un LLM lit la prose, la logique symbolique régit le patient.

Chaque patient est exécuté contre chaque protocole en cinq étapes, diffusées en direct dans l'interface. La frontière importante est qu'une seule étape est probabiliste, et elle ne décide jamais de rien.

1. Lire le dossier

Charge le dossier patient synthétique de forme FHIR, sa note en texte libre, les critères de l'essai, et la date de randomisation.

2. Extraire les faits (la seule étape probabiliste, uniquement consultative)

Un LLM interchangeable selon le fournisseur propose des faits candidats, chacun avec un span verbatim de la note, un SCTID candidat tiré d'un vocabulaire fermé, et une confiance. Il conseille ; il ne décide pas. Les observations codées qui arrivent en FHIR de confiance ne passent jamais par l'extracteur. Lorsque le repli sur lexique hors ligne est utilisé, la console en direct l'indique plutôt que de le cacher.

3. Vérifier les faits (vérificateur adverse)

Chaque fait proposé est contesté contre la note littérale avec trois contrôles : span-present (qui attrape une entité hallucinée), négation, et sujet (antécédents familiaux versus patient). Les faits rejetés sont marqués REJECTED avec le contrôle qui s'est déclenché et la raison, et n'atteignent jamais la décision.

4. Assembler les preuves

L'ensemble exact de faits vérifiés qui entre dans le moteur logique, marqué FHIR-codé versus texte libre.

5. Calculer les verdicts (Python déterministe, hors du cadre des agents)

Un moteur de logique déontique évalue les critères de prohibition, d'exception temporelle, de unless contrôlé et d'exigence via la subsomption is-a SNOMED et le calcul de dates, et émet ELIGIBLE, EXCLUDED ou NEEDS-REVIEW avec une trace complète. Un LLM ne peut pas outrepasser cette porte.

Les étapes déterministes s'exécutent réellement en dizaines de microsecondes par critère, tandis que la lecture de la note par le modèle prend des secondes. Ce contraste est le propos, pas une prétention de sélection instantanée : la partie lente et faillible est confinée à la lecture, et la décision qu'elle alimente est rapide, bon marché et reproductible.

La comparaison dans la démo est une baseline lexicale équitable, et c'est délibéré. Il s'agit d'une similarité cosinus TF-IDF au niveau des entités, une vraie méthode de similarité vectorielle, dans une configuration généreuse avec une résolution entité-vers-concept propre, et son seuil de décision soumis à une validation croisée à son propre avantage (t = 0.6932). Elle n'appelle jamais le LLM. Ses seuls handicaps sont l'absence de hiérarchie, de négation, de logique temporelle et d'abstention, ce qui constitue toute la thèse. Elle n'a pas été réglée pour échouer.

Le raisonnement, mené de bout en bout

Le patient synthétique P-074 et sa cohorte, contre les protocoles synthétiques ONC-204 et ANTI-3. Chaque image ci-dessous est une capture d'écran de l'application TrialProof en cours d'exécution.

Une voie veineuse centrale n'est pas un cathétérisme cardiaque, et seule une hiérarchie le sait

La note d'USI de P-074 indique central venous catheter placement for IV medication access. Contre le critère EXCL-CARDCATH d'ANTI-3 (aucun cathétérisme cardiaque antérieur), un apparieur par similarité voit deux procédures de cathéter cardiovasculaire. TrialProof interroge plutôt l'ontologie : Central venous catheterization (392230005) est-il un descendant is-a de Cardiac catheterization (41976001) ? Ce n'est pas le cas. Les deux concepts se situent sur des branches différentes de la hiérarchie SNOMED-CT, donc aucun chemin de subsomption n'existe, et le verdict est ELIGIBLE avec une trace en trois étapes nommant les deux SCTID. Les deux codes sont réels et vérifiables sur n'importe quel navigateur SNOMED public. La baseline lexicale équitable renvoie aussi ELIGIBLE ici, mais à une similarité brute de 0.437, sans trace de raisonnement et sans rien qu'un régulateur pourrait classer.

Trace de raisonnement TrialProof pour EXCL-CARDCATH montrant que Central venous catheterization 392230005 is-NOT-a Cardiac catheterization 41976001 sur une branche différente de la hiérarchie, donc le verdict est ELIGIBLE, à côté de la similarité brute de 0.437 de la baseline, sans provenance.
La trace du cathétérisme cardiaque : un contrôle is-a sur de vrais SCTID décide ELIGIBLE, là où la baseline n'offre qu'une similarité brute de 0.437 et aucune provenance.

L'ontologie que le moteur interroge réellement

Le moteur n'interroge pas tout SNOMED-CT. Il parcourt un sous-graphe constitué de 24 concepts avec 22 relations is-a. Les concepts avec un vrai SCTID sont dessinés en trait plein ; les 9 constitués pour la démo sans SCTID public sont préfixés CUR- et dessinés en pointillés plutôt que présentés comme de vrais codes. Les faits vérifiés sont verts, les concepts de critère sont cernés, et les chemins is-a parcourus sont en gras. Les deux cathétérismes vivent visiblement sur des branches différentes, ce qui est exactement pourquoi une similarité de chaîne ou de vecteur ne peut pas remplacer la subsomption.

Le sous-graphe SNOMED-CT constitué de 24 concepts avec 22 relations is-a, montrant Cardiac catheterization et Central venous catheterization sur des branches différentes, les SCTID réels dessinés en trait plein et les concepts CUR- constitués pour la démo dessinés en pointillés.
Le sous-graphe SNOMED-CT, 24 concepts et 22 relations is-a, avec les deux cathétérismes sur des branches séparées.

Le patient éligible que la baseline jette

La même note dit No evidence of diabetes. Contre EXCL-DM d'ONC-204 (aucun diagnostic de diabète sucré), la baseline vectorielle apparie le jeton diabetes à une similarité de 1.0 et renvoie EXCLUDED, parce qu'elle n'a aucun modèle de la négation. Le vérificateur de TrialProof retire la mention niée avant qu'elle ne puisse atteindre la décision, donc le verdict est ELIGIBLE. C'est le patient éligible qu'un apparieur par similarité jette, et sur le jeu doré c'est l'un des trois que la baseline perd.

La trace de raisonnement EXCL-DM pour une note qui dit No evidence of diabetes : la baseline apparie diabetes à une similarité de 1.0 et renvoie EXCLUDED, tandis que TrialProof retire la mention niée et renvoie ELIGIBLE.
Négation : la baseline exclut à une similarité de 1.0 ; TrialProof retire la mention niée et maintient le patient éligible.

Un vérificateur qui conteste l'extracteur

Pour P-106 l'extracteur propose un fait carboplatin qui n'a aucun span de soutien dans la note, une hallucination plantée. Le vérificateur adverse exécute span-present, négation et sujet sur chaque fait proposé ; le fait carboplatin échoue à span-present (span not found in note) et est marqué REJECTED, donc il n'atteint jamais la décision. Sur l'ensemble du jeu doré, le vérificateur a rejeté 7 instances de faits (3 mauvais faits distincts : une mention niée de diabète, une attribution d'antécédents familiaux de cancer du sein, et ce carboplatin halluciné) sur 4 des 13 exécutions de cas notées. Les agents conseillent sur l'extraction ; un code déterministe décide de l'éligibilité.

Le panneau verify-facts pour P-106 montrant un fait carboplatin marqué REJECTED, contrôle échoué span-present, raison span not found in note, de sorte que l'entité hallucinée n'atteint jamais la décision d'éligibilité.
Le vérificateur rejette un carboplatin halluciné sur span-present avant qu'il ne puisse atteindre une décision.

Une exception qu'un score de similarité ne peut pas représenter

P-101 a achevé un carboplatine et un pemetrexed adjuvants, dernière perfusion 03/2025. EXCL-PLAT d'ONC-204 interdit une thérapie au platine antérieure sauf si donnée en adjuvant ou néoadjuvant et achevée plus de 12 mois avant la randomisation (2026-04-15). Le moteur confirme que Carboplatin (386905003) is-a Platinum-containing antineoplastic agent, calcule l'intervalle à 13 mois, satisfait l'exception, et renvoie ELIGIBLE avec une trace en quatre étapes. Lorsque la même clause est testée sur un patient en intention palliative, l'exception ne s'applique pas et le verdict bascule en EXCLUDED. Même critère, verdicts opposés, tous deux corrects, parce que c'est le moteur logique et non un seuil.

La trace de raisonnement EXCL-PLAT pour P-101 montrant Carboplatin 386905003 is-a Platinum-containing antineoplastic agent, intention adjuvante, intervalle de 13 mois supérieur à 12, donc l'exception est satisfaite et le verdict est ELIGIBLE.
Exception temporelle satisfaite : platine adjuvant achevé 13 mois avant la randomisation, calculé par calcul de dates.

Le chiffre dont un responsable des opérations cliniques se soucie réellement

Sur un jeu doré fixe de 13 cas étiquetés tirés de 7 patients synthétiques à travers 2 protocoles synthétiques, noté contre la baseline lexicale soumise à une validation croisée à t = 0.6932, TrialProof obtient 100% d'exactitude de décision contre 53.8% pour la baseline, perd 0 patient éligible là où la baseline en perd 3, et porte une trace de raisonnement reproductible sur 100% des décisions contre 0% pour la baseline. Il s'abstient de façon sûre deux fois avec NEEDS-REVIEW là où la baseline devine, et relancer les 13 cas produit des verdicts et des traces identiques au bit près (13 sur 13). Nous attribuons chaque chiffre à ce jeu doré étiqueté, jamais comme une prétention en monde ouvert.

Les tuiles de benchmark du jeu doré : exactitude de décision 100% contre 53.8% pour la baseline, rappel des patients éligibles 100% contre 66.7%, patients éligibles perdus 0 contre 3, et couverture de traces auditables 100% contre 0%, avec une note de reproductibilité indiquant que relancer 13 cas produit des verdicts identiques au bit près.
Le jeu doré étiqueté de 13 cas : 100% contre 53.8% d'exactitude, 0 contre 3 patients éligibles perdus, 100% contre 0% de couverture de traces, identique au bit près à la relance.

Similarité vectorielle versus un moteur de raisonnement

La même comparaison que la démo note, dimension par dimension.

Dimension Baseline lexicale équitable TrialProof
Qui décide de l'éligibilité Un score de similarité au-dessus d'un seuil Un moteur de logique déontique déterministe, hors des agents
Hiérarchie / is-a Aucune, proximité de jetons seulement Subsomption is-a SNOMED-CT
Négation (aucune preuve de diabète) Apparié comme présent Retiré par le vérificateur
Attribution des antécédents familiaux Attribués au patient Rejetés au contrôle du sujet
Clauses d'exception temporelle Non représentables Calcul de dates sur la date de randomisation
Laboratoire ou constante vitale manquant Devine, ne s'abstient jamais NEEDS-REVIEW, en nommant ce qui manque
Trace de raisonnement Aucune, un simple nombre de similarité Trace complète, exportée en CDISC SDTM IE
Reproductibilité Sans objet Identique au bit près à la relance (13 sur 13)

Ce que cette démo ne fait pas

  • ✓ Elle ne prétend pas être exacte à 100% de façon universelle. Le chiffre de 100% est l'exactitude de décision sur un jeu doré étiqueté fixe de 13 cas, jamais une garantie en monde ouvert et jamais une promesse d'avoir raison sur chaque dossier.
  • ✓ Elle ne présente pas ses patients comme réels. Tous les patients, notes et protocoles sont synthétiques, sans PHI, sans DSE en direct, et sans essai réel. P-074, P-101 à P-106, ONC-204 et ANTI-3 sont des éléments fictifs fabriqués.
  • ✓ Elle n'utilise pas tout SNOMED-CT. L'ontologie est un sous-graphe constitué de 24 concepts (15 SCTID réels, 9 constitués et dessinés en pointillés). Le SNOMED-CT complet, MedDRA et LOINC sont la voie de production différée.
  • ✓ Elle n'utilise pas de connecteurs en direct. L'ingestion FHIR R4 depuis le DSE, le magasin de graphe, et le LLM clinique sont simulés ou interchangeables selon le fournisseur. Epic App Orchard et le FHIR en direct d'Oracle, les connecteurs CTMS, et le durcissement SOC 2 ou BAA HIPAA sont différés.
  • ✓ Elle n'est pas autorisée par la FDA, exemptée CDS, certifiée HIPAA, ni certifiée SOC 2. L'orientation Clinical Decision Support de la FDA de janvier 2026 est notre alignement et notre direction, pas une autorisation. Ceci n'est pas un avis médical et ne prend pas de décisions cliniques.
  • ✓ Elle ne porte ni clients, ni sponsors, ni CRO, ni pilotes, ni témoignages, ni chiffres de ROI. Aucun n'existe. C'est une démo qui prouve le mécanisme, pas un déploiement.

Questions que les acheteurs posent réellement

En quoi cela diffère-t-il de l'appariement de patients Deep 6, Tempus ou IQVIA ?

TrialProof n'est pas un réseau de données ni une plateforme d'appariement dans le cloud, et ce n'est pas un clone de ces outils. C'est la couche de raisonnement déterministe et de provenance qui leur manque : la partie qui rend le verdict d'éligibilité calculable, vérifiable et classable. Une plateforme d'appariement vous tend une liste classée avec un score ; TrialProof vous tend ELIGIBLE, EXCLUDED ou NEEDS-REVIEW avec les identifiants de concepts SNOMED et l'arête du graphe qui a tranché. Il est destiné à siéger aux côtés d'un pipeline d'appariement, pas à remplacer le réseau de données en dessous.

Pourquoi l'IA d'appariement de patients exclut-elle des patients éligibles ?

Parce qu'elle lit une note clinique comme du texte et note la similarité, si bien qu'elle confond des mots qui se ressemblent mais signifient des choses différentes sur le plan médical. Une note qui indique central venous catheter placement obtient un score élevé contre un essai qui exclut le cathétérisme cardiaque, et le patient est exclu à tort. Le même échec couvre la négation (aucune preuve de diabète appariée comme diabète), les antécédents familiaux attribués au patient, et les clauses d'exception qu'un score de similarité ne peut pas représenter du tout. Les évaluations publiées confirment que les modèles d'IA commettent exactement cette erreur de cathétérisme (Fierce Biotech, 2025).

Puis-je obtenir une piste d'audit qu'un régulateur peut classer pour chaque décision d'éligibilité ?

Oui. Chaque décision s'exporte comme un enregistrement CDISC SDTM IE en JSON et CSV, une ligne par patient et par critère, portant le critère, le verdict, et la trace de raisonnement déterministe complète qui nomme les SCTID et l'opération déontique. Lorsqu'un fait a concordé, la ligne porte aussi le chemin is-a et, pour les faits dérivés de la note, le span verbatim. Sur le jeu doré de 13 cas, 100% des décisions TrialProof portent une trace reproductible et la baseline en porte 0%, et relancer le jeu produit une sortie identique au bit près (13 sur 13).

Utilise-t-il de vrais codes SNOMED ou des codes inventés ?

Chaque concept que la démo cite pour une décision porte un vrai SCTID, vérifiable sur n'importe quel navigateur SNOMED public : Central venous catheterization est 392230005 et Cardiac catheterization est 41976001, et ils se situent sur des branches différentes, ce qui explique pourquoi aucun chemin de subsomption ne les relie. Le moteur interroge un sous-graphe constitué de 24 concepts avec 22 relations is-a, pas tout SNOMED-CT. Les 9 concepts constitués pour la démo sans SCTID public sont préfixés CUR- et dessinés en pointillés plutôt que présentés comme de vrais codes. Le SNOMED-CT complet, MedDRA et LOINC sont la voie de production différée.

Les données patients sont-elles réelles, et ceci est-il conforme HIPAA ?

Toutes les données sont synthétiques. Il n'y a pas de vrai PHI, pas de DSE en direct, et pas d'essai réel ; les patients, notes et protocoles sont des éléments fictifs fabriqués. C'est une démo exécutable qui prouve le mécanisme, pas un pipeline déployé, donc elle n'est pas certifiée HIPAA, certifiée SOC 2, autorisée par la FDA, ni exemptée CDS, et elle ne prend pas de décisions cliniques. L'orientation Clinical Decision Support de la FDA de janvier 2026 est le cadre pertinent pour une aide à l'appariement avec un humain dans la boucle, et c'est notre direction, pas une autorisation que nous détenons.

Un meilleur LLM ne réglera-t-il pas simplement cela ?

Non, parce que ce ne sont pas des problèmes de langue, ce sont des problèmes de logique. Un score de similarité ne peut pas représenter is-a, ne peut pas représenter not, et ne peut pas représenter « sauf si achevé plus de douze mois avant la randomisation », et aucune quantité de prompting ou de contexte ne les ajoute. Nous laissons donc le modèle faire la seule chose pour laquelle il est vraiment bon, lire une prose désordonnée et proposer des faits avec le span d'où il les a lus, puis un vérificateur adverse jette ce que la note ne soutient pas, et un code déterministe sur une ontologie médicale calcule le verdict. Le LLM ne peut pas outrepasser cette porte, ce qui fait que le même dossier produit la même réponse à chaque exécution.

Que signifie réellement le chiffre d'exactitude de 100% ?

C'est 100% d'exactitude de décision sur un jeu doré étiqueté fixe de 13 cas, tiré de 7 patients synthétiques à travers 2 protocoles synthétiques, noté contre une baseline lexicale équitable dont le seuil a été soumis à une validation croisée à son propre avantage (t = 0.6932). Ce n'est jamais une prétention universelle ou en monde ouvert, et ce n'est pas la même chose que ce produit ait raison sur chaque dossier possible. Sur ce même jeu, TrialProof perd 0 patient éligible là où la baseline en perd 3, et s'abstient de façon sûre deux fois avec NEEDS-REVIEW plutôt que de deviner.

Recherche technique

La recherche derrière cette démo — l'architecture, la conception de la vérification, et le plan d'entreprise.

Apparier des patients à des essais sans une trace qu'un régulateur peut classer ?

La couche de raisonnement déterministe et de provenance est la partie difficile. Nous la construisons.

Si votre équipe pèse comment placer une décision d'éligibilité devant un régulateur sans lui demander de faire confiance à un score de similarité, nous aimerions vraiment entendre comment vous y réfléchissez. Le problème est à l'échelle du secteur et les réponses le seront aussi.

Évaluation du raisonnement d'éligibilité

  • ✓ Cartographier où votre apparieur de patients peut exclure un patient éligible
  • ✓ Séparer ce que le LLM doit extraire de ce que le code doit décider
  • ✓ Définir l'ontologie, la négation et les règles temporelles dont vos protocoles ont besoin
  • ✓ Spécifier la trace CDISC SDTM IE que votre équipe réglementaire peut classer

Construire la couche de raisonnement

  • ✓ Un moteur de logique déontique déterministe sur votre ontologie réelle
  • ✓ Un vérificateur adverse pour la négation, le sujet et les faits hallucinés
  • ✓ Subsomption SNOMED-CT plus calcul de dates, reproductible à chaque relance
  • ✓ Extraction interchangeable selon le fournisseur, le modèle n'outrepassant jamais un verdict
Réseaux sociaux

Également publié sur