Skip to content

AI-Powered Medical Image Diagnosis Platform | FastAPI, Next.js, MobileNetV2, Secure Reports, HIPAA-Compliant

License

Notifications You must be signed in to change notification settings

Darkwebnew/Projectwork2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

103 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSSS Banner

🧬 Clinical Scan Support System

AI-Powered Medical Image Diagnosis & Automated Clinical Reporting Platform

Python 3.10+ FastAPI Next.js TensorFlow MobileNetV2 Accuracy Dataset License Status

From scan upload → AI inference → multi-role clinical review → encrypted PDF report delivery — fully automated in one platform

🚀 Quick Start🏗️ Architecture🧠 AI Pipeline🔌 API Docs🧪 Workflow Demo🎓 Model Training👥 Team


⚕️ Medical Disclaimer — CSSS is an AI-assisted screening tool designed to support qualified medical professionals. All AI predictions require review by a licensed physician before any clinical decision is made.


🎯 Overview

Clinical Scan Support System (CSSS) is a production-grade, full-stack AI medical imaging platform that automates the complete diagnostic pipeline — from patient scan upload through real-time MobileNetV2 inference, structured multi-role clinical review, to professional PDF diagnostic report generation and encrypted email delivery.

Built as a final-year engineering mini-project, CSSS tackles a real clinical bottleneck: traditional diagnostic workflows are manual, siloed, and slow. CSSS replaces this with a unified platform where every stakeholder — patient, doctor, pharmacist, and admin — has a purpose-built dashboard, enforced access control, and a clearly defined role in the pipeline.

✨ Key Features

Feature Detail
🔍 Multi-Modal Scan Support Chest X-ray (NIH), COVID-19 radiography, cardiac MRI
🧠 Deep Learning Inference MobileNetV2 — 89.51% test accuracy, sub-second prediction
🔄 4-Role Clinical Workflow Patient → Doctor → Pharmacist → Admin approval pipeline
📄 Auto PDF Report Generation WeasyPrint + Jinja2 HTML → professional diagnostic report
📧 SMTP Email Delivery Encrypted PDF automatically emailed to patient on approval
🔒 JWT + OTP 2FA Security Role-based access control, two-factor login for admin
💬 Medical AI Chatbot Context-aware assistant for patient FAQ and workflow help
🎛️ 4 Role Dashboards Tailored UIs — Admin, Doctor, Pharmacist, Patient
Live Status Tracking Real-time scan status badges across all role dashboards
📊 Confidence Scoring Per-class probability output with automatic uncertainty flagging
🗄️ SQLite / PostgreSQL Lightweight local dev DB with production migration path
🖥️ Dark Theme SPA Responsive Next.js 14 frontend with cyan-accented dark UI

🎯 Use Cases

  • Hospital Radiology Departments — Streamline chest X-ray and CT report generation with AI pre-screening
  • COVID-19 Screening Clinics — Real-time detection of COVID, Viral Pneumonia, and Lung Opacity patterns
  • Cardiac Screening Centers — Automated normal/abnormal cardiac MRI triage
  • Telemedicine Platforms — Remote scan submission with automated encrypted report delivery
  • Medical Education — Demonstrate AI-assisted diagnostics with an end-to-end working system

🏗️ System Architecture

CSSS System Architecture

🧩 Component Summary

Component Technology Responsibility
Frontend SPA Next.js 14 + React 18 Role-based dashboards, scan upload, report download
REST API FastAPI (Python) Endpoints, business logic, auth enforcement
AI Inference TensorFlow 2.x / Keras MobileNetV2 prediction, confidence scoring
PDF Engine WeasyPrint + Jinja2 Clinical diagnostic report rendering
Auth Stack JWT + bcrypt + OTP Stateless auth, password hashing, admin 2FA
Database SQLAlchemy + SQLite ORM, scan lifecycle, user accounts, OTP records
Email Service smtplib + Gmail SMTP OTP codes + PDF report delivery
Chatbot Rule-based NLP Keyword-matched medical FAQ assistant

