-
fix(摄入): reparse 源表回溯两处失效 —— 治疗类 reparse 从来没工作过且报成功 · 7ad3aa93
验证 加牙 补词时发现:reparse 治疗类恒 0 变更(superseded=0 created=0), exit 0、日志写"重衍完成"。dry-run 用同一过滤条件能查到流水,实跑却把 0 行 喂给 transform —— 问题在源表回溯。 traceRawSourceTable 实测: treatment_actual_rows → _treatment_actual_raw_emr ← 中间表 treatment_planned_rows → _treatment_planned_raw_emr ← 中间表 treatment_review_rows → _treatment_review_raw ← 中间表 diagnosis_rows → fact_emr_treatment_out ← 正确 两个独立 bug,只修一个仍失效: ① route_by_pattern 的字段名是 `routes`,代码找的是 `outputs` → 恒 undefined, route 从不登记进 byOutput → 凡链路过 route 的资源回溯都停在中间表。 diagnosis 没踩到只因它的链 split→derive→derive 不过 route。 ② `_treat_plan_raw → _treat_plan_raw` 这类**原地 derive** 被登记成指向自己, resolve 撞环保护当场返回 → 修完①仍停在 _treat_plan_raw。 后果:rawPayload 被灌进中间表,随即被 transform 链用空结果覆盖 → 0 变更。 守卫 `raw === cfg.primary.table` 判不出来(中间表 ≠ primary 表),所以不跳过、 不报错、报成功。任何治疗类字典/parser 修补都无法回填存量,且无人会发现 —— 本次 加牙/SRP/缝线 补词若不修这个,只对新摄入生效。 既有测试 trace-raw-source.spec.ts 的 fixture 也写的 `outputs` —— 跟实现犯同一个错, 所以一直绿。fixture 已按契约(transforms.schema.ts)改正并留注,新增 8 条断言直接 拿真实 manifest 回溯四个资源。 测试:新增 8 条,全量 1564 条通过;type-check 17 个错为 main 既有,引入 0 个。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
luoqi committed
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| asr-sensevoice | Loading commit data... | |
| pac-docs | Loading commit data... | |
| pac-service | Loading commit data... | |
| pac-web | Loading commit data... |