fix(api): provide pseudonymous patients access to doctor care
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
"""Pseudonymous care routing; no identity fields or changes to clinical release gates."""
|
||||
|
||||
from hashlib import sha256
|
||||
|
||||
import yaml
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
from app.config import get_settings
|
||||
|
||||
|
||||
class AnonymousCare(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid", str_strip_whitespace=True)
|
||||
doctor_id: str = Field(min_length=1, max_length=64)
|
||||
|
||||
|
||||
def doctor_id() -> str:
|
||||
path = get_settings().config_dir / "anonymous_care.yaml"
|
||||
return AnonymousCare.model_validate(yaml.safe_load(path.read_text())).doctor_id
|
||||
|
||||
|
||||
def display_name(token: str) -> str:
|
||||
# Do not use a piece of the bearer token itself as the public patient label.
|
||||
label = sha256(("anonymous-patient:" + token).encode()).hexdigest()[:10].upper()
|
||||
return f"Пациент {label}"
|
||||
Reference in New Issue
Block a user