📂 Project Structure

📁 Click to expand full project tree
CLINICAL-SCAN-SUPPORT-SYSTEM/
│
├── .env                              # Environment configuration
├── requirements.txt                  # Python dependencies
├── README.md                         # This file
├── split_lung_dataset.py             # Dataset train/val/test splitter (70/15/15)
├── train_lung_model.py               # MobileNetV2 training with Grad-CAM
│
├── backend/                          # FastAPI REST API
│   ├── models/
│   │   ├── user.py                   # User (id, name, email, role, password)
│   │   ├── schema.py                 # Scan (id, patient_id, file_path, prediction, status...)
│   │   └── otp.py                    # OTPRecord (email, otp, expires_at, used)
│   │
│   ├── routers/
│   │   ├── auth_router.py            # POST /auth/register, /auth/login
│   │   ├── patient.py                # POST /patient/upload, GET /patient/status/{id}
│   │   ├── doctor.py                 # GET /doctor/pending, POST /doctor/analyze/{id}, /verify/{id}
│   │   ├── pharmacist.py             # GET /pharmacist/queue, POST /pharmacist/complete/{id}
│   │   ├── admin.py                  # GET /admin/pending, POST /admin/approve/{id}
│   │   ├── otp.py                    # POST /otp/send, /otp/verify
│   │   ├── chatbot.py                # POST /chatbot/
│   │   └── reports.py                # GET /reports/pdf/{scan_id}
│   │
│   ├── security/
│   │   ├── jwt_handler.py            # Token creation, verification, get_current_user
│   │   ├── password.py               # bcrypt hash / verify
│   │   └── role_guard.py             # require_role() dependency factory
│   │
│   ├── services/
│   │   ├── ai_service.py             # TensorFlow MobileNetV2 inference (predict_scan)
│   │   └── email_service.py          # SMTP: OTP email + PDF attachment delivery
│   │
│   ├── templates/
│   │   └── report_template.html      # Jinja2 HTML → WeasyPrint PDF
│   │
│   ├── config.py                     # BASE_DIR + UPLOAD_DIR path config
│   ├── database.py                   # SQLAlchemy engine + session + Base
│   ├── init_db.py                    # Create all DB tables
│   ├── main.py                       # FastAPI app + CORS + router registration
│   └── seed_db.py                    # Seed 4 demo users
│
├── frontend/                         # Next.js 14 SPA
│   ├── components/
│   │   ├── ChatBot.js                # Floating chatbot with category badges
│   │   ├── Navbar.js                 # Role-aware navigation bar
│   │   ├── ScanTable.js              # Reusable scan history table component
│   │   ├── UploadScan.js             # Drag-and-drop file uploader
│   │   ├── OTPVerification.js        # 6-digit OTP input with resend timer
│   │   ├── ProtectedRoute.js         # JWT-validated route guard
│   │   └── ReportDownloadButton.js   # Secure PDF fetch and open
│   │
│   ├── pages/
│   │   ├── index.js                  # Landing page
│   │   ├── login.js                  # Login + OTP flow
│   │   ├── register.js               # Registration page
│   │   ├── patient/index.js          # Patient dashboard
│   │   ├── doctor/index.js           # Doctor dashboard
│   │   ├── pharmacist/index.js       # Pharmacist dashboard
│   │   └── admin/index.js            # Admin dashboard
│   │
│   ├── services/api.js               # Axios client + auth interceptors
│   ├── styles/globals.css            # Dark theme global CSS
│   └── package.json
│
├── dataset/                          # Split dataset (created by split_lung_dataset.py)
│   └── lung/
│       ├── train/                    # 70% — 6 class folders
│       ├── val/                      # 15% — 6 class folders
│       └── test/                     # 15% — 6 class folders
│
├── Dataset/                          # Raw Kaggle dataset (input for splitter)
│   ├── COVID/
│   ├── Lung_Opacity/
│   ├── NIH_MERGED/
│   ├── Normal/
│   ├── Sick/
│   └── Viral_Pneumonia/
│
├── models/
│   ├── lung_model.h5                 # Trained MobileNetV2 weights (~14 MB)
│   ├── metadata/class_labels.json    # ["COVID","Lung_Opacity","NIH_MERGED","Normal","Sick","Viral_Pneumonia"]
│   ├── metrics/training_metrics.json # Train / val / test accuracy
│   └── plots/                        # Confusion matrix, training curves, Grad-CAM misclassifications
│
└── uploads/
    └── patient_scans/                # Uploaded scans stored as {UUID}.{ext}

