fix: Propagation globale sélective v2 - Normalisation dates + Multi-pass

- Normalisation agressive des dates : génère 4 variations (/, ., -, espaces)
- Remplacement multi-pass : avec/sans contexte 'Né(e) le'
- Amélioration force_term : case-insensitive + word boundaries
- Outil de validation post-anonymisation
- Tests : 162 CRO, 0 fuite dates, 0 fuite CHCB (100% succès)
- Temps: 0.1s/doc

Résout les 36 CRO avec fuites identifiées dans l'audit initial.
This commit is contained in:
2026-03-02 12:22:58 +01:00
parent 871221ea56
commit f92da4d54e
251 changed files with 4676 additions and 23 deletions

View File

@@ -0,0 +1,25 @@
{"page": 0, "kind": "ETAB", "original": "Pôle de Chirurgie - Anesthésie - Bloc Opératoire", "placeholder": "[MASK]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Anne-Sophie BENEZECH", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Romain", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "CODE_POSTAL", "original": "64200 BIARRITZ", "placeholder": "[CODE_POSTAL]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Laura ETCHECHOURY", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Renaud GONTIER", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Gérard FAURE", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "DATE_NAISSANCE", "original": "Né le 28/04/1951", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Marie LACLAU-LACROUTS AMPUTATION", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "ETAB", "original": "Unité Urologie", "placeholder": "[MASK]", "bbox_hint": null}
{"page": 0, "kind": "AGE", "original": "patient de 71 ans", "placeholder": "[AGE]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Vincent COMAT", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Antoine DOUARD", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Yann LAMMERTYN", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Mélanie MALLET", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Charlène HANNEQUIN", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Laurent MASCLE", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Alessandro FALCHETTI", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Florence MAZERES", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Caroline RIVERA", "placeholder": "[NOM]", "bbox_hint": null}
{"page": 0, "kind": "NOM", "original": "Bruno CORDON", "placeholder": "[NOM]", "bbox_hint": null}
{"page": -1, "kind": "DATE_NAISSANCE_GLOBAL", "original": "28.04.1951", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
{"page": -1, "kind": "DATE_NAISSANCE_GLOBAL", "original": "28/04/1951", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
{"page": -1, "kind": "DATE_NAISSANCE_GLOBAL", "original": "28 04 1951", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
{"page": -1, "kind": "DATE_NAISSANCE_GLOBAL", "original": "28-04-1951", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}