Transforming Doctor-Patient Conversations into Clinical Documentation
Giving doctors their time back, one conversation at a time.
Every year, thousands of hours are lost to typing, clicking, and documenting patient visits. Doctors spend more time on screens than with patients. In India, where healthcare access is already strained, this inefficiency is even more critical.
- Language Barrier: India has 22 official languages. Many patients struggle with English-only systems.
- Doctor Shortage: With only ~1 doctor per 1,445 people, doctors can't afford to waste time on paperwork.
- Documentation Burden: Doctors spend 40-50% of their time on documentation instead of patient care.
- Multilingual Patients: Patients speak Hindi, Marathi, Tamil, and more - but medical records are in English.
CuralynX bridges this gap with real-time transcription in Hindi, English, and other Indian languages, automatically generating clinical notes from natural conversations.
- Support for English, Hindi, Marathi, and more Indian languages
- Automatic language detection
- Powered by Faster-Whisper for accurate medical terminology
- Automatically detects speaker (doctor vs. patient)
- Extracts symptoms, diagnosis, and treatment plans
- Generates SOAP notes (Subjective, Objective, Assessment, Plan)
- Smart medication and test suggestions
- Generate prescriptions in seconds
- Professional, printable format
- Digital record keeping
- Medical history integration
- HIPAA-compliant architecture ready
- Secure WebSocket communication
- Encrypted data transmission
- Patient privacy at the core
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Doctor │ speaks │ │ AI │ Clinical │
│ & │ ───────>│ CuralynX │ ──────> │ Note │
│ Patient │ │ (Listens) │ │ Generated │
└─────────────┘ └──────────────┘ └─────────────┘
│
│ Real-time Transcription
│ • Hindi/English Detection
│ • Speaker Identification
│ • Medical Term Recognition
▼
┌──────────────┐
│ Prescription │
│ + Reports │
└──────────────┘
- 🎙️ Doctor starts the session - Click "Start Recording"
- 💬 Natural conversation happens - Doctor and patient talk normally in Hindi, English, or mixed
- 🤖 AI listens and understands - CuralynX transcribes in real-time, detecting speakers
- 📝 Notes are auto-generated - SOAP notes, symptoms, and diagnosis extracted
- 💊 Smart suggestions appear - Medications and tests recommended based on symptoms
- 📄 Prescription ready - Professional prescription generated with one click
- ✅ Doctor reviews and approves - Quick edits if needed, then print/save
⚛️ React 18 + TypeScript
🎨 Tailwind CSS + Framer Motion
🎯 Vite (Build Tool)
🎤 Web Speech API / AssemblyAI
🔌 WebSocket for Real-time
🚀 FastAPI (High Performance)
🎙️ Faster-Whisper (Speech-to-Text)
🧠 Google Gemini (AI Intelligence)
🔌 WebSocket Communication
📦 NumPy for Audio Processing
🗣️ Faster-Whisper Small (Transcription)
🤖 Google Gemini Flash (Clinical Analysis)
🎯 Custom Speaker Detection Algorithm
🇮🇳 Multi-language Support (Hindi, English, Marathi)
hack-w-up-hackathon/
├── 📁 client/ # React Frontend Application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ │ ├── todays-session/ # Doctor dashboard & session
│ │ │ │ ├── Sidebar.tsx # Patient queue
│ │ │ │ ├── MainArea.tsx # Prescription workspace
│ │ │ │ ├── MedicationsSection.tsx
│ │ │ │ ├── TestsSection.tsx
│ │ │ │ └── PrescriptionModal.tsx
│ │ │ └── dashboard/ # Admin dashboard
│ │ ├── features/
│ │ │ ├── patient/ # Patient portal
│ │ │ └── transcription/ # Real-time transcription
│ │ ├── hooks/ # Custom React hooks
│ │ │ ├── useWebSpeechRecognition.ts
│ │ │ ├── useAssemblyAIRealtime.ts
│ │ │ └── useProactiveReportAgent.ts
│ │ ├── services/
│ │ │ ├── geminiService.ts # AI integration
│ │ │ └── proactiveReportAgent.ts # SOAP generation
│ │ ├── contexts/
│ │ │ └── SessionContext.tsx # Global state
│ │ └── pages/
│ │ ├── Dashboard.tsx
│ │ ├── SessionPage.tsx
│ │ └── PatientTimeline.tsx
│ └── package.json
│
├── 📁 python-backend/ # FastAPI Transcription Server
│ ├── main.py # WebSocket server
│ ├── requirements.txt
│ ├── README.md
│ └── client_example.html # Test client
│
├── 📁 server/ # Node.js API Server
│ ├── index.js
│ └── package.json
│
├── 📁 model/ # ML Models & Training
│ ├── finetune_whisper.py
│ └── train.py
│
└── README.md # You are here! 👋
- Node.js v16+ (for frontend & server)
- Python 3.8+ (for transcription backend)
- npm or yarn
- Git
git clone https://github.com/ishaancreates/hack-w-up-hackathon.git
cd hack-w-up-hackathoncd client
npm install
npm run devFrontend runs at: http://localhost:5173
cd server
npm install
npm startServer runs at: http://localhost:5000
cd python-backend
# Create virtual environment
python -m venv venv
# Activate (Windows PowerShell)
.\venv\Scripts\Activate.ps1
# Activate (Linux/Mac)
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run server
python main.pyTranscription server runs at: http://localhost:8000
Server (.env)
ASSEMBLYAI_API_KEY=your_api_key_here
PORT=5000Client (.env)
VITE_API_URL=http://localhost:5000
VITE_WS_URL=ws://localhost:8000
VITE_GEMINI_API_KEY=your_gemini_api_key- 📋 Dashboard - View today's patient queue
▶️ Start Session - Click on a patient to begin- 🎤 Record Consultation - Have natural conversation (Hindi/English)
- 📝 Review Transcript - AI auto-transcribes with speaker labels
- 💊 Add Medications/Tests - Smart suggestions or manual entry
- 📄 Generate Prescription - One-click professional prescription
- ✅ Print/Save - Download or print for patient
- 📱 Patient Portal - View appointments & medical history
- 📊 Medical Snapshot - See active medications & vitals
- 📆 Book Appointments - Schedule with available doctors
- 💬 Secure Messaging - Chat with healthcare team
- 📋 Reports - Access lab results & prescriptions
- Live audio-to-text conversion
- Multi-language support (Hindi, English, Marathi)
- Automatic language detection
- Medical terminology accuracy
- AI identifies doctor vs patient automatically
- Pattern-based algorithm
- Medical terminology recognition
- Question structure analysis
- Subjective: Patient's complaints
- Objective: Clinical findings
- Assessment: Diagnosis
- Plan: Treatment & prescriptions
- Pre-configured medication database
- Dosage recommendations
- Drug interaction warnings
- Professional printable format
- Past diseases tracking
- Vital signs monitoring
- Previous prescriptions
- Lab results archive
- HIPAA-compliant ready
- Encrypted WebSocket (WSS)
- Secure data storage
- Access control
CuralynX is built for Bharat, supporting multiple Indian languages:
- 🇮🇳 Hindi (हिंदी) - Native support
- 🇬🇧 English - Full support
- 🇮🇳 Marathi (मराठी) - Coming soon
- 🇮🇳 Tamil (தமிழ்) - Coming soon
- 🇮🇳 Bengali (বাংলা) - Coming soon
// Auto-detect language
ws.send({
type: 'audio',
data: audioData,
language: null // Auto-detect
});
// Or specify language
ws.send({
type: 'audio',
data: audioData,
language: 'hi' // Hindi
});- Automatic language identification
- Mixed language conversation support
- Real-time language switching
- Probability-based detection
- Quick consultations (5-10 min)
- Common ailments (fever, cold, etc.)
- Prescription generation
- Follow-up tracking
- Department-wise workflow
- Complex case documentation
- Multi-doctor collaboration
- Comprehensive patient history
- Language barrier solution
- Minimal tech literacy required
- Offline capabilities (planned)
- Voice-first interface
- Remote consultation transcription
- Video call integration
- Digital prescription delivery
- Patient portal access
Connect:
const ws = new WebSocket('ws://localhost:8000/ws/transcribe');Send Audio:
ws.send(JSON.stringify({
type: 'audio',
data: base64AudioData,
sampleRate: 16000,
language: 'hi' // 'en', 'hi', 'mr', or null for auto-detect
}));Receive Transcription:
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.type === 'transcription') {
console.log(data.text);
console.log(data.language); // Detected language
}
};GET http://localhost:8000/healthResponse:
{
"status": "healthy",
"model_loaded": true,
"timestamp": "2025-11-02T10:30:45.123456"
}Edit python-backend/main.py:
# Faster model (less accurate)
whisper_model = WhisperModel("tiny", device="cpu")
# Current (balanced)
whisper_model = WhisperModel("small", device="cpu")
# More accurate (slower)
whisper_model = WhisperModel("medium", device="cpu")
# Best accuracy (slowest)
whisper_model = WhisperModel("large-v3", device="cpu")
# GPU acceleration
whisper_model = WhisperModel("small", device="cuda")SAMPLE_RATE = 16000 # Audio sample rate
CHUNK_DURATION = 2 # Process every 2 secondsWe welcome contributions! Here's how:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow existing code style
- Add comments for complex logic
- Test your changes thoroughly
- Update documentation as needed
- WebSocket connection occasionally drops (reconnection logic needed)
- Language detection accuracy varies with accent
- Prescription print layout needs CSS refinement
- Mobile responsive design in progress
- Offline mode not yet implemented
- Voice Commands - "Generate prescription", "Add medication"
- More Languages - Tamil, Telugu, Bengali support
- Mobile Apps - iOS and Android native apps
- OCR Integration - Scan previous prescriptions
- Offline Mode - Work without internet
- EHR Integration - Connect with hospital systems
- Drug Database - Complete Indian drug index
- Analytics Dashboard - Practice insights
- AI Diagnosis Assistant - Suggest differential diagnosis
- Patient App - Mobile app for patients
- Insurance Integration - Auto-generate claim forms
- Multi-clinic Support - Manage multiple locations
Real-time transcription with patient queue
One-click professional prescriptions
Comprehensive medical history view
Built for Hack-W-Up Hackathon 🚀
This project is licensed under the MIT License - see the LICENSE file for details.
- Developer: Ishaan Creates
- Contributors: Open Source Community
- 📧 Email: support@curalynx.ai
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
- Faster-Whisper - For incredible speech recognition
- Google Gemini - For AI-powered analysis
- AssemblyAI - For real-time transcription support
- React & Vite - For amazing developer experience
- FastAPI - For blazing fast Python backend
Made with ❤️ for Indian Healthcare
Empowering doctors, one conversation at a time
⭐ Star this repo if you find it helpful!