Vialtrek is booking software for one diagnostic lab or lab chain. Patients book blood tests and health packages for a home collection or a walk-in visit, collectors run the day from a phone, the lab receives and processes the tubes, and pathologists authorise reports that patients read on the web or in the app. It is built by DEV3 Technologies on Laravel 12 and Filament 4, with two Flutter apps (patient and collector) whose source is included.
What it does
- Catalogue and packages. About 145 demo lab tests with specimen, tube, preparation, fasting hours and turnaround, grouped into health packages. Money is in integer minor units with tax per line.
- Home-collection zones and slots. Zones are postcode lists or polygons with days, hours, slot length, seats per slot, a collection fee, a minimum order and a cut-off. A seat is held for ten minutes while the patient pays, so two people never take the last slot.
- Collector runs. Bookings are planned into runs by slot window and distance, published to the collector, and shown on a simple live map with ETAs and late flags. Location is shared only while a run is active.
- Barcoded chain of custody. The booking computes the tube set; collectors scan each tube, log the cool-box temperature, and hand tubes over to the lab with a code. Every step is a custody event, and rejected tubes create recollect bookings.
- Lab desk. Reception scan page, accessioning, worklists, result entry or CSV import, delta checks, critical-value call log and pathologist review with authorise and amend (with a reason).
- Reports. Signed PDF reports with the lab's own reference ranges, flags with a word beside every colour, trends across visits and a QR code that opens a verification page.
- Referrals and refunds. Doctor and corporate referrers with rate cards and commission statements in their own portal, coupons, and refunds per cancelled test or whole booking, with the cancel fee rules you configure.
- Health-data controls. Results, call logs, consent names and prescription notes are stored encrypted. Every read of a result or report is written to an append-only access log that the patient can read. Minors are booked by a guardian account. Report links are signed and expire.
- API and apps. A key-based REST API with an OpenAPI document and signed webhooks, plus the app API used by the patient and collector apps.
The Flutter apps
The patient app (apps/patient) covers sign-in, test search, a basket for yourself or a family member, address check, slot hold, payment, visits, a live track screen, reports with trends, family members, prescriptions and a "who opened my reports" list. The collector app (apps/collector, dark first) covers today's run, the visit steps (arrive, identity and fasting check, consent with a signature, tube scans, temperature, payment), hand-over and an offline queue that stores actions encrypted on the phone and sends them in order when the signal returns. Both start in demo mode; each has a store-publishing guide in docs/STORE-PUBLISHING.md.
Quality checks
The release passed seven gates on the final code: Larastan level 6 with 0 errors, a Pest suite of 434 tests, a build well inside the page budget, migrations and the full demo seed on MySQL 8 and SQLite, a headless smoke test over 55 pages plus MySQL race checks (last slot in a zone, parallel holds, double scans, double authorisation, parallel cancels), the installer driven from the zip, and a secret scan. A consistency command (vialtrek:check) proves bookings, tubes, custody events, results and reports agree on the demo data of about 4,200 bookings.
What you should know before buying
- For one lab or lab chain with collection centres and home-collection staff. It is not a marketplace for many labs.
- The software does not diagnose. Results are entered or imported by your staff and authorised by your pathologists. Reports print only the ranges and comments your lab configures.
- No analyser or LIS interfaces (HL7 or ASTM) in this version. Results come from manual entry or CSV import.
- No certification is claimed. Vialtrek does not claim HIPAA, GDPR, NABL, CAP, CLIA or ISO 15189 compliance. You are responsible for health-data law where you operate, for your retention rules and for your own privacy notices.
- Simulated drivers by default. Payments, refunds, SMS and push run on simulated drivers until you connect your own; you are the merchant of record.
- Maps use a stylised drawing until you add map tiles; zones use postcodes or a pin, with no geocoding service. Collector location is kept 90 days by default and is configurable.
- Report PDFs use DejaVu Sans (Latin, Cyrillic, Greek; no Arabic shaping) and need
memory_limit of 256M or more. History reports in the demo have content but no PDF.
- Walk-in booking is web-only in this version; the apps book home collections.
- Flutter apps. Source and a store-publishing guide are included; building, publishing and store approval are your step. The apps were verified in simulator builds, automated tests and against the live API, not on a physical device; the camera scanner, location, secure storage and local database have no device QA.
- Use MySQL or MariaDB for a live site; the concurrency checks were run on MySQL 8. One cron entry every minute is required.
Gemini AI admin tools
Optional, bring your own key: add your own Gemini key after purchase (Google bills your account); with no key the AI buttons say "Add your Gemini key in Settings". Every result is a draft you preview and edit; nothing is saved, released or sent automatically.
- Report summary drafts for the pathologist, anomaly flags and a plain-language explanation of a report (each read is written to the access log).
- Booking and refund reply drafts, next-step suggestions and booking checks.
- Ask in plain words: natural-language search on the bookings list.
- Sample rejection reason drafts and critical-call note drafts.
- Run anomaly flags, collector workload and zone set-up checks, dashboard explanation.
- Catalogue writer for preparation text, test names and package descriptions.
- A Google Translate language switcher in the public header and admin bar.
Health data is de-identified before any call: no names, birth dates, contact details, addresses, booking numbers or tube barcodes leave your server. You remain responsible for your own health-data law and your agreement with Google.
Included
Source code, the web installer, the patient and collector Flutter app source with store-publishing guides, a buyer guide, demo data for a fictional lab (two labs, five centres, home-collection zones, 145 tests, 24 packages and a year of about 4,200 bookings) and six months of support.