Skip to content
Urnish Tech logo
All case studies
Telehealth · SaaS · 2025

GlocalMD - Telemedicine Platform

An end-to-end telehealth ecosystem connecting patients with doctors for secure online consultations - Angular SPA, Node.js REST API, dedicated WebRTC video server, and a marketing site, with real-time video, EMR, scheduling, payments, and notifications.

Build something like this

The challenge

Deliver a complete telemedicine ecosystem - not just a UI - with two role-based portals, a marketing site, a versioned REST API, and a dedicated WebRTC video service. The platform had to handle real-time consultations, timezone-aware scheduling, online payments, EMR, document storage, and OTP-based auth, all while keeping video traffic and core API concerns independently scalable.

What we built

## The challenge Deliver a complete telemedicine ecosystem - not just a UI - with two role-based portals, a marketing site, a versioned REST API, and a dedicated WebRTC video service. The platform had to handle real-time consultations, timezone-aware scheduling, online payments, EMR, document storage, and OTP-based auth, all while keeping video traffic and core API concerns independently scalable. ## What we built A microservice-style architecture split into four independently deployable services: an Angular 9 patient/doctor SPA, an Angular marketing & lead-capture site, a Node.js/Express REST API with 45+ Sequelize models covering the full clinical workflow (EMR, scheduling, referrals, billing, credentialing), and a dedicated Node/OpenTok video server for issuing WebRTC session tokens. Externalized infrastructure (AWS S3 for documents, PayPal for billing, Vonage for SMS and video) keeps the API stateless and horizontally scalable. ## Patient & Doctor SPA - Lazy-loaded doctor and patient modules with shared UI kit - OTP-secured sign-up with ng-otp-input - Specialist search with Google Maps (@agm/core) - Appointment booking and live video consultations - Patient chart, document uploads, intake questions, referrals - Doctor availability scheduling (recurring + one-off slots) ## REST API - Versioned Express API under /v1/web/* with module-per-feature layout - 45+ Sequelize models: appointment, EMR, doctor credentialing, referral, transaction - JWT auth, bcrypt password hashing, express-validator on every endpoint - Sequelize CLI migrations for local/development/production environments - Winston daily-rotating logs and dotenv-driven config - Multi-language email/SMS templates via jm-ez-l10n ## Video Server - Dedicated Node/Express service isolated from the main API - OpenTok (Vonage) Video API session and token issuance - Independent scaling for video traffic vs. business logic ## Integrations - PayPal Checkout Server SDK for appointment billing - AWS S3 for medical document & image storage with signed URLs - Nexmo / Vonage SMS for OTP and notifications - Speakeasy TOTP for optional 2FA - QR code generation for prescriptions and sessions

Key features

Patient & Doctor SPA (glocalmd-web)

  • Lazy-loaded doctor and patient modules with shared UI kit
  • OTP-secured sign-up with ng-otp-input
  • Specialist search with Google Maps (@agm/core)
  • Appointment booking and live video consultations
  • Patient chart, document uploads, intake questions, referrals
  • Doctor availability scheduling (recurring + one-off slots)

REST API (glocalmd-node)

  • Versioned Express API under /v1/web/* with module-per-feature layout
  • 45+ Sequelize models: appointment, EMR, doctor credentialing, referral, transaction
  • JWT auth, bcrypt password hashing, express-validator on every endpoint
  • Sequelize CLI migrations for local/development/production environments
  • Winston daily-rotating logs and dotenv-driven config
  • Multi-language email/SMS templates via jm-ez-l10n

Video Server

  • Dedicated Node/Express service isolated from the main API
  • OpenTok (Vonage) Video API session and token issuance
  • Independent scaling for video traffic vs. business logic

Marketing Site (glocalmd-landing)

  • Separate Angular 9 marketing site for fast load and easy iteration
  • Lead capture: newsletter, waitlist, contact-us
  • SEO landing pages decoupled from the authenticated SPA

Integrations

  • PayPal Checkout Server SDK for appointment billing
  • AWS S3 for medical document & image storage with signed URLs
  • Nexmo / Vonage SMS for OTP and notifications
  • Speakeasy TOTP for optional 2FA
  • QR code generation for prescriptions and sessions

Challenges solved

Domain-rich data model

Modeled the full clinical surface in 45+ normalized Sequelize/MySQL entities: EMR (allergies, medications, vitals, HPI, operations, family history), scheduling, doctor credentialing (degrees, residencies, fellowships, board certificates, awards), referrals, and billing.

Independent video scaling

Isolated the OpenTok token-issuing service from the main API so video session load can scale independently of business logic and database traffic.

Timezone-aware availability

Combined availableAppointmentSlot and doctorBusySchedule with moment-timezone conflict detection to prevent double-booking across regions.

Defense-in-depth security

OTP via Nexmo for first-factor, optional TOTP (Speakeasy) for second-factor, bcrypt password hashing, JWT for session, and express-validator on every endpoint.

Real-time video reliability

Cleanly integrated OpenTok session and stream lifecycle with Angular routing to avoid orphaned streams and memory leaks across navigation.

Two role-based portals in one codebase

Lazy-loaded doctor and patient Angular modules sharing a single UI kit and shared module to minimize duplication while preserving role-specific UX.

Secure document handling

Streaming uploads through Node to AWS S3 with signed-URL access for HIPAA-aware retrieval of patient documents and lab reports.

Outcomes

4

Deployable services

45+

Sequelize models

Real-time

Video consultations

Let's talk

Have a product idea or a system to scale?

Tell us what you're building. You'll hear back within one business day - from a senior engineer, not a sales rep.

  • Free 30-min discovery call
  • Fixed-scope or T&M engagements
  • NDA on request - first reply within 24h