A hybrid offline/online medical AI assistant for Pneumonia detection featuring explainable heatmaps (Grad-CAM), Amharic localization, and secure edge inference.
# MediScan
## Overview
MediScan is a medical AI diagnostic assistant designed to aid radiologists and general practitioners. The application bridges the gap in specialist availability by providing instant, explainable detection of Pneumonia in chest X-rays.
The system utilizes a hybrid architecture: a secure Python backend running a fine-tuned ResNet-50 model for heavy inference and Explainable AI (Grad-CAM), paired with a lightweight Flutter mobile application for point-of-care use.
## Project Demo
Click the image below to watch the full demonstration on YouTube:
> *Note: This video demonstrates the live inference pipeline, heatmap generation, and medical reporting workflow.*
## Key Features
* **AI-Powered Diagnosis:** Utilizes a ResNet-50 Convolutional Neural Network trained on chest X-rays to detect Pneumonia with high confidence.
* **Explainable AI (XAI):** Generates Visual Heatmaps (Grad-CAM) to overlay on X-rays, allowing doctors to verify which lung regions triggered the AI's prediction.
* **Medical Reporting:** automatically generates professional PDF reports containing the original X-ray, AI heatmap, patient ID, and doctor's details.
* **Patient History:** Implements a local SQLite database to track and manage recent patient diagnoses.
* **Configurable Settings:** Allows customization of doctor profiles and hospital details for personalized reporting.
## Technology Stack
### Backend (The Intelligence Hub)
* **Framework:** FastAPI (Python 3.10+)
* **ML Core:** PyTorch, Torchvision
* **Image Processing:** OpenCV, Numpy
* **Database:** SQLite with SQLModel (ORM)
* **Explainability:** pytorch-grad-cam
### Frontend (Mobile Application)
* **Framework:** Flutter (Dart)
* **State Management:** Provider
* **Networking:** Dio (HTTP Client)
* **Visualization:** fl_chart (Data visualization), photo_view (Zoomable images)
* **Reporting:** pdf, printing packages
## Architecture
The project follows a clean client-server …