Total Predictions
0Overview
CureHelp+ is an AI-assisted healthcare risk analysis and decision-support application built with Flask, combining patient profile management, disease risk prediction, chest X-ray screening, report parsing, consultant discovery, chatbot guidance, and downloadable PDF reporting in one continuous workflow.
The product is designed to reduce triage friction by converting raw patient intake and lab/imaging input into structured, clinician-friendly output with probabilities, interpretation cues, and next-step guidance. It supports Type-2 Diabetes, Coronary Artery Disease, Anemia, Pneumonia, and Tuberculosis use-cases.
Primary Objectives
- Standardize patient intake and prediction flow across multiple disease modules.
- Enable rapid screening using both tabular biomarkers and chest X-ray image classification.
- Provide transparent result summaries with baseline normal references and recommendations.
- Support continuity of care through saved profiles, consultant lookup, and PDF exports.
System Architecture
CureHelp+ uses a layered architecture: frontend UI (HTML/CSS/JS), Flask API orchestration, model inference engines, profile persistence, report parsing services, and optional admin analytics views.
Core Runtime Layers
- Presentation Layer: `templates/index.html` + `static/css/style.css` + `static/js/app.js`.
- API Layer: `app.py` routes handling profile, prediction, reporting, chat, and consultant endpoints.
- Inference Layer: scikit-learn tabular models, Keras pneumonia model, PyTorch TB model.
- Data/Utility Layer: `profile_manager.py`, `report_parser.py`, `makepdf.py`, `chatbot.py`, `consultant.py`.
High-Level Request Flow
- User submits profile and optional report file.
- Server validates input, stores profile, and optionally auto-fills medical fields.
- User runs disease-specific predictions.
- Inference results are persisted to session/profile and rendered in dashboard panels.
- User can export PDF summary or consult chatbot/provider search for follow-up support.
Key Project Files
- Application Entry: `app.py`
- Admin Module: `admin/`
- Model Artifacts: `models/`
- Training Scripts: `model_scripts/`
- Datasets: `datasets/` and `bot_data/`
- Frontend Assets: `templates/` and `static/`
Clinical Guidance
The platform uses multiple specialized models based on input modality. Tabular models output calibrated probabilities, while image models output classification risk from chest X-ray inputs after preprocessing.
Type-2 Diabetes Model
- Input Type: Tabular clinical features (glucose, BMI, blood pressure, insulin, age, etc.).
- Artifacts: `models/diabetes_model.pkl`, `models/diabetes_scaler.pkl`.
- Output: Probability (%) and mapped input summary.
- Usage: Rapid diabetes risk screening, not diagnostic confirmation.
Coronary Artery Disease Model
- Input Type: Tabular cardiovascular indicators (CP, cholesterol, ECG, ST metrics, etc.).
- Artifacts: `models/heart_model.pkl`, `models/heart_scaler.pkl`.
- Output: Probability (%) and transformed categorical feature values.
- Usage: CAD risk triage for early preventive referral pathways.
Anemia Pipeline
- Input Type: Blood panel values (Hb, RBC, MCV, MCH, MCHC, RDW, platelets, WBC, etc.).
- Artifacts: `models/anemia_risk_model.pkl`, `models/anemia_type_model.pkl`, `models/feature_scaler.pkl`, `models/label_encoder.pkl`.
- Output: Risk probability + predicted anemia severity/type label.
- Usage: Supports quick hematology pattern screening with contextual interpretation.
Pneumonia X-ray Model
- Input Type: Chest X-ray image (`.jpg`, `.jpeg`, `.png`) resized to 224x224.
- Artifact: `models/pneumonia_model.keras`.
- Framework: TensorFlow/Keras inference pipeline.
- Threshold: 0.82 decision threshold (configured in app logic).
- Output: Probability + Normal/Pneumonia classification.
Tuberculosis X-ray Model
- Input Type: Chest X-ray image (`.jpg`, `.jpeg`, `.png`) with lung-region preprocessing.
- Artifact: `models/tb_model.pth`.
- Framework: PyTorch EfficientNet-B0 based binary classifier.
- Threshold: `TB_THRESHOLD` env variable (default 0.50).
- Output: Probability + prediction class + confidence band.
Model Reference Links
- scikit-learn documentation: https://scikit-learn.org/stable/
- TensorFlow Keras documentation: https://www.tensorflow.org/guide/keras
- PyTorch documentation: https://pytorch.org/docs/stable/
- EfficientNet reference: https://arxiv.org/abs/1905.11946
API Reference (Detailed)
General
- GET / – Main application UI.
- GET /api/config – Returns baseline normal values used in result comparison.
Profile and Session
- POST /api/profile – Creates profile; supports optional report upload (`multipart/form-data`).
- GET /api/profile – Fetches currently active profile from session.
- GET /api/profiles?q= – Lists/searches profiles.
- DELETE /api/profiles/<profile_id> – Deletes non-active profile.
- POST /api/reset – Clears active session profile and predictions.
Prediction Endpoints
- POST /api/diabetes – Diabetes risk probability.
- POST /api/heart – Coronary artery disease risk probability.
- POST /api/anemia – Anemia risk + type/severity.
- POST /api/pneumonia – Pneumonia X-ray classification.
- POST /api/tuberculosis – Tuberculosis X-ray classification.
Reports, Chat, and Directory
- GET /api/report – Consolidated prediction data for active session.
- GET /api/report/pdf – PDF export for selected disease predictions.
- POST /api/chat – Chatbot answer for user prompts.
- GET /api/consultants – Hospitals and doctors directory search.
- GET /api/metrics/latency – Latency and model-health telemetry snapshot.
Admin Routes
- GET/POST /admin/login – Admin authentication.
- GET /admin/ – Admin dashboard.
- POST /admin/logout – Admin session end.
- POST /admin/patients/<profile_id>/delete – Admin-side profile deletion.
FAQs
Data inputs are maintained as local repository assets for reproducibility of training/testing workflows. Below are dataset categories with direct reference links where available.
Tabular Clinical Datasets
- Diabetes: `datasets/diabetes.csv`
- Heart: `datasets/heart.csv`
- Anemia: `datasets/anemia.csv`
Chest X-ray Datasets
- Pneumonia Dataset Folder: `datasets/pneumonia/`
- Pneumonia Reference Link: https://www.kaggle.com/datasets/paultimothymooney/chest-xray-pneumonia
- Tuberculosis Dataset Folder: `datasets/Tuberculosis/`
- Tuberculosis Reference Link: https://www.kaggle.com/datasets/tawsifurrahman/tuberculosis-tb-chest-xray-dataset
Chatbot Knowledge Data
- `bot_data/Disease precaution.csv`
- `bot_data/DiseaseAndSymptoms.csv`
- `bot_data/medquad.csv`
- `bot_data/humanqa.csv`
Model and Artifact References
- Model binaries are stored in local `models/` for runtime inference.
- Decision thresholds are configured in `models/decision_thresholds.json` and environment variables.
Workflow Guide
Step-by-Step Usage
- Open Landing: Start from home page and click Get Started.
- Create Profile: Fill identity/demographic fields and optional medical report upload.
- Auto-fill Review: If report parsing succeeds, verify pre-filled medical values before prediction.
- Select Disease Module: Choose diabetes, CAD, anemia, pneumonia, or tuberculosis tab.
- Submit Inputs: Provide tabular biomarkers or upload chest X-ray where applicable.
- Interpret Output: Review probability, label, normal baseline comparison, and recommendations.
- Export PDF: Download report for one or more selected disease predictions.
- Consult Next Steps: Use assistant chatbot and consultant directory for support.
Upload Validation Rules
- Medical reports: `.csv`, `.pdf`, `.xls`, `.xlsx` up to 200 MB.
- X-ray images: `.jpg`, `.jpeg`, `.png` up to 10 MB.
Operational Tips
- Use clinically verified values for all biomarkers before submitting prediction requests.
- Treat probabilities as supportive risk indicators, not definitive diagnosis.
- Preserve historical profiles to compare progression over multiple visits.
- Escalate high-risk findings for immediate clinician review and confirmatory testing.
Configuration and Deployment
Quick Start
- Install dependencies from `requirements.txt`.
- Run server using `flask --app app run`.
- Open `http://127.0.0.1:5000` in browser.
Important Environment Variables
- CUREHELP_SECRET_KEY: Session signing key for Flask.
- TB_THRESHOLD: TB classifier decision threshold (default `0.50`).
- MODEL_WARMUP_ENABLED: Enables startup model warmup routine.
- MODEL_HEALTH_CHECK_INTERVAL_SECONDS: Periodic health verification cadence.
- PROFILE_STORAGE_BACKEND: Force `json` or `postgres` profile persistence.
- DATABASE_URL: PostgreSQL connection string when DB backend is enabled.
- CUREHELP_ADMIN_USER / CUREHELP_ADMIN_PASS: Admin portal credentials.
Testing and Quality
- Unit/integration style tests are available under `tests/`.
- Main app behavior tests are in `tests/test_app.py`.
- Additional modules include parser, chatbot, helper, PDF, and profile manager tests.
Safety, Limitations, and Clinical Notes
Intended Use
- CureHelp+ is intended as clinical decision support and triage assistance software.
- It should assist, not replace, qualified medical judgment and formal diagnostic pathways.
Limitations
- Model outputs depend on data quality, population representativeness, and preprocessing consistency.
- Threshold-based classification can produce false positives/false negatives.
- X-ray prediction quality is sensitive to image acquisition and input artifacts.
- Chatbot responses are informational and not emergency medical advice.
Recommended Clinical Practice
- Always verify high-risk outputs with additional clinical tests and specialist review.
- Cross-check patient history, co-morbidities, and treatment context before decisions.
- Document rationale for decisions made from model-assisted risk output.
- Use consultant referral for urgent and ambiguous cases.