A hackathon MVP built for Build4SC β connecting patients, nurses, and families through real-time AI-driven clinical intelligence.
EaseCare is a modular, role-based hospital safety platform that uses large language models to bridge the gap between patients and care teams. It enables:
- Patients to report symptoms, request help, and receive personalized AI responses
- Nurses to monitor all patients on a live dashboard with AI-generated pre-visit briefings
- Families to stay informed and communicate with the care team
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β React Frontend β
β (Vite + React + Axios β port 5173) β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ
β /api/* (proxied)
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββ
β FastAPI Backend (port 8000) β
β SQLite DB Β· SQLModel ORM β
β /api/patients /api/alerts /api/family β
β /api/discharge β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββ
β AI Service Layer β
β Primary: Gemini 2.5 Flash (Google) β
β Fallback: Gemini 2.0 Flash β Gemini Flash Lite β
β Final: OpenAI gpt-4o-mini β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Build4SC/
βββ frontend/ # React app (Vite)
β βββ src/
β βββ pages/
β β βββ Patient.jsx # Patient bedside dashboard
β β βββ Nurse.jsx # Nurse monitoring dashboard
β β βββ Family.jsx # Family portal
β β βββ Discharge.jsx # Discharge planning
β β βββ Landing.jsx # Role selection landing
β βββ lib/
β βββ api.js # Axios API client
β
βββ overall_backend/ # Main FastAPI backend
β βββ main.py # App entry point + CORS
β βββ models.py # SQLModel DB models
β βββ database.py # SQLite engine
β βββ seed_db.py # DB seeder (6 patients)
β βββ routers/
β βββ patients.py # Patient CRUD + LLM triage
β βββ alerts.py # Alert management
β βββ family.py # Family message triage
β βββ discharge.py # Discharge profiles
β
βββ llm_backend/ # LLM service layer
β βββ services/
β β βββ ai_service.py # Gemini β OpenAI cascade
β βββ .env # API keys (git-ignored)
β
βββ reset_margaret.py # Reset patient 4B to seed state
βββ sentinel.db # SQLite database (auto-created)
- Conda with a
sentinelenvironment - Node.js 18+
- API keys for Google Gemini and OpenAI
git clone https://github.com/bdvinod788/easecare.git
cd easecareBackend (Python):
conda activate sentinel
pip install -r llm_backend/requirements.txtFrontend (Node):
cd frontend
npm installCreate llm_backend/.env:
GEMINI_API_KEY="your-google-gemini-api-key"
OPENAI_API_KEY="your-openai-api-key"conda activate sentinel
python -m overall_backend.seed_dbThis creates 6 mock patients with realistic clinical histories and AI summaries.
Terminal 1 β Backend:
conda activate sentinel
uvicorn overall_backend.main:app --reload --port 8000Terminal 2 β Frontend:
cd frontend
npm run dev- Report symptoms with severity slider (1β10)
- Request help: Food/Water, Medication, Personal Care, Room
- Receive personalized AI responses by name (not robotic system messages)
- Voice note support (Web Speech API)
- Call Nurse / Emergency alert buttons
- Live patient list with priority badges (π΄ Critical / π Attention / β Stable)
- AI pre-visit brief auto-generated after every patient interaction
- Inline condition editor β update diagnosis text and severity from the dashboard
- Focus Mode β filter to top-priority patients only
- Patient search, filter by priority/source, trend indicators
- Notes & team chat per patient
- Submit concerns about a patient
- AI triage of family messages (urgency classification)
- Plain-language AI explanations of medical terms
Every patient interaction triggers an AI call:
Patient submits symptom/request
β
Backend builds personalized system prompt
β
ai_service.call_llm_json()
β
Try: Gemini 2.5 Flash
Fallback: Gemini 2.0 Flash
Fallback: Gemini 2.0 Flash Lite (3s wait between retries)
Fallback: OpenAI gpt-4o-mini
Fallback: Safe static response (never crashes)
β
Returns: { ai_signal (nurse), patient_message (patient), urgency, escalation }
β
Nurse AI summary regenerated + stored in DB
All responses include:
patient_messageβ warm, first-name personalized reply shown to the patientai_signalβ clinical note shown to the nurseurgencyβlow | medium | high | criticalescalationβ triggers alert + severity upgrade if true
| Script | Purpose |
|---|---|
python -m overall_backend.seed_db |
Wipe and reseed entire DB |
python reset_margaret.py |
Reset only patient 4B (Margaret Chen) to seed state |
python test_llm_direct.py |
Quick LLM smoke test |
python test_e2e.py |
End-to-end API test against live backend |
| Variable | Required | Description |
|---|---|---|
GEMINI_API_KEY |
β | Google AI Studio key (primary LLM) |
OPENAI_API_KEY |
β | OpenAI key (fallback LLM) |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/health |
Health check |
GET |
/api/patients/ |
All patients (nurse dashboard) |
GET |
/api/patients/{id} |
Single patient detail |
POST |
/api/patients/{id}/report |
Submit symptom report |
POST |
/api/patients/{id}/message |
Submit help request |
PATCH |
/api/patients/{id}/condition |
Update condition/severity |
GET |
/api/alerts/ |
All active alerts |
POST |
/api/family/{id}/triage |
Submit family concern |
POST |
/api/family/{id}/explain |
Get plain-language explanation |
GET |
/api/discharge/{id} |
Discharge profile |
| Layer | Technology |
|---|---|
| Frontend | ReactJS, Vite, Axios, CSS |
| Backend | FastAPI, SQLModel, SQLite, Uvicorn |
| AI | Google Gemini 2.5 Flash, OpenAI gpt-4o-mini |
| Language | Python 3.11, JavaScript (ES2022) |
| Env | Conda (sentinel) |
Built for Build4SC Hackathon by the EaseCare team.
Team members: Ahhana Gupta, Preeti Ramesh, Sarvesh V., Vinod Devaraju