feat: dp_finalizer — arbitrage Trackare vs CRH-only avec traçabilité audit

Nouveau module src/medical/dp_finalizer.py :
- 5 règles d'arbitrage (R1-R5) : CRH CONFIRMED override, Trackare corroboré,
  symptôme R* override/review, ambigu REVIEW, Z-code/R-code interdits auto-confirm
- Traçabilité : dp_trackare, dp_crh_only, dp_final sur DossierMedical
- quality_flags dict (merge sans écraser) + alertes_codage (append)

Modèles config.py :
- DPCandidate, DPSelection (NUKE-3)
- get_dp_ranker_llm_enabled(), check_adversarial_model_config()
- Champs DossierMedical : dp_trackare, dp_crh_only, dp_final, quality_flags

Intégration :
- main.py : appel finalize_dp() après vetos/GHM (individuel + fusionné)
- benchmark : finalizer dans _rebuild_and_select(), dp_final dans output

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
dom
2026-02-24 17:50:07 +01:00
parent cad0dd22b1
commit c7317af447
4 changed files with 457 additions and 9 deletions

View File

@@ -262,6 +262,13 @@ def process_pdf(pdf_path: Path) -> list[tuple[str, DossierMedical, Anonymization
except Exception:
logger.warning(" Erreur estimation GHM/metrics", exc_info=True)
# 10. Finalizer DP (arbitrage Trackare vs CRH, traçabilité)
try:
from .medical.dp_finalizer import finalize_dp
finalize_dp(dossier)
except Exception:
logger.warning(" Finalizer DP : erreur", exc_info=True)
dossier.processing_time_s = round(time.time() - t0, 2)
results.append((anonymized_text, dossier, report))
@@ -629,6 +636,13 @@ def main(input_path: str | None = None) -> None:
except Exception:
logger.warning(" Erreur estimation GHM/metrics final", exc_info=True)
# Finalizer DP (arbitrage Trackare vs CRH, traçabilité)
try:
from .medical.dp_finalizer import finalize_dp
finalize_dp(merged)
except Exception:
logger.warning(" Finalizer DP fusionné : erreur", exc_info=True)
struct_dir = STRUCTURED_DIR / subdir
struct_dir.mkdir(parents=True, exist_ok=True)
merged_path = struct_dir / f"{subdir}_fusionne_cim10.json"