EHR4all

Self-hosted electronic health record

Every practice in the group, on one record system.

gridEHR runs a whole organisation — clinics, labs, physiotherapy — from a single installation, while keeping each practice's data properly separated. Clinicians, patients and administrators each work in their own portal, and the records sit on your servers, not somebody else's.

Three separate portals

Clinician

The chart and the day

Schedule, encounters, diagnoses, allergies, vitals, labs, medications, documents.

Patient

One login, every practice

A person sees each of their charts across the group and switches between them.

Admin

Practices, people, permissions

Create practices, appoint administrators, manage staff, roles and the audit trail.

The problem it solves

Built for groups, not for a single clinic

Most record systems assume one practice, one database, one set of users. Groups that grow past that end up running several installations, reconciling patient lists by hand, and giving the same doctor a different login at every site.

gridEHR treats the group as the unit. Practices are created from the administration portal in a few minutes, staff move between them under one identity, and a patient who is seen at three sites is still one person with three charts — not three strangers who happen to share a name.

Separation is enforced in the data layer, not by remembering to filter a query. Any code that touches practice data without a practice context fails rather than returning the wrong patient.

  • Runs on PHP 8.2+ and MySQL 8, on Apache or nginx — ordinary hosting, including cPanel
  • Deployment Your own server or your own cloud account. No vendor tenancy, no per-seat lock-in
  • Install Guided installer, or a post-install script when the database already exists
  • Languages English, Portuguese, Spanish and French throughout the interface
  • Branding Product name, logo, palette and footer are configuration — ready to white-label
  • Data Standard MySQL. Export it, back it up, query it. It is your database

Capabilities

What clinicians actually get

The chart covers the sections a working practice needs on day one, with specialty modules switched on per practice.

Scheduling

Day and week views on a slot grid, booking straight from the calendar, confirmation before any cancellation, and a front-desk visit flow from arrival to checkout.

Encounters and notes

Clinical encounters with notes, attachments and audio, separate from the operational visit record — so phone calls and imported history are still real encounters.

Coded diagnoses

A problem list coded against a loaded ICD-10 vocabulary of 71,000 terms, with live search by code or description. Unknown codes are refused, not silently stored.

Allergies that can't be missed

The allergy banner shows on every clinical screen, and an empty list never reads as "no allergies" — it reads as not yet assessed until somebody states otherwise.

Document archive

Scans and legacy files stored under random identifiers in dated folders, each fingerprinted on arrival so you can prove a document has not been altered since.

Vitals, labs and medications

Recorded as first-class data rather than free text, so results trend over time and feed practice reporting instead of sitting in a note nobody can query.

Migration from your old system

Import CCD files from a folder in bulk, with everything staged and reviewed before it touches a chart. Anything doubtful is quarantined, not merged.

Access you can account for

Role-based permissions per module, two-step verification for staff, emergency override where clinical need demands it — and every one of those events on the record.

Full feature list, module by module →

Inside the product

A look at the interface

Screens from a running installation with demonstration data.

Screenshot slot: the day schedule with booked appointments

assets/img/clinician-schedule.png

Clinician portal — the day schedule

Screenshot slot: a patient chart with the allergy banner

assets/img/clinician-chart.png

Clinician portal — patient chart

Screenshot slot: the user management screen

assets/img/admin-users.png

Admin portal — users and roles

More screens from all three portals →

Security posture

Designed for records you are answerable for

Health records carry obligations, and a system that treats security as a later phase makes those obligations impossible to meet. gridEHR was built the other way round: the protections below are structural, not settings somebody has to remember to switch on.

Regulatory compliance always depends on how a system is deployed and operated. We can walk your technical team through the architecture and what your side of that work involves.

  • At rest Identifying fields encrypted individually, with integrity protection — a database copy alone does not reveal them
  • Sign-in Modern password hashing, lockout after repeated failures, time-based two-step codes with single-use recovery codes
  • Permissions Roles grant view, add, edit and report rights per module; portal membership is checked before any of it
  • Audit An append-only log of sign-ins, chart access, overrides and administrative changes
  • Sensitive care Mental health notes are held apart and never merge into general correspondence
  • Documents Unguessable filenames, no patient details on disk, checksums verified on a schedule

Next step

See it running with your own workflow in mind

Tell us how many practices you run and what you are moving from. We will show you the portals, walk through migration from your current system, and answer the hosting questions your IT team will ask.

Request a demo