Built for Uganda's healthcare / Edition 2026

The operating system for modern hospitals.

One installation runs reception, triage, OPD, inpatient wards, maternity, theatre, laboratory, radiology, pharmacy, billing and HMIS reporting — with database-enforced isolation for every facility.

Server-rendered on low bandwidth Installs as an offline app Single binary + PostgreSQL
eclinichms.com / dashboard
Eclinic HMS main dashboard showing patient management and hospital overview
Vitals trendSpO₂ · BP · Temp
Prescribing safetyInteractions · allergies
Isolated by databasePostgreSQL RLS
0
Modules, one install
0
Medical calculators
0
Role presets
0
Fine-grained permissions
0
Visit outcomes
0
Database-isolated tenants
The platform

Built on three uncompromising ideas.

Eclinic HMS makes deliberate engineering choices so that a clinic on a slow link, a busy hospital, and a multi-branch group all get the same reliable system.

One install, many facilities

A single deployment serves an unlimited number of hospitals and clinics. Each facility is an isolated tenant with its own patients, staff, prices, stock and reports — no separate servers required.

  • Per-facility roles & permissions
  • Facility chooser for multi-site staff
  • Consolidated fleets for group owners

Server-rendered, feather-light

Pages are produced on the server and sent ready to use. There is no heavy JavaScript client to install or keep updated, so the system stays fast and dependable on low-bandwidth links and modest hardware.

  • Installs as an offline-ready PWA
  • Real-time notifications over WebSocket
  • One stylesheet, zero build step in production

Isolation the database enforces

Every query is filtered by PostgreSQL Row-Level Security. Even a bug in the application cannot surface one facility's records to another — isolation does not depend on remembering to add a filter.

  • Fail-closed: unset facility returns nothing
  • Transaction-scoped tenant context
  • Audited, bypass-only privileged operations
01 · Edge

Browser / PWA

Server-rendered pages, HTMX partials, Chart.js graphs and a service worker for offline shell.

02 · Application

Go 1.27 service

One statically linked binary: auth, permissions, subscriptions, module handlers and WebSocket hub.

03 · Data

PostgreSQL 18

Row-Level Security policies, per-request tenant transactions and a 60-second statement timeout.

Module explorer

Every department. One platform.

From the moment a patient walks in to the moment the HMIS report is filed — search or filter the full module catalogue.

Front Desk

Reception & Registration

Register patients in seconds with unique ECM/ECF numbers, biodata capture and automatic duplicate detection on name, date of birth or mobile.

Front Desk

Patient Dashboard

A longitudinal record: demographics, identifiers, insurance cards and every prior visit organised chronologically in one timeline.

Front Desk

Global Patient Search

Find anyone by partial name, 10-digit mobile number, or 15-character patient number — with photo, age, sex and quick links to dashboard or new visit.

Front Desk

Insurance Cards & Claims

Link patients to providers, activate or deactivate cards per facility, and run a dedicated insurance visit register with printable claim forms.

Front Desk

Visit Lifecycle & Queues

Standard consultations, self-request lab/radiology visits and over-the-counter sales — with nine outcomes and per-department queueing.

Front Desk

Patient Medical File

Attach and retrieve documents against the patient record, with a personal recent-visits panel for each staff member.

Clinical

Doctor Queue & OPD

A daily worklist split into today's and previous visits, opening a consultation dashboard with history, examination and plan in one form.

Clinical

Diagnosis & Chronic Illness

Add multiple diagnoses with the first as primary, then flag 19 chronic conditions that follow the patient across every visit.

Clinical

Orders: Lab · Radiology · Rx

Raise investigations, prescriptions and procedures from the consultation. Orders are validated against price and stock, then routed automatically.

Clinical

Clinical Decision Support

Drug reference with dosing, contraindications and interactions; allergy, interaction and pregnancy alerts — every override written to an audit log.

Clinical

Management Hints

See what actually worked for up to 200 previously treated patients with the same diagnosis — their other diagnoses, investigations and prescriptions.

Clinical

TB / ICF Screening

The national Intensified TB Case Finding tool: six screening questions, classification, sputum collection and ZN / GeneXpert guidance, plus a register.

Clinical

OPD Treatment Chart

A nursing-station view for repeated doses: issue with timestamp and nurse name, track next-issue times, and reconcile prescribed against administered.

Clinical

Medical Calculators

46 built-in clinical scores — from BMI and MAP to GCS, CHA₂DS₂-VASc, qSOFA, Child-Pugh, Parkland and more.

Clinical

Dental Unit

Structured dental history, examination, radiology and management notes with a filterable dental register and laboratory integration.

Clinical

Referrals & Follow-ups

Refer patients out and record incoming referrals, schedule reviews and appointments, and surface follow-up alerts on the doctor queue.

Maternal

Antenatal Care (ANC)

LNMP-driven EDD and gestational age, PMTCT and prophylaxis, screening and labs, an ANC register and HMIS indicator analytics.

Maternal

Maternity & Delivery

Labour admission with GTPAL and risk assessment, detailed delivery notes with APGAR, and postnatal care at 6 hours, 6 days, 6 weeks and 6 months.

Maternal

Inpatient & Wards

Admissions, wards and beds as first-class objects, ward rounds and progress notes, inpatient treatment charts with nurse sign-off and discharge summaries.

Maternal

Theatre & Surgery

Schedule operations, track a five-status theatre board, capture full operation notes, and review completed operations in the theatre register.

Diagnostics

Laboratory

Structured panels — CBC 3/5-part, urinalysis, LFTs, RFTs, electrolytes, lipids and metabolic panels — with reusable templates, register and analytics.

Diagnostics

CBC Analyser Integration

Connect Human-30T and Mindray BC-2800 haematology analysers over serial. Parsed CBC results land in the patient record automatically.

Diagnostics

Normal Ranges

Per-facility general and CBC range tables with low/high flags, snapshotted into each report so historical results stay reproducible.

Diagnostics

Radiology

Markdown findings and conclusions, image and DICOM/PDF attachments with strict type validation, an attachments gallery and print-ready reports.

Pharmacy

Pharmacy & Dispensing

Full and partial dispensing against unexpired stock, per-prescription safety locking, complete issue logs and reversible issues.

Pharmacy

Drug Inventory & Batches

Append-only stock cards, stock-in against supplier invoices, batch-level quantities and expiry rules, and a deleted-batch archive.

Pharmacy

Expiry & Low-Stock Alerts

A multi-bucket expiry dashboard, minimum-alert quantities and short-expiry warnings on the cashier and billing screens.

Pharmacy

Internal Issue to Departments

Issue drugs and consumables to wards, theatre, OPD, maternity and more, with batch tracking and an issuing audit trail.

Pharmacy

Price Management

Separate cash and insurance prices, CSV price-list import, bulk updates and a complete price-change audit log.

Pharmacy

General Inventory

Non-medical stock — stationery, equipment, PPE and more — with categories, search, audit fields and CSV export.

Finance

Billing & Cashier

A cashier queue, itemised bills, reusable bundles, and a payment state machine from unpaid through partial to settled or waived.

Finance

Payments & Mobile Money

MTN and Airtel Money, FlexiPay, MoMoPay, VISA, cash and insurance claims — with automatic debt-payment classification.

Finance

Refunds & Waivers

Atomic refunds that always leave an immutable record, authoriser-tracked waivers, and a permissioned cancel-all for a visit.

Finance

Expenses & External Revenue

An expense ledger with sources and beneficiaries, external revenue, bank deposits and automatic net amounts.

Finance

Financial Reporting

Daily, monthly and annual revenue, income per item and per doctor, profit analysis, balance sheet and a live admin dashboard.

Finance

HMIS 105 Reporting

The Ministry of Health outpatient monthly report — attendances, referrals and diagnoses by age band and sex — ready to print.

Finance

Subscription Gate

Configurable payment enforcement with a consultation-paid gate, per-item checks, trial and grace periods, and safe data retention when paused.

Administration

User Accounts & Permissions

Twenty role presets over a 36-bit permission model, scoped per facility, so a multi-site user can hold a different role in each hospital.

Administration

Hospital Settings & Branding

Facility identity and logo used across every printed receipt, bill and report, plus system preferences, payment types and waivers.

Administration

Audit & Security

A staff login register, rate-limited lockout, enforced password policy, and request logs attributed to both tenant and user.

Administration

Superuser Console

Provision hospitals and fleets, manage the directory, record subscription payments, and run backups, VACUUM and REINDEX.

Administration

Fleets

A consolidated dashboard and side-by-side comparison across every facility in a group — without weakening tenant isolation.

Administration

Real-Time Notifications

A per-facility WebSocket hub pushes order and event alerts instantly to the departments that need to act on them.

A closer look

Designed around the patient journey.

Select a capability to see how Eclinic HMS supports it end to end.

01 — Front desk

Effortless patient registration.

Register in seconds, create the visit, and trigger workflows across every department — with duplicate detection that catches first/last-name swaps on save.

  • Unique 15-character ECM/ECF patient numbers
  • Instant search by name, mobile number or patient number
  • One-click visit creation with department routing and queues
  • Insurance card registration and validation per provider
See it with your own data
Reception module showing patient registration interface
Global patient search interface
Patient journey

How a visit flows through Eclinic.

Click any step to follow the patient from arrival to outcome.

Security & operations

Defence in depth, by default.

Tenant isolation is enforced at three independent layers, and the database is the final authority.

Layer 01

