Sql语句在新农合审计中的应用
卢浩(江苏省徐州市审计局)
【发布时间:2011年04月15日】
字号:【大】 【中】 【小】
    在新型农村合作医疗审计调查中,面对多达数G的后台数据,传统审计手段力不从心,使用sql语句进行计算机审计势在必行。审计组分析了新农合运行过程中的资金流动、业务流程,结合近年审计实践中反映出来的新农合管理薄弱环节,总结了计算机审计在新农合审计调查中的几个重要应用场景。
    1使用自连接清除门诊、住院记录中退费记录
    新农合参合人员在医疗机构门诊、住院时,不可避免会出现退费的情况,一般情况下,信息系统不会删除不需要的记录,而是生成一条退费记录,退费记录与原纪录的医保编号、就诊号相同,不过金额为负值、单据号一般也是负值,根据这一特征我们可以使用自连接编写sql语句来消除退费记录。
    delete  from门诊补偿 where id in(
    select a.id from 门诊补偿 a inner join 门诊补偿 b
    on (a. 医保编号=b. 医保编号and a.就诊号=b.就诊号 and a.单据号+b.单据号=0))
    有时候单据号不是数值类型而是字符类型,连接条件要根据数据类型作相应修改。将退费记录与对应的交费记录删除之后,2010年度数据中可能还存在单据号<0的记录,对应的是2009年的缴费记录,为了不影响对2010年度的审计,这些记录也应该删除掉
    delete from 门诊补偿 where 单据号<0
    同样的,对住院补偿记录也需要作上述的处理,这是我们对基金支出进行审计的基础。
    2使用左连接查找过期的医疗证报销门诊、住院费用的记录
    新农合基金的缴费采取每年集中一次缴纳全年的费用,享受一年的补偿待遇的方式,因此当年享受新农合基金补偿的人员是指那些当年缴纳基金的参保人员,那么是否存在当年没有参合人员也享受的补偿待遇呢?审计分析流程如下:(1)提取当年的参合人员信息;(2)使用左连接,门诊补偿 left join 参合人员表,将当年享受补偿待遇(包括门诊补偿、住院补偿)的人员信息与当年参合的人员进行比较;(3)对筛选出的当年没有参合但是享受补偿(门诊、住院)待遇的人员进行具体分析,查找原因。
    select c.id,医保编号,姓名,身份证号,性别,年龄,c.memberid,医疗机构级别, 医院名称,单据号,就诊号,补偿时间, 总费用,可报费用, 基金补偿
    from 门诊补偿 c left join 参合人员表 m on m.id=c.memberid
    where 医保编号 is null
    3 使用case when语句对住院补偿情况进行审计
    按照新农合补偿方案,对各级医疗机构的住院补偿作了明确的规定,如对市级医疗机构住院补偿的进行了规定,正常转诊分段补偿,以可补偿药品诊疗费用扣除600元起付线后,再分段、分比例,可补偿费用小于10000元时,可补偿费用*0.4;可补偿费用大于10000元,小于50000元这一段,比例为50%;大于50000元,这一段为60%。针对市级医疗机构的住院补偿,我们使用case when语句进行了重新计算,并与系统结果进行了核对,发现存在多计或者少计新农合补偿的情况。
    select *,case when (可报费用-600)<10000 then (可报费用-600)*0.4 else
     case when (可报费用-600)<50000 then 10000*0.4+(可报费用-600-10000)*0.5 else 10000*0.4+40000*0.5+(可报费用-600-50000)*0.6 end end 可补偿金额
    from  住院补偿 where [补偿类型]=4
    4 结合外部数据(居民医保、职工医保)对重复参保、重复享受待遇情况进行审计
    审计人员在审计调查中发现,存在新农合、居民医保或者新农合、职工医保的重复参合参保情况,重复参合人员以在城镇学校读书的中小学生为主,存在一次住院在两种医疗保险重复报销、报销总金额大于治疗费用、看病反能赚钱的情况。下面以新农合、居民医保重复参保情况审计为例说明分析过程。
    首先,以身份证号、姓名为条件检索参合参保人员中的重复记录,生成新表新农合居民医保重复。
    select distinct b.身份证号 ,b.姓名
    into 新农合居民医保重复
    from参合人员表a inner join 城镇居民 b
    on a.身份证号=b.身份证号 and a.姓名=b.姓名
    下面分别在新农合门诊、住院记录中,检索重复参保人员的新农合补偿记录。
    select a.*
    from 门诊补偿 a inner join 新农合居民医保重复 b
    on a.身份证号=b.身份证号 and a.姓名=b.姓名
    select a.* into 新农合居民医保重复住院记录
    from 住院补偿 a inner join 新农合居民医保重复 b
    on a.身份证号=b.身份证号 and a.姓名=b.姓名
    在居民医保处取得居民医保参保人员的门诊、住院记录,查询以上重复参保人员在居民医保中的补偿记录。
    select a.*
    from 门诊费用明细 a inner join 新农合居民医保重复 b
    on a.身份证=b.身份证号 and a.姓名=b.姓名
    select a.* into 居民医保重复住院记录
    from 住院明细 a inner join 新农合居民医保重复 b
    on a.身份证=b.身份证号 and a.姓名=b.姓名
    对以上查询结果中的统筹基金支出作合计,可以取得基金对重复参保人员的统筹补助总金额。
    最后,使用sql语句检查是否存在同一次住院在新农合、居民医保重复报销的记录,检查其报销总金额是否大于住院总费用。我们以身份证号、姓名、住院总费用为关联条件对两表进行内连接。
    select * from 新农合居民医保重复住院记录 a inner join 居民医保重复住院记录 b
    on a.身份证号=b.身份证 and a.姓名=b.姓名
    where a.总费用=b.总费用
    我们要对结果进行核对,比较两边记录的入院时间、出院时间、住院诊断情况,确定重复报销的疑点,然后分别去合管办、医保中心取得报销的原始记录,进行核实。(卢浩)
    
【关闭】    【打印】