LV
Back

// clinic management system · easy clinic

Easy Clinic

Easy Clinic is a complete medical clinic management platform — patient records, scheduling, prescriptions, lab exams, and billing analytics in one system — available as a real-time multi-user Meteor app or a zero-backend PWA for solo practitioners.

// built with
Open the live archive

// single-user demo · login is pre-filled · just click Entrar

archive snapshot · self-hostedEasy Clinic dashboard showing clinic stats and an appointments chart

Screenshots

Overview

Easy Clinic is a complete clinic management platform developed for Brazilian medical practices. It covers every operational dimension of a small-to-medium clinic: patient registration with photo and CPF validation, a calendar appointment scheduler with drag-and-drop and multi-doctor resource views, a full patient clinical record system with a timeline of visits, and a document engine for generating prescriptions, medical certificates, and exam requests from reusable templates.

The clinical record module goes beyond simple note-taking. Doctors can design custom intake forms using a visual drag-and-drop form builder, order exams from a self-learning catalog that infers reference ranges from free-text entries and filters them by patient gender and age, and track patient evolution over time — BMI, weight, blood pressure, SpO₂, and heart rate — with trend charts rendered via Chart.js.

On the business side, the dashboard surfaces live KPIs (total patients, appointments this month, monthly billing) and a 12-month appointment history chart. Three dedicated report screens cover appointment volume, patient demographics (age groups, gender distribution), and production billing. Automated appointment reminders are sent by email and SMS via a background cron job.

The system ships in two editions. The paid edition is a full-stack reactive application: multi-user with role-based access control (super-admin, medical_doctor, default), server-side validation, and real-time pub/sub data sync. The free edition (the rip/ folder) is a zero-backend PWA that runs entirely in the browser — all collections are loaded from flat JSON files into an in-memory store, with optional IndexedDB persistence for returning users. It exposes the same screens and feature surface as the paid edition, making it suitable for a solo practitioner who doesn't need multi-user or real-time sync.

Both editions are installable PWAs sharing the same icons and app identity, and are fully responsive — every screen (dashboard, calendar, patient records, forms) adapts cleanly across desktops, tablets, and phones, with a touch-friendly off-canvas navigation drawer on smaller viewports. Beyond installability, each PWA is tuned to what it actually is: the free edition's service worker gives it genuine offline data access (IndexedDB), while the paid edition — a live, multi-user backend — instead surfaces its real-time connection: a live online/offline banner, a non-disruptive "update available" prompt for hot code push, and a taskbar icon badge reflecting patients currently waiting.

Built with Meteor 1.4, MongoDB 3.2, Blaze, and Bootstrap 3. Deployed via Docker. The UI is in Brazilian Portuguese with English and Spanish i18n support.

Highlights

Full-stack reactive clinic platform

Built a multi-user clinic management system on Meteor + MongoDB covering the complete patient journey — registration, scheduling, clinical records, prescriptions, and billing — giving a medical practice a single source of truth for all daily operations.

Custom clinical documentation engine

Engineered a drag-and-drop form designer, rich-text prescription and certificate templates, and an intelligent exam catalog with machine-learned reference ranges by patient gender and age — replacing paper-based workflows and standardizing clinical documentation across the practice.

Zero-infrastructure PWA edition

Architected a standalone free edition that runs entirely in the browser via IndexedDB with no server or database required, so solo practitioners get the full feature set — every screen, every report, offline-capable — at zero infrastructure cost.

Features

Dashboard & Analytics

KPI cards
Total patients, appointments this month, clinical records this month, total prescriptions, monthly billing.
Appointment history chart
12-month bar chart of completed appointments.
Records breakdown
Pie chart of clinical record types (forms, prescriptions, certificates, exam requests).
Age group distribution
Bar chart of patient population by age band (0–17, 18–29, 30–44, 45–59, 60+).
Gender demographics
Donut chart of patient gender split.
Today's agenda
Scrollable list of today's scheduled appointments with quick access to patient records.

Patient Management

Patient registration
Full profile: name, CPF (with validation), date of birth, gender, address, phone, email.
Photo capture
Camera capture or file upload for patient profile photos.
Patient list
Searchable, sortable DataTables list with inline avatars and accent-neutralized search.
Age-aware context
Patient age passed to the exam catalog for gender- and age-appropriate reference ranges.

Clinical Records

Patient timeline
Chronological timeline of all encounters; expandable entries per visit.
Custom intake forms
Fill any form model during a consultation; results stored in the patient's record.
Prescriptions
Generate prescriptions from rich-text templates; stored in the timeline.
Medical certificates
Issue certificates from templates; stored in the timeline.
Exam requests
Order lab exams from document templates; stored in the timeline.
Lab exam results
Enter measured values against a catalog of exams; altered results flagged automatically.

