用途与实际影响
这项功能怎样使用
为什么需要它
“数据可用”和“身体正常”完全不同。若界面只用红绿状态,读者容易把 coverage、同步或 schema(数据结构) 状态误解成疾病风险。
举个实际例子
步数文件确实存在,最近几天却断断续续。页面会显示“需要复核:覆盖不足”,并紧跟一句“这不能证明活动不足或身体异常”;这项数据不会悄悄混进后续结论。
最后我会得到什么
得到三个语义稳定的证据状态,每个状态都同时说明能证明什么、不能证明什么和下一步,不产生健康总分。
可用于当前判断
可用于当前问题:来源和质量都核对过,仍不代表身体正常或已得到诊断。
需要复核
仅已保存或需要复核:资料存在,但覆盖、结构或来源不足以支持这次判断。
本轮不可用
暂不能用:入口或原始记录无法核对;保留未知并说明怎么补证据。
从哪里开始
查看一次健康摘要时,要求说明每项证据能不能用于决定。
需要准备什么
- 要判断的健康问题或想看的设备字段
从开始到拿到结果
- 1
系统核对并处理
逐字段区分可用于当前问题、仅有库存记录、或因质量与冲突被阻断,不把状态合成身体分数。
- 2
交付与接续
交回可采用项与缺口;被阻断的数据留作原件,不进入当前建议。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
字段级 ready/partial/blocked、真实零与缺记录区分有源码和回归;医学正常性不属于该状态机关键规则与设计选择
真实数值零可以是有效观察;没有记录不等于零。
无事件记录不能证明事件或疾病没有发生。
字段级问题不把整个项目变红,只阻断对应证据。
颜色只作辅助,文本状态、原因和限制始终显示。
没有健康评分、连续天数、目标环或风险刻度。
本模块用到的名词
- Evidence state(证据状态)
- 一条材料能否安全支持当前问题的技术与语义状态。
- Real zero(真实零)
- provider 明确记录的零值;它和没有记录、缺字段、解析失败不同。
- Partial(部分可用)
- 资料存在,但一个或多个质量条件不足,禁止直接进入判断。
- Blocked field(被阻断字段)
- 保留字段身份和原因,但 downstream 不能消费其内容。
专业定义
可用于判断、需要复核、本轮不可用只描述证据状态;不画健康分数、目标环或风险仪表盘。
解决什么
解决同步绿灯冒充健康、空数据冒充零、一个坏字段拖垮全部证据,以及总分制造焦虑和假精确。
当前怎样实现
- _field_quality_issues 分开 field_missing、no_records、duplicate_records 和 malformed_or_partial_records。
- 数值字段通过 daily ambiguity、zero observed days 和 recent coverage 形成字段状态。
- 事件字段在零事件时加入 zero_recorded_events_require_review,不推断事件缺席。
- decision_ready_fields 与 blocked_fields 分开输出,blocked_fields_must_not_be_consumed=true。
- evidence-table 和 ThreeStateSummary 在网页中显式展示能证明/不能证明。
执行流程
- 1
确认字段来源是否存在且可用于判断。
- 2
检查清单、页面、结构、重复和聚合歧义。
- 3
计算当前窗口覆盖与 observation 状态。
- 4
生成 ready 或 blocked reason。
- 5
把限制和下一步一起交给 Health Owner(健康资料责任源)。
边界
- 证据三态不映射成身体风险、疾病概率或治疗等级。
- 网页不显示任何个人数值或仿真健康趋势。
- 技术 PASS 不能替代真实 provider E2E(端到端验证) 或 Health Owner(健康资料责任源) 采用。
- 高风险症状的紧急处理不等待设备状态机给分。
失败与恢复
- UI 只剩颜色没有文字
- 验收失败;三态名称、原因、限制和下一步必须可读。
- 把 no_records 显示为 0 或正常
- 阻断字段并修正解释,不生成趋势。
- 把 decision_ready 写成健康达标
- 降回证据语义,明确只适用于当前问题。
- 单字段 partial 被升级为全局故障
- 只阻断受影响字段,其他证据独立判断。
真实入口
google_health_brief.py字段质量、ready/blocked、真实零、窗口与下游使用合同
tests/test_google_health_brief.py空字段、真实零、malformed、mixed provenance(来源说明) 与三态回归
AGENTS.md未测/未见/阴性区分、未知保留和低健康焦虑边界
如何验证
- brief 测试覆盖 zero remains ready、empty blocks context、malformed blocks event 和 missing interval partial
- 网页三态测试必须检查自定义标签和非诊断说明同时出现
- 移动端验收检查三卡文本顺序、无横向溢出和颜色之外的可辨识性
与其他模块的关系
它把离线 brief 的字段结果翻译成不会误导的用户状态;Health Owner(健康资料责任源) 只在这个边界之后决定是否采用。
