← Back to work

Making ML-Extracted Clinical Insights Accessible

Patient Chart Extractor (PCE)

Role: Sole designer (2 engineers, 1 PM) working in close partnership with ML Platforms team
Timeline: May 2025–present (initial release Sep 2025).
Users: ~70 research oncologists and clinical analysts.
Contributions: Designed PCE, set project-agnostic development strategy, played PM-esque role in training, onboarding, and troubleshooting
Note: PCE builds on experiments detailed in "ML strategy at Flatiron."

Outcomes


PCE is a new internal app that lets non-technical users at Flatiron leverage our internal LLM platform to query batches of patient documents and extract structured insights. In practice, users can extract very accurate dates, drugs, and events from thousands of patients in 20 minutes rather than the 2 weeks it would take to do this manually.

With access to the sheer scale, processing capacity, and interpretive abilities of LLMs, Flatiron researchers can actually learn from every patient in our dataset.

PCE has unlocked $3.2 million in new revenue, solved 200+ project scoping use cases, and is now greenlit to become a data delivery vehicle by late 2026.

Representative animation of PCE filtering down documents.
PCE filters down to snippets of interest from the full chart to answer questions defined by our users.

The Gap in Chart Review


To deliver datasets (like treatment patterns for a new drug), teams must verify its existence (can we find this drug in charts), cohort size (how many patients have taken this drug), and extraction feasibility (how many non-drug patients do we still have to look at in order to find ones that are taking it). While existing datasets cover common diseases, running bespoke models is cost-prohibitive for small-scale scoping. Internal teams required a way to ask complex questions—e.g., "How many bladder cancer patients reported nausea while on cisplatin?"—and receive verifiable counts within 30 minutes. PCE democratizes these ML-extracted insights across the organization.

Existing Workarounds


By early 2025, a few clinicians used local Jupyter notebooks our team hacked together to access fh_llm, our internal library for LLM extraction. However, maintaining local instances was unscalable and lacked visibility into user behavior. We needed a centralized web application to standardize the process.

Jupyter notebook
Step 1/13 from the notebook. One user recently noted "I loved what Juypter can do, but I'm so glad I haven't had to use it [recently]. PCE's so much better."

PCE Functionality


Users create projects and build iterations by:

PCE provides a 3-patient preview before the full run. The system processes patients individually via Claude, validating responses against a defined schema. Users receive two CSVs: extracted data and source snippets, allowing them to verify the AI’s reasoning and refine prompts in subsequent iterations.

Creating a PCE project and receiving real preview data within 2 minutes.

Core Design Decisions


1. Transparency as a Feature
I designed PCE to be "open by default." Users can view, copy, and learn from any existing work. Every action is timestamped and authored, creating an audit trail. This transformed extraction into a collaborative platform where users learn from one another’s prompt strategies.

Homepage, iteration sidebar
All projects on the homepage are searchable; a user could search "ethnicity" to learn from previous trial diversity projects.

2. Improving Design Fidelity
V1 functioned like a dense IDE on a single screen, creating high cognitive load. Feedback indicated it didn't feel like an upgrade. I pushed for V2, which delineated project stages, enabled in-app data review, and displayed performance metrics. This version made the application’s value and collaborative nature intuitive.

PCE v1 designs
PCE v1 was too busy in service of tech simplicity. Nobody knew where to look next. When engineering said v2 would be low lift to implement, we skipped ahead.
PCE v2 designs
We released v2 instead and gave users a history sidebar and more room for each setup step. This also aligned more with popular LLM apps.

3. Depth Over Breadth
Users requested features for finding cohorts ("before") and data analysis ("after"). We purposefully deferred these to perfect the core extraction "slice": .csv in, .csv out. By investing in Ray LLM infrastructure, we enabled users to process 10,000 patients at once. This allowed Flatiron to pursue rare cancer projects requiring massive datasets. Focusing on this specific slice proved business value early across many project types.

Stakeholder Management


Faced with pressure to build niche features, I championed a strategy of generalized improvement based on the outcome of a Vision-setting exercise I ran. We clarified early that while the scoping team was our first partner, PCE was not a "scoping tool." By sticking to our scoped extraction slice, we built a robust tool where anyone could attempt to generate revenue or save time. This prevented the roadmap from being influenced by any single group and allowed us to discover that analytic projects—not anyone's prediction of PCE's main value—were the primary revenue drivers.

PCE values
We shared our principles with the wider Data org. Referencing this doc with stakeholders helped establish ourselves as truly outside any one org.

User Testing & Adoption Strategy


User test for the PCE keyword suggestions feature.
Testing automatic keyword suggestions. By showing a range of highly selective keywords, users can critically evaluate their existing ones and choose to replace them with new ones.

PCE Today


PCE is now greenlit to become a data delivery vehicle by late 2026.

physician insights signings
From signing a $2M breast cancer physician insights project...
physician insights signings
...to iterating on the project in PCE.

What I Would Do Differently


Flextape meme where PCE stops a leak.
But I will take this CD-created meme as a sign that our userbase still likes the app.

← Back to work