All case studies

Case Study · Platform Development and Maintenance

O Lab Plus We develop and maintain the platform an optical lab runs on

O Lab Plus is an independent optical laboratory in Brossard, Québec, serving eyecare clinics since 1987. We develop and maintain the platform its orders run through, improved the speed and quality of delivery, and continue to maintain it with each release.

The O Lab Plus website
Client
O Lab Plus
Sector
Optical laboratory
Engagement
Development and maintenance
Status
Ongoing mandate

The client

The platform runs the whole lab

O Lab Plus has cut and mounted lenses for eyecare clinics in Brossard since 1987. Every order arrives through the platform, which also tracks production, handles clinic messages and issues the invoices.

  • Order intake
  • Production
  • Frame logistics
  • Inventory
  • Billing
  • Client portal

The central constraint

A lens cannot be cut until the right frame is on the bench.

That dependency shapes the frame dashboard, the waiting status and the delay report, which withholds a date rather than guessing one.

The order path

How an order moves

Each state matches a real step at the bench, which is the level of detail the lab needs to tell a clinic where its order is.

Draft

Started by the clinic, not yet sent.

To verify

The lab checks the Rx and lens build.

In progress

Accepted and in production.

Uncut production

Lenses surfaced, not yet cut.

Cutting and mounting

Cut to the frame and mounted.

Finishing

Final checks.

Shipping

Left the lab, on the way to the clinic.

Invoiced

On the clinic's statement.

Frame on hold

The order waits here for its frame, and no delivery date is shown until the frame arrives.

Remake

The job runs again and is counted separately, so rework does not inflate the month's production numbers.

Inside the admin

What the lab works in

One console holds every order, and clinic messages sit on the same screens, attached to the order they concern.

Every order, and every exception, on one screen

Production runs from this console. Exceptions appear as counters along the top instead of filters someone has to remember, so the orders that need attention are visible before anyone searches.

On this screen

  • Counts of drafts, orders to verify, and frames with no order
  • Search by order, invoice, patient or account
  • Bulk status change, so a finished tray moves in one action
  • Scan mode at the bench, a late-only filter, exports by period
The admin order console: a global search with PDF import, counters for drafts, orders to verify and frames without an order, supplier and report actions, quick controls with a scan-mode toggle and bulk status change, advanced filters, and the order table below.

Every message sits on the order it is about

Each clinic question concerns one job, so the thread opens with that job's account, status, frame, both delay dates and shipping date beside it, and staff can answer without looking the order up.

On this screen

  • Order context above the thread, read from the order
  • Lab and clinic messages in one thread, with times
  • Quick replies for the answers that repeat
  • A flag on threads still waiting for the lab
The client messages screen: a list of conversations with an À répondre flag, the order context for the open thread showing account, status, frame, internal and external delay and shipping date, the lab and client messages in order with timestamps, six quick-reply buttons and a message box.

New business lands in the same inbox

The public contact form writes into the Prospects tab, beside the client threads. When the lab takes a clinic on, one button turns the request into an account, so a new client is never entered twice.

On this screen

  • Requests arrive in the same inbox as client messages
  • Role, date and the request itself on every card
  • Reply by email, or reopen a request marked as handled
The Prospects tab of the messages screen: account requests from the public contact form, each with the sender's role, the date, the message, a Traité status and buttons to reopen, reply by email or create the account.

Stock ordered, then reconciled

Every supplier order carries a status, and each row shows how much has arrived, such as 5 of 5 or 0 of 7, so a partial delivery is visible without opening the order.

On this screen

  • Counters for draft, sent, partial, received and cancelled
  • Received quantities per order, beside the status
  • A reorder list generated from stock levels
The purchase orders screen: buttons to generate a reorder list and create a purchase order, five status counters for draft, sent, partial, received and cancelled, and a table of orders showing supplier, status, received-versus-ordered quantities with a progress bar, total, order date and per-row actions.

