fix: qualité codage — anti-hallucination LLM + négation regex + veto calibration

- Prompt DAS_EXTRACTION : ajout consignes anti-hallucination (zero invention,
  pas d'inférence de comorbidités, exiger citation exacte du texte)
- Prompt CODING_CIM10 : ajout consignes conditionnel et négation
- diagnostic_extraction.py : détection de négation avant les patterns regex DAS
  (bloque "pas d'embolie", "absence de sepsis", "sans signe d'IRC", etc.)
- veto_engine.py : VETO-03 conditionnel cherche maintenant PRÈS du concept
  (40 chars), "si" isolé ne déclenche plus de faux positif, ajout cues
  (possible, risque de, aspect de, à confirmer, à rechercher)
- veto_engine.py : négation enrichie (ne retrouve pas, sans signe/argument,
  écarté, infirmé, pas mis en évidence)

Batch analysis: VETO-02 63% from LLM hallucinations, VETO-03 63% false positives

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
dom
2026-03-07 23:59:02 +01:00
parent a371626f40
commit 214a5d1914
3 changed files with 69 additions and 4 deletions

View File

@@ -40,6 +40,8 @@ RÈGLES IMPÉRATIVES :
- Si le diagnostic est un DP, il doit refléter le motif principal de prise en charge du séjour
- Si c'est un DAS, il doit avoir mobilisé des ressources supplémentaires pendant le séjour
- EXCLUSION SYMPTÔME : Si le diagnostic est un symptôme (R00-R99) et qu'un diagnostic précis (Chapitres I-XIV, A00-N99) expliquant ce symptôme est présent, le symptôme ne doit PAS être codé comme DAS
- Un diagnostic "suspecté", "probable", "à éliminer" ne doit PAS être codé comme confirmé sauf s'il a été traité
- Si le texte dit "pas de X", "absence de X" → ne PAS coder X
DIAGNOSTIC À CODER : "{texte}"
TYPE : {type_diag}
@@ -120,6 +122,13 @@ RÈGLES IMPÉRATIVES :
- Ne propose que des diagnostics CLAIREMENT mentionnés dans le texte
- ATTENTION aux valeurs biologiques : ne code PAS un diagnostic si les valeurs sont dans les normes indiquées entre crochets [N: min-max]. Exemple : Créatinine 76 [N: 50-120] = NORMAL, pas d'insuffisance rénale.
ANTI-HALLUCINATION — CRITIQUE :
- ZERO INVENTION : ne code JAMAIS un diagnostic qui n'est pas explicitement écrit dans le texte
- Ne PAS inférer de comorbidités (ex: patient obèse ≠ forcément diabétique ou hypertendu)
- Si le texte dit "pas de X", "absence de X", "élimine X" → ne PAS coder X
- Un diagnostic "suspecté", "probable", "à éliminer" ne doit PAS être codé sauf s'il a été traité
- Chaque DAS proposé DOIT avoir une justification citant un passage EXACT du texte
DÉNUTRITION — CRITÈRES HAS/FFN 2021 :
- Diagnostic = 1 critère phénotypique + 1 critère étiologique
- Seuils IMC : adulte <18.5 modéré / ≤17 sévère ; ≥70 ans <22 modéré / <20 sévère