Documentation

How LabPilot works, task by task. The chapters below are the same manual your staff open inside the product under How to, followed by the technical detail for connecting other systems.

Setting up a new laboratory? Start with the onboarding guide, which puts these tasks in the order to do them.

Front desk

Everything between somebody walking in and the bench having something to work on — plus the money.

Register a patientCreate the record everything else hangs off.
  1. Open Patients and search first — by name, phone or MRN. Most people who feel new are returning.
  2. If there is no match, choose New patient.
  3. Enter the full name, date of birth and sex. These three are not cosmetic: age and sex select the reference ranges every result on every future report is compared against.
  4. Add phone and address if you have them. The phone is what report-ready and payment-due messages go to.
  5. Save. The record is given an MRN, which is the number to quote on everything afterwards.

Good to know

  • Getting date of birth or sex wrong produces results that are flagged high or low against the wrong range. It is the single most consequential field on the screen.
  • Registering the same person twice splits their history, so delta checks stop comparing against the right previous result. Search properly before creating.

Screen: /patients · Needs patients.manage

Issue a patient cardPrint a card carrying the MRN so a returning patient is found instantly.
  1. Find the patient on Patients, open the ⋯ menu on their row and choose Patient card.
  2. Choose Issue card. A card number is minted and tied to this record.
  3. Print and hand it over. Next visit, the card number finds them without spelling a name.

Screen: /patients · Needs patients.issue_card

Correct a patient's detailsFix a misspelt name, a wrong date of birth or an out-of-date phone number.
  1. Find the patient on Patients.
  2. Open the ⋯ menu on their row and choose Edit details.
  3. Change what is wrong and save. The audit log records which fields changed and who changed them.

Good to know

  • Date of birth and sex select reference ranges. Correct them before results are entered — reports already issued are not rewritten by an edit.

Screen: /patients · Needs patients.manage

Archive or restore a patientTake someone off the patient list without losing a single report.
  1. Open the ⋯ menu on the patient's row and choose Archive, then confirm.
  2. They leave the list and can no longer be picked for a new order. Their orders, results and reports stay exactly where they were, and are still found by searching Orders.
  3. To bring someone back, open the Archived tab, find them, and choose Restore from the same menu.

Good to know

  • An archived patient still holds their MRN and national ID, so registering them again fails on the duplicate. Searching Patients tells you when an archived record matches — restore it instead.

Screen: /patients · Needs patients.archive

Delete a duplicate patientErase a record that should never have been created.
  1. Open the ⋯ menu on the patient's row and choose Delete permanently.
  2. Type the patient's name to confirm. The record is erased and cannot be recovered.

Good to know

  • Only a patient with no orders can be deleted. Once anything has been ordered, the reports behind it are records the laboratory must keep — archive the patient instead.
  • Deleting is for duplicates and mistaken registrations. Archiving is the everyday way to take somebody off the list.

Screen: /patients · Needs patients.delete

Import patients in bulkLoad a list from a spreadsheet instead of typing it.
  1. Open Patients then Import.
  2. Download the template so your columns match what the importer expects.
  3. Upload the completed file. Rows are validated before anything is written.
  4. Read the preview. Anything rejected is listed with the reason, and the rest still imports.

Good to know

  • Check the date format in your spreadsheet before uploading. A column that Excel has quietly reformatted is the usual cause of a whole file being rejected.

Screen: /patients/import · Needs patients.bulk_import

Take an orderBook a walk-in from start to receipt on one screen.
  1. Open Orders and choose New order.
  2. Find the patient by name, MRN, phone or email. If they are not there, choose New patient (or press Enter when nothing matches) and enter their name, phone, sex and age. They are registered when the order is saved.
  3. Add the tests. Search by name or code; a package adds all of its tests at once, and more tests can be added to it. A package's own tests cannot be taken off one by one.
  4. Set the priority. A STAT order is measured against a much tighter turnaround target and shows differently on the worklist.
  5. Name the referring doctor if there is one. This is what drives their commission later, so it matters to the accounts as well as to the report.
  6. Payment starts at Full, in cash. Switch to Part or Pay later, or another payment mode, if that is not what is happening. Add discount is under the payment heading for anyone allowed to give one.
  7. Save, or press Ctrl+Enter. The order and its invoice are raised, the payment is recorded, and the receipt opens to print. The form clears for the next patient, with the saved order shown above it.

