Book scans, view prep instructions, receive & read delivered reports. Mobile-first, bilingual EN/AR. token in memory · 15-min idle
Referring physicians track their patients, read signed reports, and acknowledge critical findings. Dark default. REFERRING_DOCTOR only · 20-min idle
Operations: confirm bookings, release reports, manage users/patients, audit log, analytics. ADMIN/STAFF/RADIOLOGIST · 15-min idle
One FastAPI app serves all three portals. JWT auth + RBAC permissions in the token; every PHI action audit-logged. api/v1/{auth,appointments,patients,reports,referring_doctors,admin}
Async Celery workers send email/SMS, deliver report PDFs, and push critical alerts (VAPID). DICOM service queries PACS. notification · report · dicom · storage
PostgreSQL is the system of record; Redis brokers tasks; file storage holds PDFs; SMTP/SMS gateways reach patients. append-only audit_log
Central image store. Scanner pushes studies (C-STORE); viewer queries/retrieves; backend links patient MRN via DICOM service. C-FIND / C-MOVE / WADO
PET/CT Viewer (PyQt6+VTK) reads studies for SUV/MIP/segmentation; radiologist's signed report flows to the backend. not exposed to the web tier