Personal Health / Data Viz
健康工作台
A personal health workbench built on years of real dual-person exam data. The Body Map view reorganizes scattered lab, imaging, and symptom notes into a human-body perspective. It continues the earlier healthmeanagment exploration in privacy-first report parsing, folding years of data into one sustainable personal health OS.
- Role
- Owner / Product Engineer:从真实个人健康工作流出发,覆盖信息架构、前端、数据建模与隐私设计。
- Time
- Ongoing · 2026-07-31
- Platforms
- Desktop Web / Mobile Web
Turn years of real exam data into "what to care about today"
01 / Background
Why this exists: data scatters, decisions come too late
- Exam data is naturally fragmented: a different institution and format every year, reports sitting in PDFs and photo albums; by the time you need a real decision, the continuous picture is already lost.
- The real problem is not "no chart" but "no action" — you hold a decade of data yet cannot answer "what to watch this year" or "which item is quietly worsening".
- Two people's data stacked together is messier: the same metrics drift independently, and comparing by hand is slow and misses cross-signals.

The current public 健康工作台 surface.
02 / Vision
The ideal: turn years of real data into "what to care about today"
- I want a personal health OS: the first screen is not a metric list but "me" — what is stable, what is at the boundary, what was not checked this year.
- The long-term plan turns scattered points into a continuous narrative: year-by-year drill-down, traceable anomalies, generatable follow-ups, toggleable privacy. It serves the everyday self, not a single visit.
- It must be local-first and private; when shown to others, it can be anonymized in one click without losing the product judgment itself.
The project’s current priorities and delivered decisions.
03 / Evolution
Evolution: from healthmeanagment to health-workbench
- The earlier healthmeanagment was a "privacy-first report parsing" exploration: it parsed a single high-privacy report into traceable insight and linked a long-term record chain, validating the "upload-parse-analyze-track" product feasibility.
- But it stopped at "one report" and never folded years of data into a people-centered main view. health-workbench is its mature form — no longer parsing singles, but folding years of data into the Body Map so that integration itself becomes the product.
- They are not a replacement but two convergences of the same idea: first validate parsing and privacy boundaries, then elevate it into a sustainable personal health OS.
The core path from input to outcome.
04 / Process
Process & thinking: from "metric list" to "body part"
- The first version was organized by department and metric; finishing it felt not intuitive enough — it echoed the hospital's taxonomy, not the user's view. The key turn was swapping the axis from "metric dimension" to "body part".
- Narrative does not call an LLM: 6 rules (labs all green but imaging at risk / in-range yet fastest-moving / recurring for years / data gap / already recovered / two people diverge) generate "looks healthy but…" cues, each tagged with its data source.
- Body map, trends, and sparklines are all hand-written SVG with zero chart-library dependency; privacy is anonymized at the view-model layer while the raw dataset keeps true values. Apple-style spring motion; attention organs breathe and respect reduced-motion.
05 / Positioning
Positioning: personal decision aid, not a clinical tool
- It explicitly states "personal gauge only, not clinical": the health score is a rule (in-range ratio minus follow-up penalty) to help prioritize for yourself, not to replace a doctor's judgment.
- Local-first and private; real / masked dual modes let the same product serve both self-use and anonymized showcase. Six views cover overview, velocity, trend matrix, two-person compare, qual/quant, and follow-up.
- The two-person compare is just one of the views — useful, but a sub-capability under the "integrated view", not the product's main axis.
06 / Efficiency
Efficiency: compress "flipping N PDFs" into one screen
- An annual review used to mean flipping through every year's reports, comparing by hand, then listing re-checks yourself; now you open to prioritized organs and drill into yearly values and annualized change in one tap.
- The follow-up view turns out-of-range / borderline items directly into a next-check list, removing manual整理. Privacy toggle makes "showing others" no longer a re-screenshot redaction chore.
- What it saves is not seconds but the review you "would never have done" — letting long-term health records truly enter daily life.
Experience in depth
Pain points, user stories, and interaction design
Not a tech stack section. This is about the situation people are in, where they get stuck, and what I did about it.
My pain points
Every project here starts from somewhere I personally got stuck.
- P01
A new clinic and a new format every year leaves reports sitting in PDFs and photo albums, so ten years of data never form a continuous picture.
- P02
Having charts is not the same as being able to act — with a decade of data I still could not answer "what matters most this year".
- P03
Two people's data stacked together is worse: the same metric drifts differently for each, and manual comparison misses cross signals.
- P04
The first version was organised by department and metric. It restated the hospital's taxonomy and never answered the user's point of view.
- P05
Showing the product judgment to anyone else would have meant exposing real health data.
User stories
Written as "as … I want … so that …", each mapped to a verifiable product action.
- US01
As someone doing an annual review, I want the first screen to show me as a person — stable here, borderline there, untested this year — so I can prioritise immediately.
- US02
As someone tracking long-term change, I want to drill from any body region into yearly values and annualised change, so quiet deterioration becomes visible.
- US03
As someone fooled by all-green reports, I want the system to flag "looks healthy, but…" exceptions, so cross signals are not missed.
- US04
As someone scheduling checkups, I want out-of-range and borderline items to become a follow-up list automatically, so no manual compilation is needed.
- US05
As someone presenting this publicly, I want a one-click masked mode that keeps the product judgment intact, so privacy and presentation stop conflicting.
Experience journey
In real usage order: what they are doing, where it hurts, how the product responds.
Interaction details
The micro-decisions that make it feel fluid or clumsy.
- Clickable body regions
- The full-body view uses state semantics for stable, borderline, and untested-this-year, and each region opens a detail panel.
- Breathing cue on attention regions
- Regions needing attention pulse slowly on an Apple spring curve, and the motion respects reduced-motion.
- Every prompt is traceable
- Each "looks healthy, but…" line is annotated with its source and can be traced back to a specific year and metric.
- One-click real / masked
- Masking happens in the view-model layer rather than as visual redaction, so the product judgment survives the switch.
- Six views, one view-model
- Overview, rate of change, trend matrix, two-person comparison, subjective/objective tracks, and follow-up share one model without reloading.
Design details
Tradeoffs in the visual system, state language, and pacing.
- Hand-written SVG, no chart library
- Body map, trend lines, and sparklines are hand-written SVG so the visual language is not pulled back to a generic template.
- Rules, not an LLM, generate narrative
- Six explicit rules are explainable and reproducible, which suits a high-trust domain far better than uncontrolled generation.
- A stated non-clinical boundary
- The health index comes from in-range share minus follow-up penalties and is labelled as a personal, non-clinical scale.
- A seven-layer contract
- routes → data → view-model → primitives → feature → theme → verification, so any change maps to exactly one layer.
- Data separated from presentation
- Feature components only compose and never hold business rules; privacy is handled once, in the view-model.