W1410 Routine Tray Service
The operator scans or types a container ID. The app pulls up the population in that tray and its last service, then records the new one as a transaction.
Container
Procedures and lifecycle
A procedure is a defined operation, like W1410. A transaction is one run of it on a specific tray and population. Each procedure applies to certain lifecycle stages, so the operator only sees what fits the tray in front of them.
Lifecycle
Stages in order, the populations in each today, and the procedures that run at that stage. Stage names and the mapping are assumptions to check against your spec.
Procedure catalog
W1410, splits, consolidations and lifecycle stages come from your post. The other procedures are likely daily operations, listed to show where each one fits in the model.
| Procedure | Shape | Stages | Operator records | What it changes | In this prototype | Source |
|---|
Transactions
Every operation is a transaction. Open a W1410 record to edit or cancel it; its change history keeps who changed what, when and why. Split and consolidation are not edited: later records depend on them.
| TX | When | Type | Container | Population | Details | Operator | Status |
|---|
Reports
Built from W1410 records. Net mass is the gross tray mass minus the tray's own tare, so trays of different weight compare directly.
Net mass by population
Sum across all trays holding the population, kg. Steps up are splits with fresh substrate; on 19 Oct part of P-0412 and P-0418 moved into the new P-0447.
Show as table
Feed applied per week
kg, weeks starting Monday. The current week is in progress.
Water added per week
Litres, weeks starting Monday. The current week is in progress.
Observations, last 30 days
Number of W1410 services where the observation was checked.
Service schedule
W1410 runs every 3 days per tray.
| Container | Population | Last service | Net mass | Status |
|---|
Lineage
A population keeps its PID when its tray is split, so one PID can sit in several containers. Consolidating different populations creates a new PID that records each parent's share of mass.
Container occupancy
Each row is a physical tray. Bar colour is the population in it. Hover a bar for details, click to trace its lineage.
Data model
Population, container and transaction are separate records. Core tables stay the same as procedures are added; W1410 contributes one detail table.
Identity
PID is the logical population, CID is the physical tray. Placement links them with start and end times, so a tray can be reused and a population can span trays.
Operations
Every operation is one transaction. Split and consolidation run as one atomic database operation that writes input and output lines with mass, so mass balance is checked and nothing is half-done.
Corrections
Service records can be edited. Every change goes to change_log with who, when, old and new value and the reason. Split and consolidation are never edited, only reversed as a whole.
Lifecycle
lifecycle_stage is a reference table with the order of stages. Each procedure lists the stages it applies to, so the app offers only what fits the tray. A stage change is a transaction like any other.
Next procedures
Every procedure has one of five shapes: measure, move, stage, start or close, container. A later procedure reuses a shape: a catalog row, a detail table if it records extra data, and a form.