Concept B · order-first
Record what arrived
Order #12 · 12 vials asked for. Count what arrived for each preparation, record its lot and beyond-use date, and name the site where it will go into stock.
What recording this will change
Read before you commit| On order #12 | Before | After |
|---|---|---|
| Status | Sent | Partially received |
| Vials recorded as arrived | 0 of 12 | 8 of 12 |
| Vials still outstanding | 12 | 4 — two NAD+ 5 mL, two BPC-157 |
| Stock at SF · Striker | 0 Semaglutide / B12, 7 NAD+, 0 BPC-157 | 5 Semaglutide / B12, 9 NAD+, 1 BPC-157 |
| Patient fills assigned | 0 | 0 — no vial is assigned to a patient here. Each goes onto the shelf; a patient is attached later, when one is filled from stock. |
| Where the 4 outstanding vials sit | On this order | Still on this order — they do not return to available demand, so nothing is ordered a second time; 4 remain outstanding |
What it will not do: no vial is assigned to a patient here, no patient is told anything, no label is produced, nothing is dispensed, and the four outstanding vials are not chased. Those are separate acts by separate people.
This cannot be undone. There is no correction path once an arrival is recorded, so a mistyped lot number stays with the stock receipt and any vial later filled from it until someone builds one. Recording it will also name you, Ops admin, and the time on the order's history.
The preparations on order #12
| Preparation | Ordered | Arrived | Lot number | Beyond-use date |
|---|---|---|---|---|
| Semaglutide / B12 |
5 | |||
| NAD+ |
4 | |||
| BPC-157 |
3 |
What this page assumes
- This whole page needs PR #926's data model. Recording stock receipts against an order needs that model. On PR #1059's model an item on an order has no receiving state, no lot and no beyond-use date, so there is nothing for this form to write and the page cannot exist at all.
- The consequence is stated before the act, not after it. The measured build shows what changed only once it has changed, and finding F7 records that nothing anywhere reverses it. A before-and-after table is the cheapest honest substitute for an undo we do not have.
- Receiving is a property of the document. The form is reached from order #12 and returns to order #12, so a partial arrival is recorded as arithmetic on one purchase document rather than as a pile of loose items in a queue. This is the shape that wins scenario S8.
- Lot and beyond-use date are captured per preparation as stock arrives. They travel with each vial to whichever patient it is later filled for, so a recall can answer both which vials came from a lot and which patient eventually received one.
- Attaching a stock vial to a patient is a separate step. No screen in this set draws that step yet.
- The four that did not arrive stay on the order. Returning them to available demand would be the tidier screen and the wrong outcome: they would be ordered a second time. Saying so in the consequence table is more useful than a status word.
- Shown mid-flight. This is the arrival that produced the state order #12 is in on the previous page — a reviewer clicking through sees the same order at two moments, not two contradictory versions of it.
- The tabs stay put while you act. Sent stays lit through the form, so the section nav does not vanish at the moment an operator commits. Recording arrival is a step on a sent order rather than its own destination, which is why there is no separate tab to land back on.
- Making demand the first tab fixes the concept's characteristic failure — it does not fix what happens after. The 96 waiting fills used to be a banner with no row and no destination; they are a tab now. But once this is written, order #12 sits under Sent looking handled, and that count does not separate an order that is complete from one still four vials short. The ledger behind the tab sorts by recency rather than staleness, so the shortfall ages quietly and nothing chases it.
- The mobile layout keeps the form and section visible. At 560 px each preparation becomes a labelled card, so the arrived count, lot field and beyond-use date stay on screen. On the measured build these fields would sit past a horizontal scroll (finding F4) at exactly the moment an operator is standing at a bench holding the delivery. At 390 px the tab row wraps to two rows, and Sent stays fully visible.