- Résolution des libellés CIM-10 pour les codes contestés (dp_ucr, da_ucr, dr_ucr)
- Fallback DP depuis dp_ucr quand le pipeline n'extrait pas de diagnostic principal
- Troncature arg_ucr augmentée de 200 à 500 chars pour conserver les citations de règles
- Requête RAG 4 : définitions CIM-10 (inclusion/exclusion) des codes contestés
- Requête RAG 5 : extraction et recherche des règles nommées (RègleT7, Annexe, etc.)
- Cap résultats RAG de 10 à 12 pour absorber les nouvelles requêtes
- Reprocess viewer : pipeline complet (fusion + GHM + CPAM) pour dossiers multi-PDF
- Affichage structuré response_data dans le viewer (analyse, preuves, références)
- 7 nouveaux tests CPAM, 6 nouveaux tests viewer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Le pipeline utilise désormais gemma3:12b (rapide) pour le codage CIM-10
et gemma3:27b (meilleur raisonnement) pour la contre-argumentation CPAM.
Configurable via OLLAMA_MODEL_CPAM et OLLAMA_TIMEOUT_CPAM.
Inclut aussi : traçabilité source/page DAS, niveaux CMA ATIH, sévérité,
page tracker PDF, améliorations fusion et filtres DAS.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
estimate_ghm() n'était appelée que dans process_pdf() pour chaque
document individuel, jamais après merge_dossiers(). Les 179/250
dossiers fusionnés n'avaient donc pas d'estimation GHM.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- SentenceTransformer : fallback CPU si CUDA OOM (Ollama peut occuper la VRAM)
- Bloc CPAM dans main.py : try/except pour éviter crash fatal du pipeline
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Plus besoin du flag --control-cpam : si un .xlsx est présent dans
input/Control_cpam/, il est chargé automatiquement. Le flag reste
disponible comme override.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ajoute une étape de splitting entre extraction texte et parsing. Chaque chunk
est traité indépendamment par le pipeline existant, avec suffixe _partN en sortie.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- CLI accepte plusieurs chemins en entrée (nargs="*")
- Un dossier patient passé directement utilise son nom comme subdir
- Filtres Jinja format_dossier_name (15_23096332 → Dossier 23096332)
et format_doc_name (CRO_xxx_cim10 → CRO, Trackare, Fusionné)
- Sidebar : noms lisibles, fusionné mis en avant (★)
- NER CamemBERT en local_files_only (aucun appel réseau)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ajoute une interface web Flask pour visualiser les dossiers médicaux CIM-10,
avec temps de traitement par PDF, sélecteur de modèle Ollama, et centralisation
de la config Ollama dans src/config.py.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Permet d'organiser les PDFs en sous-répertoires (un niveau) dans le
dossier d'entrée. Les sorties reflètent cette structure dans output/.
Les PDFs à la racine continuent de fonctionner comme avant.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pipeline complet de traitement de documents médicaux PDF :
- Extraction texte (pdfplumber) et classification (Trackare/CRH)
- Anonymisation multi-couche (regex + NER CamemBERT + sweep)
- Extraction médicale CIM-10 hybride : edsnlp (AP-HP) enrichit les
diagnostics, médicaments (codes ATC via Romedi) et négation,
avec fallback regex pour les patterns spécifiques
- Fix sentencepiece pinné à <0.2.0 pour compatibilité CamemBERT
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>