📋 View active rules · 🎟 View points system · 🔍 Preview solver input (admin)
| Loading data… |
Pending admissions captured from the mobile app — assign each to an available MO. Per-ward load and who's clerking, for the chosen day. Anyone can edit; the last change is logged.
| # | MO | Peak admissions | Achieved |
|---|---|---|---|
| — | |||
Rich text + emojis; paste image/GIF/video URLs (e.g. Giphy, YouTube). Doctors see targeted messages on their Home (desktop + mobile). DEV — admin-only. "Until acknowledged" persists until each doctor clicks Acknowledge; "For X days" auto-expires.
Off-In-Lieu is ad-hoc and uncapped — award when directed by leadership. Enter negative days to record a correction. The balance shows in the Leave Planner (under Birthday Leave). DEV simulation: balances seeded 0–5; in production OIL is held/fed by the HR/Payroll system.
.json backup — the DR path when prod is unavailable. A cross-environment import re-links logins by email.
Snapshots are stored in the database (versioned) and can be downloaded as a JSON file for off-site safekeeping.
Data only — not a full disaster-recovery backup (database schema, login accounts & the rules engine are not included; pair with a periodic pg_dump for that).
The downloaded file contains real names, emails & leave details — handle as confidential. Restore replaces the snapshot's tables (replace-all) after showing a dry-run preview & auto-saving a safety snapshot of the current state, so it's reversible.
Routine: download a Full backup regularly (e.g. weekly + before any risky change) and keep the .json file off this machine (cloud drive / email it to yourself). The DR plan only works if you have a recent file when prod dies.
slh-backup-prod-full-*.json (your off-device copy).jqfoaquboarywqhmoceu · PROD sqosocfrfbeqdnkrizhfNot covered: database schema, login accounts & the rules engine aren’t inside a snapshot — for full disaster recovery also keep a periodic pg_dump. This restores data into an already-deployed app.
| Query | Outcome | Count | Distinct staff | Last seen |
|---|---|---|---|---|
| — | ||||
| When | Who | Query | Outcome | Parsed | Suggestions | Picked |
|---|---|---|---|---|---|---|
| — | ||||||
solver/start-solver-worker.command.is_ward_cover or is_weekend_cover are considered. Doctors without those flags are excluded from this run — that’s deliberate so the optimizer doesn’t hand leave to people who can’t cover anything in return. Fix their capability flags in Admin → Coverage Eligibility before running this if they should be included.
pending_review leave-requests — visible in the queue at the top of this page. If a run stays pending for more than a minute, the solver process isn’t running — ask engineering to start it (or run uv run python solver/leave_optimizer.py --watch).