Skip to content

About

Free, open-source eye exam record (EHR) for optometry and ophthalmology. Offline Windows app: fast shorthand and touch entry, slit lamp and fundus drawings, refraction and Rx, glaucoma flow sheet, ICD-10/ICD-11 codes, FHIR export, 6 languages. Pre-release 0.1.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

OpenVision logo

OpenVision

A free, open-source eye exam and eye-care records app for optometrists and ophthalmologists.

Download for Windows (version 0.2.0, 64-bit, Windows 10 or 11)  |  How to install  |  See screenshots

OpenVision is a standalone electronic record for eye clinics: patients, visits, a full eye exam, glasses prescriptions, reports and a glaucoma flow sheet. It is built for small practices: fast enough for a busy clinic, light enough for an old office PC, and usable with a mouse, a keyboard or a tablet and pen. It runs as an offline Windows app (or in a browser on the same computer), speaks 6 languages (English, Spanish, French, Arabic, Chinese and Hindi), and is free and open source under the Apache-2.0 licence. Optional extras (AI drafting, imaging) are planned for practices that have the hardware.

Inspired by the well-regarded OpenEMR Eye Exam form (eye_mag), rebuilt from scratch with a modern, tablet-first design.

Pre-release (version 0.1). Do not use OpenVision with real patient data until a practising eye-care professional has reviewed it. OpenVision does not encrypt its database yet; see docs/SECURITY.md.

A quick tour

All names and clinical data in these screenshots are fictional (the built-in demo data plus a few made-up visits).

Patient list Patient chart
Patients. Search by name, MRN or date of birth; open the exam or print in one click. Chart. Demographics, allergies, a new visit in one row, and every past visit.
Slit lamp exam with quick picks Refraction
Slit lamp. Shorthand bar at the bottom previews bc:tr pinguecula nas before you press Enter; quick picks on the right. Refraction. Current glasses, manifest, cycloplegic, autorefraction and contact lenses, with transpose.
Exam drawing Impression and plan with the code finder
Drawings. Draw on eye templates with a mouse, touch or pen; saved with the visit and printed on the report. Impression / plan. The builder suggests items from findings and history; the code finder searches ICD-10-CM or ICD-11.
Glaucoma flow sheet Printed exam report
Glaucoma flow sheet. IOP by date against the target, optic discs, gonioscopy and eye medicines. Report. A printable exam report (or Save as PDF) with findings, drawings and the coded plan.
Glasses prescription The exam in Spanish
Glasses Rx. A printable spectacle prescription; printing keeps a dispensed history. Spanish. Every screen is translated; each user picks their own language.
The exam in Arabic, right to left ICD-11 search with WHO Spanish titles
Arabic, right to left. The layout mirrors, but OD stays on the viewer's left, as at the slit lamp. ICD-11 in your language. The code finder shows WHO's official titles, here in Spanish.
First-run setup Exam on a tablet
First run. Create the admin account, pick the language and code set, and accept the terms. Tablet. Portrait layout with large touch targets.
Dark mode The Windows desktop app
Dark and dim-room modes for darkened exam rooms. Windows app. The same app in its own window, working offline on the clinic PC.

What it does

Status: early (0.2.0). Still to come: database encryption at rest, see docs/SECURITY.md.

Patients and history

  • Patients and visits: create, search, chart, new visit.
  • Allergies are explicit: "not recorded", "no known allergies" (who confirmed and when) or a list.
  • Past history: eye and medical problems, surgeries, eye and other medications, allergies, family and social history, with an editor, summary and shorthand (poh:dry eye; all:penicillin rash).
  • Documents and images per patient and exam area, visual-acuity history, and a glaucoma flow sheet with IOP targets.

The exam

  • HPI: three complaints, elements, chronic problems fed from history, Limited/Detailed hint; review of systems.
  • Vision (acuity, Amsler); IOP, pupils and confrontation fields.
  • Refraction: current glasses, manifest, cycloplegic, autorefraction, contact lens, transpose; printable spectacle and contact-lens Rx with dispensed history.
  • External, slit lamp, fundus, and neuro (motility, alternate cover test with builder, color, stereo, NPC, amplitudes).
  • Drawings: own canvas, touch and pen, versioned autosave, prior drawings.
  • Fast entry: shorthand, normal defaults, copy between eyes, per-provider quick picks, prior visits with copy forward, undo, autosave.
  • Light, dark and dim-room modes.

Impression, plan and codes

  • Impression/plan builder from exam findings and history, with ICD-10-CM FY2027 or WHO ICD-11 code search (chosen per practice), orders and next visit.
  • Code suggestions are a billing aid only; OpenVision never bills. It suggests eye-visit or office-visit codes with their reasons, modifiers, justifiers and tests performed; chosen codes print on the report for your billing system; US code suggestions can be switched off.

Reports and sharing

  • Printable exam reports, one or many visits (Save as PDF).
  • CSV and FHIR R4 export (with the impression/plan as Conditions).
  • A Download menu in the exam (PDF or FHIR, to add the visit to another chart).

