MediCare Plus — Healthcare Assistance & Patient Support
24/7 Emergency Helpline: 📞 +91 76024 48077 — Ambulance dispatched in < 10 mins
Trusted by 12,000+ families across West Bengal & India

Trusted medical help, one click away.

From emergency ambulance to elderly care, home nursing to ICU support — verified caregivers, real-time tracking, and a team that picks up the phone at 3 AM.

WhatsApp
12K+
Families served
< 10min
Ambulance ETA
4.9★
Patient rating
Heart rate stable 72 bpm — patient safe
ETA: 6 minutes Ambulance en route
Verified caregiver Background-checked staff
Verified Staff ID & background checked
24/7 Available Day, night, holidays
Live Tracking Family knows location
Hospital-grade ICU & oxygen ready

19 healthcare services.
One trusted platform.

Every service has its own dedicated booking flow. Click any card to start — emergency or routine, we’ve got you.

When seconds matter, we’re already on the way.

ICU-equipped ambulances, oxygen-ready vehicles, and a dispatch team that confirms within 60 seconds. No paperwork delays. No “we’ll call back” excuses.

SOS
~7 min Live ETA
Unit 04 ● Dispatched

Built for families who can’t be there.

Especially for NRI families and busy households — we keep you in the loop, automatically.

Live GPS Tracking

Watch the ambulance approach in real time. Share the link with the whole family.

WhatsApp Updates

Auto-updates to the family WhatsApp group at every step — pickup, arrival, handover.

AI Triage Priority

Critical cases jump the queue. Our system reads symptoms and dispatches the right team.

Instant Callback

Don’t want to type? Tap once and a coordinator calls you back within 60 seconds.

Female Caregivers

Available on request — for elderly women, post-surgery patients, and family preference.

Secure Records

Patient data encrypted. Only you and assigned staff can see prescriptions and history.

Help is 4 taps away.

No app downloads, no long forms during emergencies. Just speed.

1

Pick a service

Tap any service card or use Emergency SOS.

2

Quick details

Patient info, location, urgency. Takes 90 seconds.

3

Instant dispatch

Verified team on the way. WhatsApp confirmation sent.

4

Live updates

Track in real-time. Family stays informed automatically.

WhatsApp us
+
MediCare Plus Admin Dashboard • Demo

Operations Dashboard

Live booking activity from your website. Connect a backend (Google Apps Script / Supabase) to persist data permanently.

Today’s Bookings
0
▲ Live count
Critical / Urgent
0
▲ Need immediate dispatch
Confirmed
0
Staff assigned
Avg Response
7.2min
▼ 12% faster than last week

Recent Bookings

