test(review): étendre couche 2 à 10 cas et brancher gate pytest avec xfail strict
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>
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
# Revue 008 — consultation pré-anesthésique
|
||||
|
||||
Famille documentaire : compte rendu de consultation pré-opératoire
|
||||
en anesthésie-réanimation. Très chargé en terminologie médicale (ASA,
|
||||
constantes vitales, protocoles d'induction et d'entretien) et en noms
|
||||
de molécules anesthésiques.
|
||||
|
||||
Patterns testés :
|
||||
- prénoms locaux basques rares (Maddi, Pantxoa) qui peuvent ne pas être
|
||||
dans les gazetteers INSEE classiques — risque de FN ;
|
||||
- prénom composé `Anne-Sophie` (anesthésiste) ;
|
||||
- nombreux noms de médicaments en majuscules à préserver
|
||||
(HYDROXYZINE, PROPOFOL, SUFENTANIL, SEVOFLURANE, PARACETAMOL, KETOPROFENE) ;
|
||||
- doses avec unités complexes (`mg/kg`, `µg/kg`, `mg`, `g IV`, `100 mg`) ;
|
||||
- constantes vitales (`TA 120/75 mmHg`, `FC 72 bpm`, `SpO2 98%`) qui
|
||||
ne doivent JAMAIS être prises pour des identifiants.
|
||||
|
||||
Points critiques :
|
||||
- le terme `ASA 1` (classification anesthésique) doit rester intact ;
|
||||
attention au sigle ASA qui peut ressembler à un identifiant ;
|
||||
- les abréviations cliniques `IMC 23`, `NFS`, `ECG`, `SSPI` doivent rester ;
|
||||
- `cholécystectomie` et `coelioscopie` (actes CCAM) doivent rester ;
|
||||
- `lithiase vésiculaire` (diagnostic) doit rester ;
|
||||
- les ratios constantes (`120/75`) ne doivent pas être interprétés
|
||||
comme dates ou identifiants.
|
||||
|
||||
Préservation à surveiller :
|
||||
- aucun nom de molécule ne doit être tronqué par un masquage erroné ;
|
||||
- le préfixe `Dr` est suivi du nom ; si un seul `[NOM]` apparaît à la
|
||||
place de `Dr NOM Prenom`, accepter tant que les noms et prénoms sont
|
||||
bien dans l'audit.
|
||||
|
||||
Écarts attendus (déjà observés sur d'autres cas) :
|
||||
- `Saint-Jean-de-Luz` partiellement masqué en `[ETABLISSEMENT]-de-Luz` ;
|
||||
- classification `NDA` → `DOSSIER` dans l'audit ;
|
||||
- `Dr NOM Prenom` masqué en bloc unique `[NOM]`.
|
||||
Reference in New Issue
Block a user