chore: mise à jour output pipeline (anonymized + structured)

Résultats de re-traitement pipeline v2 sur 261 dossiers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
dom
2026-03-07 23:14:42 +01:00
parent c73515ac89
commit 13fe9fa666
734 changed files with 157158 additions and 304963 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -3,276 +3,129 @@
"document_type": "crh",
"sejour": {},
"diagnostic_principal": {
"texte": "Citrobacter koseri infection",
"cim10_suggestion": "B96.8",
"texte": "Infection urinaire",
"cim10_suggestion": "N39.0",
"cim10_confidence": "high",
"cim10_final": "B96.8",
"cim10_final": "N39.0",
"cim10_decision": {
"action": "PROMOTE_DP",
"final_code": "N39.0",
"reason": "DAS promu en DP (score (2, 3, 4))",
"needs_info": [],
"applied_rules": [
"RULE-DAS-TO-DP"
]
},
"sources_rag": [],
"preuves_cliniques": [],
"niveau_severite": "non_evalue",
"niveau_cma": 1,
"source": "nuke3"
"source": "regex",
"source_page": 1,
"source_excerpt": "...utination\n1.10*2 UFC/mL Citrobacter koseri\nConclusion\nAbsence d'arguments microbiologiques pour une infection urinaire\nCompte-rendu : Complet (1) analyse référencée sous\nACCREDITATION COFRAC Page 1/1\nValidé et diffusé..."
},
"dp_selection": {
"chosen_index": 1,
"chosen_term": "Citrobacter koseri infection",
"chosen_code": "B96.8",
"confidence": "high",
"chosen_index": 0,
"chosen_term": "Infection urinaire",
"chosen_code": "N39.0",
"verdict": "CONFIRMED",
"evidence": [
"Le compte-rendu indique une infection à Citrobacter koseri (B96.8).",
"L'analyse microbiologique a identifié un agent pathogène spécifique."
"Score 5.0 — source: regex (section forte)",
"Conclusion: «Absence d'arguments microbiologiques pour une infection urinaire\nCompte-rendu : Complet (1) analyse référencée sous\nACCREDITATION COFRAC Page 1/1\nValidé et diffusé sous la responsabilité du biologiste : Dr. Anne Christine JAOUEN N° 8-3188\nP»"
],
"reason": "L'infection à Citrobacter koseri est l'étiologie identifiée, et donc le diagnostic principal. L'absence d'arguments pour une infection urinaire élimine le candidat Z00.0.",
"reason": "Candidat unique",
"candidates": [
{
"index": 0,
"term": "Infection urinaire",
"code": "Z00.0",
"confidence": "high",
"code": "N39.0",
"source": "regex",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 3,
"num_occurrences": 1,
"score": 6.0,
"score": 5.0,
"score_details": {
"section": 3,
"confidence": 3,
"diag_section_bonus": 2,
"z_code_malus": -2
}
},
{
"index": 1,
"term": "Citrobacter koseri infection",
"code": "B96.8",
"confidence": "high",
"source": "llm_das",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 1,
"num_occurrences": 1,
"score": 4.0,
"score_details": {
"section": 1,
"confidence": 3
"confidence": 0,
"diag_section_bonus": 2
}
}
],
"debug_scores": {
"top1": 6.0,
"top2": 4.0,
"delta": 2.0,
"llm": true
"top1": 5.0
}
},
"dp_crh_only": {
"chosen_index": 1,
"chosen_term": "Citrobacter koseri infection",
"chosen_code": "B96.8",
"confidence": "high",
"chosen_index": 0,
"chosen_term": "Infection urinaire",
"chosen_code": "N39.0",
"verdict": "CONFIRMED",
"evidence": [
"Le compte-rendu indique une infection à Citrobacter koseri (B96.8).",
"L'analyse microbiologique a identifié un agent pathogène spécifique."
"Score 5.0 — source: regex (section forte)",
"Conclusion: «Absence d'arguments microbiologiques pour une infection urinaire\nCompte-rendu : Complet (1) analyse référencée sous\nACCREDITATION COFRAC Page 1/1\nValidé et diffusé sous la responsabilité du biologiste : Dr. Anne Christine JAOUEN N° 8-3188\nP»"
],
"reason": "L'infection à Citrobacter koseri est l'étiologie identifiée, et donc le diagnostic principal. L'absence d'arguments pour une infection urinaire élimine le candidat Z00.0.",
"reason": "Candidat unique",
"candidates": [
{
"index": 0,
"term": "Infection urinaire",
"code": "Z00.0",
"confidence": "high",
"code": "N39.0",
"source": "regex",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 3,
"num_occurrences": 1,
"score": 6.0,
"score": 5.0,
"score_details": {
"section": 3,
"confidence": 3,
"diag_section_bonus": 2,
"z_code_malus": -2
}
},
{
"index": 1,
"term": "Citrobacter koseri infection",
"code": "B96.8",
"confidence": "high",
"source": "llm_das",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 1,
"num_occurrences": 1,
"score": 4.0,
"score_details": {
"section": 1,
"confidence": 3
"confidence": 0,
"diag_section_bonus": 2
}
}
],
"debug_scores": {
"top1": 6.0,
"top2": 4.0,
"delta": 2.0,
"llm": true
"top1": 5.0
}
},
"dp_final": {
"chosen_index": 1,
"chosen_term": "Citrobacter koseri infection",
"chosen_code": "B96.8",
"confidence": "high",
"chosen_index": 0,
"chosen_term": "Infection urinaire",
"chosen_code": "N39.0",
"verdict": "CONFIRMED",
"evidence": [
"Le compte-rendu indique une infection à Citrobacter koseri (B96.8).",
"L'analyse microbiologique a identifié un agent pathogène spécifique."
"Score 5.0 — source: regex (section forte)",
"Conclusion: «Absence d'arguments microbiologiques pour une infection urinaire\nCompte-rendu : Complet (1) analyse référencée sous\nACCREDITATION COFRAC Page 1/1\nValidé et diffusé sous la responsabilité du biologiste : Dr. Anne Christine JAOUEN N° 8-3188\nP»"
],
"reason": "L'infection à Citrobacter koseri est l'étiologie identifiée, et donc le diagnostic principal. L'absence d'arguments pour une infection urinaire élimine le candidat Z00.0.",
"reason": "Candidat unique",
"candidates": [
{
"index": 0,
"term": "Infection urinaire",
"code": "Z00.0",
"confidence": "high",
"code": "N39.0",
"source": "regex",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 3,
"num_occurrences": 1,
"score": 6.0,
"score": 5.0,
"score_details": {
"section": 3,
"confidence": 3,
"diag_section_bonus": 2,
"z_code_malus": -2
}
},
{
"index": 1,
"term": "Citrobacter koseri infection",
"code": "B96.8",
"confidence": "high",
"source": "llm_das",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 1,
"num_occurrences": 1,
"score": 4.0,
"score_details": {
"section": 1,
"confidence": 3
"confidence": 0,
"diag_section_bonus": 2
}
}
],
"debug_scores": {
"top1": 6.0,
"top2": 4.0,
"delta": 2.0,
"llm": true
"top1": 5.0
}
},
"quality_flags": {
"rag_status": "error",
"crh_only_mode": true
},
"diagnostics_associes": [
{
"texte": "Infection urinaire",
"cim10_suggestion": "Z00.0",
"cim10_confidence": "medium",
"cim10_final": "Z00.0",
"justification": "Le codage de l'infection urinaire en tant que DAS est inapproprié car elle est déjà codée comme DP (N39.0). Z00.0 (Examen médical général) peut être utilisé pour refléter la prise en charge globale du patient.",
"raisonnement": "ANALYSE CLINIQUE :\nL'infection urinaire est une prolifération bactérienne dans les voies urinaires, pouvant affecter la vessie, les uretères, les reins ou la prostate. Chez un patient âgé et fragilisé, elle peut entraîner une décompensation et nécessiter une prise en charge prolongée.\n\nCODES CANDIDATS :\nAucun des codes fournis ne correspond directement à une infection urinaire non liée à la grossesse ou au nouveau-né. Les codes O23, O23.2, O23.3, O23.4, P39.3 sont exclus en raison du contexte clinique. T83.5 concerne les infections liées à des dispositifs, N13.2 une hydronéphrose avec infection, R32 l'incontinence, Z43.6 la surveillance de stomie et N99.5 le mauvais fonctionnement de stomie.\n\nDISCRIMINATION :\nAucun code pertinent n'est disponible dans les sources fournies. Le diagnostic 'Infection urinaire' est déjà codé avec N39.0. Il est donc inutile de le coder à nouveau comme DAS. Le principe d'exclusion de symptômes s'applique ici : l'infection urinaire est un diagnostic précis et explique la complication 'Infection'.\n\nREGLE PMSI :\nUn DAS doit mobiliser des ressources supplémentaires pendant le séjour. Bien que l'infection urinaire ait pu nécessiter des antibiotiques et une surveillance, elle est déjà codée comme DP (N39.0) et ne justifie pas un codage supplémentaire en tant que DAS, surtout en présence d'autres DAS déjà codés.",
"sources_rag": [
{
"document": "cim10",
"page": 62,
"code": "O23",
"extrait": "O23 Infections de l'appareil génito-urinaire au cours de la grossesse"
},
{
"document": "cim10",
"page": 616,
"code": "O23.2",
"extrait": "O23.2 Infections urétrales au cours de la grossesse"
},
{
"document": "cim10",
"page": 616,
"code": "O23.3",
"extrait": "O23.3 Infections d'autres parties de l'appareil urinaire au cours de la grossesse"
},
{
"document": "cim10",
"page": 616,
"code": "O23.4",
"extrait": "O23.4 Infection de l'appareil urinaire sans précision au cours de la grossesse"
},
{
"document": "cim10",
"page": 828,
"code": "T83.5",
"extrait": "T83.5 Infection et réaction inflammatoire dues à une prothèse, un implant et une greffe de\nl'appareil urinaire"
},
{
"document": "cim10",
"page": 578,
"code": "N13.2",
"extrait": "N13.2 Hydronéphrose avec obstruction calculeuse rénale et urétérale\nÀ l'exclusion de :avec infection (N13.6)"
},
{
"document": "cim10",
"page": 69,
"code": "R32",
"extrait": "R32 Incontinence urinaire, sans précision"
},
{
"document": "cim10",
"page": 657,
"code": "P39.3",
"extrait": "P39.3 Infection des voies urinaires du nouveau-né"
},
{
"document": "cim10",
"page": 940,
"code": "Z43.6",
"extrait": "Z43.6 Surveillance d'autres stomies des voies urinaires\nNéphrostomie\nUrétérostomie\nUrétrostomie"
},
{
"document": "cim10",
"page": 603,
"code": "N99.5",
"extrait": "N99.5 Mauvais fonctionnement de stomie de l'appareil urinaire\nChapitre XIV"
}
],
"preuves_cliniques": [
{
"type": "clinique",
"element": "Infection urinaire mentionnée dans le contexte clinique",
"interpretation": "Présence d'une infection urinaire nécessitant une prise en charge."
},
{
"type": "biologie",
"element": "Hémoglobine 8, Plaquettes 12",
"interpretation": "Signes d'infection et d'inflammation pouvant être liés à l'infection urinaire."
}
],
"niveau_severite": "non_evalue",
"niveau_cma": 1,
"source": "regex",
"source_page": 1,
"source_excerpt": "...utination\n1.10*2 UFC/mL Citrobacter koseri\nConclusion\nAbsence d'arguments microbiologiques pour une infection urinaire\nCompte-rendu : Complet (1) analyse référencée sous\nACCREDITATION COFRAC Page 1/1\nValidé et diffusé..."
}
],
"diagnostics_associes": [],
"actes_ccam": [],
"antecedents": [],
"traitements_sortie": [],
@@ -297,47 +150,66 @@
}
],
"alertes_codage": [
"QC: DAS Z00.0 confiance high→medium — Votre justification est correcte. Z00.0 (Examen médical général) n'est pas approprié ici. Si l'infection urinaire est une complication documentée, elle devrait être codée comme un diagnostic principal (DP) avec le code N39.0 (Infection des voies urinaires). Z00.0 n'est pas justifié dans ce contexte. L'hémoglobine et les plaquettes ne sont pas directement liés à l'infection urinaire et ne justifient pas ce code.",
"QC: Le dossier clinique est limité. Un diagnostic d'infection général est noté, mais l'agent pathogène n'est pas identifié. Il est crucial d'obtenir des informations plus précises sur la nature de l'infection pour un codage précis.",
"QC: L'absence de détails sur l'infection rend le codage difficile. Des investigations complémentaires pourraient être nécessaires pour identifier l'agent pathogène et la localisation précise de l'infection.",
"VETOS[PDF]: FAIL (score=40)",
"VETO-02 [HARD] diagnostic_principal: DP B96.8 sans preuve exploitable",
"VETO-12 [HARD] diagnostic_principal: DP B96.8 en high sans preuve"
"QUALITE DEGRADEE : erreur RAG — codage sans référentiels",
"CMA niveau 2 : 'Infection urinaire' (N39.0) — sévérité non_evalue",
"QC: DAS N39.0 (Infection urinaire) à reconsidérer — ABSENCE DE PREUVE CLINIQUE : Le dossier mentionne une 'complication : infection' de manière générique, SANS spécification du site infectieux. N39.0 (infection urinaire) est un codage par défaut non justifié. Les leucocytes sont NORMAUX (7, intervalle 4-10), ce qui ne soutient pas une infection active. Aucun symptôme urinaire, aucune culture, aucun examen complémentaire n'est documenté.",
"QC: ⚠️ CODAGE INJUSTIFIÉ : Infection urinaire codée sans preuve clinique concrète",
"QC: ⚠️ MANQUE DE SPÉCIFICITÉ : Le dossier mentionne 'infection' sans préciser le site - nécessite clarification clinique",
"QC: ⚠️ INCOHÉRENCE BIOLOGIQUE : Leucocytes normaux ne soutiennent pas le diagnostic d'infection active",
"QC: ⚠️ DOCUMENTATION INSUFFISANTE : Aucune preuve documentée (symptômes, cultures, imagerie, antibiothérapie)",
"QC: 🔴 RECOMMANDATION : Demander au clinicien de préciser : (1) le site exact de l'infection, (2) les preuves cliniques/biologiques, (3) ou supprimer ce code si infection non confirmée",
"RULE-DAS-TO-DP: DP absent → DAS N39.0 (Infection urinaire) promu en DP",
"DECISIONS[PDF]: 1 ligne(s)",
"DECISION: diagnostic_principal N39.0 promu en DP (RULE-DAS-TO-DP)"
],
"source_files": [],
"ghm_estimation": {
"cmd": "18",
"cmd_libelle": "Maladies infectieuses et parasitaires",
"cmd": "11",
"cmd_libelle": "Affections du rein et des voies urinaires",
"type_ghm": "M",
"severite": 1,
"ghm_approx": "18M??1",
"ghm_approx": "11M??1",
"cma_count": 0,
"cms_count": 0,
"alertes": []
},
"controles_cpam": [],
"veto_report": {
"verdict": "FAIL",
"score_contestabilite": 40,
"issues": [
{
"veto": "VETO-02",
"severity": "HARD",
"where": "diagnostic_principal",
"message": "DP B96.8 sans preuve exploitable"
},
{
"veto": "VETO-12",
"severity": "HARD",
"where": "diagnostic_principal",
"message": "DP B96.8 en high sans preuve"
}
]
"verdict": "PASS",
"score_contestabilite": 100,
"issues": []
},
"processing_time_s": 73.25,
"completude": {
"checks": [
{
"code": "N39.0",
"libelle": "Infection urinaire",
"type_diag": "DP",
"items": [
{
"categorie": "biologie",
"element": "ECBU",
"statut": "absent",
"importance": "obligatoire",
"impact_cpam": "ECBU obligatoire pour documenter une infection urinaire"
}
],
"score": 30,
"verdict": "indefendable",
"resume": "0/1 obligatoires"
}
],
"score_global": 30,
"verdict_global": "indefendable",
"documents_presents": [
"crh"
],
"documents_manquants": []
},
"processing_time_s": 9.22,
"metrics": {
"das_total": 1,
"das_active": 1,
"das_total": 0,
"das_active": 0,
"das_excluded": 0,
"das_removed": 0,
"das_ruled_out": 0,

File diff suppressed because it is too large Load Diff