Skip to content

kalyan6841/OncoContinuum-AI

Repository files navigation

ONCOCONTINUUM AI

Post-Discharge Cancer Care Intelligence Platform

AIG Hospitals Hackathon 2026 | Topic 1 (Tele/Video Consultation) + Topic 3 (Post-Discharge Care Continuum)


What Is This?

ONCOCONTINUUM AI monitors cancer patients after chemotherapy discharge and auto-triggers clinical escalation before complications become life-threatening.

The problem: After chemo, patients face two silent danger zones at home:

  • Day 0–3 (TLS Window): Tumor Lysis Syndrome — electrolyte crash, renal failure, arrhythmia
  • Day 7–21 (Nadir Window): Blood counts collapse → febrile neutropenia, sepsis, bleeding

The solution: An AI layer that knows the patient's exact regimen, which toxicity window they're in, and what to do about it — automatically.


Three-Tier Alert System

Alert Score Action Time
🟢 GREEN < 0.3 Oncology pharmacist calls patient Within 2 hours
🟡 AMBER 0.3–0.7 Same-day telehealth slot auto-generated Same day
🔴 RED > 0.7 Emergency fast-track slot pre-activated + oncologist notified Immediate

How to Run

Option A — Standalone Demo (No Database Needed — Use This for Demo Day)

# 1. Install backend dependencies
cd backend
pip install fastapi uvicorn xgboost scikit-learn pandas numpy shap pydantic pydantic-settings python-multipart

# 2. Start backend (standalone — no PostgreSQL required)
uvicorn simple_app:app --reload --host 0.0.0.0 --port 8000

# 3. In a new terminal, start frontend
cd frontend
npm install
npm run dev

Open:


Option B — Full Stack with Docker (One Command)

# Copy and configure environment
cp backend/.env.example backend/.env
# Edit backend/.env if needed (all defaults work for demo)

# Start everything
docker-compose up --build

This starts PostgreSQL, Redis, Backend, Frontend, Nginx, and HAPI FHIR automatically.


Option C — Full Backend with Local PostgreSQL

# Create and seed database
createdb oncocontinuum
psql oncocontinuum < backend/init.sql

# Install and start
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

Quick API Test

curl -X POST http://localhost:8000/api/v1/monitoring/analyze \
  -H "Content-Type: application/json" \
  -d '{
    "patient_id": "OC0042",
    "chemo_day": 11,
    "cancer_type": "breast",
    "regimen": "AC-T",
    "fever": 38.9,
    "neutrophil_count": 0.4,
    "platelet_count": 45,
    "oral_intake": 2,
    "mucositis": 2
  }'

Expected: alert_level: "red" with febrile neutropenia guideline, SHAP explanation, and escalation actions.


Project Structure

hackathon/
├── backend/
│   ├── simple_app.py              ← Standalone demo server (use this for demo)
│   ├── app/main.py                ← Full production app
│   ├── services/
│   │   ├── clinical_reasoning.py  ← 8-step agentic AI pipeline
│   │   ├── rag_service.py         ← TF-IDF RAG over NCCN/ESMO (offline)
│   │   ├── toxicity_prediction.py ← XGBoost + SHAP (5 models)
│   │   ├── whatsapp_service.py    ← Twilio WhatsApp bot
│   │   ├── fhir_service.py        ← FHIR R4 resources
│   │   └── privacy_service.py     ← DPDP consent + encryption
│   ├── api/routes/                ← All API endpoints
│   ├── models/                    ← SQLAlchemy data models
│   ├── core/                      ← Config + database connection
│   └── init.sql                   ← DB schema + demo seed data
├── frontend/
│   └── src/app/
│       ├── page.tsx               ← Home page
│       ├── patient/page.tsx       ← Patient symptom reporting portal
│       └── clinician/page.tsx     ← Clinician alert dashboard
├── data/
│   ├── synthetic/training_data.csv ← 110K+ synthetic patient records
│   ├── models/toxicity_models.pkl  ← Pre-trained XGBoost models
│   └── guidelines/sample_guidelines.json ← NCCN/ESMO content
├── nginx/nginx.conf               ← Reverse proxy config
├── docker-compose.yml             ← Full stack orchestration
├── ONCOCONTINUUM_AI_PROJECT_GUIDE.docx ← Complete project document
└── .gitignore

AI Stack

Component Technology
Risk Prediction XGBoost — 5 models (TLS, neutropenia, mucositis, bleeding, dehydration)
Explainability SHAP — feature attribution for every prediction
RAG Pipeline TF-IDF retriever — 16 NCCN/ESMO guidelines, fully offline
Agentic Reasoning 8-step clinical workflow with guideline citations
WhatsApp Bot Twilio — IVR + voice for rural/semi-literate caregivers
FHIR HAPI FHIR R4 — Patient, Observation, CarePlan, MedicationStatement
Privacy DPDP-compliant — consent-first, AES-256, right-to-withdraw

Cancer Types Supported

breast · gastric · lung · ovarian · colorectal · head & neck · cervical · sarcoma · oral cavity

25+ chemotherapy regimens with regimen-specific nadir windows modeled.


Environment Variables

Copy backend/.env.example to backend/.env. All defaults work for standalone demo.

Variable Required? Note
DATABASE_URL Full mode only Not needed for simple_app.py
OPENAI_API_KEY Optional RAG works offline without this
ENABLE_PRETRAINED_MODELS Optional Defaults to false so stale pickled models do not break the demo
TWILIO_ACCOUNT_SID Optional WhatsApp demo works without it
SECRET_KEY Yes Any random string is fine for demo
REDIS_URL Full mode only Not needed for simple_app.py

Demo Scenarios

RED Alert — Febrile Neutropenia: Chemo Day 11, AC-T, Fever 38.9°C, ANC 0.4, Platelets 45
AMBER Alert — Mucositis: Chemo Day 10, Cisplatin+5FU, Mouth Sores 3, Oral Intake 2
TLS Risk: Chemo Day 2, Uric Acid 8.5, Potassium 5.9, Creatinine 1.6
GREEN Alert: Chemo Day 5, CAPOX, all normal values


AIG Hospitals Hackathon 2026 — India's Premier HealthTech Innovation Challenge Prize: ₹50,000 | IP rights belong to AIG Hospitals

About

Digital oncology follow-up platform designed to support discharged cancer patients through teleconsultation, laboratory monitoring, symptom assessment, and continuity of care.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors