05-盈亏分析服务.md 15 KB

05 - 盈亏分析服务

服务类: src.DRG.Profit


5.1 查询科室盈亏 (02010201)

接口Code: 02010201 接口名称: 查询科室盈亏 方法名: QueryDeptProfit

入参

字段 类型 必填 说明 示例
year String 年份 "2026"
month String 月份 "03"
deptCode String 科室编码 "01"
startDate String 开始日期 "2026-03-01"
endDate String 结束日期 "2026-03-31"
page Number 页码,默认1 1
limit Number 每页条数,默认20 20

出参

字段 类型 说明
errorCode String 错误码
errorMessage String 错误信息
result.total Number 总记录数
result.rows Array 盈亏列表

result.rows 每项字段

字段 类型 说明
deptCode String 科室编码
deptName String 科室名称
totalCaseCount Number 总病例数
groupedCaseCount Number 已分组病例数
groupRate Number 分组率(%)
totalFee Number 总费用
payStandard Number DRG支付标准
profitAmount Number 盈亏金额
profitRate Number 盈亏率(%)
cmi Number CMI值
avgFee Number 次均费用
avgHospitalDays Number 平均住院天数

请求示例

{
  "code": "02010201",
  "params": [{
    "year": "2026",
    "month": "03",
    "startDate": "2026-03-01",
    "endDate": "2026-03-31",
    "page": 1,
    "limit": 20
  }]
}

响应示例

{
  "errorCode": "0",
  "errorMessage": "",
  "result": {
    "total": 15,
    "rows": [
      {
        "deptCode": "01",
        "deptName": "心内科",
        "totalCaseCount": 320,
        "groupedCaseCount": 298,
        "groupRate": 93.13,
        "totalFee": 5680000.00,
        "payStandard": 5200000.00,
        "profitAmount": -480000.00,
        "profitRate": -8.45,
        "cmi": 1.23,
        "avgFee": 17750.00,
        "avgHospitalDays": 8.5
      }
    ]
  }
}

5.2 查询医生盈亏 (02010202)

接口Code: 02010202 接口名称: 查询医生盈亏 方法名: QueryDoctorProfit

入参

字段 类型 必填 说明 示例
year String 年份 "2026"
month String 月份 "03"
deptCode String 科室编码 "01"
doctorCode String 医生编码 "D001"
startDate String 开始日期 "2026-03-01"
endDate String 结束日期 "2026-03-31"
page Number 页码 1
limit Number 每页条数 20

出参

字段 类型 说明
errorCode String 错误码
errorMessage String 错误信息
result.total Number 总记录数
result.rows Array 盈亏列表

result.rows 每项字段

字段 类型 说明
doctorCode String 医生编码
doctorName String 医生姓名
deptCode String 科室编码
deptName String 科室名称
caseCount Number 病例数
totalFee Number 总费用
payStandard Number DRG支付标准
profitAmount Number 盈亏金额
profitRate Number 盈亏率(%)

请求示例

{
  "code": "02010202",
  "params": [{
    "year": "2026",
    "month": "03",
    "deptCode": "01",
    "page": 1,
    "limit": 20
  }]
}

响应示例

{
  "errorCode": "0",
  "errorMessage": "",
  "result": {
    "total": 25,
    "rows": [
      {
        "doctorCode": "D001",
        "doctorName": "李医生",
        "deptCode": "01",
        "deptName": "心内科",
        "caseCount": 45,
        "totalFee": 850000.00,
        "payStandard": 780000.00,
        "profitAmount": -70000.00,
        "profitRate": -8.24
      }
    ]
  }
}

5.3 查询病种盈亏 (02010203)

接口Code: 02010203 接口名称: 查询病种盈亏 方法名: QueryDiseaseProfit

入参

字段 类型 必填 说明 示例
year String 年份 "2026"
month String 月份 "03"
drgCode String DRG编码 "FB13"
dipCode String DIP编码 ""
startDate String 开始日期 "2026-03-01"
endDate String 结束日期 "2026-03-31"
page Number 页码 1
limit Number 每页条数 20

出参

字段 类型 说明
errorCode String 错误码
errorMessage String 错误信息
result.total Number 总记录数
result.rows Array 盈亏列表

result.rows 每项字段

字段 类型 说明
drgCode String DRG编码
drgName String DRG名称
caseCount Number 病例数
totalFee Number 总费用
payStandard Number DRG支付标准
profitAmount Number 盈亏金额
profitRate Number 盈亏率(%)
avgFee Number 次均费用

请求示例

{
  "code": "02010203",
  "params": [{
    "year": "2026",
    "month": "03",
    "drgCode": "FB13",
    "page": 1,
    "limit": 20
  }]
}

响应示例

{
  "errorCode": "0",
  "errorMessage": "",
  "result": {
    "total": 180,
    "rows": [
      {
        "drgCode": "FB13",
        "drgName": "急性心肌梗死,伴一般合并症与伴随病",
        "caseCount": 28,
        "totalFee": 650000.00,
        "payStandard": 620000.00,
        "profitAmount": -30000.00,
        "profitRate": -4.62,
        "avgFee": 23214.29
      }
    ]
  }
}

5.4 盈亏趋势分析 (02010204)

接口Code: 02010204 接口名称: 盈亏趋势分析 方法名: QueryProfitTrend

入参

字段 类型 必填 说明 示例
deptCode String 科室编码 "01"
doctorCode String 医生编码 "D001"
startYear String 起始年份 "2026"
startMonth String 起始月份 "01"
endYear String 结束年份 "2026"
endMonth String 结束月份 "03"

出参

字段 类型 说明
errorCode String 错误码
errorMessage String 错误信息
result Array 趋势数据列表

result 每项字段

字段 类型 说明
year String 年份
month String 月份
profitAmount Number 盈亏金额
caseCount Number 病例数

请求示例

{
  "code": "02010204",
  "params": [{
    "deptCode": "01",
    "startYear": "2026",
    "startMonth": "01",
    "endYear": "2026",
    "endMonth": "03"
  }]
}

响应示例

{
  "errorCode": "0",
  "errorMessage": "",
  "result": [
    { "year": "2026", "month": "01", "profitAmount": -120000.00, "caseCount": 280 },
    { "year": "2026", "month": "02", "profitAmount": 35000.00, "caseCount": 310 },
    { "year": "2026", "month": "03", "profitAmount": -480000.00, "caseCount": 320 }
  ]
}

5.5 重新计算盈亏 (02010205)

接口Code: 02010205 接口名称: 重新计算盈亏数据 方法名: RecalculateProfit

入参

字段 类型 必填 说明 示例
year String 年份 "2026"
month String 月份 "03"
deptCode String 科室编码 "01"

出参

字段 类型 说明
errorCode String 错误码
errorMessage String 错误信息
result.recalculatedCount Number 重新计算的记录数

请求示例

{
  "code": "02010205",
  "params": [{
    "year": "2026",
    "month": "03",
    "deptCode": "01"
  }]
}

响应示例

{
  "errorCode": "0",
  "errorMessage": "重新计算完成",
  "result": { "recalculatedCount": 320 }
}

5.6 查询科室汇总 (02010206)

接口Code: 02010206 接口名称: 查询科室汇总 方法名: QueryDeptSummary

入参

字段 类型 必填 说明 示例
year String 年份 "2026"
month String 月份 "03"
deptCode String 科室编码 "01"

出参

字段 类型 说明
errorCode String 错误码
errorMessage String 错误信息
result Array 汇总列表

result 每项字段

字段 类型 说明
deptCode String 科室编码
deptName String 科室名称
totalCaseCount Number 总病例数
groupedCaseCount Number 已分组病例数
groupRate Number 分组率(%)
totalFee Number 总费用
drgPayStandard Number DRG支付标准总额
profitAmount Number 盈亏金额
profitRate Number 盈亏率(%)
cmi Number CMI值
avgHospitalDays Number 平均住院天数
avgFee Number 次均费用

请求示例

{
  "code": "02010206",
  "params": [{
    "year": "2026",
    "month": "03"
  }]
}

响应示例

{
  "errorCode": "0",
  "errorMessage": "",
  "result": [
    {
      "deptCode": "01",
      "deptName": "心内科",
      "totalCaseCount": 320,
      "groupedCaseCount": 298,
      "groupRate": 93.13,
      "totalFee": 5680000.00,
      "drgPayStandard": 5200000.00,
      "profitAmount": -480000.00,
      "profitRate": -8.45,
      "cmi": 1.23,
      "avgHospitalDays": 8.5,
      "avgFee": 17750.00
    }
  ]
}

5.7 查询参保地域类型盈亏 (02010207)

接口Code: 02010207 接口名称: 查询参保地域类型盈亏 方法名: QueryInsuranceAreaProfit 字段说明: 按患者「参保地域类型」分组(市本级 / 省直 / 异地 / 未知)。分类规则见下方说明。

分类规则(GetSettlementType)

条件 地域类型
参保地(AdmvsArea)或就医地(MdtrtArea)区划代码缺失(空) 未知
参保地第3-4位 = 99(省直)且 参保省 = 就医省 省直
参保地第3-4位 = 99(省直)且 参保省 ≠ 就医省 异地
参保地与就医地前4位相同(非省直) 市本级
其它 异地

