Commit Graph

104 Commits

Author SHA1 Message Date
Andrew Charlwood e123599312 docs: update progress.txt with iteration 37 (Task 10.5 complete — Patient Pathways 2-tab view) 2026-02-06 21:58:18 +00:00
Andrew Charlwood 0f1ae5dd2a docs: update progress.txt with iteration 36 (Task 10.4 complete — global filter sub-header) 2026-02-06 21:52:55 +00:00
Andrew Charlwood 95f5125889 docs: update progress.txt with iteration 35 (Task 10.3 complete — header fraction KPIs) 2026-02-06 21:46:09 +00:00
Andrew Charlwood 6c9f68d880 docs: update progress.txt with iteration 34 (Task 10.2 complete — two-view architecture) 2026-02-06 21:38:53 +00:00
Andrew Charlwood 94b1ac640a docs: design specification for Phase 10 two-view architecture (Task 10.1) 2026-02-06 21:33:43 +00:00
Andrew Charlwood 547bc7c867 docs: complete Phase 9 final integration (Task 9.10)
All 8 chart tabs verified — queries, figures, and filter dispatch
tested in both directory and indication modes. CLAUDE.md updated
with new chart types, query functions, and parsing utilities.
Phase 9 completion criteria all satisfied.
2026-02-06 20:22:21 +00:00
Andrew Charlwood e4d6c8886b docs: update progress.txt with iteration 31 (Task 9.9 complete — Duration chart) 2026-02-06 20:13:42 +00:00
Andrew Charlwood 1b134c46a2 docs: update progress.txt with iteration 30 (Task 9.8 complete — Heatmap chart) 2026-02-06 20:05:05 +00:00
Andrew Charlwood c1e11a6dd7 docs: update progress.txt with iteration 29 (Task 9.7 complete — Dosing Interval chart) 2026-02-06 19:58:47 +00:00
Andrew Charlwood 02fe4b4e28 feat: add Dosing Interval Comparison chart (Task 9.7) 2026-02-06 19:58:28 +00:00
Andrew Charlwood b1136ad7bf docs: update progress.txt with iteration 28 (Task 9.6 complete — Sankey diagram) 2026-02-06 19:51:44 +00:00
Andrew Charlwood ba39f94c32 docs: update progress.txt with iteration 27 (Task 9.5 complete — cost waterfall chart) 2026-02-06 19:45:24 +00:00
Andrew Charlwood 47e4aa4df2 docs: update progress.txt with iteration 26 (Task 9.4 complete — cost effectiveness chart) 2026-02-06 19:39:48 +00:00
Andrew Charlwood c34381a263 docs: update progress.txt with iteration 25 (Task 9.3 complete — market share chart) 2026-02-06 19:29:44 +00:00
Andrew Charlwood 4375d22022 docs: update progress.txt with iteration 24 (Task 9.2 complete — query functions) 2026-02-06 19:22:23 +00:00
Andrew Charlwood b34a1138fc docs: update progress.txt with iteration 23 (Task 9.1 complete — parsing + tabs) 2026-02-06 19:14:19 +00:00
Andrew Charlwood 8a45ff1ca7 docs: update progress.txt with iteration 22 (Section 8 complete — pruning + KPIs) 2026-02-06 16:27:09 +00:00
Andrew Charlwood ca64a4ab7d docs: update progress.txt with iteration 21 (Tasks 7.4 + 7.5 complete — modals + filter bar) 2026-02-06 15:43:46 +00:00
Andrew Charlwood 0cb63146dd docs: update progress.txt with iteration 20 (Task 7.3 complete — sidebar restructure) 2026-02-06 15:31:00 +00:00
Andrew Charlwood 74c243c8a2 docs: update progress.txt with iteration 19 (Task 7.2 complete — filter fix) 2026-02-06 15:24:59 +00:00
Andrew Charlwood d38c5515fe docs: update progress.txt with iteration 18 (Task 7.1 complete — duplicate ID fix) 2026-02-06 15:19:57 +00:00
Andrew Charlwood 54b4a0f743 docs: update all documentation for Dash migration (Phase 6)
Rewrote README.md, USER_GUIDE.md, and DEPLOYMENT.md to reflect
the Dash application. Updated RALPH_PROMPT.md, guardrails.md, and
DESIGN_SYSTEM.md to remove Reflex references. All non-archive
documentation now reflects the current Dash + DMC architecture.
2026-02-06 14:54:12 +00:00
Andrew Charlwood 4cb5641c2d docs: update progress.txt with iteration 16 (Task 5.4 complete — migration done) 2026-02-06 14:36:39 +00:00
Andrew Charlwood 7a4f9ce567 docs: update progress.txt with iteration 15 (Task 5.3 complete) 2026-02-06 14:23:14 +00:00
Andrew Charlwood b739d47e18 docs: update progress.txt with iteration 14 (Task 5.2 complete) 2026-02-06 14:17:30 +00:00
Andrew Charlwood 4540e110e1 docs: update progress.txt with iteration 13 (Task 5.1 complete) 2026-02-06 14:10:39 +00:00
Andrew Charlwood e8145867c1 docs: update progress.txt with iteration 12 (Task 4.2 complete) 2026-02-06 14:00:21 +00:00
Andrew Charlwood b5d32224e2 docs: update progress.txt with iteration 11 (Task 4.1 complete) 2026-02-06 13:52:52 +00:00
Andrew Charlwood 0e4184541a docs: update progress.txt with iteration 10 (Task 3.4 complete) 2026-02-06 13:45:13 +00:00
Andrew Charlwood ac731780b5 docs: update progress.txt with iteration 9 (Task 3.3 complete) 2026-02-06 13:39:22 +00:00
Andrew Charlwood f5486fc79e docs: update progress.txt with iteration 8 (Task 3.2 complete) 2026-02-06 13:34:26 +00:00
Andrew Charlwood dcdc987063 docs: update progress.txt with iteration 7 (Task 3.1 complete) 2026-02-06 13:30:32 +00:00
Andrew Charlwood d896c63dc5 docs: update progress.txt with iteration 6 (Task 2.3 complete) 2026-02-06 13:24:48 +00:00
Andrew Charlwood 3568e03fc2 feat: add footer component and complete Phase 2 static layout (Task 2.3) 2026-02-06 13:24:33 +00:00
Andrew Charlwood 07a9d00538 docs: update progress.txt with iteration 5 (Task 2.2 complete) 2026-02-06 13:20:55 +00:00
Andrew Charlwood 307563bb31 feat: add KPI row, filter bar, and chart card components (Task 2.2) 2026-02-06 13:20:42 +00:00
Andrew Charlwood 5ebe75ad13 docs: update progress.txt with iteration 4 (Task 2.1 complete) 2026-02-06 13:14:25 +00:00
Andrew Charlwood 76549420a0 feat: add directorate card tree builder for drug browser drawer (Task 1.2) 2026-02-06 13:06:29 +00:00
Andrew Charlwood b71748fa7d feat: add shared pathway query functions for Dash data access (Task 1.1)
Extract load_data() and load_pathway_data() logic from Reflex AppState
into standalone functions in src/data_processing/pathway_queries.py.
Create thin dash_app/data/queries.py wrapper with DB_PATH resolution.
2026-02-06 13:02:34 +00:00
Andrew Charlwood 1c3ece6480 feat: create dash_app skeleton with nhs.css and MantineProvider (Phase 0)
- dash_app/ directory structure: app.py, assets/, data/, components/, callbacks/, utils/
- run_dash.py entry point at project root
- Added dash>=2.14.0 and dash-mantine-components>=0.14.0 to pyproject.toml
- app.py: Dash app with MantineProvider wrapper and 3 dcc.Store components
- nhs.css: extracted from 01_nhs_classic.html (sans mock icicle CSS)
- Validated: app starts cleanly at localhost:8050
2026-02-06 12:57:47 +00:00
Andrew Charlwood f3bba6dfab docs: complete Phase 4 validation — full refresh and data verification (Task 4.1-4.3)
Full refresh: 2,947 nodes (1,101 directory + 1,846 indication) in 738s.
Validation: RA/asthma drugs correctly grouped, fallback labels present,
directory charts unchanged, Reflex compiles. All completion criteria met.
2026-02-06 00:12:53 +00:00
Andrew Charlwood b674543878 docs: update progress.txt with Iteration 6 results (Task 3.2) 2026-02-05 23:55:26 +00:00
Andrew Charlwood c6e426e36c fix: increase network timeout and batch size for GP lookup queries (Task 3.2)
Dry run test revealed GP lookup queries timing out at 30s (connection_timeout
in snowflake.toml). Increased to 600s. Also increased batch_size from 500 to
5000 — query time is ~40s regardless of batch size (CTE compilation overhead),
so larger batches reduce total time from ~50min to ~6min for 36K patients.

