Chris Blum, home

Cubie Patient Lookup

An internal web app that gave a care team without reliable EMR access a longitudinal view of patient health — built on claims data.

Patient lookup on a laptop: patient details, primary care provider, a claims snapshot and the medications list
Timeframe
2026
Company
Cubie Health
Scope
Product Design, Product Management, Data Engineering
Deliverables
Web App UI, Claims Data Pipeline (Python)

The short version

From going in blind to a five-minute lookup.

Cubie's care team prepared for appointments with no reliable view of a patient's history. With no bandwidth from engineering or data, I scoped, designed and built the fix myself: a Python pipeline that turns millions of monthly claims into a clean patient record, and a web app that puts it in front of the care team in a second or two.

~15 → <5 minAppointment prep per patient, where prep was possible at all
~20KPatients covered: Cubie's full attributed population
100%Of scheduled appointments preceded by a lookup

The problem

The care team was going into calls blind.

Cubie Health manages cardiovascular care for patients attributed through health plan contracts. Doing that well depends on an accurate picture of each patient before every appointment, and the team rarely had one.

Read more

In some cases, Cubie had no direct relationship with a patient's provider, so their health history was effectively a black box. In others, a relationship existed, but EMR access was inconsistent and often unreliable, with real connectivity issues just getting into the systems at all.

Either way, the care team was left relying on patient recall during limited appointment time, for an older cardiovascular population that often couldn't accurately remember their own medications, procedures or diagnoses. Time spent re-collecting information patients had already given a doctor somewhere else was time not spent on the actual care plan.

No provider relationship

A black box

  • No access to the patient's records
  • No source to prep from at all
  • The whole history rests on patient recall
A relationship, but a flaky EMR

Slow when it worked

  • Connectivity issues just getting in
  • Ten to fifteen minutes of prep per patient
  • Gaps still filled from the patient's memory

My role

Product, pipeline and interface: one person, end to end.

I scoped the project, built the data pipeline and designed and built the web app, iterating directly with the people who used it every day.

  1. Product management

    Scoped the project end to end, and worked with the Chief Medical Officer and clinical and ops staff to define what data mattered and how it should be prioritized.

  2. Data engineering

    Built the Python pipeline that ingests, cleans, de-duplicates and caches monthly claims data at scale.

  3. Product design

    Designed and built the web app itself — information architecture, layout and interaction model — and iterated on it with daily users.

Approach

Clinical buy-in

The CMO decided what mattered; the care team decided what worked.

Which cardiology CPT codes, which diagnosis codes and which medications were worth surfacing versus noise shaped both what the pipeline filtered for and how the app was organized.

Read more

I worked closely with Cubie's Chief Medical Officer and clinical and ops staff to figure out what actually mattered. That input shaped both the pipeline and the interface: fast access to what's actionable now, without losing the full historical record that tells a patient's longer health story.

The users were Cubie's own clinical staff, and the fastest path to a useful tool was working directly with the people who set clinical priorities and the people who'd use it every day.

Constraints

No bandwidth for a platform, so I built on what Cubie already trusted.

Solving this properly meant an internal platform with real database access, and neither engineering nor data had the bandwidth. A Google Apps Script web app over a Sheets-backed datastore was fast to build, with nothing new to provision.

Read more

The obvious concern — storing real patient health data outside a purpose-built system — was already handled. Cubie's Google Workspace is HIPAA-compliant, so gating the app behind Workspace login delivered real access control for free. There was no login system to build and no auth to secure; that risk was covered by infrastructure Cubie already trusted.

What a proper build needed

A new internal platform

  • Real database access and new infrastructure
  • A login system and auth to secure
  • Engineering and data team time that didn't exist
What I built on

Infrastructure Cubie already had

  • A Google Apps Script web app for the interface
  • A Sheets-backed datastore underneath
  • HIPAA-compliant Workspace login as access control

The app, not the spreadsheet

Sheets is invisible infrastructure. Nobody using the tool ever sees it.

The care team goes to a URL and gets a purpose-built web app — my own layout, type hierarchy and interaction model, written in code.

Read more

Owning the front end meant owning the information hierarchy — what gets grouped, what stays collapsed, what a user sees first — none of which a spreadsheet would have let me control. And because the UI was decoupled from the data underneath it, the interface could be redesigned week to week without touching the pipeline.

A full patient lookup: searching an ID, then patient details, PCP, medications, diagnoses and procedures
A full lookupSearch a patient ID, then read top to bottom: who they are, who to call, and their clinical record.

The product

Data ordering

Who is this, who do I call, and what can I do about it.

Five sections in a fixed order is the core design decision of the whole tool. Reading top to bottom, a care team member never backtracks.

Read more

Identification comes first, because acting on the wrong patient is the one unrecoverable error. Provider contact comes second, because it's the escape hatch when something doesn't add up.

