tests: alias DLBCL + garde-fou Trackare + e2e PDFs réels + gold CRH + benchmark enrichi

- 11 tests unitaires : TestAliasAndConclusionBonus (7) + TestTrackareSymptomGuard (4)
- Tests e2e sur PDFs réels (skip si absent) : méningite A87.0 + DLBCL C83.3 top1
- Gold CRH enrichi : 5 cas (2 réels ajoutés : 115_23066188, 132_23080179)
- Benchmark synthese : récupération conclusion depuis source_excerpt des DAS/traitements
- .gitignore : protection anti-PHI (real_crh_pdfs/, data/crh_samples/*.pdf)
- docs/PHI_POLICY.md : 7 règles de sécurité PHI
- Rapports debug : case 132 REVIEW (garde-fou actif), top errors, DIM pack

1043 tests passent, 0 régression.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
dom
2026-02-24 14:35:57 +01:00
parent 06a1be5425
commit cad0dd22b1
16 changed files with 1513 additions and 11 deletions

View File

@@ -0,0 +1,5 @@
{"case_id": "106_23056475", "document_type": "crh", "dp_expected": {"code": "I26.9", "label": "Embolie pulmonaire"}, "dp_acceptable_codes": ["I26.0", "I26.9"], "dp_acceptable_family3": ["I26"], "allow_symptom_dp": false, "confidence": "certain", "evidence": [{"section": "Conclusion", "excerpt": "Embolie pulmonaire confirmée au scanner"}], "notes": "Candidat clair dans le dossier"}
{"case_id": "74_23141536", "document_type": "crh", "dp_expected": {"code": "I25.1", "label": "Syndrome coronarien aigu"}, "dp_acceptable_codes": ["I25.1", "I25.5"], "dp_acceptable_family3": ["I25"], "allow_symptom_dp": false, "confidence": "probable", "evidence": [{"section": "Conclusion", "excerpt": "SCA diagnostiqué avec troponine élevée"}], "notes": "Ambiguïté anémie vs SCA"}
{"case_id": "73_23139637", "document_type": "crh", "dp_expected": {"code": "R06.0", "label": "Dyspnée"}, "dp_acceptable_codes": [], "dp_acceptable_family3": ["R06"], "allow_symptom_dp": true, "confidence": "ambiguous", "evidence": [{"section": "Motif", "excerpt": "Dyspnée aiguë sans étiologie retrouvée"}], "notes": "Symptôme seul défendable en DP"}
{"case_id": "115_23066188", "document_type": "crh", "dp_expected": {"code": "A87.0", "label": "Méningite à entérovirus"}, "dp_acceptable_codes": [], "dp_acceptable_family3": ["A87"], "allow_symptom_dp": false, "confidence": "probable", "evidence": [{"section": "contenu_medical", "excerpt": "Synthèse du séjour : méningite à Entérovirus d'évolution favorable après antalgie par paracétamol, Nubain"}], "notes": "CRH pédiatrie — DP clair sans ambiguïté"}
{"case_id": "132_23080179", "document_type": "crh", "dp_expected": {"code": "C83.3", "label": "Lymphome diffus à grandes cellules B"}, "dp_acceptable_codes": [], "dp_acceptable_family3": ["C83"], "allow_symptom_dp": false, "confidence": "probable", "evidence": [{"section": "conclusion", "excerpt": "Initiation d'un traitement protocolaire VALYM pour un DLBCL en progression après 2 lignes de traitement"}, {"section": "histoire_maladie", "excerpt": "Adénopathies cervicales bilatérales et axillaires bilatérales"}], "notes": "Pipeline code R59.0 (symptôme) — le vrai DP est C83.3 (lymphome confirmé + chimio VALYM)"}

View File

@@ -0,0 +1,3 @@
case_id,dp_expected_code,dp_expected_label,dp_acceptable_codes,dp_acceptable_family3,allow_symptom_dp,confidence,evidence_1_section,evidence_1_excerpt,evidence_2_section,evidence_2_excerpt,notes
115_23066188,A87.0,Méningite à entérovirus,,A87,false,probable,contenu_medical,"Synthèse du séjour : méningite à Entérovirus d'évolution favorable après antalgie par paracétamol, Nubain",,,CRH pédiatrie — DP clair sans ambiguïté
132_23080179,C83.3,Lymphome diffus à grandes cellules B,,C83,false,probable,conclusion,"Initiation d'un traitement protocolaire VALYM pour un DLBCL en progression après 2 lignes de traitement",histoire_maladie,"Adénopathies cervicales bilatérales et axillaires bilatérales",Pipeline code R59.0 (symptôme) — le vrai DP est C83.3 (lymphome confirmé + chimio VALYM)
1 case_id dp_expected_code dp_expected_label dp_acceptable_codes dp_acceptable_family3 allow_symptom_dp confidence evidence_1_section evidence_1_excerpt evidence_2_section evidence_2_excerpt notes
2 115_23066188 A87.0 Méningite à entérovirus A87 false probable contenu_medical Synthèse du séjour : méningite à Entérovirus d'évolution favorable après antalgie par paracétamol, Nubain CRH pédiatrie — DP clair sans ambiguïté
3 132_23080179 C83.3 Lymphome diffus à grandes cellules B C83 false probable conclusion Initiation d'un traitement protocolaire VALYM pour un DLBCL en progression après 2 lignes de traitement histoire_maladie Adénopathies cervicales bilatérales et axillaires bilatérales Pipeline code R59.0 (symptôme) — le vrai DP est C83.3 (lymphome confirmé + chimio VALYM)

View File

@@ -0,0 +1,2 @@
{"case_id": "115_23066188", "document_type": "crh", "dp_expected": {"code": "A87.0", "label": "Méningite à entérovirus"}, "dp_acceptable_codes": [], "dp_acceptable_family3": ["A87"], "allow_symptom_dp": false, "confidence": "probable", "evidence": [{"section": "contenu_medical", "excerpt": "Synthèse du séjour : méningite à Entérovirus d'évolution favorable après antalgie par paracétamol, Nubain"}], "notes": "CRH pédiatrie — DP clair sans ambiguïté"}
{"case_id": "132_23080179", "document_type": "crh", "dp_expected": {"code": "C83.3", "label": "Lymphome diffus à grandes cellules B"}, "dp_acceptable_codes": [], "dp_acceptable_family3": ["C83"], "allow_symptom_dp": false, "confidence": "probable", "evidence": [{"section": "conclusion", "excerpt": "Initiation d'un traitement protocolaire VALYM pour un DLBCL en progression après 2 lignes de traitement"}, {"section": "histoire_maladie", "excerpt": "Adénopathies cervicales bilatérales et axillaires bilatérales"}], "notes": "Pipeline code R59.0 (symptôme) — le vrai DP est C83.3 (lymphome confirmé + chimio VALYM)"}