Piste 1 : ajout de cim10_supplements.json (40 sous-codes E10/E11/E13/F10)
fusionné au chargement par load_dict() — E11.9 et autres ne sont plus rejetés.
Piste 2 : export BIO_NORMALS depuis cim10_extractor, inclusion des plages
de référence [N: min-max] dans le contexte LLM et règle explicite dans le
prompt DAS pour éviter les hallucinations sur valeurs biologiques normales.
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>
Détection automatique GPU/CPU avec fallback. Index FAISS reconstruit
en 1min (GPU) au lieu de 16min (CPU).
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>
Nouveau module das_filter.py avec 7 règles de rejet (trop court, chiffres,
lettre+chiffres OCR, mots concaténés/répétés, fragments non-médicaux) +
nettoyage newlines/ponctuation. Filtrage appliqué aux 3 sources de DAS :
trackare, regex et edsnlp. 31 tests unitaires.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Le block Jinja2 {% block scripts %} était à l'intérieur d'une balise
<script> parente, causant des scripts imbriqués invalides qui cassaient
le chargement des modèles Ollama et le bouton reprocess.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Filtre format_duration : affiche les temps en min/s au lieu de secondes brutes
- Bouton reprocess : spinner animé, compteur temps réel, confirmation immédiate
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ajout des règles d'exclusion symptôme (R00-R99) vs diagnostic précis (Chapitres I-XIV),
détection heuristique de sévérité CMA sur 25 racines CIM-10, et affichage des alertes
de codage dans le viewer Flask. 153 tests, 0 régression.
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>