Surgical trays (also called loaner kits) are the metal boxes that go out to a hospital for an operation and come back afterwards. The top tray holds consumable implants that get used during surgery; the bottom tray holds reusable instruments that are supposed to return with the box.
CifraHQ and your warehouse system split this work between them:
You build the tray here. The warehouse never decides prices, and you never have to keep the same tray contents up to date in two places.
Trays have their own module: Trays > Templates in the main menu (this section only appears if your company has surgical trays turned on). Click New to start a tray, giving it a name and description. CifraHQ generates the tray code for you.
Open a tray to work on its contents. On the Contents tab, click Add Line to search for a product and set its quantity for every item that belongs in the tray.
Whether a product is a consumable implant or a reusable instrument is not set on the tray. It is set once, on the product itself:
| Where | Field | Meaning | What happens when it does not come back |
|---|---|---|---|
| Product's Details tab | Is instrument switched on | A reusable surgical tool | It is a missing tool, not a sale. It is reported, not billed |
| Product's Details tab | Is instrument switched off | A consumable implant used during surgery | It was implanted in the patient, so it is billed to the hospital |
Every tray line shows the product's instrument/consumable status as a read-only badge, so you can see at a glance what is in the tray, but you cannot change it from the tray. That keeps the flag consistent everywhere the product is used, not just on this one tray.
The tray's Details tab shows the rolled-up cost: the total of every line's cost multiplied by its quantity. This is the number to price your tray models from, and it updates as you edit the contents.
A long tray is quicker to build, re-count or hand to a colleague as a spreadsheet than one line at a time. The Contents tab carries an Export button and an Import button in its section header for exactly that. Neither is restricted to administrators: anyone who can add or remove a tray line one at a time can also import a sheet.
Export reads Preparing... while it works, then saves a workbook named after the tray code and ending in -contents.xlsx. It has one sheet, Contents, with the headers Sku, Description, Quantity, Unit Cost, Extended Cost and Role, and one row per tray line in the order they appear on screen. Unit Cost is the product's cost and Extended Cost is that cost multiplied by the line quantity.
Only Sku and Quantity are read back on import. The other four are there so you can read the sheet, and are ignored: cost and the instrument/consumable role always come from the product master, never from the file.
Export a tray that has no lines yet and you get the bold header row on its own. That empty sheet is the blank template for building a tray from scratch, so there is nothing separate to download.
Only two things really matter: a Sku column and a Quantity column, with the headers on the first row. Everything else is forgiving:
SKU, sku, Unit Cost and unitcost all work.Click Import in the Contents header, or Import from Excel in the empty state if the tray has no lines. Click Choose File, pick your .xlsx (anything over ten megabytes is refused before it leaves your machine), choose the mode, then click Import. Picking the file only holds it in the browser, so nothing is written until you click Import, and the mode is always a deliberate choice.
| Mode | What it does | If a row is bad |
|---|---|---|
| Merge (preselected) | Adds the rows that are new and updates the quantity on rows already on the tray. New lines go to the end and the lines already there keep their position. Lines missing from the file are left alone, so nothing is ever deleted | That row alone is skipped and listed, and the good rows still land |
| Replace | The tray ends up holding exactly what the file lists, renumbered into the file's row order. Every line whose product is not in the file is deleted | The whole import is cancelled. Nothing is added, updated or deleted |
A rejected row is shown in the dialog as a red bullet naming the SKU and the reason: the SKU is not a product in this company, the quantity is not a number, the quantity is zero or less, the quantity is fractional on a product that is not decimal controlled, or the same SKU appears more than once (every row carrying that SKU is skipped, because the quantity you wanted is ambiguous). Fix those rows in Excel and import again.
Two problems stop the whole import in either mode, because neither leaves anything sensible to apply: a file with no worksheets at all, and a sheet with no usable rows. The second is deliberate. An empty file in Replace mode would otherwise be read as "this tray should hold nothing" and wipe it.
A successful import shows a green Contents imported toast and a summary of how many lines were added, updated, left unchanged and removed. The grid, the Contents tab count, the rolled-up cost and the Physical Trays list all refresh, and the new contents are pushed out to every registered physical tray, usually within a second, exactly as a hand-edited line would be. That push replaces the warehouse-side contents of each kit, so a change made to a kit in the warehouse will not survive it.
The import is recorded against your user name in the activity log, with the mode used and how many lines were added, updated, removed and rejected.
If nothing could be written, you get Nothing was imported. Fix the rows below and try again. with the rejected rows underneath, no toast, and no push to the warehouse. Either way the file selection clears after each attempt, so a second click of Import can never quietly apply the same sheet twice. Re-pick the file (the same filename works) and go again, then click Close.
One tray design usually has several physical boxes in circulation. Each box is registered separately on the tray's Physical Trays tab.
Click Register Tray and choose the warehouse the box lives in. That is the only thing to fill in.
Everything else about the box is decided elsewhere, so you are not asked to type it:
The Trays > Physical Trays page lists every registered box across every tray design, with its current sync status, in case you want a warehouse-wide view instead of one tray at a time.
Saving any change to a tray's contents automatically queues a sync to every box registered against it, usually within a second. You can also click Sync to Warehouse on the tray to push immediately rather than wait.
After a successful sync each physical tray shows its kit number and the time it last synced. If a push fails, the tray shows Failed and you can hover it to see the reason.
If the warehouse no longer has the kit at all, CifraHQ rebuilds it on the next push rather than failing forever. The box keeps its name, warehouse and history, and the warehouse issues it a new kit number and license plate, so the numbers you see on that row will change.
Once a tray comes back from the hospital and the warehouse has counted it, CifraHQ picks the result up automatically, roughly every ten minutes, and creates the hospital's invoice.
Each invoice line carries the lot number, expiry date and serial number of exactly what was used, because hospitals require that traceability on implant Invoices. The invoice also references the consumption document, the kit number and the original dispatch, so any query is easy to trace back.
Prices come from the hospital's price list in CifraHQ, exactly as they would on an invoice you typed yourself.
By default the invoice is created as a draft so someone can review it before it goes out.
These live under Settings, in the warehouse integration section.
Tray consumption sync has no on/off switch: it starts running automatically for your company the moment any tray template exists, and there is nothing to turn on separately.
| Setting | Default | What it does |
|---|---|---|
| Missing instrument policy | Report | Report records missing instruments without billing. Charge bills them, for hospitals whose contract says replacements are billable |
| Damaged policy | Absorb | Absorb writes off units the warehouse counted back damaged. Bill adds them to the invoice |
| Post tray Invoices automatically | Off | Leave off to review each invoice as a draft first |
Whether the Trays section appears in the main menu at all is a separate setting your administrator turns on per company; it only controls what you see, never whether syncing runs.
Trays > Consumption Backlog lists every consumption document CifraHQ has seen from the warehouse, its state (pending, invoiced, acknowledged, failed, or needs review), the invoice it produced if any, and the reason for anything that could not be invoiced.
Common reasons a tray cannot be invoiced:
Nothing is lost while a problem is being fixed. The consumption keeps coming back until it succeeds.
If your warehouse office re-sends a consumption that CifraHQ has already invoiced, CifraHQ does not bill it a second time and does not cancel the original invoice on its own. It flags the document as needs review so a person can decide whether a credit note is required. Clear the review from the row's action menu on Trays > Consumption Backlog once you have decided what to do.
Medical packaging normally carries a UDI barcode holding the product identifier, lot and expiry together. Two fields on the product master make warehouse scanning work without anyone retyping them:
Both are sent to the warehouse with the rest of the product details.
Was this page helpful?