06 - 病案质控服务
服务类: src.DRG.QC
6.1 执行质控检查 (02010301)
接口Code: 02010301
接口名称: 执行质控检查
方法名: PerformQCCheck
入参
| 字段 |
类型 |
必填 |
说明 |
示例 |
| medicalRecordId |
String |
是 |
病案ID |
"1001" |
出参
| 字段 |
类型 |
说明 |
| errorCode |
String |
错误码 |
| errorMessage |
String |
错误信息 |
| result.issueCount |
Number |
问题数量 |
| result.issues |
Array |
问题列表 |
result.issues 每项字段
| 字段 |
类型 |
说明 |
| issueNo |
String |
问题流水号 |
| issueType |
String |
问题类型 |
| issueCategory |
String |
问题分类 |
| issueLevel |
String |
问题级别:high/medium/low |
| issueDesc |
String |
问题描述 |
| fieldName |
String |
问题字段名 |
| suggestValue |
String |
建议值 |
请求示例
{
"code": "02010301",
"params": [{ "medicalRecordId": "1001" }]
}
响应示例
{
"errorCode": "0",
"errorMessage": "",
"result": {
"issueCount": 2,
"issues": [
{
"issueNo": "Q20260320001234",
"issueType": "diagnosis",
"issueCategory": "诊断编码",
"issueLevel": "high",
"issueDesc": "主诊断编码[I21.0]与手术编码[51.23]不匹配,建议核实",
"fieldName": "mainDiagnosisCode",
"suggestValue": "K80.1"
},
{
"issueNo": "Q20260320001235",
"issueType": "fee",
"issueCategory": "费用异常",
"issueLevel": "medium",
"issueDesc": "总费用45000元超过DRG(FB13)平均费用(32000元)的40%",
"fieldName": "totalFee",
"suggestValue": ""
}
]
}
}
质控检查规则
| 序号 |
检查项 |
说明 |
| 1 |
主要诊断为空 |
检查 principalDiagnosis 是否为空 |
| 2 |
诊断与手术匹配 |
检查主诊断与主手术是否匹配 |
| 3 |
住院天数合理性 |
检查 admDate 到 disDate 的天数 |
| 4 |
费用异常 |
总费用与DRG平均费用对比 |
| 5 |
年龄与诊断匹配 |
检查 patientAge 与诊断是否合理 |
6.2 查询质控问题 (02010302)
接口Code: 02010302
接口名称: 查询质控问题
方法名: QueryQCIssues
入参
| 字段 |
类型 |
必填 |
说明 |
示例 |
| issueNo |
String |
否 |
问题流水号 |
"Q20260320001" |
| issueType |
String |
否 |
问题类型 |
"diagnosis" |
| issueStatus |
String |
否 |
问题状态:pending/processed |
"pending" |
| startDate |
String |
否 |
开始日期 |
"2026-03-01" |
| endDate |
String |
否 |
结束日期 |
"2026-03-31" |
| deptCode |
String |
否 |
科室编码 |
"01" |
| doctorCode |
String |
否 |
医生编码 |
"D001" |
| page |
Number |
否 |
页码,默认1 |
1 |
| limit |
Number |
否 |
每页条数,默认20 |
20 |
出参
| 字段 |
类型 |
说明 |
| errorCode |
String |
错误码 |
| errorMessage |
String |
错误信息 |
| result.total |
Number |
总记录数 |
| result.rows |
Array |
问题列表 |
result.rows 每项字段
| 字段 |
类型 |
说明 |
| id |
Number |
问题ID |
| issueNo |
String |
问题流水号 |
| issueType |
String |
问题类型 |
| issueCategory |
String |
问题分类 |
| issueLevel |
String |
问题级别 |
| issueDesc |
String |
问题描述 |
| hisAdmID |
String |
HIS就诊号 |
| patientName |
String |
患者姓名 |
| deptCode |
String |
科室编码 |
| deptName |
String |
科室名称 |
| doctorCode |
String |
医生编码 |
| doctorName |
String |
医生姓名 |
| drgCode |
String |
DRG编码 |
| issueStatus |
String |
问题状态 |
| findDate |
String |
发现日期 |
请求示例
{
"code": "02010302",
"params": [{
"issueType": "diagnosis",
"issueStatus": "pending",
"startDate": "2026-03-01",
"endDate": "2026-03-31",
"page": 1,
"limit": 20
}]
}
响应示例
{
"errorCode": "0",
"errorMessage": "",
"result": {
"total": 45,
"rows": [
{
"id": 1,
"issueNo": "Q20260320001234",
"issueType": "diagnosis",
"issueCategory": "诊断编码",
"issueLevel": "high",
"issueDesc": "主诊断编码与手术编码不匹配",
"hisAdmID": "A20260301001",
"patientName": "张三",
"deptCode": "01",
"deptName": "心内科",
"doctorCode": "D001",
"doctorName": "李医生",
"drgCode": "FB13",
"issueStatus": "pending",
"findDate": "2026-03-20"
}
]
}
}
6.3 处理质控问题 (02010303)
接口Code: 02010303
接口名称: 处理质控问题
方法名: ProcessQCIssue
入参
| 字段 |
类型 |
必填 |
说明 |
示例 |
| issueId |
String |
是 |
质控问题ID |
"1" |
| processStatus |
String |
否 |
处理状态 |
"processed" |
| processRemark |
String |
否 |
处理备注 |
"已修正诊断编码" |
出参
| 字段 |
类型 |
说明 |
| errorCode |
String |
错误码 |
| errorMessage |
String |
错误信息 |
请求示例
{
"code": "02010303",
"params": [{
"issueId": "1",
"processStatus": "processed",
"processRemark": "已修正主诊断编码为K80.1"
}]
}
响应示例
{
"errorCode": "0",
"errorMessage": "处理成功",
"result": {}
}
6.4 质控统计报表 (02010304)
接口Code: 02010304
接口名称: 质控统计报表
方法名: QueryQCStats
入参
| 字段 |
类型 |
必填 |
说明 |
示例 |
| startDate |
String |
否 |
开始日期 |
"2026-03-01" |
| endDate |
String |
否 |
结束日期 |
"2026-03-31" |
| deptCode |
String |
否 |
科室编码 |
"01" |
出参
| 字段 |
类型 |
说明 |
| errorCode |
String |
错误码 |
| errorMessage |
String |
错误信息 |
| result.totalCount |
Number |
问题总数 |
| result.pendingCount |
Number |
待处理数 |
| result.processedCount |
Number |
已处理数 |
| result.typeStats |
Object |
按类型统计 |
| result.levelStats |
Object |
按级别统计 |
| result.deptStats |
Array |
按科室统计 |
请求示例
{
"code": "02010304",
"params": [{
"startDate": "2026-03-01",
"endDate": "2026-03-31"
}]
}
响应示例
{
"errorCode": "0",
"errorMessage": "",
"result": {
"totalCount": 156,
"pendingCount": 42,
"processedCount": 114,
"typeStats": {
"diagnosis": 68,
"fee": 45,
"days": 23,
"age": 20
},
"levelStats": {
"high": 35,
"medium": 78,
"low": 43
},
"deptStats": [
{ "deptCode": "01", "deptName": "心内科", "issueCount": 28 },
{ "deptCode": "02", "deptName": "骨科", "issueCount": 22 }
]
}
}