🧠 AI Model & Pipeline

AI Inference Pipeline

📊 Dataset

Source Classes Images
NIH Chest X-ray Dataset NIH_MERGED (14 pathologies combined) 112,120
COVID-19 Radiography Database COVID · Normal · Lung_Opacity · Viral_Pneumonia 42,330
CAD Cardiac MRI Dataset Normal · Sick 63,425
Total 6 disease classes 217,875

🏛️ Model Architecture

Input Image (224 × 224 × 3)
         ↓
MobileNetV2 (ImageNet pretrained — feature extractor, frozen)
         ↓
GlobalAveragePooling2D
         ↓
Dense(256, activation='relu')
         ↓
Dropout(0.4)
         ↓
Dense(6, activation='softmax')   ← 6 disease classes
         ↓
Output: predicted_class + confidence_score + all_class_probabilities

⚙️ Training Configuration

optimizer  = Adam(learning_rate=1e-4)
loss       = categorical_crossentropy
img_size   = (224, 224)
batch_size = 16
epochs     = 15
callbacks  = [
    EarlyStopping(monitor="val_loss", patience=5, restore_best_weights=True),
    ReduceLROnPlateau(monitor="val_loss", factor=0.5, patience=3)
]

📈 Performance Metrics

Training Accuracy Curve    Confusion Matrix

Metric Value
Test Accuracy 89.51%
Validation Accuracy 89.31%
Training Accuracy 92.97%
Total Training Images 217,875
Inference Speed < 1 second
Model Size ~14 MB (.h5)
Confidence Threshold 75% (below → "Uncertain")

Predicted Disease Classes: COVID · Lung_Opacity · NIH_MERGED · Normal · Sick · Viral_Pneumonia

🔬 Inference Code (backend/services/ai_service.py)

View inference pipeline code
def predict_scan(image_path: str) -> dict:
    img = cv2.imread(image_path, cv2.IMREAD_COLOR)
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    img = cv2.resize(img, (IMG_WIDTH, IMG_HEIGHT))   # auto-detected from model
    img = img.astype("float32") / 255.0
    img = np.expand_dims(img, axis=0)

    predictions   = model.predict(img, verbose=0)
    confidence    = float(np.max(predictions))
    class_index   = int(np.argmax(predictions))
    label         = CLASS_NAMES[class_index]

    if confidence < CONFIDENCE_THRESHOLD:   # default 0.75
        label = "Uncertain"

    return {
        "label":           label,
        "confidence":      confidence,
        "class_index":     class_index,
        "all_predictions": {CLASS_NAMES[i]: float(predictions[0][i])
                            for i in range(len(CLASS_NAMES))},
        "threshold_used":  CONFIDENCE_THRESHOLD,
    }

🎓 Model Training & Dataset Preparation

Dataset Splitting (split_lung_dataset.py)

Prepares the raw Kaggle dataset for training by creating train/validation/test splits:

# 70/15/15 split with sklearn train_test_split
SPLIT_RATIO = (0.7, 0.15, 0.15)   # train / val / test

# Preserves class folder structure for ImageDataGenerator
# Uses fixed random_state=42 for reproducibility
# Creates dataset/lung/train, dataset/lung/val, dataset/lung/test

Usage:

python split_lung_dataset.py

Output Structure:

dataset/lung/
├── train/
│   ├── COVID/           (70% of COVID images)
│   ├── Lung_Opacity/
│   ├── NIH_MERGED/
│   ├── Normal/
│   ├── Sick/
│   └── Viral_Pneumonia/
├── val/                 (15% of each class)
└── test/                (15% of each class)

