Coordinator Dashboard — Design Brief¶
Status: Ready for /impeccable craft
Issue: #250
Spec source: docs/specs/platform-restructuring-design.md Part 4
Target app: apps/coordinator-app/ (port 8081)
Reference: docs/specs/provider-portal-design-brief.md (Linear-style precedent)
1. Feature Summary¶
A unified case management dashboard for Curaway coordinators (ops staff) to triage, manage, and act on ~20 active patient cases. Replaces the current risk-only RiskQueue with a PFS-sorted case queue and a 4-tab case detail view covering the full coordination lifecycle: patient overview, timeline & transport, communication, and documents.
2. Primary User Action¶
Identify the highest-priority case and take the next action. Every screen visit should answer: "What needs my attention right now?"
3. Users¶
- Primary: Curaway coordinator (ops staff, ~20 active cases, desktop, full-day usage)
- Context: Professional tool in an office setting. Coordinators are measured on CSAT and response times. Speed and accuracy matter.
- State of mind: Task-oriented, context-switching frequently between cases. Need to scan quickly, drill in when needed.
- Frequency: Open all day, checked every few minutes
4. Design Direction¶
Linear-inspired instrument panel. Same direction as the provider portal but with more surface area (coordinators see more data than providers).
- Dense data, no whitespace waste. Information-rich tables, not card grids.
- Deep Ocean #004D4D for the nav rail (56px, same as provider portal).
- Teal sparingly — active states, primary actions. Coral for urgency/escalation.
- PFS band colors are the primary status indicator: green (ready), teal (conditional), amber (needs attention), red (not ready).
- Keyboard-navigable:
↑/↓to navigate queue,Enterto open case,Escto return. - No completion rings in the queue (those are patient-facing). Use horizontal PFS bar or numeric badge.
Referencing .impeccable.md: "Clean and clear — medical data is complex. The UI must make it scannable." Coordinators juggle 20 cases — scanability is survival.
5. Layout Strategy¶
Queue View (Default)¶
┌─────────────────────────────────────────────────────────────────┐
│ [Nav 56px] Case Queue (18) [Search] [Filters ▾] │
├──────┬──────────────────────────────────────────────────────────┤
│ │ │
│ Nav │ ┌─ Filters: Phase ▾ PFS Band ▾ Destination ▾ Tier ▾│
│ rail │ │ │
│ │ │ Case Patient Procedure PFS Tier Next │
│ │ │ ─────────────────────────────────────────────────── │
│ │ │ CRW-00247 Aisha M. TKR Istanbul 78▲ T1 Quote │
│ │ │ CRW-00251 James R. CABG Chennai 48● T2 Upload│
│ │ │ CRW-00255 Wei L. Bariatric BKK 32▼ T1 Call │
│ │ │ ... │
│ │ │ │
│ │ └─ 18 cases · 3 escalated · avg PFS 64 │
└──────┴──────────────────────────────────────────────────────────┘
Visual hierarchy: PFS score (color-coded) → Next Action (bold) → Procedure → Patient → Case #
Case Detail (4-Tab)¶
┌──────┬─────────────────────────────────────────────────────────┐
│ │ ← Back to Queue CRW-2026-00247 · Aisha M. │
│ Nav │ ────────────────────────────────────────────────────── │
│ rail │ [Patient Overview] [Timeline & Transport] [Comms] [Docs]│
│ │ ────────────────────────────────────────────────────── │
│ │ │
│ │ Tab content area (full width) │
│ │ │
│ │ ────────────────────────────────────────────────────── │
│ │ Action Bar: [Escalate] [Reassign] [Add Note] [Close] │
└──────┴─────────────────────────────────────────────────────────┘
Tab 1: Patient Overview¶
- Left column (60%): Layer summary (4 sections mirroring SummaryPanelV2 layout — About You, Health Profile, Travel Readiness, Planning). Each section expandable.
- Right column (40%): PFS/HSS/FMS score cards. Gap list. Matched provider. Consultation routing recommendation.
Tab 2: Timeline & Transport¶
- Vertical timeline (left edge): journey milestones from intake → pre-op → travel → admitted → procedure → post-op → follow-up → case complete
- Each milestone: status (done/current/upcoming), date, responsible party
- Transport bookings: inline cards with vendor, route, vehicle, cost. [+ Book] button at top.
- Vendor quick-select: searchable dropdown filtered by city + service type
Tab 3: Communication¶
- Chat thread (coordinator ↔ patient), most recent at bottom
- Message composer at bottom with AI draft assist:
- Coordinator types OR clicks "AI Draft" → AI generates message → coordinator edits → sends
- Clear visual distinction: AI-drafted messages show a subtle "AI drafted" label until coordinator edits/approves
- Real-time updates (SSE or polling)
- Message types: text, file attachment, system notification
Tab 4: Documents & EHR¶
- Shared EHR viewer (reuse FullEHRDrawerV2 inline, not overlay)
- Document checklist: required docs per procedure, status (uploaded/missing/flagged), action buttons (request upload, flag issue)
- Coordinator can annotate: "Missing pre-op blood work" → patient notified
6. Key States¶
| State | User sees | User feels |
|---|---|---|
| Empty queue | "No cases assigned" | Relaxed |
| Queue with cases | PFS-sorted rows, urgency indicators | Clear priority |
| Escalation active | Red badge on case row, coral highlight | Urgent attention needed |
| Case detail loading | Skeleton tabs | Brief wait |
| Timeline empty | "No milestones yet — case in intake" | Informed |
| Transport booked | Green status, vendor details | Confirmed |
| AI drafting message | Thinking indicator in composer | Patient |
| AI draft ready | Draft in composer with "AI drafted" label, edit button | In control |
| Chat message sent | Optimistic append, checkmark when delivered | Confirmed |
| Document missing | Red "Missing" badge, [Request] button | Actionable |
| All docs complete | Green checkmarks across checklist | Complete |
7. Interaction Model¶
- Queue navigation: Click row to open case detail.
↑/↓keyboard nav.Enterto open.Escback to queue. - Filters: Dropdown chips (Phase, PFS Band, Destination, Transport Tier). Multi-select. Persist across sessions (localStorage).
- Sort: Click column headers. Default: PFS ascending (worst first = needs attention first).
- Tab switching: Click tabs. URL updates (
/cases/CRW-00247/timeline).1/2/3/4keyboard shortcuts. - Escalation: "Escalate" button in action bar → inline form (reason, severity, action taken). No modal.
- Transport booking: [+ Book] → inline form in timeline tab. Select vendor → fill details → confirm. Patient notified automatically.
- Communication: Type message → send (Enter). Or "AI Draft" → review → edit → send (Cmd+Enter).
- Audit: Every action writes to coordinator_audit_log automatically. No UI for this — it's invisible compliance.
8. Content Requirements¶
Queue columns¶
- Case: CRW-YYYY-XXXXX format
- Patient: First name + last initial (Aisha M.)
- Procedure: Short name + destination city (TKR · Istanbul)
- PFS: Numeric (0-100) with colored background per band
- Tier: T1/T2/T3/T4 badge
- Phase: Current case state (intake/matching/quoting/booked/traveling/post-op)
- Next Action: Bold, actionable verb (Quote, Upload, Call, Book, Review)
- Time: Time since last activity or time to deadline
Queue footer¶
- Case count, escalation count, average PFS
Tab labels¶
- "Overview" (not "Patient Overview" — too long for tab)
- "Timeline" (not "Timeline & Transport" — tab labels should be short)
- "Messages" (not "Communication")
- "Documents" (not "Documents & EHR")
AI draft label¶
- "AI drafted — review before sending"
- After edit: label disappears (coordinator owns the message)
9. Recommended References¶
spatial-design.md— dense table layout, tab content areasinteraction-design.md— forms, inline editing, keyboard navigationtypography.md— data-dense type scale, tabular numbersmotion-design.md— tab transitions, message append animationux-writing.md— action verbs, professional tone, status copy
10. Open Questions¶
- Should the queue auto-refresh (SSE) or manual refresh? Recommend: auto-refresh with subtle "New cases" banner.
- AI draft assist: should it pre-populate or require explicit "Draft" button? Recommend: explicit button — coordinator should always be in control.
- Escalation severity levels: how many tiers? Recommend: 2 (urgent, critical) — keep simple.
- Should coordinators see other coordinators' cases? Recommend: no by default, "Team view" toggle for supervisors.