design.md 9.7 KB

Design: DRG基础数据维护

1. 后端接口设计

服务类: src.BasicData.BasicData

Class src.BasicData.BasicData Extends %RegisteredObject
{
    /// 保存DRG基础数据 - Code: 02010010
    ClassMethod SaveBasicData(postObj As %Library.DynamicObject) As %Library.DynamicObject

    /// 查询DRG基础数据 - Code: 02010011
    ClassMethod QueryBasicData(postObj As %Library.DynamicObject) As %Library.DynamicObject

    /// 删除DRG基础数据 - Code: 02010012
    ClassMethod DeleteBasicData(postObj As %Library.DynamicObject) As %Library.DynamicObject

    /// 保存DRG基础数据明细 - Code: 02010013
    ClassMethod SaveBasicDataSub(postObj As %Library.DynamicObject) As %Library.DynamicObject

    /// 查询DRG基础数据明细 - Code: 02010014
    ClassMethod QueryBasicDataSub(postObj As %Library.DynamicObject) As %Library.DynamicObject

    /// 删除DRG基础数据明细 - Code: 02010015
    ClassMethod DeleteBasicDataSub(postObj As %Library.DynamicObject) As %Library.DynamicObject
}

2. 接口详细设计

2.1 保存DRG基础数据 (02010010)

入参:

字段 类型 必填 说明
id String 否 主表ID(为空=新增,非空=修改)
insuCode String 是 代码
insuDesc String 是 描述
provinceDr String 是 省ID
cityDr String 是 市ID
areaDr String 否 区ID
startDate String 是 生效日期(YYYY-MM-DD)
stopDate String 否 失效日期(YYYY-MM-DD)
identification String 否 标识码
remark String 否 备注

出参:

{
  "errorCode": "0",
  "errorMessage": "保存成功",
  "result": { "id": 1001 }
}

请求示例:

{
  "code": "02010010",
  "params": [{
    "id": "",
    "insuCode": "DRG_VERSION_2024",
    "insuDesc": "CHS-DRG 2.0版本",
    "provinceDr": "1",
    "cityDr": "1",
    "areaDr": "1",
    "startDate": "2024-01-01",
    "identification": "DRG_VERSION",
    "remark": "国家医保版CHS-DRG 2.0分组方案"
  }]
}

2.2 查询DRG基础数据 (02010011)

入参:

字段 类型 必填 说明
insuCode String 否 代码(模糊搜索)
insuDesc String 否 描述(模糊搜索)
provinceDr String 否 省ID
cityDr String 否 市ID
identification String 否 标识码
isActive String 否 有效状态(Y=有效)
page Number 否 页码,默认1
limit Number 否 每页条数,默认20

出参:

{
  "errorCode": "0",
  "errorMessage": "",
  "result": {
    "total": 50,
    "rows": [
      {
        "id": "1001",
        "insuCode": "DRG_VERSION_2024",
        "insuDesc": "CHS-DRG 2.0版本",
        "provinceDr": "1",
        "provinceName": "北京市",
        "cityDr": "1",
        "cityName": "北京市",
        "areaDr": "1",
        "areaName": "东城区",
        "startDate": "2024-01-01",
        "stopDate": "",
        "createDate": "2024-01-01",
        "createTime": "10:00:00",
        "identification": "DRG_VERSION",
        "remark": "国家医保版CHS-DRG 2.0分组方案"
      }
    ]
  }
}

2.3 删除DRG基础数据 (02010012)

入参:

字段 类型 必填 说明
id String 是 主表ID

出参:

{
  "errorCode": "0",
  "errorMessage": "删除成功",
  "result": {}
}

说明: 级联删除HB_DRGBasicDataSub中对应的明细记录。


2.4 保存DRG基础数据明细 (02010013)

入参:

字段 类型 必填 说明
id String 否 明细ID(为空=新增,非空=修改)
hbDictionariesDr String 是 所属主表ID
code String 是 代码
descripts String 是 描述
identification String 否 标识码
startDate String 是 生效日期(YYYY-MM-DD)
stopDate String 否 失效日期(YYYY-MM-DD)
remark String 否 备注

出参:

{
  "errorCode": "0",
  "errorMessage": "保存成功",
  "result": { "id": 2001 }
}

请求示例:

{
  "code": "02010013",
  "params": [{
    "hbDictionariesDr": "1001",
    "code": "MDCA",
    "descripts": "先期分组-器官移植、骨髓移植、ECMO等",
    "identification": "MDC_TYPE",
    "startDate": "2024-01-01",
    "remark": "MDCA先期分组分类"
  }]
}

2.5 查询DRG基础数据明细 (02010014)

入参:

字段 类型 必填 说明
hbDictionariesDr String 是 所属主表ID
code String 否 代码(模糊搜索)
identification String 否 标识码
isActive String 否 有效状态(Y=有效)
page Number 否 页码,默认1
limit Number 否 每页条数,默认20

出参:

{
  "errorCode": "0",
  "errorMessage": "",
  "result": {
    "total": 38,
    "rows": [
      {
        "id": "2001",
        "hbDictionariesDr": "1001",
        "code": "MDCA",
        "descripts": "先期分组-器官移植、骨髓移植、ECMO等",
        "identification": "MDC_TYPE",
        "startDate": "2024-01-01",
        "stopDate": "",
        "createDate": "2024-01-01",
        "createTime": "10:00:00",
        "remark": "MDCA先期分组分类"
      }
    ]
  }
}

2.6 删除DRG基础数据明细 (02010015)

入参:

字段 类型 必填 说明
id String 是 明细ID

出参:

{
  "errorCode": "0",
  "errorMessage": "删除成功",
  "result": {}
}

3. 前端页面设计

3.1 页面布局

采用 主从表(Master-Detail) 布局:

┌─────────────────────────────────────────────────────────┐
│ 搜索条件: [代码] [描述] [标识码] [省份▼] [城市▼] [查询] [重置] │
├─────────────────────────────────────────────────────────┤
│ DRG基础数据列表                                    [新增] │
│ ┌──────┬──────────────┬──────┬──────┬──────┬─────────────┐│
│ │ 代码 │ 描述         │ 省   │ 市   │ 状态 │ 操作        ││
│ ├──────┼──────────────┼──────┼──────┼──────┼─────────────┤│
│ │ V001 │ CHS-DRG 2.0 │ 北京 │ 北京 │ 有效 │ 编辑 | 删除 ││
│ │ V002 │ ...          │ ...  │ ...  │ 失效 │ 编辑 | 删除 ││
│ └──────┴──────────────┴──────┴──────┴──────┴─────────────┘│
│                                                    共X条│
├─────────────────────────────────────────────────────────┤
│ 明细数据 (选中: CHS-DRG 2.0)                    [新增明细] │
│ ┌──────┬──────────────────────┬──────────┬─────────────┐│
│ │ 代码 │ 描述               │ 标识码   │ 操作        ││
│ ├──────┼──────────────────────┼──────────┼─────────────┤│
│ │ MDCA │ 先期分组-器官移植   │ MDC_TYPE │ 编辑 | 删除 ││
│ │ MDCP │ 围产期新生儿疾病   │ MDC_TYPE │ 编辑 | 删除 ││
│ └──────┴──────────────────────┴──────────┴─────────────┘│
│                                                    共X条│
└─────────────────────────────────────────────────────────┘

3.2 交互流程

  1. 页面加载 → 自动查询主表列表
  2. 点击主表行 → 加载该行对应的明细列表
  3. 新增主表 → 弹出表单对话框 → 填写保存 → 刷新列表
  4. 编辑主表 → 弹出预填表单对话框 → 修改保存 → 刷新列表
  5. 删除主表 → 二次确认 → 删除(级联明细) → 刷新列表
  6. 新增明细 → 弹出表单对话框 → 填写保存 → 刷新明细列表
  7. 编辑明细 → 弹出预填表单对话框 → 修改保存 → 刷新明细列表
  8. 删除明细 → 二次确认 → 删除 → 刷新明细列表

3.3 API封装 (frontend/src/api/basicData.ts)

import { invoke } from './request';

// 保存DRG基础数据
export const saveBasicData = (params: any) => invoke('02010010', [params]);

// 查询DRG基础数据
export const queryBasicData = (params: any) => invoke('02010011', [params]);

// 删除DRG基础数据
export const deleteBasicData = (params: any) => invoke('02010012', [params]);

// 保存DRG基础数据明细
export const saveBasicDataSub = (params: any) => invoke('02010013', [params]);

// 查询DRG基础数据明细
export const queryBasicDataSub = (params: any) => invoke('02010014', [params]);

// 删除DRG基础数据明细
export const deleteBasicDataSub = (params: any) => invoke('02010015', [params]);