Model Training (train_lung_model.py)

Trains MobileNetV2 on the split dataset with transfer learning and Grad-CAM visualization:

View training pipeline features

Key Features:

  • Transfer Learning: MobileNetV2 base (ImageNet weights, frozen)
  • Data Augmentation: Rotation (10°), zoom (0.1), horizontal flip
  • Callbacks: EarlyStopping (patience=3), ModelCheckpoint (saves best model)
  • Metrics Export: Training curves, confusion matrix, classification report
  • Grad-CAM Visualization: Heatmap overlay on top 9 misclassified images

Training Code Snippet:

base_model = MobileNetV2(weights="imagenet", include_top=False, input_shape=(224,224,3))
base_model.trainable = False

x = base_model.output
x = GlobalAveragePooling2D()(x)
x = Dense(128, activation="relu")(x)
outputs = Dense(len(CLASS_NAMES), activation="softmax")(x)

model = Model(inputs=base_model.input, outputs=outputs)
model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"])

callbacks = [
    EarlyStopping(patience=3, restore_best_weights=True),
    ModelCheckpoint("models/lung_model.h5", save_best_only=True)
]

history = model.fit(
    train_data, validation_data=val_data, epochs=15, callbacks=callbacks
)

Generated Artifacts:

  • models/lung_model.h5 — Trained model weights
  • models/metadata/class_labels.json — Class index mapping
  • models/metrics/training_metrics.json — Precision, recall, F1 per class
  • models/plots/training_graph.png — Accuracy/loss curves
  • models/plots/confusion_matrix.png — Per-class performance heatmap
  • models/plots/top_misclassified_gradcam.png — Grad-CAM visualizations

Usage:

# After splitting dataset
python train_lung_model.py

Training Environment:

  • GPU: NVIDIA GPU (CUDA-enabled) recommended for faster training
  • RAM: 16GB+ recommended
  • Training Time: ~15 minutes on RTX 3060 (depends on GPU)

🔄 Clinical Workflow

Clinical Workflow Diagram

The scan lifecycle moves through 5 statuses, each requiring a different authenticated role:

┌──────────┐     ┌────────────────┐     ┌─────────────────┐     ┌───────────────────────┐     ┌──────────────┐
│ PATIENT  │     │    DOCTOR      │     │     DOCTOR      │     │      PHARMACIST       │     │    ADMIN     │
│ uploads  │────▶│  runs AI scan  │────▶│ adds clinical   │────▶│  adds prescription    │────▶│  approves +  │
│  image   │     │                │     │     notes       │     │        notes          │     │  emails PDF  │
└──────────┘     └────────────────┘     └─────────────────┘     └───────────────────────┘     └──────────────┘
PENDING_AI    →    AI_ANALYZED      →    DOCTOR_VERIFIED     →    PHARMACIST_COMPLETED     →    REPORT_READY
Status Meaning
PENDING_AI Scan uploaded, awaiting AI analysis
AI_ANALYZED MobileNetV2 prediction complete with confidence score
DOCTOR_VERIFIED Doctor reviewed AI results and added clinical notes
PHARMACIST_COMPLETED Pharmacist reviewed and added prescription notes
REPORT_READY Admin approved — PDF auto-generated and emailed to patient

🎛️ User Interface Walkthrough

🏠 System Landing Page System Landing Page
  • Modern dark-themed medical UI built with Next.js 14
  • Clean navigation with role-based system access
  • Secure login and registration entry points
  • Fully responsive professional hospital interface
  • Fast-loading optimized frontend architecture
📝 Registration Page Registration Page
  • Secure registration with role selection (Patient, Doctor, Pharmacist, Admin)
  • Password hashing using bcrypt encryption
  • Email validation and duplicate prevention
  • Role-based account creation
  • Clean medical-grade UI form design
