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.
All names and clinical data in these screenshots are fictional (the built-in demo data plus a few made-up visits).
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;
?orF1in 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).
- Download OpenVision-Setup.exe (about 115 MB). This is version 0.2.0; every version and its release notes are on the Releases page.
- Double-click the file and allow it to make changes (it installs for everyone on the computer, so it needs an administrator).
- 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.
- Read and accept the data safety notice and the Terms of Use (see also the Privacy Policy).
- 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).
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 buildOpen 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 readdocs/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).
- How and why it was built:
docs/PROJECT.md - Changes by version:
CHANGELOG.md - Design decisions:
docs/DECISIONS.md - Terms of Use and Privacy Policy
- Security and what the clinic is responsible for:
docs/SECURITY.md - Windows desktop app:
desktop/README.md - Design direction:
docs/design/DESIGN.md - Design tokens:
src/lib/styles/tokens.css - Clickable exam-screen preview: open
docs/design/preview.htmlin a browser (all data fictional)
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.