Good to know

  • Age is turned into an estimated date of birth, which is enough to pick an adult's reference ranges. For a baby, or anyone whose exact date matters, use the full registration form, linked from New patient.
  • Clinical context, travel, donation, the collection centre and notes are under More details. Most orders need none of them.
  • Prices come from the test catalog at the moment the order is taken, so a later price change does not rewrite an order already placed.
  • A reflex rule may add a follow-up test automatically once a result comes back. That test appears on the order afterwards and is billed then, not now.

Screen: /orders · Needs orders.create

Collect paymentTake money still owed on an invoice and give the patient a receipt.
  1. Open Collections. Outstanding invoices are listed with what is still owed.
  2. Find the invoice — by order number, patient name or invoice number.
  3. Choose Collect payment.
  4. Enter the amount and the method. A part payment is fine: the balance stays on the invoice and the order remains payable.
  5. Save. The payment posts to the ledger and the invoice balance drops.
  6. Print the receipt from the invoice if the patient wants one.

Good to know

  • A walk-in normally pays on the New order screen as the order is saved. This is for what is left: a part payment, a pay-later, or a bill settled on collection day.
  • If your laboratory has the payment gate switched on, the bench cannot key results for this order until the balance reaches zero. That is the setting to check when a technologist says an order will not let them enter anything.
  • You cannot reduce a bill by collecting less than it says. Discounting is a separate, administrator-only action so that a shortfall is always a decision somebody made rather than a number somebody typed.

Screen: /billing · Needs billing.collect

Discount, void or refundChange what an invoice says after it has been raised.
  1. Open the invoice from Collections.
  2. To reduce it, choose Apply discount, enter the amount and pick a reason. Reasons come from Master Data, so the choices are the ones your laboratory has agreed on.
  3. To cancel it entirely, choose Void. State why — the reason is kept.
  4. To reverse a payment already taken, void the payment rather than the invoice.

Good to know

  • Voiding never deletes. The original invoice and payment stay readable and the reversal is posted alongside them, because the accounts have to reconcile against what actually happened.
  • A voided invoice does not block result entry under the payment gate. Deciding not to charge is not the same as an unpaid bill.

Screen: /billing · Needs billing.discount

Release results on an unpaid orderLet the bench work an order that has not been settled.
  1. Open the order.
  2. Choose Release results and give the reason — a credit arrangement, an insurance panel, a clinical urgency that will not wait for the cashier.
  3. The bench can now enter results against it. The balance is unchanged and still shows as owed.

Good to know

  • This releases one order, not the laboratory's policy. To stop gating everything, switch the payment gate off in Lab Settings instead.

Screen: /orders · Needs billing.release_results

Book a home collectionSend a phlebotomist to the patient instead of the other way round.
  1. Open Home Collection and choose New visit.
  2. Pick the patient and confirm the address and phone.
  3. Choose the slot. The patient is messaged the scheduled time.
  4. Assign a collector so the visit appears on somebody's list.
  5. When the collector returns, mark the visit complete and book the specimens in.

Screen: /home-collection · Needs home_collection.manage

Specimens and labels

The chain from drawing a sample to it being accepted at the bench. Where most avoidable rework starts.

Collect and book in a specimenRecord that the sample exists and where it is.
  1. Open the Specimens desk.
  2. Scan or enter the accession number.
  3. Mark it collected, with the time. Turnaround is measured from here, not from when the order was taken.
  4. Record the storage location if your laboratory tracks one.

Screen: /specimens · Needs specimens.manage

Receive a specimen at the benchAccept a sample into the laboratory's custody.
  1. Scan the tube on arrival.
  2. Check it against what the order expects — right container, adequate volume, intact.
  3. Mark it received. It now appears on the worklist for its tests.