Patient Evolution Tracking

BMI
Computed from weight and height; classified (normal / overweight / obese) with delta since first visit.
Weight & height
Trend over all visits.
Blood pressure
Systolic / diastolic; classified (normal / elevated / hypertensive).
Heart rate & SpO₂
Trend over all consultations.
Trend charts
Four Chart.js line charts — BMI, weight, blood pressure, heart rate & SpO₂ — on the patient's Evolution tab.

Appointment Scheduling

Visual calendar
Calendar Scheduler with day, week, and month views.
Multi-doctor resource view
Timeline view with one column per doctor; patient photo shown on the event.
Drag & drop
Move and resize events directly on the calendar.
Appointment statuses
Scheduled → Waiting → Attending → Finished / No-show; color-coded.
Quick patient creation
Create a new patient from within the scheduling form without leaving the calendar.
Configurable slots
Admin sets the appointment duration per doctor.
Automated reminders
Cron job fires every 30 minutes; sends email and SMS to patients with upcoming appointments.
Calendar export (.ics)
Download a single appointment or the visible day/week/month range as a standard .ics file.
Calendar syncPaid
Doctors get a personal, revocable feed link to subscribe their schedule in Google, Outlook, or Apple Calendar.

Document & Form Engine

Document model editor
SummerNote rich-text editor with variable interpolation (patient name, date, doctor, etc.).
Prescription templates
Reusable prescription layouts; selected at consultation time.
Certificate templates
Medical certificate templates with free-text and structured fields.
Exam request templates
Templates for lab or imaging referrals.
Form model designer
Drag-and-drop form builder (form-builder.js); supports text, select, checkbox, date, and more.
Custom form rendering
Built forms render inside the consultation modal and their data is persisted to the patient record.

Exam Catalog

Searchable catalog
Autocomplete search across hundreds of lab exams.
Smart reference ranges
Reference values filterable by patient gender and age group.
Machine learning
When a doctor enters a free-text reference value for a new exam, the system parses it (e.g. "13–17", "até 200", "> 30") and stores a structured rule for future use.
Usage tracking
Exams are ranked by usage count so the most-ordered tests surface first in autocomplete.

Reference Catalogs

Drug catalog
Searchable medication database with offline support (ground:db).
ICD-10 browser
Complete international disease classification; offline-capable with persistent client cache.
Medical specialties
CRUD management of clinical specialties assigned to doctors.

Administration & Reporting

Doctor profiles
Name, specialty, photo, and configurable work-hour blocks per day.
User management
Create / edit users; assign roles; send enrollment email automatically.
Role-based access
Roles: super-admin, medical_doctor, default; privileged methods guarded server-side.
Clinic settings
Set appointment value (used for billing KPI).
CSV import
Bulk patient import via CSV (PapaParse); validation run on a staging collection before commit.
Report — Appointments
Monthly appointment counts by doctor; filterable date range.
Report — Patients
Demographics: age distribution, gender breakdown, new patients over time.
Report — Production
Monthly billing KPI, total procedures by type (forms, prescriptions, certificates, exam requests), 12-month production bar chart.
Multi-language
pt-BR, English, and Spanish via tap:i18n.

Free vs. Paid edition

The free edition is a static PWA — no server, no database, no install. It runs in any browser and stores data locally via IndexedDB. The paid edition is the full-stack Meteor application with a MongoDB backend, multi-user access, and real-time data sync.

FeatureFree PWAPaid (Meteor)
Data storageBrowser (IndexedDB)MongoDB
DeploymentStatic hostingDocker / Server
Offline supportService Worker + IndexedDBFallback page only
Dashboard & KPIs
Patient management
Patient photo upload
Clinical records timeline
Prescriptions & certificates
Exam requests
Lab exam results
Patient evolution charts
Document model editor
Drag & drop form designer
Exam catalog with smart ranges
Drug catalog
ICD-10 browser
Reports (3 screens)
CSV patient import
Multi-language (pt-BR / en / es)
Responsive (mobile / tablet / desktop)
Installable (PWA / add to home screen)
Appointment scheduling
Multi-doctor resource view
Drag & drop calendar
Calendar export (.ics download)
Calendar feed (Google/Outlook/Apple)
Live connection status banner
Non-disruptive update prompt (hot code push)
Taskbar icon badge (live waiting-patient count)
Multi-user accountsSingle userUnlimited
Role-based access control
Real-time reactive data sync
Server-side validation & security
Automated SMS reminders
Automated email reminders
Audit hooks (before insert/update)