root = Card([header, kpiSection, occupancyChart, departmentChart, staffList, criticalAlert, dischargeList, orBookings, supplyAlert, actions])
header = CardHeader("Hospital Operations Command", "Live overview")
kpiSection = Card([kpiHeading, kpis], "sunk")
kpiHeading = Heading("Key metrics", "h3")
kpis = Table([kpiMetric, kpiValue])
kpiMetric = Col("Metric", ["Bed occupancy", "ER wait", "Admissions (14d)"])
kpiValue = Col("Value", ["87%", "42 min", "318"])
occupancyChart = Card([occHeading, occChart], "sunk")
occHeading = Heading("Bed occupancy by ward", "h3")
occChart = BarChart(["ICU", "Cardiology", "Surgery", "Oncology", "Maternity", "ER"], [occSeries], "grouped", "Ward", "Beds used")
occSeries = Series("Occupied", [24, 38, 31, 22, 18, 14])
departmentChart = Card([depHeading, depChart], "sunk")
depHeading = Heading("Patients per department", "h3")
depChart = PieChart(["ICU", "Cardiology", "Surgery", "Oncology", "Maternity", "ER"], [24, 41, 33, 21, 18, 29], "donut")
staffList = Card([staffHeading, staffTable], "sunk")
staffHeading = Heading("Staff on shift", "h3")
staffTable = Table([staffName, staffRole, staffWard])
staffName = Col("Name", ["Dr. A. Chen", "Nurse M. Ortiz", "Dr. S. Patel", "Nurse J. Kim", "Dr. L. Nguyen", "Nurse R. Diaz"])
staffRole = Col("Role", ["Attending", "Charge nurse", "Resident", "RN", "Surgeon", "RN"])
staffWard = Col("Ward", ["ICU", "ER", "Cardiology", "Surgery", "OR", "Oncology"])
criticalAlert = Card([critHeading, critCallout], "sunk")
critHeading = Heading("Critical patients", "h3")
critCallout = Callout("warning", "3 critical patients", "Bed 7-ICU (Dr. Chen), Bed 2-ER (Dr. Patel), Bed 5-ICU (Dr. Chen) — escalate if unstable.")
dischargeList = Card([discHeading, discBlock], "sunk")
discHeading = Heading("Ready for discharge", "h3")
discBlock = ListBlock([disc1, disc2, disc3], "number")
disc1 = ListItem("Bed 4-Cardiology", "Mr. T. Brooks — awaiting transport")
disc2 = ListItem("Bed 9-Surgery", "Ms. F. Alvarez — discharge papers signed")
disc3 = ListItem("Bed 3-Maternity", "Mrs. K. Osei — newborn cleared")
orBookings = Card([orHeading, orTable], "sunk")
orHeading = Heading("Today's OR bookings", "h3")
orTable = Table([orTime, orRoom, orProc])
orTime = Col("Time", ["07:30", "09:00", "10:30", "13:00", "15:00"])
orRoom = Col("OR", ["OR-1", "OR-2", "OR-3", "OR-1", "OR-2"])
orProc = Col("Procedure", ["CABG", "Knee replacement", "Laparoscopy", "Hip repair", "Appendectomy"])
supplyAlert = Card([supplyHeading, supplyCallout], "sunk")
supplyHeading = Heading("Supplies running low", "h3")
supplyCallout = TextCallout("danger", "Low stock", "Saline bags (12 left), surgical gloves (3 boxes), insulin vials (8 left). Restock needed today.")
actions = Card([actionButtons], "sunk")
actionButtons = Buttons([incidentBtn, dayBtn, transferBtn])
incidentBtn = Button("File incident")
dayBtn = Button("Look at another day", null, "secondary")
transferBtn = Button("Request patient transfer", null, "secondary")