Screen: /specimens · Needs specimens.receive

Reject a specimenRefuse a sample that cannot give a trustworthy result.
  1. Open the specimen and choose Reject.
  2. Pick the reason — haemolysed, clotted, insufficient, wrong container, unlabelled.
  3. Save. The front desk is notified so the patient can be recalled.

Good to know

  • Reject early and explicitly. A borderline sample resulted anyway produces a number somebody will act on clinically, and the rejection reason is the record of why no result was issued.

Screen: /specimens · Needs specimens.reject

Dispose of a specimenClose out a sample that has passed its retention period.
  1. Filter the Specimens desk to those past retention.
  2. Select them and choose Dispose, which records who disposed of them and when.

Screen: /specimens · Needs specimens.dispose

The bench

Getting numbers against tests, whether typed by a person or filed by an analyser.

Work the worklistSee what is waiting, and claim it.
  1. Open Result Worklist. Everything received and not yet resulted is here.
  2. Filter by department or by test to get to your bench.
  3. Sort by priority so STAT work and anything near its turnaround target surfaces first.
  4. Assign rows to yourself or a colleague so two people do not run the same sample.
  5. Print a worksheet if you are working away from the screen.

Screen: /worklist · Needs worklist.view

Enter resultsRecord the measurements against the order.
  1. Open the order from the worklist.
  2. Enter the value for each test. Multi-parameter tests expand into their analytes.
  3. Read the flag beside each value. High and low are computed against the reference range for this patient's age and sex, not a single fixed range.
  4. Add an interpretation or comment where the number alone is not the finding.
  5. Save. The results are now waiting for verification — they are not yet on any report.

Good to know

  • If the screen refuses to accept entry, check three things in order: the payment gate on an unpaid order, a QC block on the analyte, and whether the specimen was actually received.
  • A delta check warns when a value has moved a long way from this patient's own previous result. It is a prompt to confirm, not an error — but confirm before saving.
  • Entering a critical value raises an alert immediately, before verification. Somebody has to acknowledge it.

Screen: /worklist · Needs results.enter

Handle incoming analyser resultsDeal with what the machine sent that did not file itself.
  1. Open Incoming Results. Anything the analyser sent that could not be matched or was held back is listed here.
  2. Unmatched rows carry a specimen reference the system could not tie to an order. Match it by hand, or reject it if it is not yours.
  3. Held rows are matched but deliberately not filed — usually a critical value on a channel set to hold criticals.
  4. Review the value against the specimen, then file it.

Good to know

  • Auto-filed results go through exactly the same pipeline as typed ones — reference ranges, delta checks, critical alerting. An instrument result is not treated as more trustworthy for being machine-made.

Screen: /instruments/incoming · Needs results.enter

Trace a resultReconstruct where a number came from.
  1. Open the order and choose Trace on the result.
  2. You are shown who entered or filed it, when, from which analyser channel, and against which reagent lot and calibration.

Good to know

  • This is the screen to open when a clinician queries a result, and the one an assessor asks for. Reagent lot traceability is why it can answer 'which batch produced this'.

Screen: /worklist · Needs results.trace

Quality control

Proving the method is working before trusting what it says about a patient.

Record a QC runEnter control results and see whether the method is in control.
  1. Open Quality Control and choose the analyte and control lot.
  2. Enter the control value.
  3. The Westgard rules are evaluated as you save, and the Levey-Jennings chart updates.
  4. If a rule breaks, the run is flagged and an investigation is opened.

Good to know

  • A broken rule can block result entry for that analyte, which is deliberate: it stops patient results going out on a method that has just failed its own control.

Screen: /qc · Needs qc.record

Investigate a failed controlWork out what went wrong and record the conclusion.
  1. Open QC Investigations. Each failed run is listed with the rule it broke.
  2. Record what you found — reagent, calibration, control material, instrument.
  3. Record the corrective action taken.
  4. Re-run the control. A passing run is what lifts the block.
  5. Submit the investigation for approval.

Good to know

  • Approving an investigation needs qc.approve, which sits with the pathologist. The bench investigates; the sign-off is separate on purpose.