Auto-refreshes • 0 total
No bookings yet Submit a test booking from the website to see it appear here in real time.
`).join('');// ============================================================ // BOOKING STATE // ============================================================ const state = { currentStep: 1, totalSteps: 5, selectedService: null, selectedNeeds: new Set(), bookings: [] // in-memory store; replace with backend };// ============================================================ // MODAL CONTROL // ============================================================ const modal = document.getElementById('hc-booking-modal'); const modalClose = document.getElementById('hc-modal-close'); const modalServiceName = document.getElementById('hc-modal-service-name'); const stepper = document.getElementById('hc-stepper'); const stepperItems = stepper.querySelectorAll('.hc-stepper-item'); const stepIndicator = document.getElementById('hc-step-indicator'); const btnNext = document.getElementById('hc-btn-next'); const btnBack = document.getElementById('hc-btn-back'); const modalFoot = document.getElementById('hc-modal-foot'); const form = document.getElementById('hc-booking-form');function openBookingModal(serviceId, isEmergency) { state.selectedService = SERVICES.find(s => s.id === serviceId) || { id: serviceId, name: 'General Service' }; state.currentStep = 1; state.selectedNeeds = new Set(); if (isEmergency) state.selectedNeeds.add('ambulance'); form.reset(); document.querySelectorAll('#hc-app .hc-pill.active').forEach(p => p.classList.remove('active')); document.querySelectorAll('#hc-app .hc-level.active').forEach(l => l.classList.remove('active')); if (isEmergency) { const emergencyPill = document.querySelector('#hc-app .hc-pill[data-value="ambulance"]'); if (emergencyPill) emergencyPill.classList.add('active'); const criticalLevel = document.querySelector('#hc-app .hc-level[data-value="critical"]'); if (criticalLevel) { criticalLevel.classList.add('active'); form.querySelector('[name="emergency_level"]').value = 'critical'; } } modalServiceName.textContent = state.selectedService.name; showStep(1); modal.classList.add('active'); document.body.style.overflow = 'hidden'; }function closeBookingModal() { modal.classList.remove('active'); document.body.style.overflow = ''; }function showStep(n) { state.currentStep = n; document.querySelectorAll('#hc-app .hc-form-step').forEach(el => el.classList.remove('active')); const stepEl = document.querySelector('#hc-app .hc-form-step[data-step="' + n + '"]'); if (stepEl) stepEl.classList.add('active');stepperItems.forEach((item, idx) => { item.classList.remove('active', 'done'); if (idx + 1 < n) item.classList.add('done'); else if (idx + 1 === n) item.classList.add('active'); });if (n === 6) { modalFoot.style.display = 'none'; } else { modalFoot.style.display = 'flex'; stepIndicator.textContent = 'Step ' + n + ' of ' + state.totalSteps; btnBack.style.display = n > 1 ? 'inline-flex' : 'none'; if (n === state.totalSteps) { btnNext.innerHTML = 'Confirm Booking '; btnNext.classList.remove('hc-btn-next'); btnNext.classList.add('hc-btn-submit'); } else { btnNext.innerHTML = 'Continue '; btnNext.classList.add('hc-btn-next'); btnNext.classList.remove('hc-btn-submit'); } } }// ============================================================ // FORM VALIDATION // ============================================================ function validateStep(n) { let valid = true; document.querySelectorAll('#hc-app .hc-error-msg').forEach(el => el.textContent = ''); document.querySelectorAll('#hc-app .hc-input.hc-error, #hc-app .hc-select.hc-error').forEach(el => el.classList.remove('hc-error'));const stepEl = document.querySelector('#hc-app .hc-form-step[data-step="' + n + '"]'); if (!stepEl) return true;const required = stepEl.querySelectorAll('[required]'); required.forEach(field => { const value = field.value.trim(); const errorEl = stepEl.querySelector('[data-error="' + field.name + '"]'); if (!value) { valid = false; if (field.classList.contains('hc-input') || field.classList.contains('hc-select') || field.classList.contains('hc-textarea')) { field.classList.add('hc-error'); } if (errorEl) errorEl.textContent = 'This field is required'; } else if (field.name === 'mobile' && !/^[0-9]{10}$/.test(value)) { valid = false; field.classList.add('hc-error'); if (errorEl) errorEl.textContent = 'Enter a valid 10-digit mobile'; } else if (field.name === 'age' && (parseInt(value) < 0 || parseInt(value) > 120)) { valid = false; field.classList.add('hc-error'); if (errorEl) errorEl.textContent = 'Enter a valid age (0-120)'; } });return valid; }// ============================================================ // PILL TOGGLES (multi-select) // ============================================================ document.querySelectorAll('#hc-app [data-multi="needs"] .hc-pill').forEach(pill => { pill.addEventListener('click', () => { pill.classList.toggle('active'); const value = pill.dataset.value; if (state.selectedNeeds.has(value)) state.selectedNeeds.delete(value); else state.selectedNeeds.add(value); form.querySelector('[name="needs"]').value = Array.from(state.selectedNeeds).join(','); }); });// Emergency level (single-select) document.querySelectorAll('#hc-app [data-field="emergency_level"] .hc-level').forEach(level => { level.addEventListener('click', () => { document.querySelectorAll('#hc-app [data-field="emergency_level"] .hc-level').forEach(l => l.classList.remove('active')); level.classList.add('active'); form.querySelector('[name="emergency_level"]').value = level.dataset.value; const errorEl = document.querySelector('#hc-app [data-error="emergency_level"]'); if (errorEl) errorEl.textContent = ''; }); });// File upload labels form.querySelector('[name="patient_photo"]').addEventListener('change', e => { const f = e.target.files[0]; if (f) document.getElementById('hc-photo-name').textContent = f.name; }); form.querySelector('[name="prescription"]').addEventListener('change', e => { const f = e.target.files[0]; if (f) document.getElementById('hc-rx-name').textContent = f.name; });// Geolocation document.getElementById('hc-locate-btn').addEventListener('click', () => { const text = document.getElementById('hc-locate-text'); if (!navigator.geolocation) { showToast('Geolocation not supported on this device.', 'error'); return; } text.textContent = 'Getting location...'; navigator.geolocation.getCurrentPosition(pos => { const coords = pos.coords.latitude.toFixed(5) + ', ' + pos.coords.longitude.toFixed(5); text.textContent = '✓ Location captured (' + coords + ')'; const addr = form.querySelector('[name="pickup_address"]'); addr.value = (addr.value ? addr.value + '\n' : '') + 'GPS: ' + coords; showToast('Location captured successfully'); }, () => { text.textContent = 'Use my live location'; showToast('Location access denied. Please type address.', 'error'); }, { timeout: 10000 }); });// ============================================================ // STEP NAVIGATION // ============================================================ btnNext.addEventListener('click', () => { if (state.currentStep < state.totalSteps) { if (validateStep(state.currentStep)) showStep(state.currentStep + 1); } else { // Submit if (validateStep(state.currentStep)) submitBooking(); } }); btnBack.addEventListener('click', () => { if (state.currentStep > 1) showStep(state.currentStep - 1); });modalClose.addEventListener('click', closeBookingModal); modal.addEventListener('click', e => { if (e.target === modal) closeBookingModal(); }); document.addEventListener('keydown', e => { if (e.key === 'Escape' && modal.classList.contains('active')) closeBookingModal(); });// ============================================================ // SUBMIT BOOKING // ============================================================ function generateBookingId() { return 'MCP-' + Date.now().toString().slice(-6) + Math.floor(Math.random() * 100); }async function submitBooking() { const formData = new FormData(form); const booking = { id: generateBookingId(), service_id: state.selectedService.id, service_name: state.selectedService.name, timestamp: new Date().toISOString(), status: formData.get('emergency_level') === 'critical' ? 'urgent' : 'pending' }; formData.forEach((value, key) => { if (value instanceof File) { if (value.name && value.size > 0) booking[key] = value.name + ' (' + Math.round(value.size / 1024) + 'KB)'; } else { booking[key] = value; } });// Optional: POST to Google Apps Script backend if (HC_CONFIG.BACKEND_URL) { try { await fetch(HC_CONFIG.BACKEND_URL, { method: 'POST', mode: 'no-cors', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(booking) }); } catch (err) { console.warn('Backend submit failed (showing local confirmation anyway)', err); } }// Save to in-memory store state.bookings.unshift(booking); refreshAdmin();// Show success document.getElementById('hc-booking-id').textContent = 'Booking ID: ' + booking.id; showStep(6); showToast('Booking confirmed — we will call you shortly');// If critical, simulate emergency dispatch toast if (booking.status === 'urgent') { setTimeout(() => showToast('🚑 Ambulance dispatched. Tracking link sent via WhatsApp.'), 1200); } }// ============================================================ // SERVICE BUTTON CLICKS — global delegation // ============================================================ document.getElementById('hc-app').addEventListener('click', e => { const btn = e.target.closest('[data-service]'); if (btn) { e.preventDefault(); const serviceId = btn.dataset.service; const isEmergency = btn.dataset.emergency === 'true'; openBookingModal(serviceId, isEmergency); } });// ============================================================ // ADMIN DASHBOARD // ============================================================ const admin = document.getElementById('hc-admin'); document.getElementById('hc-admin-toggle').addEventListener('click', e => { e.preventDefault(); admin.classList.add('active'); refreshAdmin(); document.body.style.overflow = 'hidden'; }); document.getElementById('hc-admin-close-btn').addEventListener('click', () => { admin.classList.remove('active'); document.body.style.overflow = ''; });function refreshAdmin() { document.getElementById('hc-stat-today').textContent = state.bookings.length; document.getElementById('hc-stat-urgent').textContent = state.bookings.filter(b => b.status === 'urgent').length; document.getElementById('hc-stat-confirmed').textContent = state.bookings.filter(b => b.status === 'confirmed').length; document.getElementById('hc-bookings-count').textContent = state.bookings.length; document.getElementById('hc-badge-count').textContent = state.bookings.length;const list = document.getElementById('hc-bookings-list'); if (state.bookings.length === 0) { list.innerHTML = '
No bookings yetSubmit a test booking from the website to see it appear here in real time.
'; return; } list.innerHTML = '' + state.bookings.map(b => ` `).join('') + '
IDPatientServicePhoneLevelStatusAction
${b.id}${b.patient_name || '-'}
${b.age || ''} • ${b.gender || ''}
${b.service_name}${b.mobile || '-'}${(b.emergency_level || 'normal').toUpperCase()}${b.status.toUpperCase()}
'; }// Admin row actions document.getElementById('hc-bookings-list').addEventListener('click', e => { const btn = e.target.closest('[data-action]'); if (!btn) return; const id = btn.dataset.id; const booking = state.bookings.find(b => b.id === id); if (!booking) return; if (btn.dataset.action === 'approve') { booking.status = 'confirmed'; showToast('Booking ' + id + ' approved'); } else { booking.status = 'rejected'; showToast('Booking ' + id + ' rejected', 'error'); } refreshAdmin(); });// ============================================================ // TOAST // ============================================================ const toastWrap = document.getElementById('hc-toasts'); function showToast(text, type) { const toast = document.createElement('div'); toast.className = 'hc-toast' + (type === 'error' ? ' error' : ''); toast.innerHTML = `
${type === 'error' ? '' : ''}
${text}
`; toastWrap.appendChild(toast); setTimeout(() => { toast.style.transition = 'opacity 0.3s, transform 0.3s'; toast.style.opacity = '0'; toast.style.transform = 'translateX(120%)'; setTimeout(() => toast.remove(), 300); }, 3500); }// ============================================================ // INIT — minimum date for appointment // ============================================================ const today = new Date().toISOString().split('T')[0]; form.querySelector('[name="appt_date"]').setAttribute('min', today);// Smooth scroll for nav links document.querySelectorAll('#hc-app a[href^="#"]').forEach(a => { a.addEventListener('click', e => { const href = a.getAttribute('href'); if (href.length > 1) { const target = document.querySelector(href); if (target) { e.preventDefault(); target.scrollIntoView({ behavior: 'smooth', block: 'start' }); } } }); });console.log('%c MediCare Plus loaded ', 'background:#0D4F8C; color:white; padding:4px 8px; border-radius:4px;', state.bookings.length + ' bookings in memory'); })();
Sumit Dhara
Author: Sumit Dhara

You cannot copy content of this page

Home
Explore
Emergency
Menu
×