Lets #2-#7 proceed in parallel against stable interfaces. Refs #2 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
14 lines
513 B
Python
14 lines
513 B
Python
"""PII scrubbing and pseudonymisation (issue #2). Contract stub — implementation lands in #2."""
|
|
|
|
from app.core.types import ScrubbedText
|
|
|
|
|
|
def scrub(text: str) -> ScrubbedText:
|
|
"""Replace personal data (phones, emails, SNILS, names, addresses...) with placeholders."""
|
|
raise NotImplementedError
|
|
|
|
|
|
def pseudo_id(snils: str, key: str | None = None) -> str:
|
|
"""HMAC-SHA256(PSEUDO_KEY, normalised SNILS) as 32 hex chars — the token linking identity and clinical DBs."""
|
|
raise NotImplementedError
|