Phase 2 de l'amélioration qualité anonymisation :
1. Extraction multi-colonnes (PyMuPDF layout-aware) :
- Nouvelle fonction _extract_page_layout_aware() détecte les layouts
sidebar+corps (typiques des CRH/CRO hospitaliers)
- Remplace pdfplumber comme extraction primaire (PyMuPDF blocks)
- Élimine l'entrelacement de texte entre sidebar et corps médical
- pdfplumber conservé pour les tables et comme fallback
2. Masquage FINESS multiline :
- Détection "N° Finess\n[...]\n640000162" (label et numéro séparés)
- Propagation globale du numéro FINESS sur toutes les pages
- Gestion du format *640000162* (avec astérisques Trackare)
3. Masquage URLs hospitalières (www.ch-xxx.fr)
4. Nettoyage crochets doubles [[PLACEHOLDER]] → [PLACEHOLDER]
Résultats non-régression (30 fichiers audit) :
- Fuites : 322 → 0 (-100%)
- Faux positifs : 113 → 10 (-91%)
- 0 régression fonctionnelle
- OGC 1-59 : 0 fuite soignant, 0 FINESS, 0 lieu de naissance
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
119 lines
13 KiB
JSON
119 lines
13 KiB
JSON
{"page": 0, "kind": "force_term", "original": "CENTRE HOSPITALIER COTE BASQUE", "placeholder": "[MASK]", "bbox_hint": null}
|
|
{"page": 0, "kind": "ADRESSE", "original": "2 RUE PIERRE", "placeholder": "[ADRESSE]", "bbox_hint": null}
|
|
{"page": 0, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 0, "kind": "NOM", "original": "Laura ETCHECHOURY", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 0, "kind": "NOM", "original": "Laurence TARASCON", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 0, "kind": "ADRESSE", "original": "4 RUE DU BARTHASSOT ", "placeholder": "[ADRESSE]", "bbox_hint": null}
|
|
{"page": 0, "kind": "CODE_POSTAL", "original": "64340 BOUCAU", "placeholder": "[CODE_POSTAL]", "bbox_hint": null}
|
|
{"page": 0, "kind": "ADRESSE", "original": "95 CHEMIN DE LAHARIE ", "placeholder": "[ADRESSE]", "bbox_hint": null}
|
|
{"page": 0, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 0, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 0, "kind": "ETAB", "original": "unité de Chirurgie hors SC", "placeholder": "[MASK]", "bbox_hint": null}
|
|
{"page": 0, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 1, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 2, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 2, "kind": "NOM", "original": "DE MONTAUDOUIN", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 2, "kind": "NOM", "original": "ETCHECHOURY", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 2, "kind": "NOM", "original": "Marie", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 2, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 3, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 3, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 4, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 4, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 4, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 5, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 5, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 6, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 7, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 8, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 9, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 10, "kind": "NOM", "original": "Marie", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 10, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 11, "kind": "NOM", "original": "Marie", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 11, "kind": "NOM", "original": "Imanol", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 11, "kind": "NOM", "original": "Marie", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 11, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 12, "kind": "NOM", "original": "Marie LACLAU", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 12, "kind": "NOM", "original": "Marie LACLAU-LACROUTS", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 12, "kind": "NOM", "original": "Marie LACLAU-LACROUTS", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 12, "kind": "NOM", "original": "Marie LACLAU-LACROUTS", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 12, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 13, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 14, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 15, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 16, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 17, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 18, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 19, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 20, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 21, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 22, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 23, "kind": "NOM", "original": "PELLERIN-GUIGNARD Aude", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 23, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 24, "kind": "NOM", "original": "PELLERIN-GUIGNARD Aude", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 24, "kind": "ETAB", "original": "www.ch-cote-basque.fr", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 24, "kind": "NOM", "original": "BENNIS Inès", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 24, "kind": "NOM", "original": "BENNIS Inès", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 24, "kind": "ETAB", "original": "www.ch-cote-basque.fr", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 24, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 25, "kind": "DATE_NAISSANCE", "original": "ne le 11/04/2023", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 25, "kind": "NOM", "original": "PUGET Catheri", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 25, "kind": "NOM", "original": "PUGET Catherine", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 25, "kind": "ETAB", "original": "www.ch-cote-basque.fr", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 25, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 26, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 27, "kind": "NOM", "original": "Marie-Laure", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 27, "kind": "NOM", "original": "Julien", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 27, "kind": "NOM", "original": "Julien", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 27, "kind": "NOM", "original": "David LEYSSENE", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 27, "kind": "NOM", "original": "Julien", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 27, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 27, "kind": "CODE_POSTAL", "original": "64340 BOUCAU", "placeholder": "[CODE_POSTAL]", "bbox_hint": null}
|
|
{"page": 27, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 28, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 28, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 0, "kind": "IPP", "original": "23008170", "placeholder": "[IPP]", "bbox_hint": null}
|
|
{"page": 0, "kind": "DATE_NAISSANCE", "original": "Date de naissance: 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 0, "kind": "CODE_POSTAL", "original": "Code Postal: 64340", "placeholder": "[CODE_POSTAL]", "bbox_hint": null}
|
|
{"page": 0, "kind": "VILLE", "original": "BOUCAU", "placeholder": "[VILLE]", "bbox_hint": null}
|
|
{"page": 0, "kind": "NOM", "original": "Laura ETCHECHOURY", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 0, "kind": "ADRESSE", "original": "4 RUE DU BARTHASSOT ", "placeholder": "[ADRESSE]", "bbox_hint": null}
|
|
{"page": 0, "kind": "CODE_POSTAL", "original": "64340 BOUCAU", "placeholder": "[CODE_POSTAL]", "bbox_hint": null}
|
|
{"page": 0, "kind": "TEL", "original": "06 30 24 87\n68", "placeholder": "[TEL]", "bbox_hint": null}
|
|
{"page": 0, "kind": "ADRESSE", "original": "95 CHEMIN DE LAHARIE ", "placeholder": "[ADRESSE]", "bbox_hint": null}
|
|
{"page": 0, "kind": "TEL", "original": "06 08 35 56\n95", "placeholder": "[TEL]", "bbox_hint": null}
|
|
{"page": 0, "kind": "TEL", "original": "06 08 35 56\n95", "placeholder": "[TEL]", "bbox_hint": null}
|
|
{"page": 0, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 0, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 0, "kind": "ETAB", "original": "unité de Chirurgie hors SC", "placeholder": "[MASK]", "bbox_hint": null}
|
|
{"page": 2, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 2, "kind": "NOM", "original": "DE MONTAUDOUIN", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 2, "kind": "NOM", "original": "ETCHECHOURY", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 2, "kind": "NOM", "original": "Ute DURANTEAU", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 3, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 4, "kind": "ETAB", "original": "EHPAD", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 10, "kind": "NOM", "original": "Marie- Pierre KUHN", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 11, "kind": "NOM", "original": "Marie- Pierre KUHN", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 11, "kind": "NOM", "original": "Imanol ANCHORDOQUI", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 11, "kind": "NOM", "original": "Marie- Pierre KUHN", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 12, "kind": "NOM", "original": "Marie LACLAU- LACROUTS", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 12, "kind": "NOM", "original": "Marie LACLAU-LACROUTS", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 12, "kind": "NOM", "original": "Marie LACLAU-LACROUTS", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 12, "kind": "NOM", "original": "Marie LACLAU-LACROUTS", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 24, "kind": "ETAB", "original": "www.ch-cote-basque.fr", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 24, "kind": "DATE_NAISSANCE", "original": "Date de naissance : 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 24, "kind": "DATE_NAISSANCE", "original": "Date de naissance : 26-06-1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 24, "kind": "VILLE", "original": "99999", "placeholder": "[VILLE]", "bbox_hint": null}
|
|
{"page": 24, "kind": "NOM", "original": "BENNIS Inès", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 24, "kind": "NOM", "original": "BENNIS Inès", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 25, "kind": "ETAB", "original": "www.ch-cote-basque.fr", "placeholder": "[ETABLISSEMENT]", "bbox_hint": null}
|
|
{"page": 25, "kind": "DATE_NAISSANCE", "original": "Date de naissance : 26/06/1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 25, "kind": "DATE_NAISSANCE", "original": "ne le 11/04/2023", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 25, "kind": "DATE_NAISSANCE", "original": "Date de naissance : 26-06-1939", "placeholder": "[DATE_NAISSANCE]", "bbox_hint": null}
|
|
{"page": 25, "kind": "VILLE", "original": "99999", "placeholder": "[VILLE]", "bbox_hint": null}
|
|
{"page": 25, "kind": "NOM", "original": "PUGET Catheri", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 25, "kind": "NOM", "original": "PUGET Catherine", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 27, "kind": "NOM", "original": "Julien GUILLEMAUD Dr", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 27, "kind": "NOM", "original": "David LEYSSENE Dr", "placeholder": "[NOM]", "bbox_hint": null}
|
|
{"page": 27, "kind": "NOM", "original": "Julien GUILLEMAUD", "placeholder": "[NOM]", "bbox_hint": null}
|