tasks.md 3.4 KB

1. 后端接口实现类(src.DRG.Workbench)

  • 1.1 新建类 src.DRG.Workbench(包 src.DRG.Workbench),提供三表查询与聚合的私有辅助方法(按 AdmID 取分组记录、按 MedcasNo 取病案首页、按阶段取最新有效记录)
  • 1.2 实现 02010004 工作台列表查询:以 BS_HISPatAdm 为主表,按入参 fixmedinsCode(前端传入 session.hospYBCode)过滤,分页;关联 BS_DRGGroupRecord 聚合 stage1/stage2/stage3,按病案号判断 hasMedicalRecord;返回 statistics { total, grouped, ungrouped, failed }
  • 1.3 实现 02010005 患者全量整合视图:按 admID 合并返回 { hisAdm, medicalRecord, groupRecords[] };其中 medicalRecord 复用现有 02010027(src.DRG.HISData.HisDataService.QueryMedicalRecord)数据形态,groupRecords[] 等价于 02010036 按 admID 的返回
  • 1.4 在 src.DRG.Interface 注册 02010004、02010005 两个 ClassMethod(派发至 src.DRG.Workbench);不得修改/新增 02010027、02010036,不得新建 02010005 病案首页详情接口与原分组历史接口。注:IRIS 编译与 CB_MapInterface 的 INSERT(见对话中已生成的 SQL)需在目标库手动执行

2. 前端 API 封装

  • 2.1 新建 frontend/src/api/drgWorkbench.ts,导出 queryWorkbenchList(02010004)、queryPatientFullView(02010005),并新增轻封装 queryMedicalRecord(02010027,复用 hisData.ts 既有封装)、queryGroupRecord(02010036,入参 { admID },调用约定对齐现有 DRG/Results.tsx);统一经 invoke(code, [params]) 调用
  • 2.2 定义 TypeScript 类型:WorkbenchRow(含 stage1/2/3、hasMedicalRecord)、GroupRecord、MedicalRecordDetail(同 02010027 形态)、WorkbenchStatistics 等

3. 前端 DRG 分组工作台页面改造

  • 3.1 frontend/src/pages/DRG/Workbench.tsx 移除 mock API /api/medicalRecord/list,改用 queryWorkbenchList 加载列表,调用时传入 fixmedinsCode = getSession().hospYBCode
  • 3.2 表格改为"一行一患者",新增「事前分组 / 事中分组 / 事后分组」三阶段列(展示各阶段 DRG 编码与状态,空为 -)
  • 3.3 新增「分组详情」操作列按钮,点击调用 queryPatientFullView(02010005) 打开下钻弹窗,展示该患者 HIS 就诊、全部分组记录历史(含 02010005 的 groupRecords[])与病案首页;病案首页区块参考 MedicalRecords.tsx 复用 02010027 数据形态(Tabs:基本信息/诊断手术/费用/病案首页图片)展示
  • 3.4 保留现有「分组」按钮流程(调用 02010001 分组 + 02010035 保存),统计卡片数据改为取自列表返回的 statistics
  • 3.5 按项目规范核查日期组件中文显示(Dayjs 中文包、format 中文)与 antd v6 用法(Select 用 options 等)

4. 联调与验证

  • 4.1 后端编译后,在 IRIS 侧验证 02010004、02010005 返回结构与字段符合 spec;确认 02010027、02010036 行为未被改变
  • 4.2 前端以某 session.hospYBCode 对应医院账号登录,验证:列表按该医院过滤、三阶段分列正确、「分组详情」下钻正常(含病案首页 02010027 形态区块)、统计卡片准确
  • 4.3 抽样核对 session.hospYBCode 与 BS_HISPatAdm.FixmedinsCode 编码口径是否一致;若不一致,补充映射逻辑并回归列表过滤