This is a demonstration environment, not production. Every clinic, patient name, prescription and figure is invented. No O Lab Plus customer, patient or supplier appears on this page.

The clinic side

What clinics see

Clinics use a smaller view of the same platform, and every question it answers is a phone call the lab does not have to take.

Ordering means dictating a prescription

An order specifies a lens the lab has to be able to make. The clinic enters it across 3 tabs with a live summary beside them, so the full order can be checked before it is sent.

On this screen

  • Prescription per eye: sphere, cylinder, axis, addition
  • Lens design, index, treatment, thickness, base curve, tint
  • Required fields set by the lens type chosen
  • Prescription orders and stock orders kept apart
The clinic order form on the lens tab: order type, lens design, index, treatment, extras, thickness and base curve, pupillary distances and segment heights with required-field warnings, tint colour and density, and a live order summary panel listing the prescription and lens details.

Clinics are notified before they ask

The clinic is notified whenever an order changes state, including delays. A delivery date pushed back by 3 working days is stated plainly in the notification, so nobody learns about it on a phone call.

On this screen

  • Frame waiting, delivery date revised, shipping date pending
  • Order ready, frame received, lab closed for a holiday
  • An unread count, mark as read, and dismiss
The clinic notifications screen: tabs for all and unread with counts, and a list of notifications — frame awaited, delivery date revised, shipping date pending, order ready, frame received and a lab closure — each with an icon, a plain-language sentence, how long ago it arrived, and controls to mark read or delete.

Other modules

Tracking, billing and reporting

These modules get less attention than production, but billing, stock and audit records have to be exact.

Frame tracking

Who is waiting on a frame, how long they have waited, and whose delay it is.

Statements & aging

Gross, discount, net, payments and balance per clinic, with aging across 5 buckets.

Inventory

Stock levels, shelf locations, below-minimum warnings and reorder recommendations.

Reports

Delay risk, shipping manifests, print lists and supplier anomalies, generated on demand.

Email & audit

Every email sent, an inbound triage queue, and a trail on every report.

Public site

The lab's product pages, with a contact form landing in the same inbox as client messages.

How we work

We develop the platform and maintain it with each release

We learned how the lab works, improved the speed and quality of development, and have continued to improve the platform with each release.

  1. Learn the work

    Before development
    • We watched the lab cut and mount lenses, and asked why each step exists
    • We documented the unwritten rules, such as a lens that has to wait for its frame
  2. Build it in pieces

    One module at a time
    • Order intake first, then production, frames, billing and the clinic portal
    • Each module went into real use before we started the next one
  3. Launch it safely

    Go-live
    • Prescriptions and patient names are health data, so each clinic reaches only its own
    • We tested the paths that fail: a supplier file that will not import, a frame that never arrives
  4. Keep it running

    Ongoing, no end date
    • We review every significant change before it reaches the lab
    • New modules land on a platform we maintain, so nobody has to guess how it works

The result

Where it stands

Prescription to invoice on one platform, developed for a lab in business since 1987 and updated with each release

For the lab

Production, frames, billing and every clinic conversation on one record.

For its clinics

Their own orders, and a clear status on a late frame, with no delivery date promised until it can be met.

Next

New modules land on a platform we maintain. We review risky changes before they ship.

Your turn

Custom platforms for your operations

Off-the-shelf software rarely fits a business with its own way of working, and in that case we build a platform around how the business operates.

We learn the work first

Rules such as a lens waiting for its frame rarely appear in a brief, so we observe the work on the floor before we design anything.

We build it in pieces

Each module goes into real use before the next one starts, so you see the platform working early in the project.

Then we keep it running

After launch we stay on the project, reviewing every significant change and building the modules that come next.

Discuss your platform with the team

Describe the work, the people who do it and the tasks your current software cannot handle. We will tell you what we can build and what it will cost.

Have a project in mind?We build it and keep it running.

Book a call