Couche 2 (revue humaine sur documents complets) : ajout de 6 cas
synthétiques pour atteindre la cible cadrage produit (10 cas).
Cas ajoutés :
- 005_bacterio_complete : layout BACTERIO N° venue rejeté avant IPP
+ RPPS prescripteur (pattern qualifié non détecté).
- 006_trackare_soignants : export Trackare avec activités HH:MM NOM,
Note IDE/médicale, Signé — médicament greedy.
- 007_lettre_sortie_complete : courrier médecin→médecin, multi-villes,
email institutionnel @chcb.fr (cassé par le force_term CHCB).
- 008_anesthesie_complete : protocole anesthésique avec molécules
BDPM, prénoms basques rares (Maddi, Pantxoa).
- 009_multi_etablissements : 3 établissements distincts (CHCB, CHU
Bordeaux, Clinique Aguilera), prénoms basques avec ñ (Beñat).
- 010_fiche_admission_minimale : fiche administrative dense, labels
variés (Nom de jeune fille :, Prénom :, Ville :, Mutuelle :).
Gate pytest (tests/unit/test_synthetic_review.py) :
- vérifie l'inventaire (10 cas) et fait passer chaque cas via run_case.
- 3 cas marqués xfail(strict=True) pour révéler 9 fuites de PII et
2 patterns partiels que le moteur ne couvre pas aujourd'hui :
* 005 — RPPS avec qualificateur (RPPS prescripteur :)
* 009 — Bordeaux résiduel après [ETAB], CHCB en fin de phrase,
Biarritz sur ligne Ville :, ñ qui casse Beñat → [NOM]ñat
* 010 — Nom de jeune fille / Prénom / Ville sans label "Patient :",
NIR au format espacé partiellement consommé en TEL,
numéro de mutuelle MGEN non couvert
- xfail strict force pytest à signaler un xpass quand un fix passe :
rappel automatique de retirer l'entrée de KNOWN_FAILURES.
Le runner tools/run_synthetic_review_corpus.py reste utilisable en
direct (sortie diff/audit/summary) pour la revue humaine. Les sorties
actual/ sont gitignorées (régénérées à chaque exécution).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.8 KiB
1.8 KiB
Revue 005 — résultat bactériologique
Famille documentaire : résultat d'examen biologique avec entête multi-ligne typique du laboratoire (N° venue, DDN, nom, NDA, IPP empilés sans label explicite avant chaque valeur).
Points critiques :
- le numéro de venue est rejeté plusieurs lignes après son libellé, juste
avant la ligne IPP — ce layout BACTERIO est précisément ce que la règle
_RE_VENUE_BEFORE_IPPdoit attraper ; - la date de naissance doit être masquée, pas la date de prélèvement ni l'horaire de prélèvement ;
- le RPPS du prescripteur doit disparaître ;
- le téléphone du laboratoire est une donnée de contact à masquer ;
- le vocabulaire microbiologique (
Escherichia coli,Antibiogramme,Amoxicilline,Céfotaxime,Ciprofloxacine) doit rester lisible intégralement, c'est l'utilité métier du document ; Service de néphrologiedoit rester lisible ;prise en chargedoit rester lisible ;- le nom composé
MARIE-PIERREdoit être traité en bloc ; - le biologiste signataire (
Dr DUHALDE Anne) doit être masqué.
Écarts détectés au runner (à corriger) :
- fuite RPPS critique :
RPPS prescripteur : 10101010101n'est pas masqué. La règle RPPS courante attendRPPS\s*:\s*\d{11}et ne tolère pas un qualificateur (prescripteur,signataire,prescripteur du jour, …) entreRPPSet:. Mêmes layouts probables pour FINESS, IPP, NDA. - bloc
Dr DUHALDE Annemasqué comme un seul[NOM]plutôt queDr [NOM] [NOM]— accepté tant qu'aucun token de nom ne fuit ; à retraiter si l'usage demande la conservation du préfixeDr.
Vérification BDPM/gazetteer :
Amoxicilline,Céfotaxime,Ciprofloxacine,Escherichia coli,Antibiogrammedoivent rester intacts (contenu métier).