proposal.md 2.6 KB

Change: implement-dip-score-popup

Why

当前系统已经为 DRG 业务提供了 GroupPopup 弹框(路由 #/drg/group-popup),HIS 系统可通过该弹框对就诊病例进行 DRG 分组与对比分析。

但根据最新需求,DRG 系统需要同时支持 DIP(按病种分值付费)业务。由于 DIP 与 DRG 的分组算法与返回结构差异较大(DRG 关注 MDC/DRG 编码/权重/盈亏;DIP 关注 DIP 编码/基准分值/调节系数/平均费用),复用 DRG 弹框无法正确展示 DIP 分组分值结果。

需为 HIS 系统调用新增DIP 分组分值查询弹框 ScorePopup,与 GroupPopup 在路由、菜单、交互上对称:

  • 路由:#/dip/score-popup
  • 菜单项:DIP 分组分值查询,菜单 key dip-score-popup
  • 入口:policyTypeDesc === 'DIP' 才进入;DRG 机构给出提示
  • 调试支持:在 DIP/Workbench.tsx 顶部加按钮,弹框内保留 AdmID 输入框

What Changes

新增前端页面

  • frontend/src/pages/DIP/ScorePopup.tsx:DIP 分组分值查询弹框,参照 GroupPopup 实现
  • 在 frontend/src/api/dip.ts 新增 dipGroupByInput(input, session) 接口封装(调 02010008)

新增前端路由与菜单注册

  • App.tsx:新增 currentMenu === 'dip-score-popup' 的渲染分支,支持 mode=popup 时免登录直接渲染
  • menuRouteRegistry/menuRoutes:新增 dip-score-popup 菜单 key 与路由 #/dip/score-popup
  • 弹框模式下绕过 authState === 'authenticated' 检查(与 GroupPopup 一致)

新增 DIP 业务类型判断

  • ScorePopup 内仿照 GroupPopup 调 queryHospitals(01050103),按 URL fixmedinsCode 取机构 policyTypeDesc
  • policyTypeDesc === 'DIP' → 展示弹框
  • 否则 → 提示「该机构为 DRG 业务,请使用 DRG 分组弹框」

调试入口

  • frontend/src/pages/DIP/Workbench.tsx 顶部加按钮「打开 DIP 分组分值查询(调试)」,点击后跳转或嵌入 ScorePopup 预览
  • ScorePopup 顶部保留 AdmID 输入框(仅在非 popup 模式下可见)

Impact

  • Affected specs:新增 capability dip-score-popup
  • Affected code:
    • frontend/src/api/dip.ts(新增 dipGroupByInput)
    • frontend/src/pages/DIP/ScorePopup.tsx(新增)
    • frontend/src/pages/DIP/Workbench.tsx(顶部按钮)
    • frontend/src/App.tsx(路由分支)
    • frontend/src/router/** 或 menuRoutes/**(菜单注册)

后端说明

本 change 不涉及后端变更。02010007 / 02010008 接口在后端仓库的另一分支/本地版本已实现,本仓库前端只需调用。后端落地由用户在另一分支自行保证。