Inspiration

India has 1 doctor for every 834 people. In rural areas, that number is far worse. Most people search their symptoms online, get overwhelmed by misinformation, and either panic unnecessarily or dismiss warning signs that genuinely require attention.

We wanted to build something that addresses this gap — not a replacement for doctors, but a reliable first step. A tool that helps people make informed decisions about their health before, during, and after a medical consultation. That vision became AiMedScan.


What It Does

AiMedScan is a full-stack AI health platform with three core capabilities:

AI Symptom Checker

Users can select from 40+ symptoms via search, voice input, or an interactive body map. The system asks intelligent follow-up questions to refine the diagnosis, then returns the top 2 probable conditions with confidence scores, severity levels, age-safe OTC medicine recommendations, home remedies, recommended specialist type, and emergency alerts where relevant.

Prescription Analyzer

Users upload a prescription image or PDF. GPT-4 Vision extracts and identifies every medicine, then explains its purpose, dosage category, side effects, and precautions — color-coded by medicine type for clarity.

Nearby Hospital Finder

Using real-time geolocation and OpenStreetMap data, the app surfaces hospitals and clinics within a 5km radius, with distance, facility type, and contact details rendered on an interactive map.


How We Built It

Layer Technology
Frontend React + Vite, custom CSS design system
Backend Node.js + Express, MongoDB, JWT Authentication
AI Model Python + Scikit-learn, Flask REST API
Prescription OCR GPT-4 Vision via OpenAI API
Hospital Data OpenStreetMap Overpass API + Leaflet.js
Deployment Vercel (frontend), Railway (backend)

The AI prediction pipeline scores each condition using symptom keyword matching, weighted by a base probability and enriched by follow-up answer resolution:

$$\text{Confidence Score} = \frac{\sum_{i=1}^{n} \text{symptom_match}_i}{\text{total_keywords}} \times \text{base_probability} + \epsilon$$

Where $\epsilon$ represents the additional diagnostic weight contributed by follow-up answers, which expand the symptom set before the final prediction is computed.


Challenges We Ran Into

Fuzzy Symptom Matching Users rarely use clinical terminology. Integrating rapidfuzz allowed natural language input to map reliably to medical terms without requiring exact phrasing, significantly improving prediction accuracy on real user input.

Age-Safe Medicine Recommendations A medicine appropriate for a 25-year-old may be contraindicated for a patient over 60. We built a per-medicine age-filtering layer into the knowledge base so every recommendation is contextually safe, not just generically correct.

Prescription OCR on Handwritten Scripts Client-side Tesseract.js struggled with real-world handwritten prescriptions. Migrating to GPT-4 Vision on the backend resolved this and produced consistently reliable extraction results across varied handwriting styles and image quality.

Graceful Degradation If the Python ML microservice is unavailable, the system automatically falls back to a keyword-weighted scoring engine. Users experience no disruption — the application continues to function regardless of individual service availability.


Accomplishments That We're Proud Of

  • Built and deployed a fully functional, end-to-end AI health platform within the hackathon timeline
  • Achieved reliable prescription reading on real handwritten doctor scripts using GPT-4 Vision — a notoriously difficult computer vision problem
  • Designed an age-aware medicine safety system that personalises recommendations rather than serving generic outputs
  • Integrated live hospital discovery using open geospatial data, with no third-party paid APIs required
  • The application is live, accessible, and usable by anyone at aimedscan.vercel.app

What We Learned

Building AiMedScan taught us that responsible AI in healthcare is fundamentally different from AI in other domains. Every design decision carries real consequences — a wrong medicine recommendation or a missed emergency flag is not a minor bug.

We learned to build with safety constraints by default: age filters, emergency detection, confidence thresholds, and fallback mechanisms are not optional features — they are the foundation. We also learned the value of graceful degradation in distributed systems, and how to balance model accuracy with system reliability when both matter equally.

On the technical side, integrating multiple AI systems — a Scikit-learn classification model, a fuzzy matching engine, and a vision-language model — into a single coherent user experience required careful API design and thorough error handling at every layer.


What's Next for AiMedScan

  • Multilingual support — Hindi, Telugu, and Tamil interfaces to reach rural and semi-urban populations who are not comfortable in English
  • ABDM integration — connect with India's Ayushman Bharat Digital Mission to read and write to verified health records
  • Wearable data input — incorporate heart rate, SpO2, and temperature from consumer wearables to enrich predictions beyond self-reported symptoms
  • Community health worker mode — a simplified interface designed for ASHA workers and front-line health volunteers operating in low-connectivity environments
  • Clinical validation — partner with medical professionals to benchmark prediction accuracy against verified diagnostic datasets
Share this project:

Updates