🔑 Login Page Login Page
  • Secure JWT authentication system
  • Role-based automatic dashboard redirect
  • Token-based session management
  • Protected route authorization
  • Fast and secure login workflow
📧 OTP Email Verification (Admin Only) OTP Mail Verification
  • Secure 6-digit OTP verification system
  • Email-based admin two-factor authentication
  • 10-minute OTP expiration protection
  • One-time-use OTP validation
  • Prevents unauthorized admin access
👤 Patient Dashboard Patient Dashboard
  • Upload scan images via drag-and-drop interface
  • Real-time upload progress tracking
  • View scan history with status badges
  • Display AI prediction and confidence score
  • Access doctor and pharmacist notes
  • Download approved diagnostic PDF reports
📤 Patient Scan Upload Interface Patient Upload Interface
  • Drag-and-drop scan upload system
  • Supports JPG and PNG file formats
  • Secure UUID-based file storage
  • Automatic scan validation
  • Instant status tracking after upload
🩺 Doctor Dashboard Doctor Dashboard
  • View all patient scans in doctor work queue
  • Trigger AI analysis using MobileNetV2 model
  • View prediction results and confidence score
  • Add mandatory clinical verification notes
  • Advance scan to DOCTOR_VERIFIED status
💊 Pharmacist Dashboard Pharmacist Dashboard
  • View DOCTOR_VERIFIED scans
  • Review AI prediction and doctor notes
  • Add medication and prescription details
  • Use quick-fill prescription templates
  • Mark scan PHARMACIST_COMPLETED
🛡️ Admin Dashboard Admin Dashboard
  • Secure OTP-protected admin login
  • View PHARMACIST_COMPLETED scans
  • Approve diagnostic reports
  • Automatic PDF report generation
  • Secure report delivery to patient email
  • Full diagnostic workflow control
💬 CSSS Medical Chatbot CSSS Chatbot
  • Floating chatbot widget across dashboards
  • Provides instant system and medical assistance
  • Supports keyword-based intelligent responses
  • Chat history persistence
  • Typing animation and clean conversational UI

🔌 API Endpoints

Full interactive docs at http://localhost:8000/docs (Swagger UI) after starting the server.

Authentication /auth

Method Endpoint Description
POST /auth/register Register new user (name, email, password, role)
POST /auth/login Login → JWT token (admin requires OTP step)

OTP /otp

Method Endpoint Description
POST /otp/send Send 6-digit OTP to admin email (10-min expiry)
POST /otp/verify Verify OTP code → returns full access JWT

Patient /patient

Method Endpoint Description
POST /patient/upload Upload scan image (JPG/PNG, multipart, max 10MB)
GET /patient/status/{patient_id} Get all scans for this patient

Doctor /doctor

Method Endpoint Description
GET /doctor/pending All scans in work queue
POST /doctor/analyze/{scan_id} Run MobileNetV2 inference on scan
POST /doctor/verify/{scan_id} Add clinical notes → status: DOCTOR_VERIFIED

Pharmacist /pharmacist

Method Endpoint Description
GET /pharmacist/queue Scans in DOCTOR_VERIFIED status
POST /pharmacist/complete/{scan_id} Add prescription → status: PHARMACIST_COMPLETED

Admin /admin

Method Endpoint Description
GET /admin/pending Scans awaiting final approval
POST /admin/approve/{scan_id} Generate PDF + email patient + REPORT_READY

Reports /reports

Method Endpoint Description
GET /reports/pdf/{scan_id} Download diagnostic PDF (JWT protected, role scoped)

Chatbot /chatbot

Method Endpoint Description
POST /chatbot/ Send message → keyword-matched medical response + category

🔒 Security Architecture

Security Architecture

🔐 Role Permission Matrix

Permission Admin Doctor Pharmacist Patient
Upload scan
Run AI analysis
Add clinical notes
Add prescription notes
Approve & email report
Download own PDF report
Download any PDF report
Use chatbot
OTP 2FA login

🛠️ Installation & Setup

Prerequisites

  • Python 3.10+
  • Node.js 18.17+ and npm 9+
  • Git
  • (Optional) NVIDIA GPU with CUDA for model training