Screen: /qc/investigations · Needs qc.view

Configure QC rules and targetsDecide which Westgard rules apply and what the control means are.
  1. Open QC Rules.
  2. For each analyte and control lot, set the target mean and standard deviation from your own run data, not from the insert alone.
  3. Choose which rules are evaluated. More rules catch more, and reject more.
  4. Decide whether a breach blocks result entry for that analyte.

Screen: /qc/rules · Needs qc.configure

Set up auto-validationLet results that meet every rule release without a person opening them.
  1. Open Auto-validation.
  2. Choose which tests are eligible.
  3. Set the conditions — inside reference range, no delta breach, no critical flag, QC in control.
  4. Anything failing any condition is routed to a person instead.

Good to know

  • Start narrow. Turn it on for a handful of high-volume, low-risk tests, watch what it releases for a week, then widen.

Screen: /qc/validation · Needs validation.configure

Sign-out and reporting

The gate between a number on the bench and a document in a patient's hands.

Verify and release a reportApprove results and issue the patient's report.
  1. Open Verification. Orders with every test resulted and nothing yet released are listed.
  2. Open an order and read the results together, not one at a time — the pattern is the finding.
  3. Check flagged values against the patient's history. A delta warning that has not been explained is a reason to pause.
  4. Add an interpretation where it helps the requesting clinician.
  5. Verify. The report is generated, the share link becomes live, and the patient and referring doctor are messaged.

Good to know

  • Verification is the point of no return for the document. What is issued is frozen as a snapshot, so later edits to the underlying results cannot silently rewrite a report somebody already holds.
  • Your name goes on it as the verifying pathologist. That is the signature.
  • Every report carries a notice that it is for diagnosis and treatment only and is not valid for medico-legal purposes.

Screen: /verification · Needs orders.verify

Handle a critical resultGet a dangerous value in front of somebody who can act on it.
  1. A critical value raises an alert the moment it is entered — before verification.
  2. Open Critical Results. Unacknowledged alerts are at the top.
  3. Telephone the requesting clinician. This is a call, not a message.
  4. Acknowledge the alert and record who you spoke to and when.

Good to know

  • Acknowledging is what stops the escalation. A sweep runs every five minutes and escalates anything still unanswered up the on-call roster, so an unacknowledged alert will keep paging people.
  • Acknowledging records that somebody was told. Do not acknowledge until they actually have been.

Screens: /critical, /operations/critical · Needs critical.acknowledge

Amend a released resultCorrect something after the report has gone out.
  1. Open the order and choose Amend.
  2. Change the value and state the reason. The reason is printed on the amended report.
  3. Submit. Depending on your laboratory's settings this may need a second pathologist to approve.
  4. On approval a new report version is issued and the recipients are notified.

Good to know

  • An amendment never edits the document already issued. Version 1 stays exactly as it was and version 2 is a new document that says what changed and why — which is what makes the correction defensible.
  • Anyone holding the old share link sees the newest version when they open it.

Screen: /orders · Needs results.amend

Run a reportPull the operational and financial numbers.
  1. Open Reports and choose one — workload, revenue, referring doctor, turnaround, outstanding balances and others.
  2. Set the date range and any filters.
  3. Read it on screen, or export to CSV or PDF.
  4. Tick the letterhead option to print with the laboratory header and footer.

Screen: /reports · Needs reports.view

Quality management

Incidents, corrective actions, controlled documents and training. What an accreditation assessor asks to see.

Report an incidentRecord something that went wrong, or nearly did.
  1. Open Quality then Incidents and choose Report an incident.
  2. Describe what happened factually — what, when, which specimen or order.
  3. Classify it and say whether a patient result was affected.
  4. Submit. It is queued for investigation.

Good to know

  • Every role can report an incident, including reception. That is deliberate: the person who notices is often not the person who can fix it.
  • A near miss is worth reporting. It is the same failure without the consequence, and it is free to learn from.

Screen: /quality/incidents · Needs incidents.create

