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,384 +3,122 @@
"document_type": "crh",
"sejour": {},
"diagnostic_principal": {
"texte": "Pénicillinase",
"cim10_suggestion": "U82.0",
"texte": "Infection à Haemophilus influenzae (avec production de pénicillinase)",
"cim10_suggestion": "J96.0",
"cim10_confidence": "high",
"cim10_final": "U82.0",
"cim10_final": "J96.0",
"cim10_decision": {
"action": "PROMOTE_DP",
"final_code": "J96.0",
"reason": "DAS promu en DP (score (2, 3, 4))",
"needs_info": [],
"applied_rules": [
"RULE-DAS-TO-DP"
]
},
"justification": "Le compte-rendu microbiologique confirme la présence de 1.10*7 UFC/mL d'Haemophilus influenzae producteur de pénicillinase dans les expectorations, avec un antibiogramme détaillé. Ce diagnostic explique l'infection (complication mentionnée) et justifie des ressources supplémentaires (antibiogramme, adaptation du traitement antibiotique).",
"sources_rag": [],
"preuves_cliniques": [],
"niveau_severite": "non_evalue",
"niveau_cma": 1,
"source": "nuke3",
"source_page": 1,
"source_excerpt": "...per, Vitek2, gélose chromogène ou agglutination\n1.10*7 UFC/mL Haemophilus influenzae\nPrésence d'une pénicillinase. En cas dutilisation dune céphalosporine de 3ème génération dans une infection systémique, il\nest..."
"source": "llm_das"
},
"dp_selection": {
"chosen_index": 1,
"chosen_term": "Pénicillinase",
"chosen_code": "U82.0",
"confidence": "high",
"chosen_index": 0,
"chosen_term": "Infection à Haemophilus influenzae (avec production de pénicillinase)",
"chosen_code": "J96.0",
"verdict": "CONFIRMED",
"evidence": [
"Le contexte clinique est absent, mais Haemophilus influenzae est une étiologie spécifique d'infection.",
"Les autres options décrivent des résistances antibiotiques, qui sont des informations complémentaires et non le motif principal de prise en charge."
"Score 1.0 — source: llm_das"
],
"reason": "Haemophilus influenzae est une étiologie d'infection, plus spécifique que les résistances ou la présence de pénicillinase.",
"reason": "Candidat unique",
"candidates": [
{
"index": 1,
"term": "Pénicillinase",
"code": "U82.0",
"confidence": "high",
"source": "edsnlp",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 2,
"num_occurrences": 2,
"score": 6.0,
"score_details": {
"section": 2,
"confidence": 3,
"occurrences": 1
}
},
{
"index": 2,
"term": "Résistant amoxicilline résistant amoxicilline",
"code": "U82.0",
"confidence": "high",
"source": "edsnlp",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 2,
"num_occurrences": 2,
"score": 6.0,
"score_details": {
"section": 2,
"confidence": 3,
"occurrences": 1
}
},
{
"index": 0,
"term": "Haemophilus influenzae",
"code": "J14",
"confidence": "high",
"source": "edsnlp",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 2,
"num_occurrences": 1,
"score": 5.0,
"score_details": {
"section": 2,
"confidence": 3
}
},
{
"index": 3,
"term": "Infection à Streptococcus alpha-hémolytique",
"code": "A49.1",
"confidence": "high",
"term": "Infection à Haemophilus influenzae (avec production de pénicillinase)",
"code": "J96.0",
"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": 1.0,
"score_details": {
"section": 1,
"confidence": 3
"confidence": 0
}
}
],
"debug_scores": {
"top1": 6.0,
"top2": 6.0,
"delta": 0.0,
"llm": true
"top1": 1.0
}
},
"dp_crh_only": {
"chosen_index": 1,
"chosen_term": "Pénicillinase",
"chosen_code": "U82.0",
"confidence": "high",
"chosen_index": 0,
"chosen_term": "Infection à Haemophilus influenzae (avec production de pénicillinase)",
"chosen_code": "J96.0",
"verdict": "CONFIRMED",
"evidence": [
"Le contexte clinique est absent, mais Haemophilus influenzae est une étiologie spécifique d'infection.",
"Les autres options décrivent des résistances antibiotiques, qui sont des informations complémentaires et non le motif principal de prise en charge."
"Score 1.0 — source: llm_das"
],
"reason": "Haemophilus influenzae est une étiologie d'infection, plus spécifique que les résistances ou la présence de pénicillinase.",
"reason": "Candidat unique",
"candidates": [
{
"index": 1,
"term": "Pénicillinase",
"code": "U82.0",
"confidence": "high",
"source": "edsnlp",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 2,
"num_occurrences": 2,
"score": 6.0,
"score_details": {
"section": 2,
"confidence": 3,
"occurrences": 1
}
},
{
"index": 2,
"term": "Résistant amoxicilline résistant amoxicilline",
"code": "U82.0",
"confidence": "high",
"source": "edsnlp",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 2,
"num_occurrences": 2,
"score": 6.0,
"score_details": {
"section": 2,
"confidence": 3,
"occurrences": 1
}
},
{
"index": 0,
"term": "Haemophilus influenzae",
"code": "J14",
"confidence": "high",
"source": "edsnlp",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 2,
"num_occurrences": 1,
"score": 5.0,
"score_details": {
"section": 2,
"confidence": 3
}
},
{
"index": 3,
"term": "Infection à Streptococcus alpha-hémolytique",
"code": "A49.1",
"confidence": "high",
"term": "Infection à Haemophilus influenzae (avec production de pénicillinase)",
"code": "J96.0",
"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": 1.0,
"score_details": {
"section": 1,
"confidence": 3
"confidence": 0
}
}
],
"debug_scores": {
"top1": 6.0,
"top2": 6.0,
"delta": 0.0,
"llm": true
"top1": 1.0
}
},
"dp_final": {
"chosen_index": 1,
"chosen_term": "Pénicillinase",
"chosen_code": "U82.0",
"confidence": "high",
"chosen_index": 0,
"chosen_term": "Infection à Haemophilus influenzae (avec production de pénicillinase)",
"chosen_code": "J96.0",
"verdict": "CONFIRMED",
"evidence": [
"Le contexte clinique est absent, mais Haemophilus influenzae est une étiologie spécifique d'infection.",
"Les autres options décrivent des résistances antibiotiques, qui sont des informations complémentaires et non le motif principal de prise en charge."
"Score 1.0 — source: llm_das"
],
"reason": "Haemophilus influenzae est une étiologie d'infection, plus spécifique que les résistances ou la présence de pénicillinase.",
"reason": "Candidat unique",
"candidates": [
{
"index": 1,
"term": "Pénicillinase",
"code": "U82.0",
"confidence": "high",
"source": "edsnlp",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 2,
"num_occurrences": 2,
"score": 6.0,
"score_details": {
"section": 2,
"confidence": 3,
"occurrences": 1
}
},
{
"index": 2,
"term": "Résistant amoxicilline résistant amoxicilline",
"code": "U82.0",
"confidence": "high",
"source": "edsnlp",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 2,
"num_occurrences": 2,
"score": 6.0,
"score_details": {
"section": 2,
"confidence": 3,
"occurrences": 1
}
},
{
"index": 0,
"term": "Haemophilus influenzae",
"code": "J14",
"confidence": "high",
"source": "edsnlp",
"is_comorbidity_like": false,
"is_symptom_like": false,
"is_act_only": false,
"section_strength": 2,
"num_occurrences": 1,
"score": 5.0,
"score_details": {
"section": 2,
"confidence": 3
}
},
{
"index": 3,
"term": "Infection à Streptococcus alpha-hémolytique",
"code": "A49.1",
"confidence": "high",
"term": "Infection à Haemophilus influenzae (avec production de pénicillinase)",
"code": "J96.0",
"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": 1.0,
"score_details": {
"section": 1,
"confidence": 3
"confidence": 0
}
}
],
"debug_scores": {
"top1": 6.0,
"top2": 6.0,
"delta": 0.0,
"llm": true
"top1": 1.0
}
},
"quality_flags": {
"rag_status": "error",
"crh_only_mode": true
},
"diagnostics_associes": [
{
"texte": "Infection à Streptococcus alpha-hémolytique",
"cim10_suggestion": "A49.1",
"cim10_confidence": "high",
"cim10_final": "A49.1",
"justification": "Code le plus spécifique pour une infection à streptocoques non précisée, justifiant un DAS dans le contexte clinique.",
"raisonnement": "ANALYSE CLINIQUE :\nL'infection à Streptococcus alpha-hémolytique indique la présence de streptocoques du groupe viridans, souvent commensaux de la cavité buccale, mais pouvant causer des infections opportunistes, notamment des endocardites ou des infections des tissus mous. Le contexte clinique suggère une infection significative nécessitant une prise en charge.\n\nCODES CANDIDATS :\nA49.1, A40.0, A40.1, A40.2, A40.3\n\nDISCRIMINATION :\nA49.1 est le code le plus approprié car il correspond directement à l'infection à streptocoques et entérocoques, siège non précisé. Les codes A40.x concernent des sepsis spécifiques à certains groupes de streptocoques, ce qui n'est pas précisé dans le diagnostic. Le DP étant Haemophilus influenzae, il est peu probable que l'infection à streptocoques soit une septicémie à proprement parler. A49.1 est suffisamment spécifique pour un DAS.\n\nREGLE PMSI :\nEn tant que DAS, le code doit refléter une morbidité significative ayant mobilisé des ressources supplémentaires pendant le séjour. L'infection à Streptococcus alpha-hémolytique, même sans précision du site, justifie un DAS en raison de la nécessité d'antibiothérapie et de surveillance clinique.",
"sources_rag": [
{
"document": "cim10",
"page": 110,
"code": "A49.1",
"extrait": "A49.1 Infection à streptocoques et entérocoques, siège non précisé"
},
{
"document": "cim10",
"page": 105,
"code": "A27.0",
"extrait": "A27.0 Leptospirose ictérohémorragique\nLeptospirose à Leptospira interrogans serovar icterohaemorrhagiae"
},
{
"document": "cim10",
"page": 96,
"code": "A04.3",
"extrait": "A04.3 Infection entérohémorragique à Escherichia coli"
},
{
"document": "cim10",
"page": 108,
"code": "A40.2",
"extrait": "A40.2 Sepsis à streptocoques groupe D et entérocoques"
},
{
"document": "cim10",
"page": 108,
"code": "A40.1",
"extrait": "A40.1 Sepsis à streptocoques, groupe B"
},
{
"document": "cim10",
"page": 105,
"code": "A27",
"extrait": "A27 Leptospirose\nA27.0 Leptospirose ictérohémorragique\nLeptospirose à Leptospira interrogans serovar icterohaemorrhagiae\nA27.8 Autres formes de leptospirose\nA27.9 Leptospirose, sans précision"
},
{
"document": "cim10",
"page": 107,
"code": "A36.0",
"extrait": "A36.0 Diphtérie pharyngée\nAngine diphtérique pseudomembraneuse\nDiphtérie amygdalienne"
},
{
"document": "cim10",
"page": 109,
"code": "A41.3",
"extrait": "A41.3 Sepsis à Haemophilus influenzae"
},
{
"document": "cim10",
"page": 108,
"code": "A40.0",
"extrait": "A40.0 Sepsis à streptocoques, groupe A"
},
{
"document": "cim10",
"page": 108,
"code": "A40.3",
"extrait": "A40.3 Sepsis à Streptococcus pneumoniae\nSepsis à pneumocoques"
}
],
"preuves_cliniques": [
{
"type": "clinique",
"element": "Infection à Streptococcus alpha-hémolytique mentionnée dans le diagnostic",
"interpretation": "Confirmation de l'infection par le diagnostic posé."
},
{
"type": "traitement",
"element": "Antibiothérapie prescrite",
"interpretation": "Nécessité d'un traitement spécifique pour l'infection, justifiant un DAS."
},
{
"type": "biologie",
"element": "Identification de Streptococcus alpha-hémolytique par culture",
"interpretation": "Confirmation microbiologique de l'infection."
}
],
"est_cma": true,
"niveau_severite": "non_evalue",
"niveau_cma": 2,
"source": "llm_das"
}
],
"diagnostics_associes": [],
"actes_ccam": [],
"antecedents": [],
"traitements_sortie": [],
@@ -395,38 +133,72 @@
}
],
"alertes_codage": [
"CMA niveau 2 : 'Infection à Streptococcus alpha-hémolytique' (A49.1) — sévérité non_evalue",
"QC: Le dossier clinique est très succinct. Une description plus détaillée de l'infection (localisation, sévérité, etc.) permettrait un codage plus précis et une meilleure justification des codes.",
"QC: L'absence de justification pour le code U82.0 est préoccupante. Il est crucial de vérifier la pertinence des codes attribués et de s'assurer qu'ils sont étayés par des preuves cliniques."
"QUALITE DEGRADEE : erreur RAG — codage sans référentiels",
"CMA niveau 2 : 'Infection à Haemophilus influenzae (avec production de pénicillinase)' (J96.0) — sévérité severe, marqueurs : aigue",
"QC: Bien que la justification du code J96.0 soit donnée, il serait idéal d'avoir une copie du compte-rendu microbiologique pour une validation complète. L'absence de preuve clinique directe dans le dossier clinique est un risque, même si la justification est fournie.",
"QC: Vérifier si d'autres complications ou conditions sous-jacentes doivent être codées en plus de l'infection. Le terme 'complications' dans le dossier clinique suggère qu'il pourrait y avoir d'autres éléments à prendre en compte.",
"RULE-DAS-TO-DP: DP absent → DAS J96.0 (Infection à Haemophilus influenzae (avec production de pénicillinase)) promu en DP",
"DECISIONS[PDF]: 1 ligne(s)",
"DECISION: diagnostic_principal J96.0 promu en DP (RULE-DAS-TO-DP)",
"VETOS[PDF]: NEED_INFO (score=85)",
"VETO-02 [MEDIUM] diagnostics_associes[0]: DAS J96.0 sans preuve exploitable"
],
"source_files": [],
"ghm_estimation": {
"cmd": "26",
"cmd_libelle": "Catégories spéciales",
"cmd": "04",
"cmd_libelle": "Affections de l'appareil respiratoire",
"type_ghm": "M",
"severite": 2,
"ghm_approx": "26M??2",
"cma_count": 1,
"severite": 1,
"ghm_approx": "04M??1",
"cma_count": 0,
"cms_count": 0,
"alertes": []
},
"controles_cpam": [],
"veto_report": {
"verdict": "PASS",
"score_contestabilite": 95,
"verdict": "NEED_INFO",
"score_contestabilite": 85,
"issues": [
{
"veto": "VETO-03",
"severity": "LOW",
"veto": "VETO-02",
"severity": "MEDIUM",
"where": "diagnostics_associes[0]",
"message": "DAS A49.1 potentiellement conditionnel"
"message": "DAS J96.0 sans preuve exploitable",
"citation": "Principe de preuve : tout diagnostic/acte doit être étayé par une trace dans le dossier médical (Guide Méthodologique MCO)"
}
]
},
"processing_time_s": 70.6,
"completude": {
"checks": [
{
"code": "J96.0",
"libelle": "Infection à Haemophilus influenzae (avec production de pénicillinase)",
"type_diag": "DP",
"items": [
{
"categorie": "biologie",
"element": "Gaz du sang",
"statut": "absent",
"importance": "obligatoire",
"impact_cpam": "Gazométrie artérielle obligatoire pour confirmer une insuffisance respiratoire"
}
],
"score": 30,
"verdict": "indefendable",
"resume": "0/1 obligatoires"
}
],
"score_global": 30,
"verdict_global": "indefendable",
"documents_presents": [
"crh"
],
"documents_manquants": []
},
"processing_time_s": 439.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