Hospital Supply Chain Coordination
OpenEnv India 2026 Hackathon ยท Finals ยท Professional Tasks: World Modeling (Enterprise)
It's 2 AM. You're the central pharmacy coordinator for a three-ward hospital.
Needs packed red blood cells for a patient going into surgery in 4 hours.
Reporting a mass-casualty event. Requesting 3ร normal blood and epinephrine โ needs evidence-based validation before allocation.
Requesting antibiotics. Clinical evidence and usage history needed to determine the right allocation level.
Usage history and reputation carry across rounds. Evidence-grounded allocations improve trust over time.
Each system has its own constraints, latency, and failure mode.
Decisions in round 3 directly shape what round 4 looks like.
Each ward has tracked SKUs, usage history, and clinical context. Deterministic from seed โ byte-identical rewards across runs. No LLM judge anywhere.
ERP stale โ1 round. WMS live ยฑ5% noise. Models pick one and act on it.
ER spikes can be genuine MCI events or estimation error. Census and acuity evidence is required to allocate correctly.
request_evidence โ escalate โ cite in rationale โ models start the loop and don't finish it.
Supplier quotes take 1 round to resolve. Request at round 5 for a round-6 need โ you created the stockout.
POs >$10k need pre-approval before submission. Models submit optimistically and wonder why it bounced.
Stale by 1 round
get_inventoryget_pipelineLive ยฑ5% noise
scan_inventoryAsync, next round
request_quoteget_quoteGate for PO >$10k
get_budgetrequest_approvalFree-form
send_to_wardRound 5, heavy difficulty. Inbox arrives with a mass-casualty alert. ER is requesting 3ร blood products and epinephrine.
read_inbox()
โ MCI alert: 23 trauma patients admitted overnight
โ Supplier disruption: BLOOD-RBC lead time extended by 1 round
view_requests()
โ ward_er: BLOOD-RBC x38, BLOOD-PLT x18, EPI-1MG x60
โ ward_icu: BLOOD-RBC x12, BLOOD-FFP x8 (routine)
โ ward_general: ANTIBIO-01 x130, IV-SAL-500 x90
erp_oracle_get_inventory() โ BLOOD-RBC: 18 units (as of yesterday)
wms_scan_inventory() โ BLOOD-RBC: 14 units (live โ overnight consumption)
erp_oracle_get_pipeline() โ 20 units arriving next round (pre-ordered round 4)
finance_sap_get_budget() โ $42,300 remaining | ER blood order est. $14,800
request_evidence("ward_er", "BLOOD-RBC")
โ census: 23 trauma admissions | acuity: critical | active MCI protocol: YES
โ consumption last 12h: 11 units already used
finance_sap_request_approval(amount=14800, justification="MCI protocol active,
23 trauma patients, 11 units consumed overnight, pipeline delayed by disruption")
โ ticket: FIN-0047 (pending)
supplier_portal_request_quote("MEDLINE", "BLOOD-RBC", qty=40, priority="urgent")
submit_allocation_plan(
plan: ER gets 14 units now + priority on incoming pipeline
rationale: "MCI confirmed via census and acuity data. 14 units covers
next 24h at observed consumption rate. Pipeline 20 units arriving round 6."
)
submit_po(supplier="MEDLINE", sku="BLOOD-RBC", qty=40, approval_ref="FIN-0047")
advance_round()
ERP said 18, WMS said 14 โ overnight consumption. Pipeline awareness prevented over-ordering.
Budget checked, approval filed before PO. Quote requested for next round restocking.
Census + acuity cited directly. audit_score credits citation, not just retrieval.
8 rounds ร ~15 tool calls ยท Context reset after each advance_round
Fixed seed + scripted actors โ byte-identical rewards. No LLM judge.
Fully deterministic โ computed from SimState
Shaping bonuses:correct escalation +0.05ยทread_inbox +0.01ยทfirst enterprise system use +0.005ยทfrivolous escalation โ0.03
Qwen3.5-2B ยท 4-bit NF4 + LoRA (r=16) ยท T4 via Google Colab
Prompting describes the workflow. Only RL teaches the model to value actions whose consequences arrive 2 rounds later.
G=4 ยท B=8 โ 32 live episodes/step
No static dataset โ trains on real environment
Reward mean 0.13 โ 0.35 over 23 steps. Compute-budget limited โ clear headroom. Next: per-turn reward signals ยท async episode execution ยท full Tier-1 tool surface.
MedChain โ OpenEnv India 2026, Finals
Built with OpenEnv ยท HuggingFace TRL (GRPO) ยท Qwen3.5-2B