Accessibility

  • Tooltips on every button, and a plain-English name for every abbreviation (hover, Tab to it, or press and hold).
  • Text size up to 200% per user, plus high contrast (Windows high contrast mode) and a dim-room mode (Shift+D) that shows drawings dimmer without changing them.
  • Works by keyboard alone, with one Tab stop per group of buttons; ? or F1 in the exam lists every key and shorthand code.
  • Shorthand suggestions while you type, with "did you mean" for typos.
  • Labels for screen readers, including which values are defaults or copied from a prior visit.
  • My settings: Text size, Show tooltips, Show the tour again, and Keep undo messages visible for (10 s, 30 s or until closed).

Safety and administration

  • Exam locking while someone edits; final electronic signing with addenda.
  • Sign-in with roles (admin, provider, technician), automatic logoff, and an audit log of sign-ins and chart views.
  • Practice settings, users, per-user preferences and quick-pick editing.
  • 6 languages, including right-to-left Arabic.
  • A Windows desktop app (installer, automatic updates with a backup first).

Install on Windows

  1. Download OpenVision-Setup.exe (about 115 MB). This is version 0.2.0; every version and its release notes are on the Releases page.
  2. Double-click the file and allow it to make changes (it installs for everyone on the computer, so it needs an administrator).
  3. The installer is not code-signed yet, so Windows may say "Windows protected your PC". Click More info, then Run anyway. Only do this for a file downloaded from the link above.
  4. Read and accept the data safety notice and the Terms of Use (see also the Privacy Policy).
  5. Open OpenVision from the Start menu. The first screen creates your administrator account, then offers to download your diagnosis codes.

Your data stays on this computer in C:\ProgramData\OpenVision, and only the Windows group OpenVision Users can open it. OpenVision does not encrypt its database yet, so turn on BitLocker. Updates arrive automatically, with a backup taken first (also when you install a newer version by hand). Adding other Windows users, updates and uninstalling: desktop/README.md.

Check your download (optional). Each release lists the file's SHA-256 fingerprint in SHA256SUMS.txt. In PowerShell, Get-FileHash .\OpenVision-Setup.exe prints the fingerprint of your copy; the two should match.

Developers: npm install, npm --prefix desktop install, then npm run desktop:dev (opens the app in Electron, data in data\desktop) or npm run desktop:dist (builds desktop\dist\OpenVision-Setup.exe).

Try it in a browser

Requires Node.js 24 or newer. Uses Node's built-in SQLite, so there is nothing native to compile.

npm install
npm run build
HOST=127.0.0.1 PORT=3000 BODY_SIZE_LIMIT=20M node build    # PowerShell: $env:HOST='127.0.0.1'; $env:PORT='3000'; $env:BODY_SIZE_LIMIT='20M'; node build

Open http://127.0.0.1:3000. A fresh install creates data/openvision.sqlite with two fictional patients and three demo accounts, all with the password openvision-demo: demo-provider, demo-tech and demo-admin. Set OPENVISION_DB to store the database elsewhere. When a newer version needs to upgrade the database, it first writes a copy to backups/pre-migrate-...sqlite beside the database (or to OPENVISION_BACKUP_DIR) and keeps the newest 5; if the copy fails, it does not upgrade or start. Set OPENVISION_DEMO=0 before the first start for an empty install; the first visit then asks you to create the admin account. Locked out? node scripts/reset-admin.mjs <admin username> on the server gives an admin a temporary password. Diagnosis codes are not part of the package: an admin downloads the practice's code set (ICD-10-CM or WHO ICD-11) in Settings > Code sets, or imports the official file on a computer without internet (see codes/README.md).

Not for real patients yet. Version 0.2.0 is a pre-release until a practising eye-care professional has reviewed it, and OpenVision does not encrypt its database. Keep the browser build bound to 127.0.0.1, and read docs/SECURITY.md.

Development: npm run codes:fetch (once, downloads the diagnosis code sets into the git-ignored codes/), then npm run dev, npm test, npm run check.

In the exam: press Alt+K for the shorthand bar, then try das; rc:1+ inj; lk:tr spk.a and Enter. Keys 1-0 switch sections (5 External, 6 Slit lamp, 7 Fundus). F1 (or ? outside a text box) lists every key and shorthand code. The Quick picks and Prior visits buttons open a helper panel; the demo patient Jordan Demo has two earlier visits to copy from. Print (or Ctrl+P) in the exam prints the report; All encounters & printing on the home page prints or exports many visits at once: CSV (one row per visit, for spreadsheets) or FHIR R4 (a Bundle of Patient, Encounter, AllergyIntolerance and Observation resources, for other EHR systems).

Docs

License: Apache-2.0. Copyright 2026 Jamal Adrien and OpenVision contributors (see NOTICE). This is a clean-room project: OpenEMR eye_mag (GPL-3) is used only as a feature reference. See docs/DECISIONS.md and CONTRIBUTING.md.

About

Free, open-source eye exam record (EHR) for optometry and ophthalmology. Offline Windows app: fast shorthand and touch entry, slit lamp and fundus drawings, refraction and Rx, glaucoma flow sheet, ICD-10/ICD-11 codes, FHIR export, 6 languages. Pre-release 0.1.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages