Skip to content

Releases: queelius/chartfold

v1.3.0

15 Mar 21:08

Choose a tag to compare

What's New

AI Chat in HTML SPA Export

  • Client-side agent loop — ask natural-language questions about your medical record via a proxy to Claude. All patient data stays in your browser.
  • Inline charts — the LLM can render line charts (via render_chart tool) directly in the chat conversation for trend visualization.
  • Conversation persistence — chat history survives navigation between SPA sections (DOM detach/reattach).
  • Sliding window — conversation trimmed to 40 messages with pair-aware logic (won't orphan tool_use/tool_result pairs).
  • Clear button — reset conversation with one click.
  • CLI flags: --ai-chat and --proxy-url

Visit Prep Section

  • Auto-detects most recent encounter date, shows everything new since then
  • 9 clinical categories: labs, encounters, medications, imaging, notes, conditions, procedures, pathology, genetic variants
  • Editable date input for custom ranges
  • Uses parameterized SQL queries

Print Summary Section

  • One-page printable view: demographics, active conditions, active medications, recent labs with trend arrows (↑↓→), last 3 encounters
  • "Print" button calls window.print()

Arkiv Export/Import (Round-Trip)

  • Replaced JSON export with Arkiv format (JSONL + README.md + schema.yaml)
  • Full round-trip: export → import with FK remapping, tag unfolding, source asset restoration
  • --embed flag for inline base64 assets
  • --validate-only mode for import

Other Changes

  • _CLINICAL_TABLES derived from _UNIQUE_KEYS (auto-tracks new tables)
  • MCP server bug fixes (get_lab_series_tool, get_visit_prep parameter mismatches)
  • Removed broken get_timeline MCP tool
  • Added get_medication_list() with optional status filtering
  • Genetic variants table and MyChart test result MHTML parser
  • 1124 tests, 72% coverage

Stats

  • 60 commits since v1.0.0
  • 1124 tests (up from ~900)
  • 72% coverage (minimum 68%)

v1.1.0

24 Feb 20:32

Choose a tag to compare

What's New

Genetic Variants Table + Test-Result MHTML Parser

  • New genetic_variants table for structured genomic data (gene, classification, VAF, DNA/protein change, transcript)
  • Test-result MHTML parser for Epic MyChart genomic panels (Tempus XF)
  • TMB and MSI extracted as lab results
  • CLI: chartfold load mychart-test-result subcommand with auto-detection

Epic Adapter Improvements

  • Procedure metadata captured as JSON (unmapped keys preserved)
  • Fallback to encounter date when procedure date missing

SPA HTML Export

  • Embedded image viewer with overlay (click to zoom, Escape to close)

Other

  • MHTML files renamed for clarity: mychart_mhtmlmhtml_visit
  • Arkiv export and visit_diff wired for genetic_variants
  • Design and implementation plan docs
  • 1090 tests passing

v1.0.0 — First stable release

16 Feb 22:46

Choose a tag to compare

chartfold v1.0.0

First stable release of the patient-facing EHR data consolidation tool.

Features

  • Three-stage data pipeline: Epic MyChart (CDA), MEDITECH Expanse (FHIR+CCDA), athenahealth (FHIR R4)
  • Unified SQLite database: 16 clinical tables + audit log + personal notes + structured analyses + source assets
  • Self-contained HTML SPA export: Embedded SQLite via sql.js (WebAssembly), Chart.js visualizations, all client-side
  • Full-fidelity JSON export/import: Auto-discovered tables with FK-aware topological import
  • MCP server: 12+ tools for LLM-assisted clinical analysis (read-only SQL + CRUD for notes/analyses)
  • Structured analyses: YAML frontmatter + markdown, stored in DB, queryable via json_extract()
  • Bidirectional source linking: Clinical records ↔ source documents (PDFs, images)
  • CLI: Load, query, export, manage data — python -m chartfold

Stats

  • 918 tests passing
  • Requires Python 3.11+
  • Dependencies: lxml, PyYAML, mcp (FastMCP)

Install

git clone https://github.com/queelius/chartfold.git
cd chartfold
pip install -e ".[dev,mcp]"