Smart Lab — Laboratory Information System
A Windows desktop system that runs a medical lab end to end: reception, analyzers, results, billing and reports.
OverviewWhat this project is
Smart Lab is a desktop application that medical laboratories use to run their day: registering patients and visits, printing barcoded tubes, receiving results from analyzers, validating and printing reports, and tracking payments, insurance, expenses and stock. It works in Arabic, English and Turkish.
ContextThe problem
The previous version had grown screen by screen. Reception needed many clicks to register a visit and find earlier results, settings were scattered, and analyzer results were typed in by hand. The company needed a faster, consistent interface and a codebase that could keep growing.
ContributionMy role & responsibilities
I owned the redesign end to end: I mapped the lab workflow with the team, designed the new interface in Figma (reception, results entry, work tables, control panel, printed A4 reports) and led the rebuild of the Vue frontend and the backend services behind it.
- Workflow mapping and UX design with lab staff
- Design system and all key screens in Figma, RTL first
- Vue 2 + Vuetify architecture: routing, Vuex stores, vue-i18n (ar/en/tr)
- Node.js/Express + Sequelize API for patients, visits, tests, accounting and settings
- Analyzer integration and Windows packaging with Electron
ScopeKey features
- Reception: search by name, code or barcode; visit history; one-screen registration
- Results entry with reference ranges by sex and age, notes and validation
- Work tables per lab section showing ready and pending tests
- Analyzer connections (e.g. Mindray, Immulite) configured from the control panel
- Invoices, receipts, partial payments, insurance companies and associations
- Expenses, daily accounts, statistics dashboard and inventory
- Per-page permissions (view, add, edit, delete) for each role
- Printed A4 reports; results shared as PDF or via WhatsApp
- Scheduled compressed database backups with restore
SystemArchitecture
Electron shell → Vue 2 SPA (Vuetify · Vuex · vue-i18n)
↓ HTTP on localhost / LAN
Node.js + Express API (~60 controllers, Sequelize models)
↓
MySQL on the lab PC or a LAN server
Analyzers → ASTM / vendor parsers → results tables EngineeringChallenges & solutions
Every analyzer model sends results in its own format.
Per-device parsers (ASTM and vendor formats) behind one interface, configured from the control panel, so a new analyzer is added without touching the results screens.
Reception must stay fast during the morning rush, with Arabic text mixed with Latin test names.
A single reception screen — patient list, search and visit form side by side — keyboard friendly, RTL first, with bilingual test names.
Labs run on local PCs where losing data is not an option.
Local MySQL with scheduled compressed backups and a restore tool in the control panel.
Shipping a web stack as a desktop product.
The Vue app and the Node backend are packaged together with Electron into a Windows installer.
OutcomeResults
- Used by 20+ laboratories (company figure).
StackTech stack
Technology
- Vue 2
- Vuetify
- Vuex
- vue-i18n
- Electron
- Node.js
- Express
- Sequelize
- MySQL
- Figma
Tags
- desktop
- healthcare
- RTL
- hardware integration
- UI/UX
GalleryMore screens
NotesAdditional notes
Smart Lab is owned by the client; screens shown are design files and screenshots without patient data. Source code is private.