GUIDE · UPDATED 2026
From an offline instrument PC into the LIMS
The LIMS is on the network. The instrument PC is not, on purpose. Somewhere between them a result file has to cross, and the way it crosses decides whether the LIMS holds the instrument's data or a copy someone made of it.
Written by Taha Bayar, a biologist working on laboratory data handover. Kionel is one of the routes below; the comparison is meant to be usable whichever you choose.
Five routes
| Route | What reaches the LIMS | What it costs |
|---|---|---|
| Re-typing the results | Values, not the file | Transcription errors, and a second person to check every entry. |
| Instrument PC on the network, watched folder | The file, automatically | The PC is no longer isolated: patching, accounts and firewall rules for a machine that was kept off the network for a reason. |
| USB to a networked PC, then upload | The file, if nobody opened it on the way | Removable-media rules, scanning, and a gap in the record between the two PCs. |
| Vendor middleware or SDMS | The file and metadata | A network connection again, plus a product per instrument vendor. |
| Screen to camera into a watched folder | The file, byte for byte, with a signed receipt | A PC with a webcam next to the instrument PC, and a few seconds to minutes per file depending on size. |
How the last route works with Kionel
- The instrument PC runs the offline package: one file, no network. It shows the result file as encrypted codes and signs a dispatch record with the file's SHA-256 and the work order.
- A networked PC with a webcam, in Chrome or Edge, reads the codes. In Receive, press Save received files to a folder once and pick the folder your LIMS or data system already imports from.
- On delivery the file is written into that folder under its own name, with
<name>.makbuz.jsonnext to it: the receipt signed by both PCs. An existing file is never overwritten; a second copy becomesname (2).csv.
The LIMS then imports it exactly as it would from a networked instrument. Kionel has no LIMS connector and needs none: the folder is the interface.
Three details for whoever sets up the import
- Wait until the file is complete. Chrome first creates the file empty, writes the content into a temporary
.crswapfile, and swaps it in only when it is complete. A watcher therefore never sees half a result, but it can see an empty file for a moment. Set it to ignore*.crswapand to wait until a file is non-empty and stable, a setting most folder importers have. - Receipts beside the data. If the parser picks up every file in the folder, exclude
*.makbuz.json, or attach it to the sample record as the transfer evidence. - Permission after a restart. Chrome asks once again for the folder after the browser restarts; the button then reads Allow saving to …. Until it is pressed, files are only offered for download, and the app says so.
What the auditor sees
For every file: the dispatch record signed on the instrument PC, the receipt signed on the receiving PC, both tied to the same SHA-256 and work order, and a file in the LIMS folder whose SHA-256 matches. Both records can be checked on the verify page or with the free command-line verifier, without us.