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

View File

@@ -10,106 +10,24 @@
"taille": 160.0
},
"diagnostic_principal": {
"texte": "Troubles électrolytiques",
"cim10_suggestion": "E87.8",
"cim10_confidence": "medium",
"cim10_final": "E87.8",
"texte": "Sepsis",
"cim10_suggestion": "A41.9",
"cim10_confidence": "high",
"cim10_final": "A41.9",
"cim10_decision": {
"action": "PROMOTE_DP",
"final_code": "E87.8",
"reason": "DAS promu en DP (score (2, 2, 4))",
"final_code": "A41.9",
"reason": "DAS promu en DP (score (2, 3, 4))",
"needs_info": [],
"applied_rules": [
"RULE-DAS-TO-DP"
]
},
"justification": "Code le plus spécifique pour un trouble électrolytique non précisé, justifié par les anomalies biologiques observées et en lien avec l'insuffisance rénale.",
"raisonnement": "ANALYSE CLINIQUE :\nLe diagnostic de 'Troubles électrolytiques' indique une perturbation de l'équilibre des électrolytes (sodium, potassium, chlore, etc.) dans le corps du patient. Ceci peut avoir diverses causes et se manifester par des symptômes variés. Dans ce contexte, l'élévation de la créatinine et de l'urée suggère une atteinte rénale contribuant aux troubles électrolytiques.\n\nCODES CANDIDATS :\nE87, E87.8, P74.4, T50.3, T75.4, E87.4, Y54.6, O08.5, T82.1, E78\n\nDISCRIMINATION :\nE87.8 est le code le plus spécifique pour un 'déséquilibre électrolytique SAI' (sans autre indication). Les autres codes sont soit trop spécifiques (P74.4 pour le nouveau-né, T50.3/Y54.6/T82.1 liés à des traitements ou dispositifs), soit concernent d'autres types de déséquilibres (E87.4 acidobasique, O08.5 lié à la grossesse, E78 lipidémies). Le code E87 est trop général.\n\nREGLE PMSI :\nEn tant que DAS, le code doit refléter une morbidité significative ayant mobilisé des ressources pendant le séjour. Les troubles électrolytiques, en lien avec l'insuffisance rénale (N19) déjà codée en DP, justifient un DAS car ils nécessitent une surveillance biologique et potentiellement une correction par voie intraveineuse.",
"sources_rag": [
{
"document": "cim10",
"page": 42,
"code": "E87",
"extrait": "E87 Autres déséquilibres hydro-électrolytiques et acido-basiques"
},
{
"document": "cim10",
"page": 258,
"code": "E87.8",
"extrait": "E87.8 Autres déséquilibres hydroélectrolytiques, non classés ailleurs\nDéséquilibre électrolytique SAI\nHyperchlorémie\nHypochlorémie"
},
{
"document": "cim10",
"page": 662,
"code": "P74.4",
"extrait": "P74.4 Autres anomalies électrolytiques transitoires du nouveau-né"
},
{
"document": "cim10",
"page": 812,
"code": "T50.3",
"extrait": "T50.3 Produits agissant sur l'équilibre électrolytique, calorique et hydrique\nSels de réhydratation orale"
},
{
"document": "cim10",
"page": 820,
"code": "T75.4",
"extrait": "T75.4 Effets du courant électrique\nChoc dû au courant électrique\nÉlectrocution"
},
{
"document": "cim10",
"page": 257,
"code": "E87.4",
"extrait": "E87.4 Anomalie mixte de l'équilibre acidobasique"
},
{
"document": "cim10",
"page": 914,
"code": "Y54.6",
"extrait": "Y54.6 Produits agissant sur l'équilibre électrolytique, calorique et hydrique\nSels de réhydratation orale"
},
{
"document": "cim10",
"page": 612,
"code": "O08.5",
"extrait": "O08.5 Troubles du métabolisme consécutifs à un avortement, une grossesse extra-utérine\net molaire\nDéséquilibre électrolytique survenant après les états classés en O00-O07"
},
{
"document": "cim10",
"page": 827,
"code": "T82.1",
"extrait": "T82.1 Complication mécanique d'un appareil cardiaque électronique\nÉtats mentionnés en T82.0 dus à :\n•électrodes\n•générateur d'impulsions (pile)"
},
{
"document": "cim10",
"page": 42,
"code": "E78",
"extrait": "E78 Anomalies du métabolisme des lipoprotéines et autres lipidémies"
}
],
"preuves_cliniques": [
{
"type": "biologie",
"element": "Sodium 136 [N: 135-145]",
"interpretation": "Sodium dans les limites de la normale, mais à surveiller dans le contexte d'autres anomalies."
},
{
"type": "biologie",
"element": "Potassium 3.8 [N: 3.5-5]",
"interpretation": "Potassium dans les limites de la normale, mais à surveiller dans le contexte d'autres anomalies."
},
{
"type": "biologie",
"element": "Créatinine 137 [N: 50-120] (↑)",
"interpretation": "Créatinine élevée, témoignant d'une insuffisance rénale pouvant contribuer aux troubles électrolytiques."
},
{
"type": "biologie",
"element": "Urée 9.8 [N: 2.5-7.5] (↑)",
"interpretation": "Urée élevée, témoignant d'une insuffisance rénale pouvant contribuer aux troubles électrolytiques."
}
],
"source": "llm_das"
"sources_rag": [],
"preuves_cliniques": [],
"source": "regex",
"source_page": 2,
"source_excerpt": "...irine donc reprise plavix à J1\nCOUTRIX 17:30\nDescellment cotyloïdien PTH Gauche\nNotion de doute sur sepsis mais pas de signe macroscopique d'infection\nDR. Pierre 25/05/2023\nNote d'évolution\nBRUNETEAU 11:32..."
},
"dp_final": {
"verdict": "REVIEW",
@@ -118,106 +36,35 @@
"candidates": []
},
"quality_flags": {
"rag_status": "error",
"no_dp_source": true
},
"diagnostics_associes": [
{
"texte": "Sepsis",
"cim10_suggestion": "A41.9",
"cim10_confidence": "low",
"cim10_final": "A41.9",
"justification": "Sepsis non précisé, en l'absence d'identification de l'agent pathogène.",
"raisonnement": "ANALYSE CLINIQUE :\nLe sepsis est une réponse inflammatoire systémique potentiellement mortelle à une infection. Il se manifeste par une dysfonction organique due à une infection. Dans ce cas, il est associé à une anémie, une thrombopénie sévère, une dénutrition, une cachexie et une fièvre.\n\nCODES CANDIDATS :\nA41.9, A32.7, A26.7, A40.9, A22.7, A02.1, A41.5, A40.1, A41.2, R65.1\n\nDISCRIMINATION :\nLe code A41.9 (Sepsis, sans précision) est le plus approprié car le dossier ne précise pas l'agent pathogène responsable du sepsis. Les autres codes (A32.7, A26.7, A40.9, A22.7, A02.1, A41.5, A40.1, A41.2) nécessitent la connaissance de l'organisme causal, information absente. Le code R65.1 (Sepsis sévère) est trop spécifique et nécessite des critères de défaillance d'organe non documentés.\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. Le sepsis, en raison de sa gravité potentielle et de la nécessité d'une prise en charge intensive, répond à ce critère. Il est important de ne pas coder le symptôme (fièvre) si un diagnostic précis (sepsis) est identifié.",
"sources_rag": [
{
"document": "cim10",
"page": 109,
"code": "A41.9",
"extrait": "A41.9 Sepsis, sans précision\nSepticémie"
},
{
"document": "cim10",
"page": 106,
"code": "A32.7",
"extrait": "A32.7 Sepsis listérien"
},
{
"document": "cim10",
"page": 105,
"code": "A26.7",
"extrait": "A26.7 Sepsis à Erysipelothrix"
},
{
"document": "cim10",
"page": 108,
"code": "A40.9",
"extrait": "A40.9 Sepsis à streptocoques, sans précision"
},
{
"document": "cim10",
"page": 104,
"code": "A22.7",
"extrait": "A22.7 Sepsis charbonneux"
},
{
"document": "cim10",
"page": 95,
"code": "A02.1",
"extrait": "A02.1 Sepsis à Salmonella"
},
{
"document": "cim10",
"page": 109,
"code": "A41.5",
"extrait": "A41.5 Sepsis à d'autres microorganismes Gram négatif\nSepsis à microorganismes Gram négatif SAI"
},
{
"document": "cim10",
"page": 108,
"code": "A40.1",
"extrait": "A40.1 Sepsis à streptocoques, groupe B"
},
{
"document": "cim10",
"page": 109,
"code": "A41.2",
"extrait": "A41.2 Sepsis à staphylocoques non précisés"
},
{
"document": "cim10",
"page": 733,
"code": "R65.1",
"extrait": "R65.1 Syndrome de réponse inflammatoire systémique d'origine infectieuse avec\ndéfaillance d'organe\nSepsis sévère"
}
],
"preuves_cliniques": [
{
"type": "biologie",
"element": "Hémoglobine 7.1 g/dL",
"interpretation": "Anémie associée au sepsis, contribuant à la dysfonction organique."
},
{
"type": "biologie",
"element": "Plaquettes 20 G/L et 10 G/L",
"interpretation": "Thrombopénie sévère, signe de gravité et de dysfonctionnement hématologique lié au sepsis."
},
{
"type": "clinique",
"element": "Fièvre",
"interpretation": "Manifestation clinique fréquente du sepsis, indiquant une réponse inflammatoire systémique."
},
{
"type": "clinique",
"element": "Âge du patient (76 ans)",
"interpretation": "Facteur de risque de complications et de sévérité du sepsis."
}
],
"texte": "Anémie",
"cim10_suggestion": "D64.9",
"cim10_confidence": "medium",
"cim10_final": "D64.9",
"justification": "Hémoglobine 10.4 g/dL [N: 12-17] significativement abaissée chez une patiente de 75 ans hospitalisée pour sepsis. Cette anémie a mobilisé des ressources (surveillance, potentiellement transfusion) et est pertinente pour le séjour.",
"sources_rag": [],
"preuves_cliniques": [],
"est_cma": true,
"niveau_severite": "non_evalue",
"niveau_cma": 3,
"source": "regex",
"source_page": 2,
"source_excerpt": "...irine donc reprise plavix à J1\nCOUTRIX 17:30\nDescellment cotyloïdien PTH Gauche\nNotion de doute sur sepsis mais pas de signe macroscopique d'infection\nDR. Pierre 25/05/2023\nNote d'évolution\nBRUNETEAU 11:32..."
"niveau_cma": 2,
"source": "llm_das"
},
{
"texte": "Hypokalémie",
"cim10_suggestion": "E87.6",
"cim10_confidence": "high",
"cim10_final": "E87.6",
"justification": "Potassium 3.6 mmol/L en limite inférieure de la normale [N: 3.5-5]. Bien que techniquement dans les normes, cette valeur limite associée au sepsis et à la balance hydrique négative importante (-1160 ml cumulée) justifie une surveillance et correction, mobilisant des ressources.",
"sources_rag": [],
"preuves_cliniques": [],
"est_cma": true,
"niveau_severite": "non_evalue",
"niveau_cma": 2,
"source": "llm_das"
}
],
"actes_ccam": [],
@@ -321,41 +168,184 @@
}
],
"alertes_codage": [
"2 CMA probables détectées — impact potentiel sur le niveau de sévérité GHM",
"QUALITE DEGRADEE : erreur RAG — codage sans référentiels",
"3 CMA probables détectées — impact potentiel sur le niveau de sévérité GHM",
"CMA niveau 3 : 'Sepsis' (A41.9) — sévérité non_evalue",
"CMA niveau 2 : 'Troubles électrolytiques' (E87.8) — sévérité non_evalue",
"QC: DAS A41.9 confiance high→low — Le diagnostic de sepsis est prématuré. Le dossier mentionne une 'infection' mais pas de signes cliniques évidents de sepsis (hypotension, dysfonction organique). La CRP élevée et l'anémie peuvent être liées à l'infection, mais ne suffisent pas à établir un diagnostic de sepsis. Un code plus général comme 'infection non précisée' (B97.8) serait plus approprié en l'état actuel du dossier. La fièvre mentionnée dans la justification n'est pas documentée dans le dossier.",
"QC: DAS E87.8 confiance high→medium — Le codage des troubles électrolytiques est problématique. Les valeurs de Sodium et Potassium sont dans les limites de la normale. La créatinine est légèrement élevée, mais pas suffisamment pour justifier un code de trouble électrolytique. Il n'y a pas de mention d'insuffisance rénale dans le dossier qui justifierait un code E87.8. Il est important de ne pas coder des anomalies biologiques mineures qui ne sont pas cliniquement significatives.",
"QC: DAS E87.8 (Troubles électrolytiques) à reconsidérer — Le codage des troubles électrolytiques est problématique. Les valeurs de Sodium et Potassium sont dans les limites de la normale. La créatinine est légèrement élevée, mais pas suffisamment pour justifier un code de trouble électrolytique. Il n'y a pas de mention d'insuffisance rénale dans le dossier qui justifierait un code E87.8. Il est important de ne pas coder des anomalies biologiques mineures qui ne sont pas cliniquement significatives.",
"QC: Le diagnostic de sepsis semble prématuré et nécessite une justification clinique plus solide.",
"QC: Le codage des troubles électrolytiques doit être basé sur des anomalies significatives et cliniquement pertinentes.",
"QC: Vérifier la documentation de la fièvre mentionnée dans la justification du code A41.9.",
"RULE-DAS-TO-DP: DP absent → DAS E87.8 (Troubles électrolytiques) promu en DP",
"CMA niveau 2 : 'Anémie' (D64.9) — sévérité non_evalue",
"CMA niveau 2 : 'Hypokalémie' (E87.6) — sévérité non_evalue",
"QC: DAS A41.9 (Sepsis) à reconsidérer — ABSENCE DE PREUVE CLINIQUE. Le dossier mentionne uniquement 'Complications : Infection' sans documentation de sepsis confirmé. CRP 21 mg/L seule ne suffit pas à justifier un sepsis (A41.9 nécessite critères SIRS/qSOFA documentés). Risque de surcodage majeur.",
"QC: DAS E87.6 (Hypokalémie) à reconsidérer — REJET JUSTIFIÉ. K+ 3.6 mmol/L est DANS LES NORMES (limite inférieure = 3.5). Pas d'hypokalémie. La justification 'valeur limite associée au sepsis' est spéculative et non documentée. Codage non fondé.",
"QC: ⚠️ SURCODAGE SUSPECT : 3 codes pour un dossier peu documenté. Absence de preuves cliniques explicites pour A41.9 et E87.6.",
"QC: ⚠️ DIAGNOSTIC PRINCIPAL FLOU : 'Infection' est trop vague. Quel type d'infection ? Foyer identifié ? Cultures réalisées ?",
"QC: ⚠️ ANÉMIE NON EXPLORÉE : Pas de bilan martial, pas d'étiologie. D64.9 est un code par défaut à éviter si possible.",
"QC: ⚠️ ABSENCE DE DOCUMENTATION CLINIQUE : Les justifications sont partielles/incomplètes. Demander le dossier complet (notes médicales, résultats d'imagerie, cultures).",
"QC: ✓ BIOLOGIE GLOBALEMENT RASSURANTE : Ionogramme correct, fonction rénale préservée, NFS sans anomalie majeure (sauf Hb).",
"RULE-DAS-TO-DP: DP absent → DAS A41.9 (Sepsis) promu en DP",
"DECISIONS[PDF]: 1 ligne(s)",
"DECISION: diagnostic_principal E87.8 promu en DP (RULE-DAS-TO-DP)",
"DECISION: diagnostic_principal A41.9 promu en DP (RULE-DAS-TO-DP)",
"VETOS[PDF]: NEED_INFO (score=65)",
"VETO-02 [MEDIUM] diagnostics_associes[1]: DAS D64.9 sans preuve exploitable",
"VETO-02 [MEDIUM] diagnostics_associes[2]: DAS E87.6 sans preuve exploitable",
"VETO-03 [LOW] diagnostics_associes[0]: DAS A41.9 potentiellement conditionnel",
"Aucun DP extrait (ni Trackare ni CRH)"
],
"source_files": [],
"ghm_estimation": {
"cmd": "10",
"cmd_libelle": "Maladies endocriniennes",
"cmd": "18",
"cmd_libelle": "Maladies infectieuses et parasitaires",
"type_ghm": "M",
"severite": 3,
"ghm_approx": "10M??3",
"cma_count": 1,
"severite": 2,
"ghm_approx": "18M??2",
"cma_count": 2,
"cms_count": 0,
"alertes": []
},
"controles_cpam": [],
"veto_report": {
"verdict": "PASS",
"score_contestabilite": 100,
"issues": []
"verdict": "NEED_INFO",
"score_contestabilite": 65,
"issues": [
{
"veto": "VETO-02",
"severity": "MEDIUM",
"where": "diagnostics_associes[1]",
"message": "DAS D64.9 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)"
},
{
"veto": "VETO-02",
"severity": "MEDIUM",
"where": "diagnostics_associes[2]",
"message": "DAS E87.6 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)"
},
{
"veto": "VETO-03",
"severity": "LOW",
"where": "diagnostics_associes[0]",
"message": "DAS A41.9 potentiellement conditionnel",
"citation": "Guide Méthodologique MCO : Un diagnostic conditionnel (suspecté, à éliminer) ne doit pas être codé comme confirmé"
}
]
},
"processing_time_s": 66.58,
"completude": {
"checks": [
{
"code": "A41.9",
"libelle": "Sepsis",
"type_diag": "DP",
"items": [
{
"categorie": "biologie",
"element": "CRP",
"statut": "present_non_confirme",
"valeur": "21",
"importance": "obligatoire",
"impact_cpam": "Marqueur inflammatoire essentiel pour documenter un sepsis",
"confirmation_detail": "CRP ≤ 50 mg/L : syndrome inflammatoire non significatif"
},
{
"categorie": "biologie",
"element": "Leucocytes",
"statut": "present_non_confirme",
"valeur": "7.08",
"importance": "obligatoire",
"impact_cpam": "Leucocytose ou leucopénie attendue dans le sepsis",
"confirmation_detail": "Leucocytes normaux (4-10 G/L) : sepsis non confirmé biologiquement"
},
{
"categorie": "biologie",
"element": "Procalcitonine",
"statut": "absent",
"importance": "recommande",
"impact_cpam": "Marqueur spécifique d'infection bactérienne, renforce la preuve"
},
{
"categorie": "biologie",
"element": "Hémocultures",
"statut": "absent",
"importance": "recommande",
"impact_cpam": "Documentation bactériologique du sepsis"
}
],
"score": 17,
"verdict": "fragile",
"resume": "2/2 obligatoires, 0/2 recommandés"
},
{
"code": "D64.9",
"libelle": "Anémie",
"type_diag": "DAS",
"items": [
{
"categorie": "biologie",
"element": "Hémoglobine",
"statut": "present_confirme",
"valeur": "10.4",
"importance": "obligatoire",
"impact_cpam": "Hémoglobine indispensable pour confirmer et qualifier une anémie",
"confirmation_detail": "Hémoglobine basse confirme l'anémie"
},
{
"categorie": "biologie",
"element": "Ferritine",
"statut": "absent",
"importance": "recommande",
"impact_cpam": "Permet de typer l'anémie (carentielle vs inflammatoire)"
},
{
"categorie": "biologie",
"element": "VGM",
"statut": "present",
"valeur": "86.7",
"importance": "recommande",
"impact_cpam": "Oriente l'étiologie (microcytaire/macrocytaire)"
}
],
"score": 85,
"verdict": "defendable",
"resume": "1/1 obligatoires (1 confirmé), 1/2 recommandés"
},
{
"code": "E87.6",
"libelle": "Hypokalémie",
"type_diag": "DAS",
"items": [
{
"categorie": "biologie",
"element": "Sodium",
"statut": "present_non_confirme",
"valeur": "142",
"importance": "obligatoire",
"impact_cpam": "Ionogramme obligatoire pour justifier un trouble électrolytique",
"confirmation_detail": "Sodium ≥ 135 mmol/L : hyponatrémie non confirmée"
},
{
"categorie": "biologie",
"element": "Potassium",
"statut": "present_non_confirme",
"valeur": "3.6",
"importance": "obligatoire",
"impact_cpam": "Ionogramme obligatoire pour justifier un trouble électrolytique",
"confirmation_detail": "Potassium normal (3.5-5.0) : trouble non confirmé"
}
],
"score": 47,
"verdict": "fragile",
"resume": "2/2 obligatoires"
}
],
"score_global": 49,
"verdict_global": "fragile",
"documents_presents": [
"trackare"
],
"documents_manquants": []
},
"processing_time_s": 26.35,
"metrics": {
"das_total": 1,
"das_active": 1,
"das_total": 2,
"das_active": 2,
"das_excluded": 0,
"das_removed": 0,
"das_ruled_out": 0,