Middleware permissions

Every route is guarded before a handler runs. The required permission bits are checked against the active facility.

Authentication · CSRF · rate limiting
Layer 02

Application scope

Each request opens one tenant-scoped transaction and sets the active facility with SET LOCAL.

One request, one transaction
Layer 03 · authoritative

PostgreSQL Row-Level Security

Policies filter every query at the database. A cross-facility row is indistinguishable from a row that does not exist.

Fail-closed isolation

Hardened sessions

bcrypt cost 14, signed HTTP-only cookies and CSRF protection on every mutation.

Login throttling

Eight attempts per fifteen minutes per IP and username, with no account-existence disclosure.

Attributed audit logs

Requests, RLS bypass operations, bill cancellations, refunds and waivers are all logged.

Backups & recovery

Compressed pg_dump backups with a least-privileged role and optional off-site Google Drive copies.

Offline-ready PWA

The app shell is cached and an offline page is served when the network drops; writes resume on reconnect.

Observability

Structured request logging with request IDs, a log viewer, and health and diagnostics tooling.

Built with
  • Go 1.27
  • PostgreSQL 18
  • Row-Level Security
  • html/template
  • HTMX
  • Tailwind CSS v4
  • Chart.js
  • WebSocket
  • Service Worker
  • systemd
  • Nginx
46 clinical calculators

Decision support at the bedside.

Eclinic HMS ships with a comprehensive calculator suite. Try a few of our favourites right here — no login required.

All 46 calculators

    Roles & permissions

    Everyone sees exactly what they should.

    Twenty ready-made role presets over a 36-bit permission model — each scoped to a single facility, and adjustable down to the individual action.

    Doctor

    doctor_general

    Consultations, diagnoses, orders, referrals and visits.

    Nurse

    nurse_general

    Triage, treatment charts, antenatal and maternity support.

    Midwife

    midwife

    Antenatal, maternity, theatre view and patient care.

    Dentist

    dentist

    Dental notes, register, referrals and visits.

    Lab Technician

    laboratory_technician

    Laboratory queue, results, reports and analytics.

    Radiologist

    radiologist

    Radiology queue, findings, attachments and printing.

    Pharmacist

    pharmacist

    Dispensing, inventory and quantity control.

    Pharmacy Dispenser

    pharmacy_dispenser

    Dispensing against prescriptions only.

    Inventory Manager

    inventory_manager

    Stock, pricing, batch and general inventory control.

    Storekeeper

    storekeeper

    Stock quantities and general inventory updates.

    Receptionist

    receptionist

    Registration, queues, visits and referrals.

    Cashier

    cashier

    Billing, payments, refunds and bill cancellation.

    Billing Clerk

    billing_clerk

    Billing and visit handling without refund rights.

    Accountant

    accountant_finance

    Income reports, balance sheet, expenses and HMIS.

    Finance Auditor

    finance_auditor

    Read-only income reports, balance sheet and HMIS.

    Records Officer

    records_officer

    Reception, patient records, visits and HMIS.

    Theatre Surgeon

    theatre_surgeon

    Schedule and manage operations; write and edit notes.

    Theatre Anaesthetist

    theatre_anaesthetist

    Theatre view with operation note authoring.

    Theatre Nurse

    theatre_nurse

    Scheduling and theatre status management.

    Theatre Viewer

    theatre_viewer

    Read-only access to the theatre list.

    Deployment

    Runs anywhere. Scales with you.

    A single statically linked binary and one PostgreSQL database are all it takes to run a facility. Add facilities without adding servers.

    Single binary

    No Node.js, no asset pipeline, no separate web server in production. Templates, styles, scripts and icons are embedded in the executable.

    Cloud or on-premise

    Terminate TLS at Nginx or run HTTPS directly on the service. Deploy with the bundled installer and a hardened systemd unit.

    Groups & fleets

    Register new hospitals into a fleet, delegate viewers and administrators, and see every branch in one consolidated dashboard.

    Simple subscription

    New facilities get a trial period and a grace window. When lapsed, access pauses safely and data is preserved — restore with a payment.

    Backup built in

    Compressed local dumps with a least-privileged backup role, plus optional Google Drive copies and one-command restore.

    Low-bandwidth ready

    Server rendering and a small payload make Eclinic HMS practical on the connections and hardware many facilities actually have.

    Healthcare professionals deserve tools as sophisticated as the care they provide — at a price that doesn't compromise it.

    Dr. Abiira Nathan — Creator, Eclinic HMS

    Get started

    Let's talk about your facility.

    Whether you run a small clinic, a busy hospital or a group of branches, Eclinic HMS scales with you. Contact us for a personalised demo and a quote.

    30-day trial No card required Guided onboarding

    Request a Demo

    Tell us a little about your facility and we'll get back to you within 24 hours.