张合明
摘 要:医保三大目录的编码匹配工作繁琐,人工匹配效率低、差错率高。本文探讨利用查询语言实现EXCEL数据自动导入、智能匹配,减少维护人员工作量,提高匹配效率。
关键词:三大目录;结构化查询语言;自动匹配
一、 前言
随着医院即时联网单位的增加,医院与各地医保经办部门数据对应的任务越来越重,維护工作量越来越大,尤其是三大目录的对应直接关系到病人的报销比例,时效性、准确性要求特别强。三大目录是指药品目录、诊疗项目和服务设施目录、医用材料目录,总条目数超过15000条。以往都是医院医保目录维护人员逐条人工对应,如何利用计算机工具提高维护效率显得日益迫切。
二、 系统运行环境
选择微软关系型数据库SQLServer 2000作为系统开发环境,SQL查询语言作为实现工具。相对于最新的SQL Server 2016,其软硬件环境要求不高、部署简单、完美支持结构化查询语言TransactSQL。
三、 原始数据整理
医保经办部门提供的原始数据多为EXCEL格式,导入到SQLServer数据库之前要进行如下处理:
(1)删除表头、表格中的各级分类行、备注信息和非核心列以及其他无关数据。
(2)为每一列增加英文名称。
(3)整理表格中不合理内容。Excel表格数据要导入数据库进行处理,必须统一每列数据的类型。例如经办部门提供的诊疗项目和服务设施目录“单价”列中除了数字价格以外还出来现了诸如:医疗机构自主定价、免收、待定、未定和空白等非标准数据,都需要结合项目含义及对应要求进行数值替换,并附加替换说明备查表。
(4)数字、文本混合列数据的字符化处理。诊疗项目和服务设施目录“编码”列中出现了“110200001、1102000011、110200002、110200002a、110200002b、110200002c、110200002d”,前三个数据导入没问题,后四个数据在SQL Server数据库中显示为空值。数据库默认将“编码”列识别为float型,因为其新建表对应字段就是float类型的。SQL认为包含字母的那些编码无法转换成数字,是无效的数据,从而采用NULL来代替。
检索相关文献得知,在导入Excel混合数据列时,由于数据类型不唯一,导致SQL无法确定数据类型,在EXCEL中将单元格设为文本格式也不行。处理办法就是在该列所有值前加单引号强制确定为字符型。为避免在万余个数据前依次添加单引号,可以利用单引号与该列数据相“与”的方法一次性添加(&编码),其中“&”是与运算符。
四、 编写TransactSQL处理语句
(一) 创建相关表
/*收费项目表*/
CREATE TABLE zd_charge_item_match(code CHAR (6), name VARCHAR (60), extend_code VARCHAR (20), charge_unit VARCHAR (12), charge_price FLOAT, deleted_flag VARCHAR (1), p_value VARCHAR (20))
/*属性编码表*/
CREATE TABLE zd_charge_item_att(charge_code CHAR (6), property int, p_value VARCHAR (100))
/*材料表*/
CREATE TABLE cailiao(p_value VARCHAR (20), name VARCHAR (80), charge_unit VARCHAR (12), charge_price FLOAT, charge_class VARCHAR (20), comment VARCHAR (80))
/*诊疗表*/
CREATE TABLE zhenliao(p_value VARCHAR (20), name VARCHAR (200), description1 VARCHAR (400), exception VARCHAR (200), charge_unit VARCHAR (100), charge_price FLOAT, charge_price_2 FLOAT, charge_price_1 FLOAT, charge_price_gz_3 FLOAT, description2 VARCHAR (400), charge_class VARCHAR (20), comment VARCHAR (200))
(二) 导入相关数据
/*取医院收费项目字典*/
delete from zd_charge_item_match
select * into #zd_charge_item_match1 from
OpenRowSet(microsoft.jet.oledb.4.0,Excel 8.0;HDR=yes;database=d:\\match\\zd_charge_item.xls;,select * from[sheet1$])
delete from #zd_charge_item_match1 where code is null
insert into zd_charge_item_match select * from #zd_charge_item_match1
drop table #zd_charge_item_match1
/*取医保经办部门材料字典*/endprint
delete from cailiao
select * into #cailiao1 from OpenRowSet(microsoft.jet.oledb.4.0,Excel 8.0;HDR=yes;database=d:\\match\\cailiao.xls;,select* from[sheet1$])
insert into cailiao select * from #cailiao1
drop table #cailiao1
/*取医保经办部门诊疗字典*/
delete from zhenliao
select * into #zhenliao1 from
OpenRowSet(microsoft.jet.oledb.4.0,Excel 8.0;HDR=yes;database=d:\\match\\zhenliao.xls;,select * from[sheet1$])
delete from #zhenliao1 where p_value is null
insert into zhenliao select * from #zhenliao1
drop table #zhenliao1
(三) 自动匹配编码
/*按照项目名称匹配医保经办单位诊疗编码*/
update zd_charge_item_match
set zd_charge_item_match.p_value=zhenliao.p_value
from zd_charge_item_match
inner join zhenliao on (zd_charge_item_match.name=zhenliao.name)
/*按照項目名称匹配经办部门材料编码,忽略单价,经办部门为主*/
update zd_charge_item_match
set zd_charge_item_match.p_value=cailiao.p_value
from zd_charge_item_match
inner join cailiao on (zd_charge_item_match.name like %+ltrim(rtrim(cailiao.name))+%)
/*按照项目名称匹配经办部门材料编码,忽略单价,医院为主*/
update zd_charge_item_match
set zd_charge_item_match.p_value=cailiao.p_value
from zd_charge_item_match
inner join cailiao on (cailiao.name like %+ltrim(rtrim(zd_charge_item_match.name))+%)
五、 结论
医保三大项目对应是医院医保管理工作的重要内容,在目前全省尚未建立统一标准目录的情况下,医院要与各地市联网结报,就必须分别与各地市的医保经办部门的三大目录分别建立对应关系。在实际工作中,利用作者设计的SQL查询处理语句,实现了医保经办部门的EXCEL医保目录数据自动提取、自动与医院项目匹配编码。全院诊疗及医用材料项目一共有9438条,其中7203条实现了自动匹配,工作人员仅需要对自动匹配完成的数据进行审核校验、对未匹配的数据进行人工匹配。自动匹配程序的使用极大减轻了医院医保工作人员和物价管理人员数据匹配负担,提高了工作效率。
参考文献:
[1]郑红梅.刍议信息化系统在医疗保险中的作用[J].经济师,2010,(09):245.
[2]庄青.医疗保险事业中的信息化建设[J].科技信息,2010,(26):235,237.
[3]荣惠英.信息技术在医院医保管理中的应用[J].医学信息(上旬刊),2010,(11):3946-3947.
[4]高敬.医疗保险信息化过程中存在问题及建议[J].山东人力资源和社会保障,2010,(12):14-15.
[5]孙玉芬.谈医疗保险的信息化管理[J].中国新技术新产品,2012,(03):212.endprint