当前位置:首页>python>使用SQL、Python两种方法批量处理不做为分组依据的手术操作实现医保结算清单、病案首页深的度质控

使用SQL、Python两种方法批量处理不做为分组依据的手术操作实现医保结算清单、病案首页深的度质控

  • 2026-08-25 21:52:29
使用SQL、Python两种方法批量处理不做为分组依据的手术操作实现医保结算清单、病案首页深的度质控

目前病案首页质控和医保基金结算清单质控要求越来越高,今天我使用SQL脚本和Python语句两种方法,为大家讲述如何批量处理“无需填报的手术操作”质控的技术路径。

一、依据来源

《医保基金结算清单编码填报规范》的要求,在临床诊疗过程中所发生那些具有普遍性、诊断性、无创性、属于诊疗规范标准中的必然选择或低技术含量特征的操作因不作为医保付费和DRG绩效排名分组依据,并不要求填报,如果填报可能则会导致入组错误,存在医保拨付不合理、DRG绩效排名异常的风险。

二、不要求填报手术操作内容的数据来源

当地医保局和卫健委通常会下发一份诸如“无需填报的手术操作编码”或“不做的手术操作编码”数据文件,如下图所示:

有了这个数据就为我们下一步批量处理掉这些编码提供了依据(中医操作编码暂时被列入进来了,中医特色病种库出台后有望剥离出去),具体流程见下:

三、批量处理流程:

SQL方法:

  • 链接到医院HIS系统数据库导出医保基金结算清单模块下的“手术操作信息”表或病案首页模块下的子表“手术操作信息”表(各医院的命名和表格结构可能不同),无论哪种方式都可以,下面以医保结算清单导出表为例进行演示,导出表字段名包括而不限于以下字段,数据格式参考下表:

  • 新建查询,代码如下:

SELECT [手术操作信息表].[住院医疗类型], [手术操作信息表].[险种类型], [手术操作信息表].[结算ID], [手术操作信息表].[病案号], [手术操作信息表].[入院时间], [手术操作信息表].[出院时间], [手术操作信息表].[出院科室名称], [手术操作信息表].[主诊医师姓名], [手术操作信息表].[人员姓名], [手术操作信息表].[性别], [手术操作信息表].[手术操作代码], [手术操作信息表].[手术操作名称], [手术操作信息表].[主手术操作标志], [手术操作信息表].[手术操作日期], [手术操作信息表].[术者医师姓名], [手术操作信息表].[麻醉医师姓名], [不做分组的手术操作表].[手术操作代码] AS [无需填报编码], [不做分组的手术操作表].[手术操作名称] AS [无需填报名称] FROM dbo.[不做分组的手术操作表]INNER JOIN dbo.[手术操作信息表] ON [不做分组的手术操作表].[手术操作代码] = [手术操作信息表].[手术操作代码] WHERE [手术操作信息表].[住院医疗类型] = '住院'
  • 运行查询得到查询结果:

Python方法(Mysql数据库为例):

import pandas as pdimport sqlalchemyfrom sqlalchemy import create_engine# 数据库连接配置(请根据实际情况修改)db_config = {    'host': 'your_host',    'port': 'your_port',    'user': 'your_username',    'password': 'your_password',    'database': 'your_database'}# 创建数据库连接engine = create_engine(f"mysql+pymysql://{db_config['user']}:{db_config['password']}@{db_config['host']}:{db_config['port']}/{db_config['database']}")# 从数据库读取数据surgery_df = pd.read_sql("SELECT * FROM 手术操作", engine)exempt_df = pd.read_sql("SELECT * FROM 无需填报的手术操作", engine)# 1. 在[手术操作]表中新建一个"无需填报编码"字段surgery_df['无需填报编码'] = None# 2. 创建无需填报编码的集合以便快速查找exempt_codes = set(exempt_df['手术操作编码'])# 3. 遍历并更新无需填报编码字段for index, row in surgery_df.iterrows():    if row['手术操作编码'] in exempt_codes:        # 如果存在相同值,将其更新到新建字段        surgery_df.at[index, '无需填报编码'] = row['手术操作编码']    else:        # 如果没有相同值,将"合规编码"更新到新建字段        surgery_df.at[index, '无需填报编码'] = '合规编码'# 4. 将在[手术操作]表重新输出为Excel格式的[手术操作]表格surgery_df.to_excel('手术操作_更新后.xlsx', index=False)print("处理完成,结果已保存到 '手术操作_更新后.xlsx'")

如果数据量很大,可以考虑使用更高效的向量化操作代替循环,代码如下:

# 使用向量化操作替代循环(更高效)surgery_df['无需填报编码'] = surgery_df['手术操作编码'].apply(    lambda x: x if x in exempt_codes else '合规编码')

四、将导出到Excel,以科室为分组依据进行透视分析:

总结:

通过这种批量处理的方法,我们可以高效率完成病案首页和医保结算清单的深度质控工作,有效提高医保支付的入组率和DRG绩效的正确排名,文中脚本属于基本模型,可随当地政策可进行适当优化。数据量不大的医院也可以使用Excel中的VLOOKUP函数进行处理,筛选后得到相同的结果,这里不再展示。

往期精华回顾:
医保结算清单和病案首页深度质控:批量处理不作为分组依据的手术操作
新型医保违规“高编高套”的判定、危害、医保稽查与医院内控技术
优化其他诊断填报与质控  提高医保拨付权重
医保按病种付费技术规范3.0版更新要点先知道
低标入院的医院内部控制技术(初级版本)
DIP医保支付中低倍率病例的成因与规避思路
分解入院的界定&医院内控措施与技术

满意作者请点赞、转发+关注,持续交流干货内容

▼

最新文章

随机文章