diff --git a/docs/BUG_PRECHECK_SPATIAL_BLINDNESS_2026-05-08.md b/docs/BUG_PRECHECK_SPATIAL_BLINDNESS_2026-05-08.md new file mode 100644 index 000000000..ff5ec75bc --- /dev/null +++ b/docs/BUG_PRECHECK_SPATIAL_BLINDNESS_2026-05-08.md @@ -0,0 +1,40 @@ +# Bug — Pré-check OCR spatialement aveugle + +## Date de découverte +2026-05-08, lors du test live du commit 2e76b44ff (log instrumentation) + +## Constat +Sur les onglets adjacents (Imagerie / Notes médicales à 3 px d'écart dans la maquette urgences), le pré-check OCR valide à tort des clics sur le mauvais onglet. + +## Cause technique +La fonction _text_match_fuzzy (resolve_engine.py:2285) vérifie la PRÉSENCE du texte attendu dans le crop OCR (radius_px=280, soit zone 560×560 px) mais pas sa POSITION par rapport au point cliqué. + +Le crop englobe plusieurs onglets adjacents → n'importe lequel des onglets matchant valide le clic. + +## Logs exemples +Trois logs représentatifs du test du 2026-05-08 : + +``` +mai 08 22:16:26.977119 [REPLAY] Pre-check OCR ACTIF : 'Examens cliniques' attendu @ (0.2280, 0.2805) via hybrid_text_direct — observed='Al Voice Generator Bookmarks archivtech com Maquette POC ssier en cours Codage ' is_valid=True (115ms) + +mai 08 22:16:33.048260 [REPLAY] Pre-check OCR ACTIF : 'Imagerie' attendu @ (0.2305, 0.2676) via hybrid_text_direct — observed='9 Al Voice Generator_ Bookmarks archivtech.com Maquette POC sier en cours Statis' is_valid=True (86ms) + +mai 08 22:16:43.045705 [REPLAY] Pre-check OCR ACTIF : 'Notes médicales' attendu @ (0.2020, 0.2800) via template_matching — observed='18 Al Voice Generator_ Bookmarks archivtech. Urgences Maquette POC Dossier en co' is_valid=True (99ms) +``` + +## Options de fix +**Option A — Réduire radius_px** +- Pro : simple (1 ligne) +- Con : casse la validation des textes longs ("Synthèse Urgences") + +**Option B — Bboxes individuelles EasyOCR + vérification distance** +- Pro : robuste, gère textes longs et onglets serrés +- Con : changement de logique de _text_match_fuzzy, pas tweak + +## Décision +Reporté à post-démo Kerella. À traiter à froid. +Préférence : Option B (plus pérenne). + +## Commits liés +- 731b5bcae : réactivation pré-check OCR avec calibrage chirurgical +- 2e76b44ff : instrumentation log positif qui a révélé le bug