1. Clone the Repository

git clone https://github.com/Darkwebnew/Projectwork2.git
cd Projectwork2

2. Backend Setup (FastAPI)

# Install Python dependencies
pip install -r requirements.txt

# Configure environment variables
cp .env.example .env
# Edit .env with your SMTP credentials and JWT secret

# Initialize the database
python backend/init_db.py

# Seed 4 demo users
python backend/seed_db.py

# Start the FastAPI server
uvicorn backend.main:app --reload --host 0.0.0.0 --port 8000

API: http://localhost:8000 · Swagger UI: http://localhost:8000/docs

3. Frontend Setup (Next.js)

cd frontend
npm install
npm run dev

Frontend: http://localhost:3001

4. Environment Variables

# ── Database ──────────────────────────────────────
DATABASE_URL=sqlite:///database/csss.db

# ── JWT Security ──────────────────────────────────
JWT_SECRET_KEY=your_secret_key_here
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=60

# ── SMTP (Gmail App Password) ─────────────────────
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your_email@gmail.com
SMTP_PASSWORD=your_16char_app_password
EMAIL_SENDER=your_email@gmail.com

# ── AI Model ──────────────────────────────────────
AI_MODEL_PATH=models/lung_model.h5
CLASS_LABELS_PATH=models/metadata/class_labels.json
CONFIDENCE_THRESHOLD=0.75
IMG_SIZE=224

# ── Storage ───────────────────────────────────────
UPLOAD_DIR=uploads/patient_scans
REPORTS_DIR=reports/temp

# ── Frontend ──────────────────────────────────────
NEXT_PUBLIC_API_URL=http://localhost:8000
FRONTEND_URL=http://localhost:3001

Gmail SMTP Note: Enable 2FA on your Google account → Google Account → Security → App Passwords → generate 16-character password. Use that as SMTP_PASSWORD.

5. (Optional) Retrain the Model

If you want to retrain the model with your own dataset:

# Step 1: Split dataset
python split_lung_dataset.py

# Step 2: Train model (requires GPU for faster training)
python train_lung_model.py

# Trained model will be saved to models/lung_model.h5

🚀 Quick Start

Demo Accounts (after seed_db.py)

Role Email Password
Admin admin@csss.com Admin123
Doctor doctor@csss.com Doctor123
Pharmacist pharma@csss.com Pharma123
Patient patient@csss.com Patient123

💡 The login page includes clickable test account buttons that auto-fill credentials.


🧪 End-to-End Workflow Demo

Step 1 ── PATIENT logs in
          → Clicks "Upload Scan"
          → Drags a chest X-ray JPG into the upload zone
          → Real-time progress bar shows upload completion
          → Scan appears in history as "Pending AI"

Step 2 ── DOCTOR logs in
          → Sees the scan in the work queue
          → Clicks "Analyze" → MobileNetV2 runs inference
          → Prediction (e.g. "COVID") + confidence score displayed
          → Doctor adds clinical notes → clicks "Verify"
          → Status updates to "Doctor Verified"

Step 3 ── PHARMACIST logs in
          → Sees scan in prescription queue
          → Reviews AI prediction, confidence, and doctor notes
          → Selects quick template or writes custom prescription
          → Clicks "Complete" → status: "Pharmacist Completed"

Step 4 ── ADMIN logs in (OTP email verification required)
          → Sees scan in pending approvals list
          → Reviews full scan details
          → Clicks "Approve"
          → PDF auto-generated (WeasyPrint + Jinja2 template)
          → PDF emailed to patient automatically in background

Step 5 ── PATIENT
          → Receives email with professional PDF report attached
          → Can also download directly from Patient Dashboard
          → Report contains: scan image, AI prediction, confidence score,
            risk level, doctor findings, prescription, and 3-party signatures

📄 Generated PDF Report

