tasks.md 3.4 KB

Tasks: DIP 分组分值查询弹框(ScorePopup)

1. 接口与类型

  • 1.1 在 frontend/src/api/dip.ts 新增 dipGroupByInput(input, session) 接口封装(02010008)
  • 1.2 在 frontend/src/api/dip.ts 新增类型 DIPGroupInfoItem、DIPGroupResult

2. 弹框组件

  • 2.1 新建 frontend/src/pages/DIP/ScorePopup.tsx,仿照 GroupPopup 实现
    • 2.1.1 顶部患者信息 Hero(姓名/性别/年龄/科室/医生/入院/出院诊断)
    • 2.1.2 诊断列表(可编辑:增加/删除/查询 ICD;可设主诊断)
    • 2.1.3 手术列表(可编辑:增加/删除/查询 ICD;可设主手术)
    • 2.1.4 「模拟分组分值查询」按钮
    • 2.1.5 模拟结果展示卡(对比表)
    • 2.1.6 DIP 分组分值结果 Card(DIP 编码/基准分值/调节系数/平均费用/省/市/区划/等级/分组时间)
  • 2.2 接入业务类型判断(01050103 → policyTypeDesc)
    • 2.2.1 DRG 机构 → 提示「该机构为 DRG 业务,请使用 DRG 分组弹框」
    • 2.2.2 DIP 机构 → 继续加载
  • 2.3 接入 loadBaseline(hisAdmId) 流程
    • 2.3.1 02010007 取入参
    • 2.3.2 02010008 取 DIP 分组分值
    • 2.3.3 异常处理(message.error、容错回落)
  • 2.4 接入 handleSimulate 模拟分组
    • 2.4.1 编辑诊断/手术 + 覆盖主诊断/主手术编码
    • 2.4.2 调 02010008
    • 2.4.3 加入对比分析表

3. 路由与菜单

  • 3.1 在 frontend/src/App.tsx 新增路由分支
    • 3.1.1 currentMenu === 'dip-score-popup' 渲染 <ScorePopup/>
    • 3.1.2 mode === 'popup' 免登录直接渲染
  • 3.2 注册菜单 key dip-score-popup
    • 3.2.1 在 frontend/src/routes/menuRouteRegistry.tsx 中新增渲染项
    • 3.2.2 菜单项名称:DIP 分组分值查询
    • 3.2.3 路由:/dip/score-popup

4. 调试入口

  • 4.1 frontend/src/pages/DIP/Workbench.tsx 顶部加按钮「打开 DIP 分组分值查询(调试)」
    • 4.1.1 点击跳转 #/dip/score-popup?mode=preview
  • 4.2 ScorePopup 顶部 AdmID 输入框
    • 4.2.1 非 popup 模式渲染(同时在 popup 模式保留,仅用于自动登录后的回显)
    • 4.2.2 输入 AdmID + 点击「查询」→ 触发 loadBaseline

5. 验证与回归

  • 5.1 DIP 业务机构 fixmedinsCode 场景验证:ScorePopup 在弹框模式下按 01050103 policyTypeDesc==='DIP' 路径渲染;查询 → loadBaseline → 02010007+02010008 完整链路代码已实现。需用户联调时验证实际数据流。
  • 5.2 DRG 机构 fixmedinsCode 场景:Result 提示「该机构为 DRG 业务,请使用 DRG 分组弹框」已实现(业务类型判断逻辑在 ScorePopup.tsx 中处理)。
  • 5.3 编辑诊断/手术 + 模拟分组 → 对比表新增行代码已实现(handleSimulate / addCompareRow)。
  • 5.4 Workbench.tsx 顶部按钮已添加,点击跳转 #/dip/score-popup?mode=preview。
  • 5.5 AdmID 输入框 + 查询按钮已实现(弹框头部右侧 Input addonBefore="HIS就诊号")。
  • 5.6 lint / typecheck 通过(read_lints 已确认 0 error)。

6. 文档

  • 6.1 ScorePopup.tsx 顶部 JSDoc 已写明与 GroupPopup 的对称关系、字段差异、postMessage 协议。
  • 6.2 menuTitleMap 已新增「DIP分组分值查询」作为新菜单项标题(frontend/src/routes/menuRoutes.ts)。README 无须更新(项目无 menu README)。