# aayushsharma141/dr-sr architecture

> Architecture diagram of the GitHub repository aayushsharma141/dr-sr, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/aayushsharma141/dr-sr
- Repository: https://github.com/aayushsharma141/dr-sr

## Overview

Kalyan Hospital’s stated goal is a shared, offline-LAN patient and physiotherapy platform. The README distinguishes that target from the legacy PySide6/SQLite desktop app; the tree also contains React and FastAPI code, so the graph shows both rather than treating them as one deployed system. The main web workflow is browser navigation to role-based clinical or reception work, API requests, and server-side record handling. Several domain branches are documented or represented by modules but were not sampled; their internal links are therefore omitted or marked unverified.

Main entry points: [`backend/src/kalyan_api/main.py`](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/main.py) (FastAPI application), [`frontend/src/router.tsx`](https://github.com/aayushsharma141/dr-sr/blob/main/frontend/src/router.tsx) (Role-based routes), [`backend/src/kalyan_api/routers/auth.py`](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/routers/auth.py) (Authentication routes), [`backend/src/kalyan_api/db/session.py`](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/db/session.py) (Database sessions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web client"]
  node_webapp["Web application<br/>[main.tsx]"]
  node_routing["Role-based routes<br/>[router.tsx]"]
  node_clinical["Clinical workspace"]
  node_registration["Patient registration"]
  node_reception["Reception workflows"]
  node_admin["Administration"]
  node_queries["API queries<br/>[queries.ts]"]
  node_api_client["HTTP client<br/>[client.ts]"]
end

subgraph group_api["LAN API"]
  node_api_server["FastAPI application<br/>[main.py]"]
  node_auth_routes["Authentication routes<br/>[auth.py]"]
  node_patient_routes["Patient records<br/>[patients.py]"]
  node_clinical_routes["Clinical records<br/>[encounters.py]"]
  node_appointments["Appointments<br/>[appointments.py]"]
  node_billing["Billing<br/>[billing.py]"]
  node_other_routes["Other API domains"]
  node_auth_service["Authentication service<br/>[auth_service.py]"]
  node_audit["Audit service<br/>[audit_service.py]"]
  node_settings["Runtime settings<br/>[config.py]"]
end

subgraph group_data["Persistence and files"]
  node_db_session["Database sessions<br/>[session.py]"]
  node_models["Domain models<br/>[models.py]"]
  node_postgres[("Central database")]
  node_private_files[("Private file storage<br/>[config.py]")]
end

subgraph group_legacy["Legacy desktop"]
  node_legacy_ui["Desktop interface<br/>[main_window.py]"]
  node_legacy_auth["Desktop authentication<br/>[auth_service.py]"]
  node_legacy_patient["Patient services<br/>[patient_service.py]"]
  node_legacy_db[("Local SQLite<br/>[connection.py]")]
end

node_staff(("Hospital staff"))
node_browser(("LAN browser"))

node_staff -->|"uses"| node_browser
node_browser -.->|"opens"| node_webapp
node_webapp -->|"renders"| node_routing
node_routing -->|"routes to"| node_clinical
node_routing -->|"routes to"| node_registration
node_routing -->|"routes to"| node_reception
node_routing -->|"routes to"| node_admin
node_clinical -->|"requests"| node_api_client
node_queries -->|"calls"| node_api_client
node_admin -->|"uses"| node_queries
node_api_client -.->|"sends requests"| node_api_server
node_api_server -->|"registers"| node_auth_routes
node_api_server -->|"registers"| node_patient_routes
node_api_server -->|"registers"| node_clinical_routes
node_api_server -->|"registers"| node_appointments
node_api_server -->|"registers"| node_billing
node_api_server -.->|"registers"| node_other_routes
node_auth_routes -->|"calls"| node_auth_service
node_auth_routes -->|"records events"| node_audit
node_auth_service -->|"uses"| node_models
node_audit -->|"uses"| node_models
node_db_session -->|"configures"| node_settings
node_api_server -->|"initializes"| node_db_session
node_db_session -.->|"connects"| node_postgres
node_models -.->|"maps records"| node_postgres
node_settings -->|"sets locations"| node_private_files
node_legacy_ui -->|"uses"| node_legacy_patient
node_legacy_ui -->|"initializes"| node_legacy_db
node_legacy_auth -->|"queries"| node_legacy_db

click node_webapp "https://github.com/aayushsharma141/dr-sr/blob/main/frontend/src/main.tsx"
click node_routing "https://github.com/aayushsharma141/dr-sr/blob/main/frontend/src/router.tsx"
click node_clinical "https://github.com/aayushsharma141/dr-sr/blob/main/frontend/src/pages/ClinicalEncounterWorkspace.tsx"
click node_registration "https://github.com/aayushsharma141/dr-sr/blob/main/frontend/src/pages/PatientRegister.tsx"
click node_reception "https://github.com/aayushsharma141/dr-sr/tree/main/frontend/src/pages"
click node_admin "https://github.com/aayushsharma141/dr-sr/tree/main/frontend/src/pages/admin"
click node_queries "https://github.com/aayushsharma141/dr-sr/blob/main/frontend/src/api/queries.ts"
click node_api_client "https://github.com/aayushsharma141/dr-sr/blob/main/frontend/src/api/client.ts"
click node_api_server "https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/main.py"
click node_auth_routes "https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/routers/auth.py"
click node_patient_routes "https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/routers/patients.py"
click node_clinical_routes "https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/routers/encounters.py"
click node_appointments "https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/routers/appointments.py"
click node_billing "https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/routers/billing.py"
click node_other_routes "https://github.com/aayushsharma141/dr-sr/tree/main/backend/src/kalyan_api/routers"
click node_auth_service "https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/services/auth_service.py"
click node_audit "https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/services/audit_service.py"
click node_settings "https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/config.py"
click node_db_session "https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/db/session.py"
click node_models "https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/models.py"
click node_private_files "https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/config.py"
click node_legacy_ui "https://github.com/aayushsharma141/dr-sr/blob/main/legacy/app/ui/main_window.py"
click node_legacy_auth "https://github.com/aayushsharma141/dr-sr/blob/main/legacy/app/services/auth_service.py"
click node_legacy_patient "https://github.com/aayushsharma141/dr-sr/blob/main/legacy/app/services/patient_service.py"
click node_legacy_db "https://github.com/aayushsharma141/dr-sr/blob/main/legacy/app/db/connection.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_webapp,node_routing,node_clinical,node_registration,node_reception,node_admin,node_queries,node_api_client,node_browser toneBlue
class node_api_server,node_auth_routes,node_patient_routes,node_clinical_routes,node_appointments,node_billing,node_other_routes,node_auth_service,node_audit,node_settings toneAmber
class node_db_session,node_models,node_postgres,node_private_files toneMint
class node_legacy_ui,node_legacy_auth,node_legacy_patient,node_legacy_db toneRose
class node_staff toneIndigo
```

## Components

### Web client

- [Web application](https://github.com/aayushsharma141/dr-sr/blob/main/frontend/src/main.tsx): `frontend/src/main.tsx`
- [Role-based routes](https://github.com/aayushsharma141/dr-sr/blob/main/frontend/src/router.tsx): `frontend/src/router.tsx`
- [Clinical workspace](https://github.com/aayushsharma141/dr-sr/blob/main/frontend/src/pages/ClinicalEncounterWorkspace.tsx): `frontend/src/pages/ClinicalEncounterWorkspace.tsx`
- [Patient registration](https://github.com/aayushsharma141/dr-sr/blob/main/frontend/src/pages/PatientRegister.tsx): `frontend/src/pages/PatientRegister.tsx`
- [Reception workflows](https://github.com/aayushsharma141/dr-sr/tree/main/frontend/src/pages): `frontend/src/pages`
- [Administration](https://github.com/aayushsharma141/dr-sr/tree/main/frontend/src/pages/admin): `frontend/src/pages/admin`
- [API queries](https://github.com/aayushsharma141/dr-sr/blob/main/frontend/src/api/queries.ts): `frontend/src/api/queries.ts`
- [HTTP client](https://github.com/aayushsharma141/dr-sr/blob/main/frontend/src/api/client.ts): `frontend/src/api/client.ts`

### LAN API

- [FastAPI application](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/main.py): `backend/src/kalyan_api/main.py`
- [Authentication routes](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/routers/auth.py): `backend/src/kalyan_api/routers/auth.py`
- [Patient records](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/routers/patients.py): `backend/src/kalyan_api/routers/patients.py`
- [Clinical records](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/routers/encounters.py): `backend/src/kalyan_api/routers/encounters.py`
- [Appointments](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/routers/appointments.py): `backend/src/kalyan_api/routers/appointments.py`
- [Billing](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/routers/billing.py): `backend/src/kalyan_api/routers/billing.py`
- [Other API domains](https://github.com/aayushsharma141/dr-sr/tree/main/backend/src/kalyan_api/routers): `backend/src/kalyan_api/routers`
- [Authentication service](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/services/auth_service.py): `backend/src/kalyan_api/services/auth_service.py`
- [Audit service](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/services/audit_service.py): `backend/src/kalyan_api/services/audit_service.py`
- [Runtime settings](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/config.py): `backend/src/kalyan_api/config.py`

### Persistence and files

- [Database sessions](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/db/session.py): `backend/src/kalyan_api/db/session.py`
- [Domain models](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/models.py): `backend/src/kalyan_api/models.py`
- **Central database**
- [Private file storage](https://github.com/aayushsharma141/dr-sr/blob/main/backend/src/kalyan_api/config.py): `backend/src/kalyan_api/config.py`

### Legacy desktop

- [Desktop interface](https://github.com/aayushsharma141/dr-sr/blob/main/legacy/app/ui/main_window.py): `legacy/app/ui/main_window.py`
- [Desktop authentication](https://github.com/aayushsharma141/dr-sr/blob/main/legacy/app/services/auth_service.py): `legacy/app/services/auth_service.py`
- [Patient services](https://github.com/aayushsharma141/dr-sr/blob/main/legacy/app/services/patient_service.py): `legacy/app/services/patient_service.py`
- [Local SQLite](https://github.com/aayushsharma141/dr-sr/blob/main/legacy/app/db/connection.py): `legacy/app/db/connection.py`

### Other components

- **Hospital staff**
- **LAN browser**

## Connections

- Hospital staff → LAN browser: uses (evidence: `README.md`)
- LAN browser → Web application: opens
- Web application → Role-based routes: renders (evidence: `frontend/src/main.tsx`)
- Role-based routes → Clinical workspace: routes to (evidence: `frontend/src/router.tsx`)
- Role-based routes → Patient registration: routes to (evidence: `frontend/src/router.tsx`)
- Role-based routes → Reception workflows: routes to (evidence: `frontend/src/router.tsx`)
- Role-based routes → Administration: routes to (evidence: `frontend/src/router.tsx`)
- Clinical workspace → HTTP client: requests (evidence: `frontend/src/pages/ClinicalEncounterWorkspace.tsx`)
- API queries → HTTP client: calls (evidence: `frontend/src/api/queries.ts`)
- Administration → API queries: uses (evidence: `frontend/src/pages/admin/BackupManagerPage.tsx`)
- HTTP client → FastAPI application: sends requests
- FastAPI application → Authentication routes: registers (evidence: `backend/src/kalyan_api/main.py`)
- FastAPI application → Patient records: registers (evidence: `backend/src/kalyan_api/main.py`)
- FastAPI application → Clinical records: registers (evidence: `backend/src/kalyan_api/main.py`)
- FastAPI application → Appointments: registers (evidence: `backend/src/kalyan_api/main.py`)
- FastAPI application → Billing: registers (evidence: `backend/src/kalyan_api/main.py`)
- FastAPI application → Other API domains: registers (evidence: `backend/src/kalyan_api/main.py`)
- Authentication routes → Authentication service: calls (evidence: `backend/src/kalyan_api/routers/auth.py`)
- Authentication routes → Audit service: records events (evidence: `backend/src/kalyan_api/routers/auth.py`)
- Authentication service → Domain models: uses (evidence: `backend/src/kalyan_api/services/auth_service.py`)
- Audit service → Domain models: uses (evidence: `backend/src/kalyan_api/services/audit_service.py`)
- Database sessions → Runtime settings: configures (evidence: `backend/src/kalyan_api/db/session.py`)
- FastAPI application → Database sessions: initializes (evidence: `backend/src/kalyan_api/main.py`)
- Database sessions → Central database: connects
- Domain models → Central database: maps records
- Runtime settings → Private file storage: sets locations (evidence: `backend/src/kalyan_api/config.py`)
- Desktop interface → Patient services: uses (evidence: `legacy/app/ui/main_window.py`)
- Desktop interface → Local SQLite: initializes (evidence: `legacy/app/ui/main_window.py`)
- Desktop authentication → Local SQLite: queries (evidence: `legacy/app/services/auth_service.py`)
