## 1. 后端接口实现类(src.DRG.Workbench) - [x] 1.1 新建类 `src.DRG.Workbench`(包 `src.DRG.Workbench`),提供三表查询与聚合的私有辅助方法(按 `AdmID` 取分组记录、按 `MedcasNo` 取病案首页、按阶段取最新有效记录) - [x] 1.2 实现 `02010004` 工作台列表查询:以 `BS_HISPatAdm` 为主表,按入参 `fixmedinsCode`(前端传入 `session.hospYBCode`)过滤,分页;关联 `BS_DRGGroupRecord` 聚合 `stage1/stage2/stage3`,按病案号判断 `hasMedicalRecord`;返回 `statistics { total, grouped, ungrouped, failed }` - [x] 1.3 实现 `02010005` 患者全量整合视图:按 `admID` 合并返回 `{ hisAdm, medicalRecord, groupRecords[] }`;其中 `medicalRecord` 复用现有 `02010027`(`src.DRG.HISData.HisDataService.QueryMedicalRecord`)数据形态,`groupRecords[]` 等价于 02010036 按 `admID` 的返回 - [x] 1.4 在 `src.DRG.Interface` 注册 02010004、02010005 两个 ClassMethod(派发至 `src.DRG.Workbench`);**不得修改/新增 02010027、02010036,不得新建 02010005 病案首页详情接口与原分组历史接口**。注:IRIS 编译与 CB_MapInterface 的 INSERT(见对话中已生成的 SQL)需在目标库手动执行 ## 2. 前端 API 封装 - [x] 2.1 新建 `frontend/src/api/drgWorkbench.ts`,导出 `queryWorkbenchList`(02010004)、`queryPatientFullView`(02010005),并新增轻封装 `queryMedicalRecord`(02010027,复用 `hisData.ts` 既有封装)、`queryGroupRecord`(02010036,入参 `{ admID }`,调用约定对齐现有 `DRG/Results.tsx`);统一经 `invoke(code, [params])` 调用 - [x] 2.2 定义 TypeScript 类型:`WorkbenchRow`(含 `stage1/2/3`、`hasMedicalRecord`)、`GroupRecord`、`MedicalRecordDetail`(同 02010027 形态)、`WorkbenchStatistics` 等 ## 3. 前端 DRG 分组工作台页面改造 - [x] 3.1 `frontend/src/pages/DRG/Workbench.tsx` 移除 mock API `/api/medicalRecord/list`,改用 `queryWorkbenchList` 加载列表,调用时传入 `fixmedinsCode = getSession().hospYBCode` - [x] 3.2 表格改为"一行一患者",新增「事前分组 / 事中分组 / 事后分组」三阶段列(展示各阶段 DRG 编码与状态,空为 `-`) - [x] 3.3 新增「分组详情」操作列按钮,点击调用 `queryPatientFullView`(02010005) 打开下钻弹窗,展示该患者 HIS 就诊、全部分组记录历史(含 02010005 的 `groupRecords[]`)与病案首页;病案首页区块参考 `MedicalRecords.tsx` 复用 02010027 数据形态(Tabs:基本信息/诊断手术/费用/病案首页图片)展示 - [x] 3.4 保留现有「分组」按钮流程(调用 02010001 分组 + 02010035 保存),统计卡片数据改为取自列表返回的 `statistics` - [x] 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` 编码口径是否一致;若不一致,补充映射逻辑并回归列表过滤