VitalCheck is an advanced healthcare platform that empowers doctors to manage patients, register new cases, and leverage cutting-edge AI for disease prediction and report analysis.
- Doctor dashboard with secure patient management
- AI-powered predictions for brain tumors, lung cancer, skin diseases, chest tuberculosis, and heart disease from blood reports
- Appointment scheduling and calendar
- Patient image upload and management
- JWT-based authentication and role-based access
- Brain Tumor Detection (MRI)
- Lung Cancer Detection (CT)
- Chest Tuberculosis Detection (X-ray)
- Skin Disease Classification (Image)
- Heart Disease Prediction (Blood Report PDF)
- Brain Tumor: Trained on MRI images, 4 classes (glioma, meningioma, notumor, pituitary). See
AI/train_brain_tumor_MRI.py. - Lung Cancer: Trained on CT scans, 3 classes (benign, malignant, normal). See
AI/train_lung_cancer_CT.py. - Chest Tuberculosis: Trained on X-ray images, 2 classes (normal, tuberculosis). Dataset details in
AI/dataset/TB_Chest_Radiography_Database/README.md.txt. - Skin Disease: Trained on a large, multi-class dataset using transfer learning (MobileNetV2). See
AI/train_skin_disease.py. - Heart Disease: Trained on structured blood report data, predicts risk from PDF extraction. See
AI/BloodReport_HeartDiseasedetectionModel.py.
- The AI server (
AI/Server.py) exposes REST endpoints:/predictfor image-based predictions (brain, lung, chest, skin)/predict-bloodfor PDF blood report analysis
- Models are loaded at startup; predictions are made on uploaded files and return class and confidence.
- Example usage:
- Upload an MRI image to
/predictwithscanType=MRIandbodyPart=brainfor brain tumor prediction. - Upload a blood report PDF to
/predict-bloodfor heart disease risk.
- Upload an MRI image to
- Tech Stack: Node.js, Express, MongoDB, Mongoose, JWT, Multer, Nodemailer
- Key Endpoints:
/login,/register,/forgot-password,/reset-passwordfor authentication/register-patient(with image upload),/patients(CRUD) for patient management- Appointment endpoints for scheduling and viewing
- Security:
- JWT authentication for all sensitive routes
- Doctor-patient association: Each patient is linked to the registering doctor; only their patients are visible
- Auto-generated patient credentials (email/password) shown to the doctor after registration
- Image Handling:
- Patient images are uploaded and stored; default image fallback is provided
- Tech Stack: React, Vite, MUI, Axios, React Router, React Calendar
- Features:
- Doctor dashboard: View, register, update, and delete patients
- Patient registration form (no email required; credentials auto-generated)
- Modal to copy patient credentials after registration
- Appointment calendar for managing patient appointments
- AI prediction UI: Upload images or PDFs, view results with confidence scores
- Patient image preview and fallback to default
- Authentication:
- JWT token stored and sent with all API requests
- Role-based UI: Only show patients and appointments for the logged-in doctor
- Node.js
- Python 3.8+
- MongoDB
cd AI
pip install -r requirements.txt
python Server.pycd Backend
npm install
node server.jscd frontend
npm install
npm run dev- Register/Login as Doctor: Access the dashboard
- Register Patient: Fill the form, upload image (optional), copy credentials
- AI Predictions: Use the prediction UI to upload scans or reports
- Appointments: Schedule and view appointments for your patients
- Patient Management: View, update, or delete your patients only
- Chest Tuberculosis Dataset: Details & Citations
- Other Models: Trained on public datasets (see training scripts for details)
- All sensitive actions require JWT authentication
- Patient data is only accessible to the registering doctor
- Passwords are securely hashed and never exposed except at registration
- Image uploads are validated and size-limited
AI/ # AI models, training scripts, and Flask server
Backend/ # Node.js/Express backend, MongoDB models, API endpoints
frontend/ # React frontend, UI components, pages, assets
- PRs and issues welcome!
- Cite datasets and models as required by their licenses
Ready for production?
- Secure environment variables for secrets and DB credentials
- Use HTTPS in deployment
- Set up proper CORS and rate limiting