DIP(按病种分值付费)核心算法配置是医保控费系统的基础数据管理模块。目前已有的 User.HBDIPCoreAlgorithmData 表类定义了 DIP 算法所需的核心字段,包括主要诊断、手术操作、省市信息、分值系数等,但缺少对应的业务操作类(BS 类)和前端管理界面。
参考项目已实现的功能:
CoreAlgorithmConfig.tsx) 提供了完整的增删改查和导入功能ICDInfo.cls) 展示了后端 operatetable 模式的标准用法本项目需要按照同样的架构风格,为 DIP 算法配置实现完整的前后端功能。
Goals:
Non-Goals:
User.HBDIPCoreAlgorithmData 表结构Decision: 在已有的 src.DRG.BasicData.CoreAlgorithm 类中添加三个 DIP 算法配置方法:
QueryDIPCoreAlgorithm (接口号 02010053) - 查询列表SaveDIPCoreAlgorithm (接口号 02010054) - 保存(新增/更新)DeleteDIPCoreAlgorithm (接口号 02010055) - 删除Rationale:
IsRecordActive 等通用方法Decision: 统一使用 src.util.operatetable 工具类进行 Insert/Update/Delete 操作
Rationale:
示例代码模式:
set insObj={}
set insObj.className="User.HBDIPCoreAlgorithmData"
do data.%Push(dataObj)
set insObj.data=data
set rtn=##class(src.util.operatetable).Update(.insObj)
Decision: 参考 CoreAlgorithmConfig.tsx 实现 DIPCoreAlgorithmConfig.tsx
Rationale:
根据 HBDIPCoreAlgorithmData 表结构,前后端字段映射如下:
| 前端字段 | 后端字段 | 说明 |
|---|---|---|
| principalDiagnosis | PrincipalDiagnosis | 主要诊断代码(必填) |
| principalDiagnosisName | PrincipalDiagnosisName | 主要诊断名称(必填) |
| majorProcedure | MajorProcedure | 主要手术代码 |
| majorProcedureName | MajorProcedureName | 主要手术名称 |
| secondaryProcedure | SecondaryProcedure | 相关手术代码 |
| secondaryProcedureName | SecondaryProcedureName | 相关手术名称 |
| provinceDr | ProvinceDr | 省(必填) |
| cityDr | CityDr | 市(必填) |
| mdtrtArea | MdtrtArea | 就医地区划代码 |
| medinsLv | MedinsLv | 医疗机构等级(必填) |
| scoreValue | ScoreValue | 基准分值(必填) |
| adjustCoefficient | AdjustCoefficient | 调节系数 |
| primaryAdjustCoefficient | PrimaryAdjustCoefficient | 一级调节系数 |
| secondaryAdjustCoefficient | SecondaryAdjustCoefficient | 二级调节系数 |
| thirdAdjustCoefficient | ThirdAdjustCoefficient | 三级调节系数 |
| Risk | Mitigation |
|---|---|
| 省市级联数据量大导致加载慢 | 使用分页下拉组件,支持搜索过滤 |
| 必填字段校验不一致 | 前后端都做必填校验,后端为主 |
| 并发编辑冲突 | operatetable 自动处理版本控制 |
| 接口号冲突 | 使用新的连续接口号段 02010053-02010055 |
是否需要根据医疗机构等级自动填充对应的调节系数?
查询条件是否需要支持主要诊断和手术的模糊匹配?