区划代码取自 BS_HISPatAdmAdmvsArea(参保地)与 MdtrtArea(就医地),关联条件 BS_HISPatAdm.AdmID = BS_DRGMedInsuMedicalRecord.HISAdmID AND BS_HISPatAdm.Deleted = 0。 「未知」为独立第4类,不并入市本级。

入参

字段 类型 必填 说明 示例
areaType String 地域类型筛选(市本级/省直/异地/未知),不传返回全部4类 "市本级"
drgCode String DRG编码 "FB13"
startDate String 开始日期 "2026-03-01"
endDate String 结束日期 "2026-03-31"
stage String 三阶段口径:1=基本段 2=高倍段 3=低倍段 空=全段 "1"
fixmedinsCode String 医疗机构编码(由前端 withHosp 注入,清空时传空) "H3301"
page Number 页码,默认1 1
limit Number 每页条数,默认20 20

出参

字段 类型 说明
errorCode String 错误码
errorMessage String 错误信息
result.total Number 总记录数(3~4:市本级/省直/异地恒返回,未知类仅在有数据时返回)
result.rows Array 地域类型盈亏列表(按盈亏金额降序)
result.statistics Object 汇总统计(见下)

result.rows 每项字段

字段 类型 说明
areaType String 地域类型(市本级/省直/异地/未知)
caseCount Number 病例数
caseRatio Number 病例占比(%)
totalFee Number 总费用
payStandard Number 付费标准总额
profitAmount Number 盈亏金额
profitRate Number 盈亏率(%)
avgFee Number 次均费用
avgPayment Number 次均付费
avgProfit Number 次均盈亏
weight Number 平均权重(病例数加权,非简单平均)

result.statistics 字段

字段 类型 说明
totalAreaCount Number 地域类型数(市本级/省直/异地恒计,未知类有数据才计入,故 3~4)
totalCaseCount Number 总病例数
totalProfitAmount Number 总盈亏金额
avgProfitRate Number 加权平均盈亏率(%)
profitAreaCount Number 盈利地域数
lossAreaCount Number 亏损地域数
balanceAreaCount Number 盈亏平衡地域数
topProfitAreas Array 盈利 Top(areaType, profitAmount)
topLossAreas Array 亏损 Top(areaType, profitAmount)
areaBreakdown Array 各地域类型下 Top 病组明细(areaType, drgCode, drgName, caseCount, profitAmount)

请求示例

{
  "code": "02010207",
  "params": [{
    "startDate": "2026-03-01",
    "endDate": "2026-03-31",
    "stage": "1"
  }]
}

响应示例

{
  "errorCode": "0",
  "errorMessage": "",
  "result": {
    "total": 4,
    "rows": [
      { "areaType": "市本级", "caseCount": 820, "caseRatio": 68.33, "totalFee": 15200000.00, "payStandard": 14800000.00, "profitAmount": -400000.00, "profitRate": -2.63, "avgFee": 18536.59, "avgPayment": 18048.78, "avgProfit": -487.80, "weight": 1.12 },
      { "areaType": "省直", "caseCount": 210, "caseRatio": 17.50, "totalFee": 4200000.00, "payStandard": 4100000.00, "profitAmount": -100000.00, "profitRate": -2.38, "avgFee": 20000.00, "avgPayment": 19523.81, "avgProfit": -476.19, "weight": 1.05 },
      { "areaType": "异地", "caseCount": 150, "caseRatio": 12.50, "totalFee": 3100000.00, "payStandard": 3300000.00, "profitAmount": 200000.00, "profitRate": 6.45, "avgFee": 20666.67, "avgPayment": 22000.00, "avgProfit": 1333.33, "weight": 1.18 },
      { "areaType": "未知", "caseCount": 20, "caseRatio": 1.67, "totalFee": 380000.00, "payStandard": 370000.00, "profitAmount": -10000.00, "profitRate": -2.63, "avgFee": 19000.00, "avgPayment": 18500.00, "avgProfit": -500.00, "weight": 1.00 }
    ],
    "statistics": {
      "totalAreaCount": 4,
      "totalCaseCount": 1200,
      "totalProfitAmount": -310000.00,
      "avgProfitRate": -1.94,
      "profitAreaCount": 1,
      "lossAreaCount": 3,
      "balanceAreaCount": 0,
      "topProfitAreas": [ { "areaType": "异地", "profitAmount": 200000.00 } ],
      "topLossAreas": [ { "areaType": "市本级", "profitAmount": -400000.00 } ],
      "areaBreakdown": [
        { "areaType": "市本级", "drgCode": "FB13", "drgName": "急性心肌梗死", "caseCount": 60, "profitAmount": -80000.00 }
      ]
    }
  }
}