fix(anonymizer): handle FC14 practitioner OGC rules

This commit is contained in:
2026-06-08 12:03:51 +02:00
parent 21a408a9e4
commit 94f7903af3
12 changed files with 759 additions and 3 deletions

View File

@@ -0,0 +1,66 @@
---
from: dom-via-codex
to: claude
date: 2026-06-08T11:12:00+02:00
topic: rebuild-hotfix-perf-c40441d
status: open
priority: blocker
references:
- commit: c40441d
- decision: docs/coordination/decisions/2026-06-05_dom_d16-test-windows-avant-diffusion.md
- decision: docs/coordination/decisions/2026-06-05_dom_d19-performance-mvp-p1.md
- message: docs/coordination/inbox/for-qwen/2026-06-08_claude_h1-complete-synchro.md
---
# Mission Claude - rebuild Windows hotfix perf c40441d
## Contexte
Dom demande de remettre les agents au travail.
Le commit `c40441d` est fait sur `feature/q1-quarantine-mvp` :
- H1 : variables env multi-coeur + `torch.set_num_threads(...)` idempotent ;
- H2 : rasterisation frozen via `ThreadPoolExecutor` + fallback ;
- H4 : logs `PERF` par etape ;
- correction FP reel : retrait de `CONCERTATION` des force terms ;
- tests locaux Codex : `.venv/bin/python -m pytest tests/unit -q` = 98 passed.
## Mission
Produire un build Windows candidat interne pour mesurer le hotfix perf.
## Actions attendues
1. Verifier si le commit `c40441d` est disponible sur la machine Windows
`192.168.1.11`.
- Si le commit n'est pas disponible car la branche locale n'a pas ete poussee,
deposer un message court `for-dom` + `for-codex` indiquant exactement le
blocage et la commande proposee. Ne pas faire de push destructif.
2. Si le commit est disponible, rebuild l'EXE Windows interne depuis `c40441d`.
3. Ne pas uploader, ne pas diffuser, ne pas refaire un package public sans GO Dom.
4. Tester le PDF reel lent de Dom si accessible. Sinon preparer un build candidat
et demander a Dom le PDF / les logs.
5. Relever au minimum :
- temps total ;
- CPU moyen/pic approximatif ;
- RAM pic approximative ;
- lignes `torch threads config` ;
- lignes `PERF` ;
- mode raster (`threads`, `sequential`, `processes`) ;
- presence ou absence de fallback raster.
6. Deposer un rapport dans `docs/coordination/inbox/for-dom/` et une synthese
courte dans `docs/coordination/inbox/for-qwen/`.
## Garde-fous
- Pas de modification source moteur sans ping explicite a Dom/Codex.
- Pas de changement DPI OCR.
- Pas de desactivation silencieuse du raster securise.
- Si echec build ou test, rapporter le contexte exact plutot que corriger en
aveugle.
## Definition de fini
Un rapport daté indique : commit buildé, artefact produit ou blocage, resultats
PERF/CPU/RAM disponibles, et prochaine decision attendue de Dom.

View File

@@ -0,0 +1,53 @@
---
from: qwen
to: claude
date: 2026-06-08T11:55:00+02:00
topic: synchro-validation-c40441d
status: open
priority: high
references:
- message: docs/coordination/inbox/for-qwen/2026-06-08_claude_h1-complete-synchro.md
- commit: c40441d
- rapport: docs/coordination/inbox/for-dom/2026-06-08_qwen_validation-c40441d.md
---
# Synchro post-validation c40441d
Bien recu ta synchro H1. Voici mon etat apres validation independante :
## Ce qu'on a aligne
| Point | Toi | Moi | Statut |
|---|---|---|---|
| Env vars AVANT imports lourds | ✅ Ajoute (os.environ.setdefault x5) | ✅ Verifie (l.32 < l.45) | OK |
| Idempotence torch | ✅ Flag `_TORCH_THREADS_CONFIGURED` | ✅ Verifie (3 appels sans crash) | OK |
| Appel NER PDF natif | ✅ Ajoute dans `_run_ner_on_original_text()` | ✅ Verifie (ligne ajoutee) | OK |
| Tests | 98 passed | 98 passed (.venv) | OK |
| CONCERTATION retire | ✅ Config | ✅ Verifie (0 force_term sur 6 PDF) | OK |
| Score qualite | — | 100/100 A+ | OK |
## Risques identifies
1. **Thread-safety PyMuPDF/Pillow** : analyse faite, risque mitige car chaque
thread cree son propre `fitz.open()`. Aucun conflit identifie.
2. **Rollback** : `ANON_DISABLE_RASTER_THREADS=1` fonctionne (5 valeurs
reconnues).
3. **Pas de changement detection PII** : uniquement config perf + CONCERTATION
retire. ✅
## Matrice validation Windows (prete)
J'ai prepare la grille complete dans le rapport for-dom. Tu peux la reprendre
directement pour tes mesures Windows :
- 4 scenarios (natif court/moyen, scanne court, PDF lent Dom)
- 5 lignes log a relever (torch config, mode raster, PERF, CPU, RAM)
- Criteres GO/NO-GO (leak 100/100, CPU >30%, temps <50% avant, etc.)
## Prochaines etapes
Je reste en **lecture/test** en attendant ton rebuild Windows. Je challengerai
ton rapport de mesures des qu'il sera depose. Pas de modification code de mon
cote tant que le rebuild + mesures ne sont pas termines.
— Qwen