Raise and close a CAPATurn a problem into a change that stops it recurring.
  1. Open CAPA and raise one, linking the incident it comes from.
  2. Record the root cause — the reason it happened, not the thing that happened.
  3. Set the corrective action, an owner and a due date.
  4. Work it, recording progress as you go.
  5. Submit for approval when the action is complete and you can show it worked.

Good to know

  • Closing needs capa.approve, held by the pathologist. The person who did the work does not sign off their own fix.
  • Overdue CAPAs are swept daily and notified, so a date set and forgotten will resurface.

Screen: /quality/capa · Needs capa.create

Control an SOPDraft, approve, issue and review a controlled document.
  1. Open Documents and create one, or upload a new version of an existing SOP.
  2. Set the review date. Documents falling due are swept daily and notified.
  3. Submit for approval — a draft is not in force.
  4. Once approved it is issued, and the staff who must read it are asked to acknowledge.
  5. Track acknowledgements from the document. That list is the training record for it.

Screen: /quality/documents · Needs documents.create

Assign and complete trainingRecord competence against people.
  1. Open Training and assign a document or competency to the staff who need it.
  2. Set a due date.
  3. Staff complete their own assignments from the same screen.
  4. Chase what is outstanding — overdue assignments are swept and notified daily.

Screen: /quality/training · Needs training.manage

Stock and reagents

Consumables, reagent lots, and the traceability that ties a lot to a result.

Receive stockBook a delivery in so on-hand quantities are true.
  1. Open Stock and choose Receive.
  2. Pick the item and enter the quantity, batch number and expiry date.
  3. Save. On-hand rises and the batch becomes available to consume against.

Good to know

  • The expiry date is what drives the expiring-reagent notifications. A batch booked in without one will not warn you before it lapses.

Screen: /stock · Needs stock.manage

Consume, adjust and write offKeep the count honest.
  1. Consumption against tests is recorded automatically where a test has consumables defined.
  2. For anything else, record a movement by hand: consumption, adjustment after a count, or a write-off.
  3. Give a reason for adjustments and write-offs.

Screen: /stock · Needs stock.manage

Raise and allocate a stock requestAsk a store for something, and issue it.
  1. Open Stock then Requests and raise one, listing what you need.
  2. Somebody holding stock.allocate reviews it and issues against it.
  3. Allocation moves the stock and closes the request.

Screen: /stock/requests · Needs stock.request

Trace a reagent lotFind every result a batch touched.
  1. Open the reagent lot.
  2. The trace lists every result produced while it was in use.

Good to know

  • This is the screen for a manufacturer recall: it turns 'lot 4471 is withdrawn' into the list of patients whose results may need reviewing.

Screen: /stock · Needs reagents.trace

Define a stock itemAdd a consumable and set when to reorder it.
  1. Open Stock and choose New item.
  2. Set its category, unit and supplier.
  3. Set the reorder level. Falling below it raises a notification, so a level of zero means no warning.
  4. Link it to the tests that consume it, with the quantity per test, so consumption is recorded without anybody typing it.

Screen: /stock · Needs stock.define

Instruments and analysers

The machines, their calibration record, and the connection that files their results.

Register an instrument and log calibrationKeep the service and calibration record an assessor will ask for.
  1. Open Instruments and add the analyser — make, model, serial number, location.
  2. Set the calibration interval. Instruments falling due are notified.
  3. Log each calibration and service against the instrument as it happens.

Screen: /equipment · Needs equipment.manage

Connect an analyserSet up the channel that receives results from a machine.
  1. Open Analyser Channels and create one for the instrument.
  2. Choose the protocol it speaks — ASTM, HL7 or JSON.
  3. Map its test codes to your catalog, so what it calls GLU arrives as your glucose test.
  4. Note the channel id. The on-premise bridge needs it.
  5. Run the bridge on a machine on the same network as the analyser, with an API token that may record results.
  6. Send a test message and watch it arrive in Incoming Results.

Good to know

  • The bridge authenticates with a personal access token, and results filed through it are attributed to that token's owner. An analyser cannot be accountable for a clinical result; a named technologist can.
  • The token must carry write access. Tick 'Let this token record results' when creating it — a read-only token is refused by the results endpoint.

