ArogyaLens — Dental AI Platform
Intraoral image capture → AI analysis → patient report — the full dental diagnostics loop.
0
Languages Supported
0+
Hospital Modules
AI-Powered
Oral Screening
Tech Stack
The Challenge
Dental clinics in tier-2 and tier-3 cities lack access to specialist radiologists for routine intraoral image review. ArogyaLens needed to bridge that gap by allowing a clinic's staff to capture intraoral images on a mobile device, route them through AI analysis, and produce a structured diagnostic report — all without requiring on-site specialist involvement. The backend had to handle video frame extraction (FFmpeg), multi-image batch analysis via AWS Rekognition, and generate professionally formatted PDF reports with embedded findings. Beyond the AI pipeline, the platform grew into a comprehensive hospital management system — OPD/IPD bed management, pharmacy, labs, HR/payroll, machine management, and e-commerce — all with full 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 shown 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 is actively used in pilot dental clinics. The platform supports full-cycle patient journeys from mobile capture to downloaded PDF report. Razorpay integration enables monetisation of premium diagnostic tiers. The Next.js portal's SSR architecture achieves strong SEO scores, driving organic clinic sign-ups. The platform now supports 15+ hospital management modules beyond the original diagnostics scope, with production multi-language support across 13 languages. The admin portal provides cross-department analytics, and the hospital portal handles full OPD/IPD patient lifecycle management.
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
AI-powered oral disease classification system: a custom EfficientNet-B0 model trained on 78,000+ dental images achieving 94.7% accuracy across 11 disease categories, deployed via ONNX to kiosk hardware.
Product Management — OraScan AI Platform
Product definition and ownership for OraScan — an AI oral disease classification system targeting dental kiosk deployment. Defined accuracy targets per disease class, dataset curation strategy across 78K+ images, and the kiosk hardware integration spec.
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.
Product Management — OraScan H IoT Device
Product ownership of OraScan H — a consumer IoT halitosis detection device combining a Raspberry Pi Zero 2W, H2S gas sensors, and a Flutter mobile app. Defined the BLE UX flow, consumer-grade pairing experience, and sprint milestones from concept to 92% software completion.
Product Management — ArogyaLens Dental Platform
Product ownership of ArogyaLens — a comprehensive hospital management + AI diagnostics platform spanning 15+ modules (OPD/IPD, pharmacy, labs, HR/payroll, e-commerce, telemedicine), multi-language support across 13 languages, AI-powered oral screening, and a Flutter mobile capture app. Authored full 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.
Product Management — LuxySmile Oral Care Brand
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?
Full architecture walkthrough and code review available during interviews.