Dry run results: 91.8% GP match rate, 49.3% drug-indication match rate,
42,072 modified UPIDs, 1,846 pathway nodes across 6 date filters.
2026-02-05 23:55:12 +00:00
Andrew Charlwood 73088b063b docs: update progress.txt with Iteration 5 results (Task 3.1) 2026-02-05 23:11:14 +00:00
Andrew Charlwood 920570b437 feat: integrate drug-aware indication matching into refresh pipeline (Task 3.1)
Replace old per-patient indication matching in refresh_pathways.py with
drug-aware matching via assign_drug_indications(). Each drug is now
cross-referenced against both the patient's GP diagnoses AND the
DimSearchTerm.csv drug mapping. GP codes restricted to HCD data window
via earliest_hcd_date parameter.
2026-02-05 23:11:01 +00:00
Andrew Charlwood d9891c8991 docs: update progress.txt with Iteration 4 results (Task 2.1 + 2.2) 2026-02-05 23:06:27 +00:00
Andrew Charlwood 947b87a331 docs: update progress.txt with Iteration 3 results (Task 1.1) 2026-02-05 23:01:15 +00:00
Andrew Charlwood c93417f0e7 feat: return ALL GP matches with code_frequency in get_patient_indication_groups (Task 1.1)
- Replace QUALIFY ROW_NUMBER()=1 with GROUP BY + COUNT(*) to return all matching
  Search_Terms per patient instead of just the most recent