Screen: /instruments · Needs instruments.manage

Configure auto-filingDecide which analyser results file themselves.
  1. Open the channel and turn auto-file on.
  2. Turn on hold criticals so a dangerous value waits for a person rather than filing silently.
  3. Choose which tests on the channel are eligible.

Good to know

  • Leave hold criticals on unless you have a specific reason not to. It is the difference between a critical result being seen and being filed at 3am with nobody watching.

Screen: /instruments · Needs instruments.configure

Accounting

Where the cash, the expenses and the double-entry ledger live.

Record expenses and billsGet money going out onto the books.
  1. Open Cash & Expenses.
  2. Record an expense against its category and payment account.
  3. For a supplier, raise a purchase bill instead, so it sits against the supplier's balance until paid.
  4. Record payouts to referring doctors from the same screen.

Screen: /accounting · Needs accounting.manage

Read the ledgerSee the statements behind the day-to-day screens.
  1. Statements gives the trial balance, profit and loss, and balance sheet for a period.
  2. Journal lists the individual double-entry postings, newest first.
  3. Stakeholder Ledger shows the running balance for a doctor, centre or supplier.

Good to know

  • Invoices, payments and expenses post to the ledger automatically. The journal is where to look when a statement figure is not what you expect.

Screens: /accounting/statements, /accounting/journal · Needs ledger.view

Manage the chart of accountsDefine the accounts everything posts into.
  1. Open the chart of accounts.
  2. Add or rename accounts under the standard headings.
  3. Take care with anything already posted against — renaming is safe, restructuring is not.

Screen: /accounting/statements · Needs ledger.accounts

Setting the laboratory up

The configuration a new laboratory does once, roughly in this order.

Set the laboratory profile and brandingWhat appears on every report and receipt you hand out.
  1. Open Branding.
  2. Enter the name, address, phone, email and registration number. These print on the report footer.
  3. Upload a logo — PNG or JPEG. Keep it under 512KB or it will not be inlined into PDFs.
  4. Write the header and footer notes if you want standing text on every report.
  5. Choose the accent colour. It repaints the interface and the report headings.

Screen: /branding · Needs branding.manage

Fill in master dataThe dropdown values the rest of the system offers.
  1. Open Master Data.
  2. Work through departments, specimen types, measuring units, sample statuses, patient types, occupations, regions and discount reasons.
  3. Do this before the test catalog — tests reference departments, specimen types and units.

Screen: /masters · Needs masters.manage

Build the test catalogThe tests you offer, what they cost, and what normal looks like.
  1. Open Test Catalog and add a test: code, name, department, specimen type, price and turnaround target.
  2. Set the reference ranges. Ranges can differ by sex and by age band, and the right one is chosen per patient at result entry.
  3. For a test reporting several analytes, add its parameters, each with its own unit and range.
  4. Group tests into packages under Test Catalog → Packages, so a common request is one click.
  5. Link consumables so stock is drawn down as tests are run.

Good to know

  • Reference ranges are the single most important thing on this screen. Every high and low flag on every report is computed against them.
  • Bulk import is available if you are moving from another system.

Screen: /catalog · Needs catalog.manage

Set up reflex rulesOrder a follow-up test automatically off a result.
  1. Open Reflex Rules and create one.
  2. Choose the trigger test and the condition — a value above or below a threshold, or a particular flag.
  3. Choose the test to add when it fires.
  4. The added test is billed when it is added, not when the original order was taken.

Screen: /catalog/reflex · Needs reflex.manage

Define rolesDecide what each kind of colleague may do, before you create them.
  1. Open Roles. Four built-in roles are already there — Receptionist, Lab Technician, Pathologist, Administrator — each holding everything its base role allows.
  2. To narrow one, edit it and untick permissions.
  3. To create a role of your own, choose a base role and tick from what that base allows.
  4. An inactive Accounts role is seeded for you. Switch it on if you have an accounts clerk.

