tasks.md 3.6 KB

1. 后端:规则库表与初始化数据

  • 1.1 新建 User.BSDRGQCRule.cls(SqlTableName=BS_DRGQCRule),字段含 RuleCode(RuleCode 唯一索引)/RuleName/RuleDesc/RuleType/CheckerType/FieldName/CompareField/Operator/ThresholdType/ThresholdValue/RuleExpr/SuggestValue/IssueLevel/IssueCategory/MDCCode/ADRGCode/DRGCode/IsActive/SeqNo,继承 %Persistent+%XML.Adaptor+src.util.DynamicObject.Adapter,同构 BSDRGWarningRule 范式
  • 1.2 编写初始化 SQL/类方法,写入 7 条基础规则(QC0101/QC0102/QC0201/QC0301/QC0501/QC0502/QC0103),IsActive='1',SeqNo 有序
  • 1.3 新增字典 QC_TYPE(01必填/02逻辑/03一致性/04费用/05编码)、QC_LEVEL(1提示/2警告/3严重)、QC_STATUS(01待处理/02已处理/03已忽略) 至字典表

2. 后端:规则引擎重构(src.DRG.QC)

  • 2.1 重构 zPerformQCCheck:改为 SELECT * FROM BS_DRRGQCRule WHERE IsActive='1' ORDER BY SeqNo 循环,调用 DispatchCheck 分发,issue 写入 BS_DRGQCIssue(保持原 IssueType/IssueLevel/IssueCategory 映射)
  • 2.2 新增 zDispatchCheck(checkerType, ruleRow, mr) 分发到 5 个 handler
  • 2.3 实现 5 个 handler:zCheckRequired(01)/zCheckCompare(02)/zCheckRange(03)/zCheckDict(04 校验 ICD10/ICD9CM3 与性别匹配)/zCheckExpr(05)
  • 2.4 实现 zEvalExpression(expr, mr):白名单校验,禁止 $system/^ 全局引用,间接执行表达式求值
  • 2.5 补全 zQueryQCStats:返回 totalCount/pendingCount/processedCount/typeStats/levelStats/deptStats(原仅 type/level)
  • 2.6 新增 zSaveQCRule(postObj)(接口 02010306):保存/修改规则、切换 IsActive,参数顺序 [ruleCode, ruleJson, isActive]

3. 前端:API 封装与字典

  • 3.1 填充 frontend/src/api/qc.ts:performQCCheck(02010301)/queryQCIssues(02010302)/processQCIssue(02010303)/queryQCStats(02010304)/saveQCRule(02010306),params 数组顺序严格对应后端 $lg
  • 3.2 确认 useDict 可读取 QC_TYPE/QC_LEVEL/QC_STATUS 字典,前端标签映射

4. 前端:质控问题管理页(核心)

  • 4.1 新建 pages/QC/Issues.tsx:克隆 Center.tsx 结构(KPI 卡片+Tab+高级搜索+合计行+处理弹窗),字段映射 issueType/issueLevel/issueStatus 用字典 Tag
  • 4.2 实现查看详情 Modal(含 fieldName/suggestValue)、确认处理/忽略(调 02010303,备注必填)
  • 4.3 机构筛选复用 useHospitalOptions(默认当前机构,清空传空),日期组件 locale={zhCN} 中文

5. 前端:质控看板页

  • 5.1 新建 pages/QC/Dashboard.tsx:复用 Center KPI 卡片样式,5 卡片(总数/待处理/已处理/严重待处理/处理率)
  • 5.2 类型饼图/级别柱状图/科室横向条形图(数据来自 02010304),时间范围+机构筛选

6. 前端:单份质控检查页与规则配置页

  • 6.1 新建 pages/QC/Check.tsx:输入病案ID 调 02010301,展示病案信息卡 + 按级别排序的问题列表(严重红/警告黄/提示绿)
  • 6.2 新建 pages/QC/Rules.tsx:表格展示 BS_DRGQCRule(编码/名称/类型/引擎/字段/级别/启用Switch/排序/操作),Switch 启停调 02010306,新增表达式规则表单

7. 路由、菜单与联调

  • 7.1 注册路由 /qc/dashboard /qc/issues /qc/check /qc/rules 与菜单(父菜单"病案质控"),接入 HBButtonAuth 权限
  • 7.2 回归联调:对一条已知坏病案跑 02010301,确认产出 issue 与原硬编码逻辑一致;核对 02010304 看板数字与列表一致
  • 7.3 校验 UI 规范:无 JSX Option、日期中文、合计行样式;修正接口服务文档 06 的 issueLevel 字符串说明为数字