Then the clinical record runs in descending order of how changeable it is during a call: medications can be adjusted today, diagnoses provide context, procedures are history. A reader moves from "who is this" to "what can I do about it" without ever backtracking.

The app's five sections in order: patient, then PCP, then medications, diagnoses and procedures. Identification comes first, then the clinical record from most to least changeable during a call. PatientWho is this PCPEscape hatch MedicationsAct on today DiagnosesContext ProceduresHistory Identify first Clinical record: most changeable during a call → least The app's five sections in order: patient, then PCP, then medications, diagnoses and procedures. Identification comes first, then the clinical record from most to least changeable during a call. PatientWho is this PCPEscape hatch MedicationsAct on today DiagnosesContext ProceduresHistory Identify Most changeable first

What the tool surfaces

Enough to identify, contact and act, and nothing that's noise.

Each section answers one question a care team member has before the call, filtered to what's cardiology-relevant.

  1. Patient info

    Name, ID number, date of birth and contact info: enough to positively identify the patient before anything else.

  2. PCP info

    Provider name, health group, phone, fax, email and address: a fast path to the provider if questions come up.

  3. Medications

    Full history, de-duplicated to the latest fill, with a computed doses-per-day to support adherence conversations.

  4. Diagnoses

    Cardiology-relevant history, grouped under umbrella conditions and tied to the diagnosing provider.

  5. Procedures

    Cardiovascular procedure history, tied to the performing provider through an automated NPI lookup.

In practice

From recall to verification

Confirming a record is far easier than remembering one.

Asking an older patient to remember their medications, procedures and diagnoses cold, on a rushed call, is unreliable by nature. Asking them to confirm what's on file, or fill one specific gap, holds up on every call.

Read more

The clearest proof that the information architecture worked came from the days it wasn't supposed to. When appointments ran back to back and there was no prep time at all, care team members pulled the app up mid-call and read from it live — unrehearsed, with a patient already on the line — and the calls still went well.

90+%

of patients couldn't recall every medication they were actively supposed to be taking. That number justified the whole project.

Before

Rebuilding history from memory

  1. Attempt EMR access
  2. Find it incomplete or unavailable
  3. Ask the patient to recall
  4. Rebuild the record from memory
After

Confirming a record that's already there

  1. Search the patient ID
  2. Plan the visit
  3. Verify with the patient
  4. Copy to the EMR
  5. Export for referral

Interoperability

One click into the EMR, one export for referral partners.

Copy to EMR removes the manual re-entry that would otherwise eat into prep time. The partner export gives referral partners, who face the same information gap, a record they can use.

Copying a medication from the lookup into the EMR
Copy to EMRRecords move from the lookup into Cubie's internal EMR in one click.
The exported patient record PDF
Partner exportA shareable PDF that takes the guesswork out of every handoff.

Iterating with the care team

A procedure without its provider isn't actionable.

Procedures were first shown by name alone. Adding the performing provider meant mapping procedures to NPI numbers, which justified an automated NPI lookup that compounds with every search.

Read more

The tool kept evolving through direct, daily feedback from the people using it. The NPI lookup scrapes and caches provider info, so future lookups are instant and the corpus of known providers keeps growing.

Smaller changes mattered too. Medications, diagnoses and procedures were reordered newest-first, since a five-year-old diagnosis matters less than one from last month. Medication entries gained a computed doses-per-day, calculated from day supply and units prescribed — directly supporting adherence assessment for a population where missing a dose schedule has real cardiovascular consequences. And diagnoses, often cluttered with near-duplicate codes as conditions like hypertension or diabetes progress, got grouped under umbrella categories, with individual codes still available on expand.

A procedure row as first shipped showed no provider. Its NPI now resolves against a growing set of known providers: the first time, the details are scraped from the NPI registry and join the set; every time after, it's an instant cache hit. The row then shows Dr. Maya Shah, Cardiovascular Disease, Washington, DC. First time · scraped from the NPI registry Every time after · cache hit, instant As first shipped Echocardiography · TTE Jun 12, 2026 Provider— NPI 1••••••••• With the NPI lookup Echocardiography · TTE Jun 12, 2026 Dr. Maya Shah, MD Cardiovascular Disease Washington, DC A procedure row as first shipped showed no provider. Its NPI now resolves against a growing set of known providers: the first time, the details are scraped from the NPI registry and join the set; every time after, it's an instant cache hit. The row then shows Dr. Maya Shah, Cardiovascular Disease, Washington, DC. As first shipped Echocardiography · TTE Jun 12, 2026 Provider— NPI 1••••••••• With the NPI lookup Echocardiography · TTE Jun 12, 2026 Dr. Maya Shah, MD Cardiovascular Disease Washington, DC First time · scraped from the NPI registry Every time after · cache hit, instant

Next project

Wanda senior rideshare

Rides for older adults, booked by the people who care for them.