The auto-generated diagnostic report includes:

  • 🏥 Hospital header — clinic name, report ID, generation timestamp
  • 👤 Patient information — name, ID, age, gender, contact details
  • 🩻 Scan information — scan type, date, machine, contrast, quality
  • 🤖 AI Analysis Results — model, version, prediction badge, confidence %, risk level
  • 📝 Clinical Findings — doctor verification notes
  • 💊 Prescription — pharmacist medication notes
  • 🖼️ Scan Image — original scan embedded as base64
  • ✍️ Signatures — Radiologist, Pharmacist, and AI System signature blocks
  • ⚠️ AI Notice — professional disclaimer watermark

💬 CSSS Medical Chatbot

The built-in CSSS Medical Assistant is a keyword-matching chatbot (not an LLM). It handles common questions across 10 categories:

Category Topics Covered
🩺 Medical CT, MRI, X-ray scan type information
🔄 Workflow Patient → Doctor → Pharmacist → Admin pipeline
🤖 AI What predictions mean, confidence scores, uncertainty
🔓 Auth Login, OTP, registration, password requirements
🖼️ Scan Upload formats, file size limits, accepted types
📊 Result How to read and understand your diagnostic report
📞 Support Contact, feedback, troubleshooting
🔑 Admin Admin OTP process explanation
👋 Greeting Welcome and general help
❓ Fallback Topic list when query is not recognized

🗺️ Roadmap

v2.0 — Q3 2026

  • PostgreSQL migration for production scale
  • Docker Compose full-stack deployment
  • WhatsApp report delivery via Twilio (already configured in .env)
  • DICOM file format support
  • Grad-CAM heatmap overlays in PDF reports for explainable AI

v2.5 — Q4 2026

  • Mobile-responsive PWA frontend
  • Real-time scan status push notifications (WebSocket)
  • Multi-language PDF reports (English, Tamil, Hindi)
  • EMR / EHR system integration (HL7 FHIR)
  • Federated learning across hospital nodes
  • Audit logging for HIPAA compliance

👥 Team

Name Role GitHub
Sriram V Lead Developer & AI/ML Engineer @Darkwebnew
Surothaaman R Backend Development & Security @surothaaman
Andrew Varghese V S Frontend Development @Andrewvarghese653
Praveen CK Database & Testing @praveenck23009864
Dr. Swedha V Medical Domain Expertise @swedha333
Dr. Selvakumar R AI/ML Advisor @selvasachein

🙏 Acknowledgements

Datasets (Kaggle)

  • NIH Clinical Center — Chest X-Ray8 Dataset (112,120 images)
  • Tawsifur Rahman et al. — COVID-19 Radiography Database (42,330 images)
  • CAD Cardiac MRI Dataset (63,425 images)

Core Libraries

Academic References

  • Howard et al., "MobileNets: Efficient CNNs for Mobile Vision Applications" (2017)
  • Sandler et al., "MobileNetV2: Inverted Residuals and Linear Bottlenecks" (2018)
  • Selvaraju et al., "Grad-CAM: Visual Explanations from Deep Networks" (2017)
  • Wang et al., "ChestX-ray8: Hospital-scale Chest X-ray Database and Benchmarks" (2017)
  • Chowdhury et al., "Can AI Help in Screening Viral and COVID-19 Pneumonia?" IEEE Access (2020)

📄 License

This project is proprietary software. All rights reserved © 2026.

⚠️ Unauthorized copying, distribution, or use of this software is strictly prohibited under the Indian Copyright Act, 1957. See LICENSE.txt for full terms.


📞 Contact & Support

Channel Link
📧 Email sriramnvks@gmail.com
🐛 Bug Reports GitHub Issues
💬 Discussions GitHub Discussions
📖 API Docs http://localhost:8000/docs (Swagger UI)

Built with ❤️ for better healthcare diagnostics — Tamil Nadu, India 🇮🇳

⭐ Star this repository if CSSS helped your project!

Releases

No releases published

Packages

No packages published

Languages

  • PureBasic 53.7%
  • JavaScript 33.7%
  • Python 6.3%
  • CSS 4.4%
  • HTML 1.9%