proposal.md 4.4 KB

Why

当前 DRG分组工作台(frontend/src/pages/DRG/Workbench.tsx)使用前端 mock API(/api/medicalRecord/list)展示病案列表,并未真正对接 HIS 就诊、DRG 分组与病案首页三套业务数据,导致工作台无法反映真实分组进展,也无法按医院、分组阶段(事前/事中/事后)进行下钻分析。

现需以 BS_HISPatAdm(HIS 就诊主表)、BS_DRGGroupRecord(DRG 分组记录,含多阶段)、BS_DRGMedInsuMedicalRecord(病案首页)三张表为基础,重构分组工作台:新增整合三表数据的后端接口服务,并改造前端页面,使工作台基于真实数据、支持按登录医院筛选与按分组阶段下钻。

What Changes

  • 新增后端接口服务(编码取自 02010004–02010009 可用池,按需新增 2 个,连续使用 02010004/02010005),统一注册在 src.DRG.Interface,实现类落地于 src.DRG 包(新建 src.DRG.Workbench):
    • 02010004 分组工作台列表查询:以 BS_HISPatAdm 为主表,按 fixmedinsCode(取自前端登录 session 的 hospYBCode)过滤,关联 BS_DRGGroupRecord 汇总出事前/事中/事后三阶段 DRG 分组结果(编码、状态、权重等)成列展示,支持分页并返回统计汇总(总数、已/未分组等)。
    • 02010005 按 AdmID 查询患者全量整合视图(HIS 就诊 + 病案首页 + 所有分组记录合并返回),供"分组详情"下钻使用;其中 medicalRecord 字段的数据形态与现有 02010027(病案首页详情)保持一致。
    • 病案首页详情复用现有接口 02010027(src.DRG.HISData.Interface → 前端已封装 queryMedicalRecords,frontend/src/pages/HIS/MedicalRecords.tsx 已按 Tabs(基本信息/诊断手术/费用/分组/病案首页图片)展示其返回内容,本次直接复用其布局与数据形态,不再新建 02010005 病案首页详情接口)。
    • 分组记录历史复用现有接口 02010036(src.DRG.Interface → src.DRG.GroupDevice.QueryDRGGroupRecord),该接口已支持按 admID/medcasNo 等条件查询 BS_DRGGroupRecord,本次不再新建分组历史接口(原拟编号已腾出)。
  • 改造前端 DRG 分组工作台页面(frontend/src/pages/DRG/Workbench.tsx):移除 mock API,接入上述接口;列表一行一患者,将事前/事中/事后三阶段分组结果成列展示,并新增"分组详情"操作列按钮点击下钻查询。
  • 医院筛选由前端传入:调用接口时从登录 session.hospYBCode 取当前登录医院的医保机构代码作为 fixmedinsCode 入参,后端按该值过滤。

Capabilities

New Capabilities

  • drg-grouping-workbench: DRG 分组工作台——基于 BS_HISPatAdm/BS_DRGGroupRecord/BS_DRGMedInsuMedicalRecord 三表整合的查询与下钻工作台,包含后端整合接口服务(连续编号 02010004、02010005)与前端工作台页面改造,复用现有 02010027 查询病案首页详情、复用现有 02010036 查询分组历史,支持按医院筛选、三阶段分组成列与"分组详情"下钻。

Modified Capabilities

Impact

  • 后端:src/DRG/Interface.cls 新增 2 个 ClassMethod(02010004、02010005);新增后端实现类 src.DRG.Workbench;复用既有 02010027(src.DRG.HISData.Interface 病案首页详情)与 02010036(src.DRG.GroupDevice.QueryDRGGroupRecord 分组历史);依赖已存在的数据表 BS_HISPatAdm、BS_DRGGroupRecord、BS_DRGMedInsuMedicalRecord。
  • 前端:
    • frontend/src/pages/DRG/Workbench.tsx 重写数据源与列表结构(三阶段列 + "分组详情"按钮 + 下钻弹窗)。
    • 新增 API 封装(建议 frontend/src/api/drgWorkbench.ts):queryWorkbenchList(02010004)、queryPatientFullView(02010005),并复用/轻封装 02010027(病案首页,参考 DRG/MedicalRecords.tsx 的调用方式)与 02010036 查询分组历史(参考现有 DRG/Results.tsx 的调用方式)。
    • 调用接口时从 getSession().hospYBCode 取医院代码作为 fixmedinsCode。
  • 数据/接口:不改变三张表结构;新增接口为只读查询(列表/整合视图),病案首页复用 02010027、分组历史复用 02010036,分组动作仍复用现有 02010001(分组器)与 02010035(保存分组记录)。
  • 依赖系统:IRIS 数据库(SQL 关联查询)、前端 React + Ant Design。