Good to know

  • The base role is the important choice and cannot be changed later. It is what the database itself checks, and every permission on the role is validated against it.
  • You cannot grant a permission above the base role's ceiling — the screen will not offer it and the database would refuse it.

Screen: /roles · Needs roles.manage

Create staff accountsGive colleagues a login.
  1. Open Staff and choose New colleague.
  2. Enter their name, email and role.
  3. Save. A temporary password is shown once — hand it over directly.
  4. They must change it at first sign-in.

Good to know

  • You can create receptionists, technicians and pathologists. You cannot create another administrator: a laboratory has exactly one, and appointing it is the platform operator's job.
  • To remove somebody's access, deactivate them rather than deleting. Deactivating stops their logins and their API tokens immediately, and keeps their name readable in the audit trail.

Screen: /staff · Needs staff.manage

Set turnaround targetsDefine what late means, so the system can tell you.
  1. Open Turnaround.
  2. Set a target per test or department, and a tighter one for STAT.
  3. Breaches are swept every fifteen minutes and appear on Delayed Work.

Screen: /operations/tat · Needs tat.manage

Set the critical escalation rosterDecide who gets paged when nobody answers.
  1. Open the Critical Desk and set the roster.
  2. Order the people an unacknowledged alert escalates to, and the delay between steps.
  3. A sweep runs every five minutes and works down that list until somebody acknowledges.

Screen: /operations/critical · Needs critical.manage

Configure operating rulesThe switches that change what the system will accept.
  1. Open Lab Settings.
  2. Operating rules are typed switches — the payment gate, amendment approval, and similar.
  3. Configuration holds untyped content that changes how documents read.
  4. Prescription templates hold reusable wording.

Good to know

  • The payment gate is the setting most often switched on without the bench being told. If technologists cannot enter results on unpaid orders, this is why.

Screen: /settings · Needs settings.manage

Set up the referral networkDoctors, collection centres, reference labs and their rates.
  1. Open Network.
  2. Add referring doctors with their commission percentage. Commission accrues as their orders are billed.
  3. Add collection centres and the rates you charge them.
  4. Add outsource labs for tests you send away, with what they charge you.

Screen: /network · Needs network.manage

Edit message templatesWhat patients and doctors actually receive.
  1. Open Messaging.
  2. Each event — order registered, sample collected, report ready, payment outstanding — has a template.
  3. Edit the wording, using the placeholders listed for that event.
  4. Placeholders not on the list will not be substituted and will print literally.

Screen: /messaging · Needs messaging.templates

Connections and access

Your own account, and letting software in on your behalf.

Manage your own accountName, password, notifications.
  1. Open My account from the menu under your name.
  2. Edit your name, phone, location and bio.
  3. Change your password.
  4. Set notification preferences, and enable push notifications on this device if you want alerts when the tab is closed.

Screen: /account · Anyone signed in

Sign in on a shared device by QRGet onto a bench terminal without typing a password on it.
  1. On the signed-out device, choose Sign in with QR. It shows a code and a two-digit number.
  2. On your phone, already signed in, scan the code.
  3. Your phone shows three numbers. Tap the one displayed on the other device.
  4. The device is signed in.

Good to know

  • Matching the number is what proves the two devices are in the same room. If the numbers do not match, somebody else is trying to sign in — stop.
  • The handshake is single-use and expires quickly. Start again rather than reusing a stale code.

Screen: /auth/login · Anyone signed in

Create an API tokenLet a script, a bridge or an AI client act as you.
  1. Open My account and go to the connections section.
  2. Name the token after the device or app it is for, so you can revoke the right one later.
  3. Tick 'Let this token record results' only for an analyser bridge. Leave it off for anything that just reads.
  4. Create it. The secret is shown once — copy it now.
  5. Revoke it from the same screen when the device is retired.

Good to know

  • A token carries your live role and permissions, re-read on every call, so it can never do more than you can and a demotion takes effect immediately.
  • Only you can see or revoke your tokens. Not even an administrator holds a list of them.

Screen: /account · Anyone signed in

