DRG 入组准确性依赖病案首页/结算清单质量。当前实现 src.DRG.QC:zPerformQCCheck 将 5 条质控规则硬编码为顺序 if 语句,修改规则需改代码重编译;编码类(05)检查的 GetDiagnosisList 为空壳未生效;统计接口 02010304 仅返回 typeStats/levelStats,缺聚合总数与科室维度;前端 api/qc.ts 为空、pages/ 无质控页面。
本项目已有成熟可复用资产:User.BSDRGWarningRule(规则表范式)、pages/Warning/Center.tsx(KPI/Tab/合计行/处理弹窗范式)、useHospitalOptions/CustomPagination/useDict、BasicData 已建 ICD10/ICD9CM3 字典。本设计目标是将这些资产组合,形成配置化规则库 + 引擎驱动 + 分析 UI 的闭环。
Goals:
BS_DRGQCRule 数据,运营/医保办可通过界面增删改规则。zPerformQCCheck 读表循环,按 CheckerType 分发到 5 个统一 handler。RuleExpr 表达式引擎零代码。Non-Goals:
新建 User.BSDRGQCRule 复用 BSDRGWarningRule 的字段范式(RuleCode/RuleName/IsActive/SeqNo/MDCCode/DRGCode 等),并新增质控语义字段(RuleType/CheckerType/FieldName/CompareField/Operator/ThresholdType/ThresholdValue/RuleExpr/SuggestValue/IssueLevel/IssueCategory)。
定义 5 种 CheckerType:01 RequiredField/02 CompareField/03 ValueRange/04 DictExist/05 Expression。zPerformQCCheck 改为 SELECT * FROM BS_DRRGQCRule WHERE IsActive='1' ORDER BY SeqNo 循环,调用 DispatchCheck(checkerType, ruleRow, mr) 分发。
CheckerType=05 时,RuleExpr 存储 ObjectScript 表达式字符串(如 TotalFee > ..GetDRGAvgFee(DRGCode)*2),由 EvalExpression(expr, mr) 统一 $zcvt/间接执行求值。
$system 调用。IssueLevel 取 1/2/3(提示/警告/严重),与预警 WARNING_LEVEL 一致;文档 06 原 high/medium/low 字符串说明以代码为准,需同步修正文档。
Issues 页直接克隆 Center.tsx 结构(KPI 卡片 + Tab + 高级搜索 + 合计行 + 处理弹窗),改字段映射;Dashboard 复用其 KPI 卡片样式。
所有 QC 接口入参用 $lg(params,N) 按位置取,qc.ts 数组顺序严格对应 .cls;文档化于 tasks。
$system/^/JS 注入。User.BSDRGQCRule.cls + 初始化 SQL(写入 7 条规则)。src.DRG.QC.cls 的 zPerformQCCheck,新增 handler / DispatchCheck / EvalExpression / zSaveQCRule,补全 zQueryQCStats。api/qc.ts、新增 pages/QC/*、注册路由菜单、补 3 字典。{field})?本期固定文本。