| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| assignments-api.ts | ||
| patient-picker-rail.tsx | ||
| plans-api.ts | ||
| pool-matrix.tsx | ||
| release-reason-dialog.tsx | ||
| use-patient-picker.ts | ||
| use-plan-aggregate.ts |
上一轮只改了**看**侧(初选矩阵),圈人侧的 `labelExistsSql` / `labelTemperatureExistsSql` 仍在实时回查 `patient_facts` 算标签。🔴 这不只是慢,是**我上一轮亲手造出的口径不一致**: · 看侧读预存的 potential_labels(回填那一刻的年龄) · 圈人侧实时算(当前年龄) 标签规则里有三条带年龄(K08>18 / K07 3~12 / K07 13~40)⇒ 过生日跨档的人两边不一样。 而 `reason-temperature.sql.ts` 里那段注释早就写过这个坑: 「曾经它们各自带一个 mode 参数,一旦调用方漏传就是主管看到 87 人、 确认单捞出另一批,而且全程不报错(T14)」 我差点原样重演一遍,只是这次漂的原因从"参数"换成了"数据源"。 改动:两处 EXISTS 都换成 `pr.potential_labels @> ARRAY[label]`。 ■ 实测(本地,15,884 条 plan 的诊所,人数逐字未变) 只按治疗 603 ms → 57 ms 2305 人 → 2305 人 治疗 + 温度 971 ms → 82 ms 353 人 → 353 人 这条路一次弹窗要走两遍(整格人数 + 当页明细),还被 propose 复用。 ■⚠ ️ 三条既有断言失败 —— 但它们守的不变量**没有消失,是搬家了** · 「只认未治疗的证据(f.status='active')」 · 「证据必须有日期(COALESCE(occurred_at, planned_for) IS NOT NULL)」 两者现在由回填 SQL 保证。⛔ 没有删断言,而是搬到 plan-label.spec.ts 钉住 —— 删了的话,谁把"治完的诊断"或"没有日期的证据"算进标签都不会有人发现, 而那会直接改变召回谁。⚠ ️ 已做变异校验:拿掉 status 守卫立刻变红。 · 第三条改成断言"锚点仍是末诊",并注明非空守卫搬去了哪。 ■ 新增《看侧与圈人侧同源》一组:三处都读 potential_labels、 三处都不再出现 patient_facts / jsonb_array_elements_text / 按年龄现算。 验证:tsc 通过;jest 86 套 1351 例全过;eslint 无新增错误。
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| assignments-api.ts | Loading commit data... | |
| patient-picker-rail.tsx | Loading commit data... | |
| plans-api.ts | Loading commit data... | |
| pool-matrix.tsx | Loading commit data... | |
| release-reason-dialog.tsx | Loading commit data... | |
| use-patient-picker.ts | Loading commit data... | |
| use-plan-aggregate.ts | Loading commit data... |