Files
HighCostDrugsDemo/progress.txt
T
2026-02-04 13:11:11 +00:00

98 lines
4.1 KiB
Plaintext

# Progress Log
## Design Context
### Project Vision
Complete UI redesign of HCD Analysis tool. Modern, bold design with NHS color scheme inspiration (not constrained by it). Single-page dashboard replacing multi-page sidebar layout. Light mode only.
### Key Design Decisions
1. **No sidebar** — all filters in a prominent filter bar
2. **No user auth UI** — local app, no login needed
3. **Chart navigation via tabs** — top bar has chart type selection (Icicle now, more later)
4. **Instant filtering** — debounced (300ms), not "Apply" button
5. **Two date ranges**:
- "Initiated" filter (default: OFF, include all patients)
- "Last Seen" filter (default: ON, last 6 months)
- "To" date always = latest date in dataset
6. **Searchable dropdowns** — Drugs, Indications, Directorates with search + counts
7. **Data source hidden** — SQLite only, refresh via CLI, show freshness indicator
8. **KPIs reactive** — update when filters change
### Color Palette (from DESIGN_SYSTEM.md)
- Heritage Blue: #003087 (deep, authoritative)
- Primary Blue: #0066CC (main actions)
- Vibrant Blue: #1E88E5 (highlights, hovers)
- Sky Blue: #4FC3F7 (accents)
- Pale Blue: #E3F2FD (backgrounds)
- Neutrals: Slate family (#1E293B → #F1F5F9)
### Typography
- Font: Inter (Google Fonts or system)
- Display: 32px/700, Heading1: 24px/600, Body: 14px/400, Caption: 12px/500
## Reflex Patterns
### Var operations in rx.foreach
When using `rx.foreach`, items are Reflex Vars. Use:
- `.to(int)` for numeric comparisons
- `.to_string()` for text operations
- Never use f-strings or Python operators directly
### Conditional rendering
Use `rx.cond(condition, true_value, false_value)` not Python `if`.
### State structure
- Event handlers modify state
- `@rx.var` decorated methods for computed/derived values
- All state vars need defaults
## Existing Codebase Reference
### Key files to reference
- `pathways_app/pathways_app.py` — existing Reflex app (2100+ lines)
- `analysis/pathway_analyzer.py` — chart data preparation logic
- `data_processing/loader.py` — SQLite data loading
- `core/models.py` — AnalysisFilters dataclass
### Patterns that work in existing code
- `State` class with filter variables
- `rx.plotly()` for chart rendering
- Multi-select with `rx.checkbox` groups
- Theme configuration via `rx.theme()`
## Iteration Log
<!-- Each iteration appends a structured entry below. See RALPH_PROMPT.md for format. -->
## Iteration 1 - 2026-02-04
### Task: 1.1 Design Tokens Module
### Status: COMPLETE
### What was done:
- Created `pathways_app/styles.py` with all design tokens from DESIGN_SYSTEM.md
- Colors class: Heritage Blue, Primary, Vibrant, Sky, Pale blues + Slate neutrals + semantic colors
- Typography class: Font family (Inter), sizes, weights, line heights for Display/H1/H2/H3/Body/Caption/Mono
- Spacing class: XS(4px) through XXXL(48px)
- Radii class: SM(4px) through FULL(9999px)
- Shadows class: SM/MD/LG/XL shadow values
- Transitions class: Color/Transform/Shadow/Opacity timings
- Helper functions: card_style(), button_primary/secondary/ghost_style(), input_style(), kpi_card/value/label_style(), text_display/h1/h2/h3/body/caption/mono()
- Layout constants: TOP_BAR_HEIGHT="64px", PAGE_MAX_WIDTH="1600px"
### Validation results:
- Tier 1 (Code): python -m py_compile PASSED, imports verified (Colors.PRIMARY = #0066CC, Spacing.LG = 16px)
- Tier 2 (Visual): N/A (no UI component yet)
- Tier 3 (Functional): Helper functions verified - return correct dict structures
### Files changed:
- Created: pathways_app/styles.py (408 lines)
- Updated: IMPLEMENTATION_PLAN.md (marked 1.1 complete)
### Committed: 2bd28f5 "feat: create design tokens module (styles.py)"
### Patterns discovered:
- Using classes with class attributes (not instances) works well for tokens
- Helper functions returning dicts can include _hover and other pseudo-selectors
### Next iteration should:
- Start Task 1.2: Create app_v2.py with basic Reflex app skeleton
- Create AppState class with minimal placeholder state
- Set up single-page layout structure matching DESIGN_SYSTEM.md
- Configure Reflex theme with design system colors
- Verify `reflex run` compiles and shows page
### Blocked items:
- None