## Rapport d'analyse de campagne GUI Date d'analyse : 2026-04-21 ### Périmètre Campagne lancée depuis la GUI sur le dossier : `/home/dom/ai/anonymisation/tests/synthetic_regression/cases` Sorties observées dans : `/home/dom/ai/anonymisation/tests/synthetic_regression/cases/anonymise` ### Synthèse La campagne n'est pas exploitable comme validation globale du corpus. Le moteur n'a pas échoué sur l'anonymisation observée, mais la méthode de lancement via la GUI a mélangé les cas de test dans un dossier de sortie unique. Résultat : les fichiers de sortie se sont écrasés entre eux, et il ne reste plus que trois sorties distinctes (`input`, `expected`, `test`) alors que 30 fichiers d'entrée ont été pris dans la campagne. En l'état, un seul cas est encore vérifiable de façon fiable : `010_spaced_establishment_header`. Ce cas est conforme. ### Constats #### 1. La campagne a pris 30 fichiers en entrée Le dossier `tests/synthetic_regression/cases` contient 10 cas, et chaque cas contient : - `input.txt` - `test.txt` - `expected.txt` Soit 30 fichiers texte supportés au total. #### 2. Les sorties ont été écrasées La GUI écrit toutes les sorties dans un seul dossier : `folder / "anonymise"` Puis le moteur nomme les sorties uniquement avec le `stem` du fichier source : - `input.pseudonymise.txt` - `test.pseudonymise.txt` - `expected.pseudonymise.txt` Comme les 10 cas portent tous les mêmes noms de fichiers, chaque nouveau cas remplace le précédent. Conséquence observée : - 30 entrées traitées - 3 sorties texte finales restantes #### 3. Les fichiers de référence ont aussi été anonymisés La GUI a pris tous les fichiers supportés trouvés récursivement dans le dossier sélectionné, donc elle a traité : - les fichiers de test à anonymiser - les fichiers `input.txt` - les fichiers `expected.txt` Pour une campagne de validation, ce n'est pas le bon protocole : les fichiers `expected.txt` sont des références de comparaison, pas des entrées métier à anonymiser. ### Analyse des sorties restantes Les trois sorties restantes sont : - `tests/synthetic_regression/cases/anonymise/input.pseudonymise.txt` - `tests/synthetic_regression/cases/anonymise/test.pseudonymise.txt` - `tests/synthetic_regression/cases/anonymise/expected.pseudonymise.txt` Leur contenu correspond au cas : `tests/synthetic_regression/cases/010_spaced_establishment_header` Contenu observé : ```text [ETABLISSEMENT] Service de cardiologie ``` Résultat : - `test.pseudonymise.txt` correspond exactement à `010_spaced_establishment_header/expected.txt` - `input.pseudonymise.txt` correspond aussi à `010_spaced_establishment_header/expected.txt` - `expected.pseudonymise.txt` reste déjà anonymisé, ce qui est cohérent Audit observé : - `input.audit.jsonl` : 1 hit `ETAB_SPACED` - `test.audit.jsonl` : 1 hit `ETAB_SPACED` - `expected.audit.jsonl` : vide Conclusion sur ce cas : Le cas `010_spaced_establishment_header` est réussi. ### Conclusion générale Conclusion fonctionnelle : - aucun échec d'anonymisation n'est visible sur le cas encore vérifiable - la campagne globale ne permet pas d'évaluer les 10 cas du corpus Conclusion méthodologique : - la structure actuelle des sorties GUI n'est pas compatible avec un lancement sur un dossier de corpus contenant des noms de fichiers répétés - la campagne du 2026-04-21 doit être considérée comme non concluante pour 9 cas sur 10 ### Causes racines 1. La GUI parcourt récursivement tous les fichiers supportés du dossier sélectionné. 2. La GUI écrit toutes les sorties dans un seul sous-dossier `anonymise/`. 3. Le moteur génère les noms de sortie à partir du seul nom de fichier, sans conserver le chemin relatif du cas. ### Recommandations immédiates 1. Pour tester sans modifier le code, lancer la GUI sur un seul dossier de cas à la fois. Exemple : `/home/dom/ai/anonymisation/tests/synthetic_regression/cases/001_patient_header_and_birth` 2. En validation humaine, ne pas lancer la GUI sur `tests/synthetic_regression/cases` directement. 3. Comparer chaque sortie produite au `expected.txt` du même dossier de cas. ### Correctifs recommandés 1. Préserver l'arborescence relative des cas dans le dossier de sortie. Exemple attendu : - `anonymise/001_patient_header_and_birth/test.pseudonymise.txt` - `anonymise/002_contact_bundle/test.pseudonymise.txt` 2. Ou préfixer les sorties par le nom du dossier parent. Exemple : - `001_patient_header_and_birth__test.pseudonymise.txt` 3. Ajouter un mode "campagne de tests" dans la GUI qui ne traite que les fichiers `test.txt`. 4. Générer automatiquement un rapport de comparaison contre les `expected.txt`. ### Statut - Campagne GUI du 2026-04-21 : non exploitable pour validation complète - Cas encore vérifiable : `010_spaced_establishment_header` - Verdict sur ce cas : conforme