Health-Tracking(体检)系统:可视化与优化建议
2026-02-01 00:09 · Zon · 01-Health/Health-Tracking(ZON + CENN,体检 2017–2025)
把历年体检资料从“记录”升级为“闭环”:数据一致性 → 看板 → 复查到期 → 行动复盘
你已经搭好“结构化字段 + Dataview 看板 + 随访 TODO”的骨架。当前最值得优先优化的是:(1)数据一致性(日期/前置空行/数值类型)让看板能稳定跑;(2)把 watchlist/next_actions 变成“到期可见”的闭环入口。
TL;DR
目标:让体检记录变成“能推动行动”的系统:数据 → 解释 → 复查到期 → 行动 → 复盘。
声明:以下仅用于个人健康管理与信息整理,不替代医生诊疗建议。
Top Improvements
- 数据层:统一日期语义(体检日期 vs 录入日期),确保 frontmatter 永远在文件第一行。
- 模型层:同一指标只保留一个“可计算”的字段;长描述放正文/单独随访笔记,YAML 只留摘要。
- 闭环层:watchlist → 任务(带日期)→ 到期提醒 → 复盘更新(状态/间隔)。
- 可视化层:用“趋势小倍图 + 问题清单 + 覆盖率”取代大表格堆砌。
- 自动化:把 PDF/HTML/OCR → YAML 的导入流程产品化(你已有 agent 思路)。
Quick Wins (≤60min)
- 修复 2 个“会让 Dataview 漏数据”的硬伤:ZON/2018 的 create-date 年份错误;CENN/2025 头部多了空行导致 frontmatter 可能不被识别。
- 把“数值 + 单位 + 日期”的写法拆开:数值只存数字(便于图表/阈值判断),原始字符串放到 *_raw / *_note。
- 新增一个“Open Loops 看板”:把随访任务按到期时间排序,默认入口只看这里(减少分散)。
现状
Already Strong
- 统一字段:
模板&指标.md给了清晰的 schema 与解释。 - 系统化看板:
ZON体检指标看板.md按系统组织 + 周期/参考范围 + Dataview 表。 - 趋势/高亮思路:
体检数据概览.md已示范 DataviewJS 高亮与 charts 折线。 - 随访任务化:
ZON-2025个性化体检TODO.md已按优先级拆解并带日期/标签。 - 多对象支持:
健康数据看板.md同时汇总 ZON/CENN。
Main Bottlenecks
- 数据一致性:日期语义不统一、年份错填、frontmatter 不在首行等,会直接导致 Dataview 漏数据。
- 数值不可计算:把“数值+单位+日期”写成字符串,趋势图/阈值判断会很痛。
- 闭环入口缺失:watchlist/next_actions 目前偏“文字记录”,缺一个默认入口来驱动到期复查。
- 长期问题没集中:重复出现的事项(乳腺/妇科/呼吸/颈椎)需要问题卡,否则每年都要重读。
价值信息
What Your Notes Already Reveal (paraphrase)
- ZON:妇科(子宫肌瘤)在 2022 与 2025 都出现,且 2025 记录了更大的尺寸与更多结节 → 适合做“单独随访笔记 + 时间线”。
- ZON:乳腺从多年“增生”到 2025 记录 US-BI-RADS 3 类病灶 → 适合把“复查期限”写成任务并做显眼入口。
- ZON:呼吸/CT 在 2022、2024、2025 连续出现“肺尖条索/胸膜改变/斑片影”等描述 → 关键价值在“影像对比 + 专科随访结论”沉淀,而不是每年重复读报告。
- ZON:颈椎“曲度变直”在 2018/2020/2022 多次出现 → 更像长期习惯/工学问题,适合做“行动清单”而非每年记录一次。
- 系统层:目前看板已经有,但“默认入口”仍分散;最值钱的信息其实是“哪些事还没闭环”。
可视化
View 1 · Open Loops
- 把所有随访任务按“到期时间”排序(只看未完成)。
- 每条任务指向:对应问题卡(issue)+ 最新证据(报告/影像)+ 上次医生结论。
- 把它设为健康系统默认入口(减少来回翻找)。
View 2 · Problem List
- 每个长期问题一张卡:现状/证据/结论/下一次复查。
- 卡片只存“最新摘要”,历史细节留在年度笔记或附件。
- 把 2025 的随访计划链接集中到一处。
View 3 · Trends (Small Multiples)
- 只做 6–10 个核心指标的趋势(每个指标一条小折线)。
- 在异常/阈值点加注释(为什么、下一步)。
- 优先把可行动的指标做出来,别被“能记录的字段很多”带偏。
View 4 · Coverage / Hygiene
- 按年份/指标组显示“有没有录入”,直观看到缺口。
- 把 data hygiene 报警(年份错、frontmatter 位置错、单位混写)集中展示。
一个最小可用的 Dataview 思路(示例)
目标:先把“到期事项”做成入口,再逐步加趋势图。
```dataview
TASK
FROM "01-Health/Health-Tracking"
WHERE !completed
SORT due ASC
```
Diagrams
Data Model
建议的最小字段集
exam_date:体检/检查实际发生日期(用于时间线)。recorded_at:录入日期(用于追溯“什么时候整理的”)。- 核心指标字段只存数字(例如
l03_ldl: 2.87),单位在字段名或固定表里。 - 原始文本放
*_raw/*_note,避免污染数值字段。 - 长描述(影像报告全文)放正文或独立随访笔记,YAML 只留一句摘要。
最常见的“看板跑不动”原因
- frontmatter 不是文件第一行(开头多了空行/BOM/注释)。
create-date混用“笔记创建日期”和“体检日期”。- 同一指标跨年单位不一致,或把单位塞进 value(导致无法比较)。
- key 使用特殊字符(例如
mmol/L),查询与迁移成本高。
推荐写法(示例 YAML)
---
tags: [Health, 体检, 2026年]
exam_date: 2026-08-20
recorded_at: 2026-08-21
org: XXX
m03_bmi: 19.5
m04_bp_sys: 109
m04_bp_dia: 75
l03_ldl: 2.25
l03_ldl_raw: "2.25 mmol/L (lab ref: <3.1)"
watchlist:
- 乳腺结节(随访)
next_actions:
- "复查乳腺B超(半年)"
---
Workflow
从“拿到体检报告”到“闭环”
- 保存原始资料(PDF/HTML/影像)到年度文件夹,并在年度笔记里挂附件链接。
- 用模板创建年度笔记:先补齐 core 指标(保证能画趋势),再补充摘要文字。
- 把异常/长期事项写入
watchlist,并链接到对应的“问题卡(issue)”。 - 把下一次复查写成任务(带日期与标签),让它出现在 Open Loops 看板。
- 季度复盘:只回答两个问题 —— “哪些闭环了?”“哪些要调整频率/方案?”
Expert Views
Edward Tufte(信息可视化)
Thesis: 趋势与对比优先:用小倍图/注释把“变化”讲清楚,比堆满表格更有信息密度。
- 给 6–10 个核心指标做“按年 sparkline”,并在阈值/异常点旁写一句注释。
- 把长表格拆成“问题清单 + 小倍图 + 证据链接”,避免信息噪声。
Limits:
- 如果数值不干净(单位混写/缺失),再好的图也会误导。
Peter Attia(预防医学/风险分层)
Thesis: 体检的价值不在“查得多”,而在“查得对 + 能行动”。优先把可改变风险的指标闭环。
- 定义 Tier 1 指标(最能驱动行动):代谢、血脂、血压、关键影像随访等。
- 把每个 watchlist 项变成“下一次复查时间 + 触发条件”,否则它永远只是文字。
Limits:
- 需要结合个人风险、医生建议;不能仅凭单次记录自行下结论。
Atul Gawande(清单/医疗系统)
Thesis: 把随访当项目管理:明确责任(谁/去哪)、证据(带什么)、下一步(什么时候)。
- 为每个长期问题建一张“问题卡”:现状、证据、医生结论、下次计划。
- 门诊前自动生成“提问清单 + 上次对比要点”,减少现场临时翻资料。
Limits:
- 清单只能减少遗漏,不能替代判断。
Hadley Wickham(数据组织/Tidy Data)
Thesis: 先让数据可计算:把“数值/单位/时间/来源”拆开存,才能做趋势、阈值、对比。
- 字段命名与单位固定化(例如 mmol/L、U/L),不要把单位塞进 key 或 value。
- 需要更深分析时,从 Obsidian 导出 CSV/JSON,再用 Python/R 计算。
Limits:
- 结构化会增加录入成本,需要配合自动化或最小字段集。
共同的结论(合成)
- 别急着加更多指标:先把数据变得可计算、闭环变得可到期。
- 让“问题卡”成为中心:年度体检是证据流,问题卡是状态机。
- 默认入口只留一个:Open Loops 看板;否则系统会变成资料库。
Evidence & Confidence
| Claim | Evidence | Confidence | Source |
|---|---|---|---|
| 你已经有统一的体检 YAML 字段体系与解释(可扩展)。 | 存在「模板&指标.md」并定义了 m/g/l/lv/k/t/b 等前缀字段。 | High | 01-Health/Health-Tracking/模板&指标.md |
| ZON 的体检指标已被系统化组织,并配了 Dataview 表格入口。 | 存在「ZON体检指标看板.md」含分系统表格与检查周期。 | High | 01-Health/Health-Tracking/ZON体检指标看板.md |
| 有明确的“随访任务”文档且任务格式规范。 | 存在「ZON-2025个性化体检TODO.md」包含带标签与日期的 checklist。 | High | 01-Health/Health-Tracking/ZON-2025个性化体检TODO.md |
| ZON/2018 的 create-date 与文件名年份不一致,会影响时间线与排序。 | 2018.md 的 create-date 为 2025-09-04(按 frontmatter 解析)。 | High | 01-Health/Health-Tracking/体检ZON/2018.md |
| 至少有一份 CENN 笔记的 frontmatter 不在首行,可能导致工具漏识别。 | 体检CENN/2025.md 在 --- 前存在空行(文件第一行不是 ---)。 | High | 01-Health/Health-Tracking/体检CENN/2025.md |
| ZON 的“core 指标录入”跨年覆盖率偏低,影响趋势与自动高亮价值。 | 按 10 个 core 字段统计:2022 为 5/10;2025 为 0/10。 | Med-High | 本地 frontmatter 统计(本次生成时) |
Data Hygiene Flags
ZON/2018:create-date=2025-09-04(文件名年份=2018)CENN/2025:frontmatter 不在首行(建议移除开头空行)
Next Steps
Option A · 30 min
- 修复年份/首行 frontmatter 问题(让 Dataview 不漏)。
- 把 2025 关键随访全部变成带日期任务。
Option B · 2 hours
- 新增 Open Loops 看板 + Problem List。
- 补齐 6–10 个 core 指标并画趋势。
Option C · 1 day
- 把 PDF/HTML/OCR → YAML 导入做成脚本化流程。
- 自动生成:摘要、问题卡、任务、趋势图。
One next action:先做一个“Open Loops 看板”,并把它设为默认入口;然后修复数据 hygiene(年份/首行 frontmatter)让看板稳定运行。
Sources
01-Health/Health-Tracking/模板&指标.md01-Health/Health-Tracking/健康数据看板.md01-Health/Health-Tracking/体检数据概览.md01-Health/Health-Tracking/ZON体检指标看板.md01-Health/Health-Tracking/ZON-2025个性化体检TODO.md01-Health/Health-Tracking/体检ZON/2022.md·01-Health/Health-Tracking/体检ZON/2025.md·01-Health/Health-Tracking/体检ZON/2018.md01-Health/Health-Tracking/体检CENN/2025.md- 阅读建议(无在线核验):Tufte(信息可视化)、Gawande(清单)、Attia(风险分层)、Fogg(行为设计)、Wickham(数据组织)。
Closing Summary
- 你已经有“字段 + 看板 + TODO”的雏形;下一步是让它更可计算、更可到期。
- 先把 2 个 data hygiene 问题修掉,让 Dataview 不漏;再把随访统一收口到 Open Loops。
- 趋势图只做少数核心指标:看清变化,比记录更多更重要。
One next action:创建「Open Loops 看板」并把现有随访任务全部汇入(带日期),以后只从这里开始。