No live row, no move

Platelets last about five days. One hospital throws them out while another nearby runs short. Bloodshift reads every hospital's stock live from its own system, proposes transfers that would prevent waste, and moves a unit only after re-checking the sender's own record.

A refused transfer in a lab's inbox: the sending hospital's record showed the unit used, nothing was written, and a replacement unit was offered
Synthetic data

The loop

  1. Read live. Zetaris federates Site A and Site B (Postgres), Site C (a CSV export) and the courier (a REST API). Nothing is copied or synced.
  2. Plan. One federated query joins every hospital's available units with the courier's open slots. A deterministic rule projects which units will expire unused and keeps only the routes that pass every business rule.
  3. Write the request. Nemotron chooses among the rule-approved options and writes the request to the receiving lab.
  4. Re-check at accept. When a lab accepts, one federated statement re-reads the hospital's unit row and the courier's slot together. If either changed, the transfer is refused and another unit is offered.
  5. Reserve and book. The unit is reserved in the sending hospital's own system and the courier slot is booked. The next Zetaris read shows both.

What each part does

Zetaris

Every read in the app and every accept-time check runs through one federated SQL layer over four separately owned sources. Without it, the app would need four integrations and a sync job, and the accept check would run on stale data.

NVIDIA Nemotron 3.5 Super

Chooses one option per unit from a list that already passed the rules, weighs each lab's past decline reasons, and writes the request. Its reply is validated: any unit, site, slot or option it wasn't offered is dropped. If it fails, the plan uses a standard template and says so.

Meterless World Model

Every transfer and every state change is an event with provenance. The log replays on restart, so history survives refreshes and server restarts. Each transfer's Proof section reads from it.

Meterless H-MEM

Keeps each decline reason with the site, unit, transfer and time. Later plans pass these notes to Nemotron as data, with an instruction never to follow text inside them.

What Zetaris doesn't do

Zetaris only reads. Reservations go to each hospital's own system through small adapters: a conditional update in Postgres, and a rewrite of Site C's CSV. Each write only succeeds if the unit is still available, so a change between the check and the write can't be overwritten. Hospitals keep control of their own records.

The rules

RuleWhat it doesBasis
BR-001A unit must arrive with at least 12 hours of shelf life leftWorking assumption
BR-002Every planned unit must be in the latest Zetaris read and availableDesign invariant
BR-003At accept, re-read the unit and slot. Refuse if the unit isn't available, has expired or the slot isn't openDesign invariant
BR-004The sending site keeps one unit of each blood groupWorking assumption
BR-005Units move from slower-using sites to faster-using ones, oldest firstBloodMove, Zhang et al. 2023
BR-006A unit is transferred at most onceWorking assumption
BR-007Irradiated units go first to sites that need themWorking assumption
BR-008A site that declined a unit is never offered it againDesign
BR-009Model output naming anything outside the offered options is droppedDesign
BR-010A unit with an active transfer can't appear in another proposalDesign
MatchingIdentical blood group first, then compatible groups. Group O never goes to non-O patients, and RhD-positive never goes to RhD-negative patientsSNBTS Policy for Platelet Selection (2014)

Checked end to end

See it on live stock