强力推进 积极探索 努力提升计算机审计实施水平 AO案例和审计方法撰写介绍 曹红珍
前 言 目前我局多数同志对AO已基本了解,可以利用AO进行一些简单的SQL语句查询及排序分类工作,但是利用AO做一个完整的审计项目和写一篇审计方法确感到力不从心,不能很好的做到会计、审计与计算机的结合,撰写的审计案例与审计方法过于简单。
讲 解 内 容 一、审计方法与审计案例的 区别。1、区别;2、案例要求 二、计算机审计实施过程。 三、医保基金专项审计计算机实施情况。 讲 解 内 容 一、审计方法与审计案例的 区别。1、区别;2、案例要求 二、计算机审计实施过程。 三、医保基金专项审计计算机实施情况。 四、医保基金专项计算机审计的主要特点。 五、医保基金计算机审计的创新点。
一、审计案例和审计方法区别: 1、审计方法是审计案例的一个点。 由于目前我局多数同志没有结触到业务与财务结合审计的单位,因此对于多数审计人员来说审计案例和审计方法是两张皮,其实不是,业务与财务数据均具备的情况下,通过业务数据来核实财务数据的真实性,业务数据的整理需用审计方法,因此审计案例包含审计方法。在市局举办的多次AO案例培训时,审计署明确要求市级以上报送的案例必须包含业务数据,不能报送仅有财务数据的审计案例,市级以下单位在撰写审计案例时便会包含审计方法,来增加审计案例获奖筹码。
一、审计案例和审计方法区别: 2、报送审计方法的要求: 我们审计人员所撰写的审计方法必须依据审计署发布的审计实务公告(1)方法构建符合《计算机审计方法体系基本规划—计算机审计实务公告第14号》的要求。(2) 方法要素中关于流程图和方法语言的撰写应符合《计算机审计方法流程图编制规范—计算机审计实务公告第12号》和《计算机审计方法语言编制规范—计算机审计实务公告第13号》等的要求。 方法要素: 一、代码分类 二、方法名称 三、目标功能 四、所需数据 五、分析步骤 1.ER模型构建 2.数据模型构建 3.分析步骤 六、流程图 七、方法语言 八、适用法规 九、审计建议 十、作者单位 十一、日期
一、审计案例和审计方法区别: 3、报送审计案例的要求: 针对每一个问题的描述 1、审计事项 2、审计思路 3、审计步骤 4、审计结论 每年报送审计案例时市局均会发给我们当年报送案例的标准,报送的要素,今年审计署已下发了2012年案例标准,因此同志们要严格按标准来包装自己撰写的案例,任何案例的关键点均为所用的电子数据、SQL语句、ASL语言,必须能够在AO中运行,如果不运行报省便会被淘汰。 案例基本要素: 一、实例概述 (一)审计项目名称 (二)审计所属行业 (三)项目实施时间 (四)项目背景介绍 (五)审计事项 (六)项目审查数据量 (七)项目的最终成果 二、项目具体实施过程 (一)AO应用介绍 (二)项目取得成果 三、说明 针对每一个问题的描述 1、审计事项 2、审计思路 3、审计步骤 4、审计结论
备注: 审计方法、案例的评比如我们每年优秀审计项目的评比,我们在没有加分的情况下,尽力按要求撰写审计方法、案例,审计方法、案例的十几项要素必须具备,评委团的多位老师均提到,内容缺项的评委一定会减分,我们确保基本要素不减分的情况下才有可能获奖,大家很清楚我们县级所涉及的数据基本没有加分的因素。
AO应用实例评选标准 1.优秀等级(8.5分以上) 2.应用等级(7.5—8.5分 ) 提交资料方面:实例正文Word文档要素相符、内容齐全,提交正确的项目档案数据包 ,数据包文档资料齐全全(至少包括通知书、方案、底稿、报告等审计资料)且审计底稿均在AO中记录。 AO功能使用方面:充分、、熟练、合理地使用AO多种功能且取得实际效果 。 审计实施过程:实例描述思路清晰,业务处理恰当,项目信息、数据可验证,审计分析过程合理,借鉴意义大,成果突出。 优秀案例: 2.应用等级(7.5—8.5分 ) 提交资料方面:实例正文Word文档要素相符、内容齐全,提交正确的项目档案数据包 ,数据包文档资料齐全全(至少包括通知书、方案、底稿、报告等审计资料)且底稿均在AO中记录。 AO功能使用方面:使用AO基本功能且合理、取得实际效果 。 舍弃满足需求的AO已有功能,通篇使用SQL语句分析又未形成ASL方法的(使用不够合理)。 审计实施过程:实例描述基本清晰,业务处理恰当,项目数据可以完全验证得到正确结果,审计分析过程合理,借鉴意义一般,取得一定的成果但不够突出。 应用案例1 应用案例2
AO应用实例评选标准 3.鼓励等级(6—7.5分 ) 4.不参评(6分以下) 提交资料方面:实例正文Word文档要素相符、内容齐全,提交正确的项目档案数据包 ,数据包文档资料齐全全(至少包括通知书、方案、底稿、报告等审计资料)且日记、底稿均在AO中记录。 AO功能使用方面:简单使用AO功能,或没有正确理解AO功能、使用存在不合理 。 审计实施过程:实例描述思路欠清晰,仔细琢磨能理解,业务处理恰当,项目数据可以完全验证得到正确结果,审计分析过程合理但推广借鉴意义小,取得成果也不突出。 4.不参评(6分以下) 提交资料方面:资料提交不全,未提供验证数据(AO格式),未提供成果性证明,审计底稿、审计证据、正式审计报告(含征求意见稿)或审计决定等均无,未提供数据包或数据包中基本没有审计资料。 审计实施过程:实例描述思路不清晰,理解费解,或业务处理欠恰当,或项目数据无法完全验证得到正确结果,或审计分析过程过于简单 。
说明: 目前没有具体的审计方法的评分标准,因为审计方法仅2009年和2011年征集过,2011年9月我们上报的审计方法还没有评选结果,而11月上报的审计案例在2月底便有了结果,审计方法的撰写还是处于起步阶段。 审计方法关键是新,如果我们上报的审计方法与以往经验库中的审计经验是重复的,审计方法便不参评的。因此我们在撰写审计方法时要有自己的思路,不要采用别人已提出的想法。
撰写AO应用实例的关键点 1、资料齐备是基本—必备条件:项目资料要完整,规范(按相关文件的要求进行组织) 2、思路清晰是关键—关注核心 (1)完整 完整的项目档案数据包(数据包的内容应至少有通知书、方案、采集的数据、底稿、报告等审计资料,审计底稿应有相应的审计证据支撑) 印证使用AO创新点或最终取得成果的相关数据包。 正式的审计报告、审计决定等成果证明性资料。 (2)规范 各项电子资料的格式要规范(审计信息,人员信息和数据格式合适) 证据、底稿均在AO中记录 2、思路清晰是关键—关注核心
3、恰当应用是重点—应用水平AO应用介绍部分—覆盖应用AO进行作业交互的全过程,项目取得成果部分—尽可能多的应用各种审计分析工具 项目管理 采集转换 审计分析:帐表分析、数据分析、图表分析、常用审计分析工具等审计底稿 撰写AO应用实例的关键点
日常审计工作中的注意事项 计算机审计项目是打造AO应用实例的基石,因此在平时的审计工作中就应该注意资料的收集,整理,为撰写AO应用实例积累素材,切忌临时应付。 一、做好前期准备,落实好项目和人员 在年初项目计划时最好确定好要报送AO实例的项目。 人员构成建议: 审计业务人员:负责掌握审计思路描述的清晰,业务处理的合理性和准确性,业务资料的收集整理。 计算机技术人员:负责掌握计算机技术方法合理性和准确性,保证数据的可执行。 文字组织人员:负责提炼总结审计成果和创新点的文字语言。
日常审计工作中的注意事项 二、审计实施阶段 审计组根据审前调查,了解的单位业务流程和数据结构 ,确定审计思路。 审计组根据审前调查,了解的单位业务流程和数据结构 ,确定审计思路。 好的审计思路是优秀的审计项目的根本! 1、每天做好工作记录 2、对编写的SQL语句进行存储并进行注释 3、要求撰写人员在日常审计时就要按AO实例评选的标准积累材料,项目资料在AO中进行规范整理,减少后续资料整理的麻烦。如数据、标准格式底稿、分析数据表等,特别是电子数据,不管项目中用没用到都要完整保存,为后期的整理包装打好基础。
日常审计工作中的注意事项 三、审计终结阶段 及时总结宣传,重视成果的包装。 突出审计成果: 社会影响大,有市领导批示。 有重大违规违纪问题,并有移送案件。 审计的问题金额较大。 有相关信息在市级宣传媒体、报纸发布。
目前我局报送审计方法及案例现状: 目前我局计算机、财务人员可以说不算少,但是在撰写审计方法及审计案例时没有很好的结合,懂计算机的不是很懂财务数据,而懂财务的对计算机不是很精通,另外没有很好的文字根基,导致审计案例及审计方法的获奖降低。 我局在撰写审计案例时需要:具有审计业务经验的人员,计算机技术人员和精通文字组织的人员组成。
二计算机审计实施过程 (一)采集数据—--获取准确、完整的电子数据是计算机审计的前提 (二)转换数据----正确定义表与字段的经济含义及相互关系,并将数据转换成审计需要的形式是计算机审计的基础 (三)整理数据----检查并提高数据质量是计算机审计能够准确得到审计结果的保障 (四)分析数据----对审计数据的分析与处理寻找疑点是计算机审计的主要任务 二计算机审计实施过程
二计算机审计实施过程 审前调查 计算机审计 实施过程 编写案例 数据采集 数据分析 数据转换 数据整理
1审计调查 采取业务需求与数据需求的来回磋商机制。 由计算机审计人员根据审计方案,提出计算机审计业务需求,然后结合对信息系统的了解将业务需求转换为计算机数据需求。
调查内容 一 二 三 四 组织机构调查 计算机信息系统 总体情况调查 系统数据调查 提出数据需求 1、管理体制 2、分支机构 3、具体职能划分 4、部门使用的计算机信息系统 调查内容 1、硬件设备 2、软件系统 3、财务、业务系统技术文档 4、财务、业务系统功能模块 计算机信息系统 总体情况调查 二 1、详细数据需求,数据库名表名字段名 2、系统设计说明书 3、业务处理流程 4、必要的应用系统数据接口 系统数据调查 三 1、明确采集数据的应用系统 2、数据内容和范围(财务和业务) 3、数据采集的方式(数据离线、现场接入) 4、采集的数据库格式 5、交付时间 6、准备计算机审计工作区 提出数据需求 四
调查结果 一、组织机构: 1、县医保办负责我县医疗保险基金的征缴、存入财政专户,支出审批,从财政专户列支,列支的主要渠道为各医院。 2、县财政局社保科负责医保基金财政专户的收支 3、医院根据医保人员的报销费用向医保办支取资金。 二、计算机信息: 1、县医保办财务数据,用友安易GRP-R9 V9.7; 2、县财政局社保科,用友通财务软件; 3县医保办业务数据ORCAL数据库; 4县社保处业务数据EXCEL表; 5××××业务数据SQL SERVER数据库;6、中医院ACCESS数据库。 调查结果
分析数据 征缴 管理 发放 延伸 对审计数据的分析与处理寻找疑点是计算机审计的主要任务 核对业务、财务收入数,审计有无隐瞒或虚报收入 情况;核查不按规定征缴情形,如私自降低征缴比 例、征缴基数等。 征缴 核查电子数据的一致性、完整性,一些系统控制点 是否有漏洞、是否与基金政策相符;从系统审计的 角度出发,判断有无恶意修改业务程序的可能。 管理 核对业务、财务支出数,审计有无虚做支出等违规 情况;核查基金发放的正确性,待遇享受人员是否 具备领取资格等. 发放 根据业务发放数据,延伸医院,核实医院和享受 人员是否存在骗取医保基金的问题 延伸
编 写 案 例 编写种类 计算机审计方法 一 AO应用实例 二
三、医保基金计算机审计 医保制度就是参保人生病或受到意外伤害,由国家或社会提供医疗服务或经济补偿的一种社会保障制度。我国实行社会统筹与人个账户相结合的基本医疗保险制度。 医保基金具有资金量大、环节多、管理的重复性和时效性强的特点,需要依赖计算机系统进行管理,其信息化程度非常高,传统审计技术方法已不能满足审计工作需要,必须进行计算机审计。 下面,重点结合2011年度五项社保基金审计中的医保基金审计实践,讲解医保基金计算机审计实务。
1、审计人员首先从县医保办财务数据入手,先摸清医保基金的基本情况,然后通过县财政局社保科财务数据查看县医保办财政专户核算的医保金基金金额的真实性,最后利用AO自带的功能采用一些审计手段查看县医保办账务处理的正确性。 2、根据县医保办和县社保处提供的业务数据查找欠缴医保基金金额及并确定延伸单位是××××。 3、根据××××提供的数据,查找享受医保报销人员利用“空挂床位”骗取医保基金的情况。 本次计算机审计主要针对以下三个方面展开
流 程 图 1、医保基金的基本情况
流 程 图 2、
流 程 图 3、业务数据与财务数据核对审计,查找审计疑点及确定延伸单位
业务数据 1、基金征缴/欠缴保险费 (1)缴费基数审计 (3)人员缴费次数审计。 主要围绕以下三方面展开审计 审计思路:我们根据审计调查了解知2010年度城镇职工基本医疗保险的的最低缴费基数是1,317元,上不封顶, 因此我们在AO中查找缴费基数小于1,317元的人员,统计欠缴金额。 (2)缴纳养老保险基金而未缴纳城镇职工基本医疗保险基金情况审计 审计思路:我们利用单位缴纳养老保险数据库来查找不符合法定条件不缴纳城镇职工基本医疗保险基金的的参保人即仅缴纳养老保险而未缴纳医疗保险基金的单位和个人。 (3)人员缴费次数审计。 审计思路:欠缴城镇职工基本医疗保险基金还存在2010年度个人缴纳医保基金不全即缴费次数小于12次这种情况,审计人员根据医保基金最低缴费基数1-3月份为1317元和4-12月为1495元的规定,分两种情况对个人医保缴费明细表进行数据筛选即个人缴费次数小于等于3次和个人缴费次数大于3次而小于12次。
(1)缴费基数审计 ①审计步骤: 步骤一:查找缴费基数小于1317元的人员。 通过SQL语句查找缴费基数小于1317元的人员,经调查了解知个人医保缴费明细表中个人缴总额中小于0元的为退休人员,个人缴总额为-6元的为扣划的大额救助金,因此需要设定条件剔除退休人员和划转的大额救助金的缴费基数。
(1)缴费基数审计 步骤二:分析查询结果。 步骤三:根据查询结果计算欠缴金额。 审计结论:缴费基数小于1317元的欠缴金额×××万元。 查找结果显示有12454条记录因此对记录进行分析查看并向县医保办业务人员调查了解。多数缴费基数为负数的为月初制定的计划,但由于一些客观原因更改该人的信息,便以负数进行冲转,再以正数对该人进行医保基金的征缴。 步骤三:根据查询结果计算欠缴金额。 查找结果显示有1419条记录缴费基数不符合法定条件,利用SQL语句计算欠缴金额。 审计结论:缴费基数小于1317元的欠缴金额×××万元。
(1)缴费基数审计 编制缴费基数小于1317元欠缴金额审计方法。 Var a,b,c,d,total; //定义变量 Begin //创建缴费基数不符合条件表 createtemptable('缴费基数小于1317人员信息表 ','Select * From [个人医保缴费明细] WHERE JFJS < 1317 AND GRJZE>0'); //查询结果集是否为空 a:=createq('Select * From 缴费基数小于1317人员信息表 ',-1); b:=qeof(a); while b<>1 do begin //循环将查询结果放入业务疑点临时库 addtransrslt(a,'缴费基数不符合条件'); b:=qmov(a,1); end; //将临时库结果集放入疑点库
(1)缴费基数审计 TransBatch(a,'缴费基数不符合条件'); total:=recordnum(a); if total=0 then //缴费基数表记录为0,显示缴费基数符合条件 showmsg('缴费基数符合条件'); createtemptable('缴费基数小于1317元的欠缴金额','Select sum((1317-JFJS)*0.08) as 缴费基数小于1317元的欠缴金额 From 缴费基数小于1317人员信息表'); a:=createq('Select * From 缴费基数小于1317元的欠缴金额',-1); b:=qeof(a); if b<>1 then begin c:=qfdvalue(a,'缴费基数小于1317元的欠缴金额'); end; write('缴费基数小于1317元的欠缴金额:',c); end.
(2)缴纳养老保险基金而未缴纳城镇职工基本医疗保险基金情况审计 ①审计流程图 :
(2)缴纳养老保险基金而未缴纳城镇职工基本医疗保险基金情况审计 ② 审计步骤: 步骤一:查找仅缴纳养老保险而未缴纳城镇职工基本医疗保险的单位。 根据县医保办提供的业务数据和县社保处提供的单位医保缴费明细表与单位实际缴纳养老保险明细表两张表格,依据“单位名称”字段进行相连,并把两项基金均缴纳的单位进行剔除,查找出仅缴纳养老保险而未缴纳城镇职工基本医疗保险的单位。 步骤二:根据单位查找出未缴纳医保基金的人员。 根据步骤一查找的仅缴纳养老保险而未缴纳医疗保险单位,通过“单位编号”字段与人员信息明细表进行相连,查找在职职工仅缴纳养老保险而未缴纳医疗保险基金人员信息表。(根据调查了解字段职工类别“A”表示在职人员,退休人员不再缴纳医保基金) 步骤三:查找欠缴人员。 根据步骤二整理好的缴纳养老保险基金而未缴纳医保基金人员信息表,依据 “个人编号”字段的唯一性,查找欠缴人员。
(2)缴纳养老保险基金而未缴纳城镇职工基本医疗保险基金情况审计 步骤四:核实欠缴人员数据的真实性。 把步骤三生成的欠缴人员总数表,利用“个人编号”字段与个人医保缴费明细表相连,进一步验证欠缴人员,核实欠缴人员的真实性,生成欠缴人员明细表。 步骤五:计算欠缴人员总数。 根据步骤四查找出的欠缴人员表记录,通过SQL语句计算欠缴人员数。 步骤六:计算欠缴金额。 通过以上五步共查询出3627人,单位为其缴纳了养老保险而未为其缴纳医保基金。根据最低缴费基数1-3月为1,317元,4-12月为1,495元的规定,汇总计算欠缴城镇职工基本医疗保险基金金额。 审计结论:缴纳养老保险而未缴纳城镇职工基本医疗保险基金形成欠缴城镇职工基本医疗保险基金×××万元。
(2)缴纳养老保险基金而未缴纳城镇职工基本医疗保险基金情况审计 编制缴纳养老保险基金而未缴纳医保基金的欠缴医保基金的审计方法。 var currentQuery,IsEmpty,Sum; begin // CreateTempTable ('养老数据与医保数据相连',' Select [实缴养老保险数据].DWBH ,[实缴养老保险数据].DWMC,[实缴养老保险数据].JFNY,[实缴养老保险数据].DWJFE,[实缴养老保险数据].GRJFE,[单位医保缴费明细].DWBH as 缴纳医保基金单位编号,[单位医保缴费明细].DWMC as 缴纳医保基金单位名称,[单位医保缴费明细].JFNY as 医保基金缴费年月 From [实缴养老保险数据] left Join [单位医保缴费明细] On [实缴养老保险数据].DWMC=[单位医保缴费明细].DWMC'); executeupdate('delete from [养老数据与医保数据相连] where 缴纳医保基金单位编号 is not null'); createtemptable ('缴纳养老而未缴纳医保人员信息表',' Select [人员信息表].单位编号,[人员信息表].单位名称,[人员信息表].个人编号,[人员信息表].姓名,[人员信息表].职工类别,[养老数据与医保数据相连].DWBH,[养老数据与医保数据相连].DWMC,[养老数据与医保数据相连].JFNY From [人员信息表] left Join [养老数据与医保数据相连] On [人员信息表].单位编号=[养老数据与医保数据相连].DWBH'); executeupdate('delete from [缴纳养老而未缴纳医保人员信息表] WHERE 职工类别 not LIKE "%A%" or DWBH is null');
(2)缴纳养老保险基金而未缴纳城镇职工基本医疗保险基金情况审计 createtemptable ('人员总数 ',' Select DISTINCT 个人编号 From [缴纳养老而未缴纳医保人员信息表] GROUP BY 个人编号 '); createtemptable ('欠缴人员表',' Select [人员总数].个人编号,[个人医保缴费明细].* From [人员总数] left join [个人医保缴费明细] on [人员总数].个人编号 =[个人医保缴费明细].GRBH'); createtemptable ('欠缴人员总表',' Select count (*) as 欠缴人员数 From [欠缴人员表] WHERE GRBH is null'); createtemptable ('欠缴金额表',' Select sum(欠缴人员数*(1317*3+1495*9)*0.08) as 欠缴金额 From 欠缴人员总表'); currentQuery:= createq ('select * from 欠缴金额表',-1); IsEmpty:=qeof(currentQuery); if IsEmpty<>1 then begin repeat Sum:=qfdvalue(currentQuery,'欠缴金额'); IsEmpty:=qmov(currentQuery,1); until IsEmpty=1; end; write('缴纳养老保险而未缴纳医疗保险人员欠缴金额:', sum ); end.
(3)人员缴费次数审计。 审计流程图:
(3)人员缴费次数审计。 审计步骤: 步骤一:查找人员缴费次数表。 从个人医保缴费明细表中根据“个人编号”字段进行分组汇总,查找个人缴费次数,并生成人员缴费次数表。 步骤二:查找缴费次数小于12次的欠缴人员情况表。 每年医保基金缴费人员的缴费次数应为12次,如果大于12次说明个人存在补缴医保基金的情况,因此2010年度个人缴费次数小于12次的,为欠缴人员,根据步骤一生成的人员缴费次数表,查找个人缴纳次数小于12次为欠缴。 步骤三:计算缴费次数小于等于3次的欠缴金额。 因为2010年度前3个月和后9个月的缴费基数不同,我们需要分二个时间段分别计算欠缴金额,首先利用SQL语句计算缴费次数小于等于3次的欠缴金额。 步骤四:计算缴费次数大于3次的欠缴金额 审计结论:个人缴费次数小于12次的欠缴金额×××万元。
(3)人员缴费次数审计。 编制2010年全年缴纳次数小于12次的欠缴金额审计方法。 Var SqlStr,a,b,c,d;//定义变量 Begin SqlStr:='Select DISTINCT GRBH,count(*)as 缴费次数,min(JFJS) as 最低缴费基数,max (JFJS) as 最高缴费基数 From [个人医保缴费明细] GROUP BY [grbh]'; CreateTempTable('人员缴费次数',SqlStr); SqlStr:='Select * From [人员缴费次数] WHERE [缴费次数]<12'; CreateTempTable('欠缴情况',SqlStr); SqlStr:='Select * From [人员缴费次数] WHERE [缴费次数]<12'; CreateTempTable('欠缴人员表',SqlStr); SqlStr:='Select sum(1317*0.08*(3-[缴费次数] )+(1495*0.08*9)) as 缴纳次数小于3次的欠缴金额 From [欠缴情况] WHERE [缴费次数]<=3';
(3)人员缴费次数审计。 CreateTempTable('缴费次数小于等于3次的欠缴金额表 ',SqlStr); a:=createq('Select * From 缴费次数小于等于3次的欠缴金额表',-1); b:=qeof(a); if b<>1 then begin c:=qfdvalue(a,'缴纳次数小于等于3次的欠缴金额'); end; SqlStr:='Select sum(1495*0.08*(12-[缴费次数] ))as 缴纳大于3次的欠缴金额 From [欠缴情况] WHERE [缴费次数]>3 '; CreateTempTable('缴费次数大于3次的欠缴金额表 ',SqlStr); a:=createq('Select * From 缴费次数大于3次的欠缴金额表',-1); d:=qfdvalue(a,'缴纳次数大于3次的欠缴金额'); write('2010年未足额缴纳医保基金人员的欠缴金额:',c+d); end. (3)人员缴费次数审计。
业务数据2、基金支付/医院是否存在骗保 (1)审计思路:审计人员通过对2010年度医保报销费用查看知××××医保报销费用金额列第一位,根据医疗报销情况决定对××××进行延伸调查,审查骗取医保基金金额。因为骗取医保基金形式多种多样,如:冒名顶替骗取医保基金的时点性强,另外查找多开药品骗取医保基金超过我们审计人员的能力等,审计组成员讨论决定仅依据××××后台数据库中有关的数据表,查找享受医保报销的人员利用空挂床位骗取医保基金情况。
业务数据2、基金支付/医院是否存在骗保 审计流程图:
业务数据2、基金支付/医院是否存在骗保 (2)审计步骤: 步骤一:确定延伸的医院。 根据县医办提供的2010年度住院报销明细表中通过饼形图查看各医院报销医保基金所占的比例。通过下图知2010年度医保报销费用前三甲分别为:××××,上级二级医院,平阴县中医医院。审计组成员共同讨论并与分管局长汇报决定对××××进行延伸审计。
业务数据2、基金支付/医院是否存在骗保 步骤二:查找2010年度出院病人所住科室及床位明细表。 根据审计目标我们需要查找该家医院2010年度全部病人的住院时间以及所住科室和床号信息,但是通过查找此家医院的数据库中的所有表,发现所有表中的字段未全部包含上述的四个字段,通过查看发现住院病人科室和床号明细表中包含病人所住科室和床号信息,而住院病人费用中包含住院日期和出院日期,我们利用病人住院号唯一性即字段“zhy”(住院号)进行相联,查找出2010年度出院病人住院期间所住科室、床位明细表。 步骤三:查找2010年度享受医疗报销人员所住科室及床位明细表。 根据步骤二生成××××2010年度出院病人明细表,查找2010年度享受医疗报销人员住院期间所住科室及床位情况。因为××××提供的数据表与县医保办提供的数据表未有唯一性字段进行数据相连,我们依据“姓名”字段进行连接,并对查找出的2010年度享受医疗报销人员所住科室及床位明细表给予时间和医院名称限制,来保证此表中的住院日期与出院日期与医院提供的2010年度出院病人住院期间所住科室、床位明细表中的住院日期与出院日期一致,确保2010年度享受医疗报销人员所住科室及床位明细表中记录的正确。
业务数据2、基金支付/医院是否存在骗保 步骤四:查找两人以上的病人同一天住相同科室及床位情况。 根据全体病人住院信息明细表和医疗报销人员住院明细表,利用相同科室一个床号一天仅能住一个病人的唯一性,依据医疗报销人员住院日期包含在全体病人的住院日期与出院日期之间或是医疗报销人员出院日期包含在全体病人的住院日期与出院日期之间的关系,查找享受医疗报销人员同一天与其他病人住同科室和床位情况。 步骤五:充分考虑病人住院期间换科换床因素所造成病人同一天住相同科室及床位号。 经调查了解知,病人在住院期间换科和换床现象普遍存在,根据上述步骤查找出的享受医疗报销人员同一天与其他病人住同科室和床位明细表,剔除由于病人换科换床原因形成的病人同一天住相同科室及床位情况,查找出换科换床后病人信息表。
业务数据2、基金支付/医院是否存在骗保 步骤六:查找医保病人"挂床住院"骗取医保基金信息表。 同一天在相同科室住相同床位明细表: 利用科室和床位号进行分组查看,核实查找出的享受医疗报销人员同一天与其他病人住相同科室和床位的真实性,根据换科换床后住院病人信息表与2010医保病人报销明细表查找医保病人利用“挂床住院”所骗取的医保基金金额。 同一天在相同科室住相同床位明细表:
业务数据2、基金支付/医院是否存在骗保 步骤七:计算医保病人“挂床住院”骗取医保基金总金额。
业务数据2、基金支付/医院是否存在骗保 (3)审计方法。 通过ASL语言编写的医保病人"挂床住院"骗取医保基金审计方法: var currentQuery,IsEmpty,Sum; begin // 分别创建××××2010年度出院病人明细表,医保人员2010年住院信息表,病人同一天住相同科室相同床位号明细表,换科后住院病人信息表,换科换床后住院病人信息表,医保病人挂床住院骗保信息表 CreateTempTable ('××××2010年度出院病人明细表','Select [住院病人科室和床号明细表].ch , [住院病人科室和床号明细表].zyh , [住院病人科室和床号明细表].xm, [住院病人科室和床号明细表].ksbh , [住院病人科室和床号明细表].ksmc,[住院病人费用明细表].zyrq,[住院病人费用明细表].cyrq From [住院病人科室和床号明细表] left Join [住院病人费用明细表] On [住院病人科室和床号明细表].zyh=[住院病人费用明细表].zyh WHERE year([住院病人费用明细表].cyrq) = 2010'); createtemptable ('医保人员2010年住院信息表','Select [××××2010年度出院病人明细表 ].*,[住院报销明细表].XM as 姓名 ,[住院报销明细表].ZYRQ as 住院日期,[住院报销明细表].CYRQ as 出院日期 From [××××2010年度出院病人明细表 ] left Join [住院报销明细表] On [××××2010年度出院病人明细表 ].xm =[住院报销明细表].xm'); executeupdate('delete From [医保人员2010年住院信息表] WHERE day(出院日期) <> day(cyrq)'); createtemptable ('有关病人同一天住相同科室相同床位号明细表','Select [××××2010年度出院病人明细表].*,[医保人员2010年住院信息表].姓名,[医保人员2010年住院信息表].住院日期,[医保人员2010年住院信息表].出院日期 From [××××2010年度出院病人明细表] left join [医保人员2010年住院信息表]on[××××2010年度出院病人明细表].ksmc = [医保人员2010年住院信息表].ksmc where [××××2010年度出院病人明细表].ch =[医保人员2010年住院信息表].ch AND ([医保人员2010年住院信息表].住院日期 Between [××××2010年度出院病人明细表].zyrq And [××××2010年度出院病人明细表].cyrq OR [医保人员2010年住院信息表].出院日期 Between [××××2010年度出院病人明细表].zyrq And [××××2010年度出院病人明细表].cyrq ) AND [医保人员2010年住院信息表].xm <>[××××2010年度出院病人明细表].xm');
业务数据2、基金支付/医院是否存在骗保 createtemptable ('换科后住院病人信息表','Select [有关病人同一天住相同科室相同床位号明细表].*,[住院病人换科明细表].zyh as 换科病人住院号,[住院病人换科明细表].ch as 换科病人床号 ,[住院病人换科明细表].xm as 换科病人姓名 From [有关病人同一天住相同科室相同床位号明细表] left Join [住院病人换科明细表] On [有关病人同一天住相同科室相同床位号明细表].zyh=[住院病人换科明细表].zyh '); executeupdate('delete from [换科后住院病人信息表] where 换科病人住院号 is not null'); createtemptable ('换科换床后住院病人信息表','Select [换科后住院病人信息表].zyh,[换科后住院病人信息表].xm,[换科后住院病人信息表].ch,[换科后住院病人信息表].ksmc,[换科后住院病人信息表].zyrq,[换科后住院病人信息表].cyrq,[换科后住院病人信息表].姓名,[换科后住院病人信息表].住院日期,[换科后住院病人信息表].出院日期, [住院病人换床明细表].zyh as 换床住院号 From [换科后住院病人信息表] left Join [住院病人换床明细表] On [换科后住院病人信息表].zyh=[住院病人换床明细表].zyh'); executeupdate('delete from [换科换床后住院病人信息表] WHERE 换床住院号 is not null'); createtemptable ('医保病人挂床住院骗保信息表','Select [换科换床后住院病人信息表].*, [住院报销明细表].XM as 医保报销姓名,[住院报销明细表].TCZF as 医保支付费用,[住院报销明细表].ZYRQ as 医保住院日期,[住院报销明细表].CYRQ as 医保出院日期 From [换科换床后住院病人信息表] left Join [住院报销明细表] On [换科换床后住院病人信息表].姓名 =[住院报销明细表].XM where [换科换床后住院病人信息表].出院日期=[住院报销明细表].CYRQ AND [换科换床后住院病人信息表].住院日期=[住院报销明细表].ZYRQ AND day([换科换床后住院病人信息表].cyrq)<>day([换科换床后住院病人信息表].住院日期) AND day([换科换床后住院病人信息表].zyrq)<>day([换科换床后住院病人信息表].出院日期)'); executeupdate('delete from [医保病人挂床住院骗保信息表] WHERE 医保支付费用 is null'); createtemptable ('医保病人挂床住院骗保金额表','Select sum (医保支付费用) as 总骗保金额 From [医保病人挂床住院骗保信息表]');
业务数据2、基金支付/医院是否存在骗保 currentQuery:= createq ('select * from 医保病人挂床住院骗保金额表',-1); IsEmpty:=qeof(currentQuery); if IsEmpty<>1 then begin repeat Sum:=qfdvalue(currentQuery,'总骗保金额'); IsEmpty:=qmov(currentQuery,1); until IsEmpty=1; end; write('医保病人利用"挂床住院"骗取医保基金金额:',Sum); end.
业务数据2、基金支付/医院是否存在骗保 (4)审计结论:通过上述六步和编制的审计方法,审计发现×××享受医保报销人员利用“空挂床位”骗取医保基金×××万元。
实效性 审计要点全面覆盖医保财务系统和业务系统,实现从单一的财务结果向财务审计与业务过程监控相结合的转变,同时解决了多险种基金的关联审计。 四医保基金计算机审计主要特点 实效性 审计要点全面覆盖医保财务系统和业务系统,实现从单一的财务结果向财务审计与业务过程监控相结合的转变,同时解决了多险种基金的关联审计。 实时性审计机关通过获取对方业务数据,导出对方某一时间段的数据,查看对方的明细账,每笔资金怎么花的,到哪儿去了,都一目了然。然后对数据进行分析比较,找出疑点,形成预审报告,实现对整个医保业务系统的监控。 简易性计算机具有很强的可操作性,利用审计模块可对基金财务与业务征缴数的一致性、缴费基数和缴费比例的合规性等方面进行审查。审计人员仅需编辑语句对数据进行筛选分析,方法简单,适合审计人员使用。 标准性审计过程符合金保工程的业务标准和金审工程建设的规范要求,整个审计过程按照审计署规定制作成电子案例,最大程度上实现审计方法的共享 安全性利用数据的备份进行审计,不删改医保原始数据,基于AO和SQL SERVER数据库系统的严格系统安全体系,全面解决系统内部安全和医保数据安全。
五、医保基金计算机审计的创新点 一是采取业务需求与数据需求的来回磋商机制,实现 组织方式上创新。 1 二是将计算机审计贯穿到项目审计全过程,提高审计 工作质量和效率,实现审计技术上创新。 2 三是整合不同数据源,完善被审计单位数据库系统,实现 审计对象上创新。 3 四是将系统审计和财务审计相融合,实现审计内容上创新。 4
计算机辅助审计的体会 1)审计机关信息化程度与被审计对象不对称,造成计算机审计的“短缺与过剩”现象并存。一方面,在金融、税务、社保等信息化程度较高的领域,由于审计系统信息化建设与这些部门相比开发较晚,以及其他原因,使审计人员的计算机审计水平难于满足对这些行业的审计需要;另一方面,在涉及农业、基本建设等领域以及绝大部分县级被审计对象又由于审计对象信息化水平较低,不具备开展计算机审计的条件,也影响了审计信息化建设和发展。 2)计算机审计存在“信息孤岛”现象。一方面,尚未对分散的信息资源,实行统一管理和使用,尚未形成一个有效的信息共享链,从而造成审计信息资源的浪费。另一方面,审计机关局域网与相关部门没有实现互联互通,形成一个个信息孤岛,还没有为联网审计提供更加便利的条件和环境。目前全市均执行了集中支付制度,但我们审计人员确无法获取相关的电子数据,备份功能在市局,制约了计算机审计的发展. 3)审计业务水平与审计信息化建设和发展的要求不相适应 一方面是丰富的财会、审计知识和经验与生疏的计算机应用之间的矛盾,另一方面则是计算机技术脱离了审计经验灵魂的束缚,两者都无法真正达到的计算机审计要求。
结束语: 以上讲解便是审计案例撰写的重点,其中包括2个审计方法,另外审计人员在撰写参选审计方法时,需要对撰写的内容进行完善,如构建ER模型 、数据模型 ,这些是为了评审人员更快的了解你所使用的数据库之间的关系,但是审计人员如果撰写出上述语言,肯定会对自己操作的数据库了如指掌,因此构建上述模型不是问题。如去年撰写的审计方法 中的模型。 审计方法
结束语: ER模型构建
结束语:数据模型构建
谢谢大家,希望通过我们大家共同的努力能够促进我局的计算机审计再上一个新台阶。 结束语: 谢谢大家,希望通过我们大家共同的努力能够促进我局的计算机审计再上一个新台阶。