plan-detail-app.tsx
106 KB
-
fix(persona): 禁忌筛选改按治疗域四类 + 风险位直接露出真实原因 · 51581f58
业务反馈两条,都是我做偏了: ── ① 筛选按四类,不按病因 ── 原来列的是 12 个病因(抗凝药/放疗史/抗骨吸收药…),那是算法口径。 客服圈人时想的是「哪些人不能做种植」,不是「哪些人在吃抗骨吸收药」—— 把内部实现摊给业务看,面板还长。改成 data.domains:手术/种植/麻醉/正畸禁忌。 病因照常在关键事实卡与画像详情里露出(带医生原话);要按病因查是风险排查场景, 需要时另加维度,别混进圈人面板。 不列「拍片禁忌」:唯一来源是妊娠,而妊娠同时禁种植和手术,勾那两项已覆盖。 ── ② 风险位直接露出真实原因 ── 原来只显示「手术禁忌 / 种植禁忌」,凭什么要 hover 才知道 —— 这正是我自己在设计里 写的「客服不知道凭什么就会当噪音忽略」,结果自己没落实。现在:⚠ 手术禁忌 / 种植禁忌 放疗史 · 2022-12-02 病因+日期直接成行,全文原话仍留 hover(一行放不下「有放射治疗史,三周前进行 颈淋巴结清扫(舌癌淋巴结转移)」)。 同时把这块抽成通用 RiskNote 形态 —— 业务提到这个位置以后要放投诉之类, 现在没数据不预建,但形状留好:再来一个来源就是往 notes 里 push 一条。 ──⭐ 顺带发现一个部署坑(本地实测) ── reparse 只重算**事实变了**的患者。年龄型禁忌那批人事实没动 → 画像没重算 → data.domains 还是 null → 新筛选完全筛不到他们(生产是 7 万人)。 本地实测:普通 recompute-persona 被水位闸 noop=13260/13268 全跳过; 加 --force 后 success=1804 refreshed=9536,domains 才落库,筛选立刻从 10,458 人收敛到 3 人(= 库里那 3 个局麻药物过敏患者,逐个核对一致)。 所以上线顺序必须是:reparse → recompute-persona **--force**。 --force 的注释里本就记着同类事故(「reparse 后的全量重算被这道闸 noop 掉 325,979 人」),我差点重蹈。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>luoqi committed