事故(2026-07-28 19:19,测试服务器):FRIDAY 推 med_emr_info 时 patient_id 变成了 浮点字符串 "676600.0"(典型 pandas 症状:列含空值 → int64 提升 float64 → 导出带 .0)。 PAC 原样收下,患者索引查 "676600.0" 命中不了真档 "676600" → ensurePatientStub 建出无名幽灵患者。3 个幽灵档吸走 4224 条事务,其中一个带着 2246 条诊断进了召回池、 算了画像、生成「应治未治」计划排队等客服打电话 —— 而推送回执是干净的 failed=0, 宿主和我们都看不出来,直到有人在池子里看见一个没名字的患者。 两层防御: 1) 归一层去尾巴(field-mapper.normalizeCanonical) `Id` 后缀的 canonical 字段,值形如 "676600.0" / "676600.00" → 截成 "676600"。 用后缀约定而非逐资源枚举,新增 canonical 字段自动纳入。只处理**整数值**的浮点 写法,不动 "676600.5" —— 那是另一种问题,应该显形而不是被悄悄改写。 放在 normalizeCanonical 意味着 cold-import / push / pull / reparse 行为一致。 2) 回执透出 patientStubsCreated(通用信号) 空壳 >0 本身不是错(「推送顺序无要求」正是靠它兜底),但**持续 >0 说明患者号 对不上** —— id 格式漂移只是其中一种表现形式,主档漏推同样会触发。宿主据此自检, 不必等人肉在召回池里发现幽灵。同时 logger.warn 提示常见成因。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .claude | Loading commit data... | |
| .design-sync | Loading commit data... | |
| apps | Loading commit data... | |
| clickhouse/config.d | Loading commit data... | |
| deploy | Loading commit data... | |
| docs | Loading commit data... | |
| packages | Loading commit data... | |
| scripts | Loading commit data... | |
| .gitignore | Loading commit data... | |
| .gitlab-ci.yml | Loading commit data... | |
| .npmrc | Loading commit data... | |
| .prettierrc | Loading commit data... | |
| README.md | Loading commit data... | |
| docker-compose.expose.yml | Loading commit data... | |
| docker-compose.managed.yml | Loading commit data... | |
| docker-compose.prod.yml | Loading commit data... | |
| docker-compose.yml | Loading commit data... | |
| eslint.config.mjs | Loading commit data... | |
| liu.cjs | Loading commit data... | |
| package.json | Loading commit data... | |
| pnpm-lock.yaml | Loading commit data... | |
| pnpm-workspace.yaml | Loading commit data... | |
| tsconfig.base.json | Loading commit data... | |
| turbo.json | Loading commit data... |