# mahim2077/healthlink architecture

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

- Interactive diagram: https://gitdiagram.com/mahim2077/healthlink
- Repository: https://github.com/mahim2077/healthlink

## Overview

HealthLink is a healthcare platform with Citizen, Professional, and Admin portals. Its principal workflow runs from portal sign-in and role/ownership checks through care discovery, appointments, consultations, and access to clinical records; diagnostic sessions and finalized reports form a distinct lab workflow. The README also documents administration, scoped access and auditing, reminders, emergency profiles, and consent-based AI. Edges use README statements or shown source references; unsampled feature internals are represented at their existing directory paths.

Main entry points: [`backend/app/main.py`](https://github.com/mahim2077/healthlink/blob/main/backend/app/main.py) (FastAPI API), [`backend/app/diagnostics/session_service.py`](https://github.com/mahim2077/healthlink/blob/main/backend/app/diagnostics/session_service.py) (Diagnostic sessions), [`frontend/src/app/citizen/dashboard/page.tsx`](https://github.com/mahim2077/healthlink/blob/main/frontend/src/app/citizen/dashboard/page.tsx) (Citizen portal), [`frontend/src/app/professional/dashboard/page.tsx`](https://github.com/mahim2077/healthlink/blob/main/frontend/src/app/professional/dashboard/page.tsx) (Professional portal)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portals["Portals and API"]
  node_citizen["Citizen portal<br/>[page.tsx]"]
  node_professional["Professional portal<br/>[page.tsx]"]
  node_admin["Admin portal<br/>[page.tsx]"]
  node_api["FastAPI API<br/>[main.py]"]
end

subgraph group_identity["Identity and Administration"]
  node_auth["Authentication<br/>[service.py]"]
  node_authcontext["Auth context<br/>[dependencies.py]"]
  node_citizenidentity["Citizen identity<br/>[service.py]"]
  node_professionalidentity["Professional roles<br/>[service.py]"]
  node_adminservices["Admin services<br/>[service.py]"]
  node_facility["Facility management<br/>[service.py]"]
end

subgraph group_care["Care Delivery"]
  node_doctors["Doctor discovery<br/>[service.py]"]
  node_appointments["Appointments<br/>[service.py]"]
  node_visits["Consultation visits<br/>[service.py]"]
  node_prescriptions["Prescriptions<br/>[service.py]"]
end

subgraph group_records["Records and Diagnostics"]
  node_medicalrecords["Medical history<br/>[service.py]"]
  node_diagnostics["Diagnostic sessions<br/>[session_service.py]"]
  node_reports["Diagnostic reports<br/>[report_service.py]"]
  node_emergency["Emergency profiles<br/>[service.py]"]
end

subgraph group_support["Access and Assistance"]
  node_accesspolicy["Clinical read policy<br/>[policy.py]"]
  node_audit["Access audit<br/>[service.py]"]
  node_reminders["Reminders and inbox<br/>[service.py]"]
  node_ai["AI assistance"]
  node_database[("PostgreSQL")]
end

node_citizenactor(("Citizen"))
node_professionalactor(("Professional"))
node_adminactor(("Administrator"))
node_groq["Groq AI"]

node_citizenactor -->|"uses"| node_citizen
node_professionalactor -->|"uses"| node_professional
node_adminactor -->|"uses"| node_admin
node_citizen -->|"calls API"| node_api
node_professional -->|"calls API"| node_api
node_admin -->|"calls API"| node_api
node_api -->|"authenticates"| node_auth
node_authcontext -->|"validates session"| node_auth
node_api -->|"serves identity"| node_citizenidentity
node_api -->|"serves roles"| node_professionalidentity
node_api -->|"serves admin"| node_adminservices
node_api -->|"manages facilities"| node_facility
node_api -->|"serves discovery"| node_doctors
node_api -->|"serves booking"| node_appointments
node_api -->|"serves visits"| node_visits
node_api -->|"serves prescriptions"| node_prescriptions
node_api -->|"serves history"| node_medicalrecords
node_api -.->|"serves sessions"| node_diagnostics
node_api -.->|"serves reports"| node_reports
node_api -->|"serves profiles"| node_emergency
node_api -->|"serves reminders"| node_reminders
node_api -->|"serves assistant"| node_ai
node_api -->|"checks access"| node_accesspolicy
node_api -->|"records access"| node_audit
node_appointments -.->|"persists data"| node_database
node_diagnostics -->|"records actions"| node_audit
node_diagnostics -->|"creates notices"| node_reminders
node_api -->|"opens sessions"| node_database
node_ai -.->|"generates explanations"| node_groq

click node_citizen "https://github.com/mahim2077/healthlink/blob/main/frontend/src/app/citizen/dashboard/page.tsx"
click node_professional "https://github.com/mahim2077/healthlink/blob/main/frontend/src/app/professional/dashboard/page.tsx"
click node_admin "https://github.com/mahim2077/healthlink/blob/main/frontend/src/app/admin/dashboard/page.tsx"
click node_api "https://github.com/mahim2077/healthlink/blob/main/backend/app/main.py"
click node_auth "https://github.com/mahim2077/healthlink/blob/main/backend/app/auth/service.py"
click node_authcontext "https://github.com/mahim2077/healthlink/blob/main/backend/app/auth/dependencies.py"
click node_citizenidentity "https://github.com/mahim2077/healthlink/blob/main/backend/app/citizens/service.py"
click node_professionalidentity "https://github.com/mahim2077/healthlink/blob/main/backend/app/professionals/service.py"
click node_adminservices "https://github.com/mahim2077/healthlink/blob/main/backend/app/admins/service.py"
click node_facility "https://github.com/mahim2077/healthlink/blob/main/backend/app/facilities/service.py"
click node_doctors "https://github.com/mahim2077/healthlink/blob/main/backend/app/doctors/service.py"
click node_appointments "https://github.com/mahim2077/healthlink/blob/main/backend/app/appointments/service.py"
click node_visits "https://github.com/mahim2077/healthlink/blob/main/backend/app/visits/service.py"
click node_prescriptions "https://github.com/mahim2077/healthlink/blob/main/backend/app/prescriptions/service.py"
click node_medicalrecords "https://github.com/mahim2077/healthlink/blob/main/backend/app/medical_records/service.py"
click node_diagnostics "https://github.com/mahim2077/healthlink/blob/main/backend/app/diagnostics/session_service.py"
click node_reports "https://github.com/mahim2077/healthlink/blob/main/backend/app/diagnostics/report_service.py"
click node_emergency "https://github.com/mahim2077/healthlink/blob/main/backend/app/emergency/service.py"
click node_accesspolicy "https://github.com/mahim2077/healthlink/blob/main/backend/app/access/policy.py"
click node_audit "https://github.com/mahim2077/healthlink/blob/main/backend/app/clinical_audit/service.py"
click node_reminders "https://github.com/mahim2077/healthlink/blob/main/backend/app/reminders/service.py"
click node_ai "https://github.com/mahim2077/healthlink/blob/main/backend/app/ai/assistant_service.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_citizen,node_professional,node_admin,node_api toneBlue
class node_auth,node_authcontext,node_citizenidentity,node_professionalidentity,node_adminservices,node_facility toneAmber
class node_doctors,node_appointments,node_visits,node_prescriptions toneMint
class node_medicalrecords,node_diagnostics,node_reports,node_emergency toneRose
class node_accesspolicy,node_audit,node_reminders,node_ai,node_database,node_citizenactor,node_professionalactor,node_adminactor,node_groq toneIndigo
```

## Components

### Portals and API

- [Citizen portal](https://github.com/mahim2077/healthlink/blob/main/frontend/src/app/citizen/dashboard/page.tsx): `frontend/src/app/citizen/dashboard/page.tsx`
- [Professional portal](https://github.com/mahim2077/healthlink/blob/main/frontend/src/app/professional/dashboard/page.tsx): `frontend/src/app/professional/dashboard/page.tsx`
- [Admin portal](https://github.com/mahim2077/healthlink/blob/main/frontend/src/app/admin/dashboard/page.tsx): `frontend/src/app/admin/dashboard/page.tsx`
- [FastAPI API](https://github.com/mahim2077/healthlink/blob/main/backend/app/main.py): `backend/app/main.py`

### Identity and Administration

- [Authentication](https://github.com/mahim2077/healthlink/blob/main/backend/app/auth/service.py): `backend/app/auth/service.py`
- [Auth context](https://github.com/mahim2077/healthlink/blob/main/backend/app/auth/dependencies.py): `backend/app/auth/dependencies.py`
- [Citizen identity](https://github.com/mahim2077/healthlink/blob/main/backend/app/citizens/service.py): `backend/app/citizens/service.py`
- [Professional roles](https://github.com/mahim2077/healthlink/blob/main/backend/app/professionals/service.py): `backend/app/professionals/service.py`
- [Admin services](https://github.com/mahim2077/healthlink/blob/main/backend/app/admins/service.py): `backend/app/admins/service.py`
- [Facility management](https://github.com/mahim2077/healthlink/blob/main/backend/app/facilities/service.py): `backend/app/facilities/service.py`

### Care Delivery

- [Doctor discovery](https://github.com/mahim2077/healthlink/blob/main/backend/app/doctors/service.py): `backend/app/doctors/service.py`
- [Appointments](https://github.com/mahim2077/healthlink/blob/main/backend/app/appointments/service.py): `backend/app/appointments/service.py`
- [Consultation visits](https://github.com/mahim2077/healthlink/blob/main/backend/app/visits/service.py): `backend/app/visits/service.py`
- [Prescriptions](https://github.com/mahim2077/healthlink/blob/main/backend/app/prescriptions/service.py): `backend/app/prescriptions/service.py`

### Records and Diagnostics

- [Medical history](https://github.com/mahim2077/healthlink/blob/main/backend/app/medical_records/service.py): `backend/app/medical_records/service.py`
- [Diagnostic sessions](https://github.com/mahim2077/healthlink/blob/main/backend/app/diagnostics/session_service.py): `backend/app/diagnostics/session_service.py`
- [Diagnostic reports](https://github.com/mahim2077/healthlink/blob/main/backend/app/diagnostics/report_service.py): `backend/app/diagnostics/report_service.py`
- [Emergency profiles](https://github.com/mahim2077/healthlink/blob/main/backend/app/emergency/service.py): `backend/app/emergency/service.py`

### Access and Assistance

- [Clinical read policy](https://github.com/mahim2077/healthlink/blob/main/backend/app/access/policy.py): `backend/app/access/policy.py`
- [Access audit](https://github.com/mahim2077/healthlink/blob/main/backend/app/clinical_audit/service.py): `backend/app/clinical_audit/service.py`
- [Reminders and inbox](https://github.com/mahim2077/healthlink/blob/main/backend/app/reminders/service.py): `backend/app/reminders/service.py`
- [AI assistance](https://github.com/mahim2077/healthlink/blob/main/backend/app/ai/assistant_service.py): `backend/app/ai/assistant_service.py`
- **PostgreSQL**

### Other components

- **Citizen**
- **Professional**
- **Administrator**
- **Groq AI**

## Connections

- Citizen → Citizen portal: uses (evidence: `README.md`)
- Professional → Professional portal: uses (evidence: `README.md`)
- Administrator → Admin portal: uses (evidence: `README.md`)
- Citizen portal → FastAPI API: calls API (evidence: `README.md`)
- Professional portal → FastAPI API: calls API (evidence: `README.md`)
- Admin portal → FastAPI API: calls API (evidence: `README.md`)
- FastAPI API → Authentication: authenticates
- Auth context → Authentication: validates session (evidence: `backend/app/auth/dependencies.py`)
- FastAPI API → Citizen identity: serves identity
- FastAPI API → Professional roles: serves roles
- FastAPI API → Admin services: serves admin
- FastAPI API → Facility management: manages facilities
- FastAPI API → Doctor discovery: serves discovery
- FastAPI API → Appointments: serves booking
- FastAPI API → Consultation visits: serves visits
- FastAPI API → Prescriptions: serves prescriptions
- FastAPI API → Medical history: serves history
- FastAPI API → Diagnostic sessions: serves sessions (evidence: `backend/app/diagnostics/session_service.py`)
- FastAPI API → Diagnostic reports: serves reports
- FastAPI API → Emergency profiles: serves profiles
- FastAPI API → Reminders and inbox: serves reminders
- FastAPI API → AI assistance: serves assistant
- FastAPI API → Clinical read policy: checks access
- FastAPI API → Access audit: records access
- Appointments → PostgreSQL: persists data
- Diagnostic sessions → Access audit: records actions (evidence: `backend/app/diagnostics/session_service.py`)
- Diagnostic sessions → Reminders and inbox: creates notices (evidence: `backend/app/diagnostics/session_service.py`)
- FastAPI API → PostgreSQL: opens sessions
- AI assistance → Groq AI: generates explanations (evidence: `README.md`)
