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_HISPatAdm 的 AdmvsArea(参保地)与 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 }
]
}
}
}