- Add earliest_hcd_date parameter to restrict GP codes to HCD data window
- Return code_frequency column (count of matching SNOMED codes per Search_Term)
  for use as tiebreaker in drug-aware indication matching
- Update empty DataFrame returns to match new column format
2026-02-05 23:01:01 +00:00
Andrew Charlwood 4fed0e53df docs: update progress.txt with Iteration 2 results (Task 1.2) 2026-02-05 22:56:44 +00:00
Andrew Charlwood b0a8a9de1c feat: merge asthma Search_Term variants in CLUSTER_MAPPING_SQL and drug mapping (Task 1.2)
Merge 'allergic asthma' and 'severe persistent allergic asthma' into
canonical 'asthma' in both CLUSTER_MAPPING_SQL (Snowflake CTE) and
load_drug_indication_mapping() (DimSearchTerm.csv loader).

- CLUSTER_MAPPING_SQL: 3 Cluster_IDs (AST_COD, eFI2_Asthma, SEVAST_COD) now
  all map to Search_Term = 'asthma'
- Added SEARCH_TERM_MERGE_MAP constant for reusable normalization
- load_drug_indication_mapping() applies merge at CSV load time
- urticaria (XSAL_COD) stays separate — not merged with asthma
- Combined asthma drug list: BENRALIZUMAB, DUPILUMAB, INHALED, MEPOLIZUMAB,
  OMALIZUMAB, RESLIZUMAB
2026-02-05 22:56:29 +00:00