ArogyaLens - Unified Health Platform
One multilingual platform for patients, doctors, and hospital teams.
Languages Supported
Hospital Modules
Oral Screening
Tech Stack
The problem
Patient information and day-to-day hospital work were split across departments, paper records, and disconnected tools. Patients could not carry one coherent record between appointments, while doctors and operations teams lacked a shared view across consultations, beds, pharmacy, labs, billing, and follow-up care.
The challenge
ArogyaLens had to behave like one health platform without forcing every user into the same interface. I shaped a shared healthcare data spine with purpose-built patient, doctor, hospital, and administration surfaces, covering OPD/IPD care, appointments, pharmacy, labs, HR/payroll, machine management, e-commerce, and telemedicine. Oral-health screening remained one integrated capability: mobile capture, AI-assisted analysis, and structured reports. The whole system also needed RTL-compatible internationalisation across 13 languages including Hindi, Tamil, Arabic, and Japanese.
Architecture & System Design

Mobile app captures intraoral images and uploads to cloud storage. Backend service processes images through AI analysis pipeline, generates written findings reports, and creates branded PDFs. Web portal displays patient results and appointment history. Authentication and payment processing integrated. Full support for 13 languages with right-to-left script rendering.
The Flutter mobile app handles camera capture with real-time preview, Bluetooth accessory integration, and on-device TFLite pre-screening before upload. The Node.js/Express backend manages the full analysis pipeline: S3 upload → Rekognition label detection → OpenAI-assisted finding narration → PDF generation (html-pdf/pdfkit). Firebase handles authentication and push notifications. The Next.js portal (SSR for SEO) provides patients and clinicians with a calendar-based appointment view, diagnostic history, and full-report download. Payment is handled via Razorpay for premium report unlocks.
Code Walkthrough
3-step walk-through of the production implementation. File paths and intent appear above each block.
- 01
Step 1 of 3
Rekognition with a dental label allowlist
arogyalens-api/src/services/rekognition.jsRekognition returns hundreds of generic labels per image (furniture, lighting, etc.). We narrow it to a curated dental allowlist before anything hits the database, so only clinically meaningful findings are stored and billed.
javascriptasync function analyzeIntraoralImage(s3Key) { const params = { Image: { S3Object: { Bucket: process.env.S3_BUCKET, Name: s3Key } }, Features: ['GENERAL_LABELS', 'IMAGE_PROPERTIES'], Settings: { GeneralLabels: { LabelInclusionFilters: DENTAL_LABEL_ALLOWLIST } } }; const { Labels } = await rekognition.detectLabels(params).promise(); return Labels .filter(l => l.Confidence > CONFIDENCE_THRESHOLD) .map(l => ({ name: l.Name, confidence: l.Confidence.toFixed(1) })); }TakeawayThe allowlist isn't a post-filter - it's passed to Rekognition's `LabelInclusionFilters`, so irrelevant categories are never scored at all. Cheaper, faster, cleaner.
- 02
Step 2 of 3
Turning raw labels into patient-facing narrative
arogyalens-api/src/services/narrate.jsRaw labels like 'CARIES_MODERATE 87.3%' aren't useful to a patient. An OpenAI call rewrites them at a Grade-8 reading level with a strict prompt: only describe findings from the input list, never invent a diagnosis.
javascriptconst NARRATE_SYSTEM_PROMPT = ` You are a dental hygienist explaining findings to a patient. Rules: 1. Only describe findings present in the input list. 2. Grade 8 reading level. 3. Never use the words "diagnosis" or "treatment plan". 4. End with: "Please consult your dentist to discuss these findings." `; async function narrateFindings(findings) { const input = findings .map(f => `- ${f.name} (confidence ${f.confidence}%)`) .join('\n'); const { choices } = await openai.chat.completions.create({ model: 'gpt-4o-mini', temperature: 0.2, messages: [ { role: 'system', content: NARRATE_SYSTEM_PROMPT }, { role: 'user', content: `Findings:\n${input}` }, ], }); return choices[0].message.content.trim(); }TakeawayLow temperature + a tight system prompt keeps the narration deterministic enough for a medical-adjacent context, without hard-coding boilerplate strings.
- 03
Step 3 of 3
Branded PDF report with embedded findings
arogyalens-api/src/services/report.jsThe final artefact is a PDF the clinic hands to the patient. We render it server-side from an HTML template so the finding table, narration, and clinic logo all stay consistent with the web report - no drifting designs.
javascriptasync function generateReportPdf({ patient, findings, narration, clinic }) { const html = await renderTemplate('report.hbs', { patient, findings, narration, clinic, generatedAt: new Date().toISOString(), }); const pdf = await htmlPdf.create(html, { format: 'A4', border: { top: '20mm', right: '15mm', bottom: '25mm', left: '15mm' }, header: { height: '18mm', contents: clinic.headerHtml }, footer: { height: '15mm', contents: { default: clinic.footerHtml }, }, }); const key = `reports/${patient.id}/${Date.now()}.pdf`; await s3.putObject({ Bucket: process.env.S3_BUCKET, Key: key, Body: pdf, ContentType: 'application/pdf', }).promise(); return key; }TakeawayOne Handlebars template, one PDF, one S3 key - the report is a first-class deliverable, not a screenshot of a web page.
Results
ArogyaLens now brings more than 15 hospital and patient-facing modules into one platform, with production support for 13 languages. Patients can move from appointments and consultations to results and follow-up in one record; hospital teams manage OPD/IPD journeys, beds, pharmacy, labs, and administration from connected portals. The oral-screening workflow adds mobile capture and automated reporting as one module inside that broader health system.
Explore the product system
This case study covers the main product surfaces. Use the buttons to move between the dashboard, app, website, and brand work.
Product surfaces
The complete patient phone experience followed by the full web dashboard.
Gallery & Demos
Admin Dashboard
Overview of all clinic operations: patient appointments, test results, and team performance metrics.
Hospital Portal
Staff view for managing patient beds, treatments, and medical records across the entire hospital.
Multi-Language Support
Language selector showing Tamil and other supported languages for accessibility across regions.
Patient Bed Management Overview
Real-time view of occupied and available beds in OPD (outpatient) and IPD (inpatient) departments.
Multi-Language IPD View
Inpatient department management interface showing patient details in Hindi and other local languages.
Patient Consultation
Doctor view showing patient history, test results, and treatment plan during consultation.
Medicine Management
Pharmacy interface to add and manage medicines prescribed to patients.
Click any image or video to expand · ← → keys navigate
More from OraLens Healthcare Pvt. Ltd.
OraScan - Oral Disease Detection
An oral disease classifier built with a custom EfficientNet-B0 model trained on 78,000+ dental images. It reaches 94.7% accuracy across 11 disease categories and runs through ONNX on kiosk hardware.
OraScan - AI Oral Screening Platform
Product definition and ownership for OraScan, an oral disease classifier designed for dental kiosks. Set per-class accuracy targets, defined the dataset strategy for 78K+ images, and specified the kiosk hardware integration.
OraScan H - Halitosis IoT Device
Full-stack IoT device for halitosis (bad breath) detection: a Raspberry Pi Zero 2W with H2S gas sensors communicates via BLE to a Flutter mobile app, with on-device TFLite AI classification and PHP backend.
OraScan H - Connected Halitosis Device
Product ownership of OraScan H, a consumer IoT halitosis detector built with a Raspberry Pi Zero 2W, H2S gas sensors, and a Flutter mobile app. Defined the BLE pairing flow and sprint milestones through 92% software completion.
ArogyaLens - Unified Health Platform
Product ownership for a health platform spanning 15+ modules, 13 languages, telemedicine, and oral-health screening. Authored the PRD, SRS, and technology specification.
LuxySmile Oral Care - Product Website & Dashboard
Full product suite for LuxySmile Oral Care (Oralens Healthcare): a React + Vite marketing site targeting B2B dental wellness programs for schools and corporates, plus an internal case management dashboard with direct-to-S3 uploads and CSV bulk import.
LuxySmile - Oral Care Brand & Operations
Product and go-to-market ownership for LuxySmile Oral Care - OraLens Healthcare's B2B wellness brand. Defined the dual B2B/B2C positioning strategy, school and corporate wellness program inquiry flow, and the AI kiosk upsell path on a premium product website.
Interested in this work?
I can walk through the architecture and code during an interview.