Connect an AI clientPoint Claude or a similar client at the laboratory.
  1. For a client that accepts a bearer token, create an API token and paste it in.
  2. For claude.ai or Claude Desktop, add a custom connector pointing at this site — those use OAuth and have nowhere to type a token.
  3. You will be shown a consent screen naming the application and exactly what it is asking for.
  4. Read the scopes before approving. Approve read-only unless it genuinely needs to write.

Good to know

  • What you approve on the consent screen is enforced on every call. A connector approved for reading cannot record results.
  • Revoke a connector from My account. Revoking either half of its credentials ends the whole grant.

Screen: /account · Anyone signed in

Technical reference

FHIR R4 API

A read-only FHIR R4 (4.0.1) endpoint at /api/fhir/r4 lets hospital EMRs, registries and referring clinics pull this laboratory's signed-out results.

  • Authentication. Create a personal access token under My account with the read scope and send it as Authorization: Bearer …. The token answers only for its owner's laboratory, with the owner's live permissions, and stops the moment the owner is deactivated. GET /metadata needs no token.
  • Resources. Patient (MRN as identifier), DiagnosticReport (an order with at least one verified line; final when all are verified, otherwise partial) and Observation (a verified value, LOINC-coded where mapped in the catalog).
  • Only verified results. A result that is entered but not yet verified answers 404, exactly like one that does not exist.
  • Searches. A report or observation search must name a patient or an order number; an unfiltered search of the whole laboratory is refused. _count defaults to 20, maximum 100. Every read is written to the audit log.
curl -H "Authorization: Bearer $TOKEN" \
  "https://<your-domain>/api/fhir/r4/DiagnosticReport?patient=Patient/$ID&_include=DiagnosticReport:result"

Offline bench

Result entry that keeps working when the network does not, at /bench (Laboratory → Offline bench, or the button on the result worklist).

  1. Prepare, while online. A technologist chooses a 6–12 digit PIN. The bench downloads up to 60 of the oldest pending orders with each patient's reference and critical ranges already resolved, and encrypts them on the device under a key derived from the PIN. The PIN is never stored, and the copy expires after 12 hours.
  2. Work offline. Unlock with the PIN and enter results. Flags are computed by the same code the server uses, and results go to an encrypted outbox on the device.
  3. Send, once back online. Each result goes through the normal save, so the payment gate, QC lock, delta checks, critical alerts, reflex rules and auto-validation all apply. Results keep the time they were entered at the bench.

If someone else changed a result while you were offline, yours is held as a conflict for you to send or discard; a result a pathologist has verified meanwhile can only be changed by amendment. Only the person who entered results can send them. The bench locks after 15 minutes idle, and after 10 wrong PINs the worklist copy is erased (unsent results are kept). A forgotten PIN means erasing and starting over, so send results before handing over a shift. A printable downtime sheet covers the case where even the bench device is unavailable.

The bench does not register patients, create orders or take payments offline.

Patient portal and online payments

Patients reach the portal at /portal/<your-slug>; the slug is set under Settings → Portal & payments. There is no password: a patient enters the email address or mobile number the laboratory has on file and receives a six-digit code, valid for 10 minutes and usable once. A session lasts 30 days.

Patients see each order and its status, download the latest report as a PDF, and see each bill's balance — with a Pay button when online payment is switched on. Results appear only once a report has been issued, so the payment-before-results rule still applies. Online payment uses the laboratory's own Stripe account, set up on the same settings screen. The portal needs email or SMS delivery configured to send codes.

Two-factor sign-in

Turn it on under My account → Two-factor sign-in with any authenticator app (TOTP). Once enrolled, a session signed in with the password alone is refused laboratory data by the database itself, not only by the page. A laboratory can require two-factor sign-in for administrators and pathologists.

Installing LabPilot as an app

LabPilot installs like an app on phones, tablets and desktops. In Chrome or Edge, use the install button in the address bar or the Install prompt; in Safari on iPhone or iPad, choose Share → Add to Home Screen. Installed devices can receive push notifications — enable them under My account.

Without a connection, pages show an offline notice rather than a possibly out-of-date record. The offline bench is the one screen built to work offline.