SQL Server 2000在医院收费审计的运用
我局在对某医院原院长进行任期经济责任审计时,利用SQL Server数据库技术对该院的医疗收费、药品收费等情况进行了辅助审计,查出该院在收费方面存在自立项目收费、分解项目收费、合并项目收费、收费项目不明确、收费标准超规定等问题,取得了较好的效果。现将运用SQL语言对该院住院部收费电子数据进行查询、统计的方法介绍如下,以期能为审计同行起到抛砖引玉之效。
一、审计医院的医疗收费项目,检查其是否符合文件规定
1. 运行“SQL查询分析器”
依次打开“开始—>程序—>Microsoft SQL server—>查询分析器”,弹出“连接到SQL Server”,如果您在安装时未设置密码,直接点击“确定”进入“SQL查询分析器”窗口,这时系统默认连接到“master”数据库,必须将此连接更改为连接到“XX医院医疗收费查证”数据库,才可以运行SQL查询语言来对“XX医院医疗收费查证”数据库进行查询等操作。方法是用鼠标点击“master”右方的下拉箭头,选择下方出现的“XX医院医疗收费查证”数据库并单击。当工具栏“更改数据库”窗口中显示的是“XX医院医疗收费查证”数据库后,说明更改成功。如图:
2. 查看从医院数据库中导入的那6张项目表,研究估测其各个字段的含义、字段之间以及项目表之间的逻辑关系,进而得出其收费项目是否符合规定的结论。
第一步,查看“SFLB(中立意思:收费列表)”项目表,在查询窗口中输入“select * from sflb”语句,然后按下键盘上的F5快捷键,或用鼠标点击工具栏上的绿小三角符号来运行这个查询语句。其运行结果如图:
这张表共29行,从表的内容看,应该为各个主要收费项目,其字段名中“BH”、“MC”等字段名的含义为“编号”、“名称”的可能性最大。
第二步,查看“SFXMBZB(中文含义:收费项目标准表)”项目表,在查询窗口中输入“select * from SFXMBZB”语句,然后按F5快捷键运行,其运行结果如图:
这张表共有2701行,22个字段,其部分字段名的含义可以猜出,如:BH(编号),MC(名称),PYJM(拼音简码),WBJM(五笔简码),DJ(单价),YYDJ(医院单价),DW(单位),SFLB(收费列表)等,有一些字段名我们猜不出其含义,也用不上,就不去管它。这时我们发现,这张项目表中的“SFLB”字段下的字段值与“SFLB” 项目表中的“BH”字段下的字段值一样,而“SFXMBZB” 项目表中再也不倒“SFLB” 项目表中的收费名称,这要求我们对这两张表进行关联。
第三步,用关键字段将两张表中的相关有用信息提取出来并组合成一张新的项目表,命名
为“XX医院电脑收费计价依据表”,为便于使用,在生成新表时将相关字段名改为易于理解的中文名称,并根据“SFLB” 项目表中“BH”字段的字段值按照从小到大的顺序来排序。在查询窗口中输入“SELECT SFXMBZB.BH AS 收费详细编号,SFXMBZB.MC AS 收费详细名称,DJ AS 单价,DW AS 单位, SFXMBZB.SFLB AS 所属项目编号,SFLB.MC AS 所属项目名称 INTO XX医院电脑收费计价依据表 FROM SFXMBZB INNER JOIN SFLB ON SFXMBZB.SFLB=SFLB.BH ORDER BY 所属项目编号 ASC”并运行,数十秒钟后,新项目表“XX医院电脑收费计价依据表”就生成了。如图:
第四步,在查询窗口中输入“SELECT * from XX医院电脑收费计价依据表”查看表的内容,如图:
再输入“SELECT * from XX医院电脑收费计价依据表 WHERE 所属项目名称='护理费'”语句并运行来查看护理费的计费依据,如图:
从这些表中可以看出,这所医院未执行《安徽省物价局、安徽省卫生厅关于改革我省医疗服务价格的通知》皖价费〔2003〕220号文件的规定,未按照《安徽省物价局、安徽省卫生厅关于改革我省医疗服务价格的通知》所列的项目编码、项目名称等实行医疗收费,而是违背文件规定自行编制收费项目编码和项目名称,此外还存在自立项目、分解项目、合并项目、收费标准超规定等行为。
二、分析、统计该院2004年度住院收费的违规详情
1. 查看“SFD_2” 项目表和“SJH” 项目表的内容,出其相互关系。
在查询窗口中输入“SELECT * FROM SFD_2”并运行,可以查看这张项目表。其结果如图:
该表有100.76万条记录,包含2004年5月1日至2005年12月8日的所有住院收费记录,表中共32列,其中对审计有用的字段有:ZYH(住院号,即住院病人编号),SFLB(收费列表,从字段值上可以看出是收费项目的编号),SFBZBH(收费标准编号,从字段值上可以看出是收费详细项目的编号),DW(单位),DJ(单价),SL(数量),SJFY(实际费用,即每次录入数据时实际收取的费用),RQ(日期,即收费日期),表中不到住院病人的名称、收费细目的名称。这就又要求我们必须将这张表与其它的表进行关联。当我们在查询窗口中“SELECT * FROM sjh”并运行后,可以看到这个名为“SJH”的项目表有56列,
其中的SJH(收据号),ZYH(住院号),sql server2000简介XM(姓名)等字段与“SFD_2”项目表的字段定义一致,可用于与“SFD_2”联接。
2. 通过创建中间表来获取该院2004年的医疗收费详细信息。
第一步,创建一个名为“住院部04年收费信息中间表”的项目表。
为便于以后的工作,我们需要将SFD2与SJH两张表中的有用信息提取出并生成一张新的项目表,并将表名定义为“住院部04年收费信息中间表”。在查询窗口中输入“SELECT SJH.SJH AS 收据号码,SJH.ZYH AS 住院号,XM AS 住院病人姓名,SFBZBH AS 收费细目编号,SFLB AS 所属项目编号,RQ AS 收费日期,DW AS 单位,DJ AS 单价,SL AS 数量,SJFY AS 收费金额 INTO 住院部04年收费信息中间表 FROM SFD_2 INNER JOIN SJH ON SFD_2.ZYH=SJH.ZYH WHERE YEAR(SFD_2.RQ)=2004” 并运行,如图:
数十秒钟后,系统从那100余万条记录中提取出2004年的收费记录共38.3万条,并根据关键字ZYH将住院病人的住院号与姓名,收费收据号码联接起来。
我们在查询窗口中输入“SELECT * FROM 住院部04年收费信息中间表 ORDER BY 收费日期 DESC”并运行,让这张表根据“收费日期”字段的时间顺序从后向前排列以便于查看,结果如图:
第二步,将这张中间表与“XX医院电脑收费计价依据表”进行联接,生成名为“XX医院住院部04年收费情况详细表”,并按收费详细编号的顺序从小到大排序。
在查询窗口中输入“SELECT 住院病人姓名,收费详细名称,所属项目名称,住院部04年收费信息中间表.单价,住院部04年收费信息中间表.单位,数量,收费金额,收费日期,收费详细编号,收据号码,住院号,住院部04年收费信息中间表.所属项目编号 INTO XX医院住院部04年收费情况详细表 FROM XX医院电脑收费计价依据表 INNER JOIN 住院部04年收费信息中间表 ON XX医院电脑收费计价依据表.收费详细编号=住院部04年收费信息中间表.收费细目编号 ORDER BY 收费详细编号 ASC”,如图:
在查询窗口中输入“SELECT * FROM XX医院住院部04年收费情况详细表”并运行,其医疗收费记录共22.25万条,从“住院部04年收费信息中间表”中过滤了16万余条,其原因我将在
后面说明。运行结果如图:
第三步,在“XX医院住院部04年收费情况详细表”查各种性质相同的收费项目收费的例数、单位及总金额,生成“审计XX医院04年住院收费情况表”,以获取其分项目收费情况。
在查询窗口中输入“SELECT 收费详细编号,收费详细名称 AS 收费名目,所属项目名称 AS 所属项目,单价,SUM(数量) AS 例数,SUM(收费金额) AS 收费总额 FROM XX医院住院部04年收费情况详细表 GROUP BY 收费详细编号,收费详细名称,所属项目名称,单价 ORDER BY 收费总额 DESC”并运行,这样电脑将根据收费明细项目分类,并按各类收费总额从大到小的顺序排列,分1436行显示各类收费的详细情况,如图:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论