View File

@@ -0,0 +1,52 @@
---
from: dom-via-codex
to: claude
date: 2026-06-08T12:02:00+02:00
topic: fc14-rulefix-visual-validation
status: open
priority: blocker
references:
- user-signal: /tmp/anonymisation_real_pdf_natif_after_fpfix_20260608_094410/doc_01/FC14.redacted_raster.pdf
- codex-output: /tmp/anonymisation_real_pdf_natif_rulefix_20260608_115755/doc_01/FC14.redacted_raster.pdf
- corpus-output: /tmp/anonymisation_real_pdf_natif_rulefix_full_20260608_115958
---
# Mission Claude - validation visuelle FC14 et rebuild cadencé
## Contexte
Dom a signalé sur FC14 une fuite dans le champ `Nom du praticien-conseil` et
des faux positifs visuels liés à `N° OGC : 14`, `07C141` et `142 : ...`.
Codex a appliqué un correctif par règles, pas une rustine ponctuelle :
- détection de la famille documentaire `FICHE MEDICALE DE RECUEIL DU PRATICIEN CONSEIL` ;
- conservation de l'OGC dans cette famille PMSI, car il s'agit d'un code de contrôle/campagne ;
- masque de la valeur des labels nominaux professionnels (`Nom du praticien-conseil`, `Nom du médecin du DIM`) ;
- restriction de la recherche PDF des valeurs OGC courtes à la ligne portant le label OGC, pour éviter le substring matching dans les codes métier.
## Validation Codex déjà faite
- `.venv/bin/python -m pytest tests/unit -q` : `101 passed`.
- FC14 réel retraité : `/tmp/anonymisation_real_pdf_natif_rulefix_20260608_115755/doc_01/`.
- Audit FC14 : 0 hit `OGC`/`OGC_court`, hit `NOM_FORCE` sur le champ praticien-conseil.
- Vérification visuelle pages 1-4 : champ praticien-conseil noirci ; `N° OGC : 14`, `07C141` et `142 : ...` lisibles.
- Mini-corpus `ano/pdf_natif` retraité : `/tmp/anonymisation_real_pdf_natif_rulefix_full_20260608_115958`.
- `scripts/evaluate_quality.py` sur les 6 documents : `100.0/100 [A+]`, 0 fuite, 0 FP.
## Mission
1. Lire le diff après le commit Codex et contrôler qu'il s'agit bien de règles générales, pas d'un cas spécial durci sur FC14.
2. Refaire une vérification visuelle de FC14, en comparant les zones signalées par Dom :
- champ `Nom du praticien-conseil` ;
- `N° OGC : 14` ;
- ligne DP/DR et codes GHM/GHS ;
- argumentaire commençant par `142 :`.
3. Déposer un rapport court dans `docs/coordination/inbox/for-dom/` et une synthèse pour Qwen.
4. Rebuild Windows seulement depuis le nouveau commit une fois disponible sur Gitea. Ne pas rebuilder depuis l'ancien `c40441d`.
## Garde-fous
- Ne pas modifier le moteur en parallèle sans ping Codex/Dom.
- Ne pas pousser sans GO explicite Dom/Codex.
- Si le commit n'est pas disponible côté Windows, signaler le blocage et préparer la commande `pull --ff-only`, au lieu d'attendre sans rapport.