← All work03

CliniCore

Outpatient Clinic Operations Platform

Visit → Billing

Visit timeline

  1. Check-in09:12
  2. Consultation09:20
  3. Documentation09:38
  4. Prescription09:44
  5. Billing reviewOpen

Structured documentation

Procedure recorded with location. Two open items for billing.

A clinic operating layer connecting appointments, clinical documentation, prescriptions, imaging, and billing around a single patient visit.

Role
Product Manager / Product Owner
Focus
Product Definition · Clinical Workflows · Structured Data · Billing Logic
Core module
Visit-to-Billing Workflow
Supporting module
Structured Dental Documentation
01The problem

The visit existed everywhere and nowhere.

Clinicians documented in whatever way was fastest, usually free text. Billing needed structure. Those two needs pulled in opposite directions, and the front desk absorbed the difference.

Anything missing at the end of a visit — a procedure not recorded, a tooth not specified, a prescription written outside the system — turned into a billing correction later.

Context

In an outpatient clinic, the visit is the unit that everything attaches to: the appointment, what the clinician recorded, what was prescribed, what was imaged, and what gets billed.

In practice those were separate records that happened to share a patient name, and the reconciliation happened in someone's head at the end of the day.

02The system

Research

Watch a clinic day, not a demo.

Time inside a consultation is the real constraint. I watched how documentation actually happened while a patient was in the chair, and where clinicians chose speed over structure.

Every design idea that added a step to that moment was, correctly, going to be ignored.

Definition

Structure at the point of care, not after it.

We defined a visit record where clinical actions were captured as structured entries that billing could read directly, with free text alongside rather than instead.

For dental work, that meant documentation anchored to tooth-level mapping, so location and procedure were recorded together.

Execution

Billing derived from the clinical record.

Billing logic consumed the visit record rather than asking staff to re-enter it. Where a mapping was ambiguous, the product surfaced it as an open item on the visit instead of silently guessing.

The billing view became a checklist against the visit, which is how the front desk already thought about it.

03The decision

Decisions I’d defend.

Product decisionDecided

Replace

Block the visit until billing data is complete

With

Finish the visit, flag what billing still needs.

Why

  • Clinical time is the scarce resource
  • Product stops being something to work around
  • Open items surface instead of guesses
Product decisionDecided

Replace

Structure every field

With

Structure only what a downstream workflow needs.

Why

  • Structure has a cost in the room
  • Free text stays alongside, not instead
  • Billing reads the record directly
04The build

Shipping reality.

Clinical products punish carelessness. We kept scope tight, wrote acceptance criteria around edge cases rather than happy paths, and spent real review time on how the product behaves when data is incomplete.

Some legacy data would never be clean. We designed around coexistence instead of pretending a migration would fix it.

05The outcome

What it taught me.

In clinical software, the person with the least available attention should have the simplest surface.

Structured data is a product decision with a human cost. It's worth it when something downstream depends on it, and it's friction when it doesn't.

Next case studyAll work →