fix(core): renforcer detection PII et FINESS Corse

Couvre les corrections PII batch A/A-2, le NIR multi-ligne en flux reel, le gazetteer FINESS Corse derive depuis la base locale, et les tests de regression associes. Aucun build ni diffusion.
This commit is contained in:
2026-06-17 17:59:27 +02:00
parent 536ab81184
commit d18ca919fa
7 changed files with 1638 additions and 53 deletions

View File

@@ -91,6 +91,20 @@ class TestAdresseContextuelle:
assert PLACEHOLDERS["ADRESSE"] in out, f"non masqué: {adresse!r} -> {out!r}"
assert reste_visible not in out, f"fuite résiduelle: {adresse!r} -> {out!r}"
@pytest.mark.parametrize("adresse", [
"15 à 35 rue Claude Boucher Bordeaux Cedex",
"15 a 35 rue Claude Boucher Bordeaux Cedex",
"15-35 rue Claude Boucher Bordeaux Cedex",
])
def test_adresse_plage_numero_etablissement(self, adresse):
"""Cas Dom 2026-06-16 : les adresses d'établissement FINESS avec plage
de numéros doivent être masquées sans laisser le préfixe de plage."""
out, _ = _mask_line(adresse)
assert out.strip() == PLACEHOLDERS["ADRESSE"], f"masquage partiel: {adresse!r} -> {out!r}"
assert "Claude" not in out
assert "Boucher" not in out
assert "15" not in out
@pytest.mark.parametrize("ligne_clinique", [
"3 mg/L de CRP",
"TA 12/8 mmHg",
@@ -150,6 +164,7 @@ class TestContexteDate:
def test_date_naissance_variantes_contexte(self):
for line in ("Date de naissance : 01/02/1944",
"Date naissance : 19/09/1972",
"DDN 1/2/1944",
"Née le 2 mars 1944"):
out, _ = _mask_line(line)
@@ -162,6 +177,13 @@ class TestContexteDate:
assert PLACEHOLDERS["DATE_NAISSANCE"] not in out
assert "14/03/2025" in out
def test_date_ancienne_sans_contexte_naissance_preservee(self):
"""L'année ancienne seule ne suffit pas : une date clinique historique
hors contexte naissance doit rester visible."""
out, _ = _mask_line("Intervention réalisée le 19/09/1972")
assert PLACEHOLDERS["DATE_NAISSANCE"] not in out
assert "19/09/1972" in out
def test_date_tableau_clinique_preservee(self):
out, _ = _mask_line("08:00 | 120/80 | 37.1 | 12/03/2024")
assert PLACEHOLDERS["DATE_NAISSANCE"] not in out