【编者按】利用计算机开展辅助审计,是深圳市审计局连续多年在全国保持领先的一个重要发展方向。为了进一步推进提升计算机在审计项目中的应用水平,本刊特选编此AO应用实例,供广大审计人员学习交流参考。
运用因素分析和趋势分析方法剖析患者诊疗费用负担的AO实例
——AO在医院管理情况绩效审计中的应用
张 悦
一、实例概述
(一)项目背景
在当前深化医药卫生体制改革的过程中,老百姓最为关注的是“看病难、看病贵”的问题。看病贵成为一种普遍感受,那么看病真的贵吗?贵在哪里?诊疗费用增长的原因是医院管理问题吗?同时,“看病贵”是一个相对主观的感受,除了绝对金额的增长,参加医保的患者自己承担诊疗费用的比例也会影响这种感受。为寻找答案,也为探索绩效审计向管理效益审计延伸,力求单个绩效审计项目达到促进行业、领域在体制机制上不断优化的效果,我们选择深圳某医院(以下简称A医院)对其执行医院改革政策和2008至2010年度管理的情况开展绩效审计,重点关注财政资金使用的效益、效果、其执行医院改革政策以及政策体制对医疗机构绩效发挥的影响,对医疗机构管理绩效探索性地做出评价。
(二)项目审查数据量
本次审计审查的数据包括财务数据和业务数据。A医院使用的财务软件为红蜻蜓软件,后台数据库为SQL Server,本次财务数据采用数据库方式手工分析导入。
A医院在业务管理软件方面医院与专业软件集团合作,已经完成医院信息化管理系统(HIS)、检验信息管理系统(LIS)、体检系统、超声系统以及影像信息管理系统(PACS)的建设。专业软件公司开发的医院信息化管理系统(HIS)包括门诊系统、住院系统、辅助业务系统、体检系统、管理部门系统、报表系统、无线系统等子系统,其中门诊系统又包括挂号系统、排队叫号系统、门诊医生工作站、门诊收费系统、门诊药房系统等,住院系统又包括住院登记系统、住院收费系统、护理病例系统等。本次审计涉及的业务数据主要由医院信息化管理系统(HIS)管理,后台数据库为SQL Server。由于医院业务量大,业务数据分别存放在历史库和查询库中,两个库文件大小分别为216GB、291GB,这么大的数据量是近年审计中都很少遇到的,为了方便审计,我们进行了大量的数据分析、清理工作。经过整理分析,得到审计中间表药品门诊收费表(1280万条记录)、药品住院收费表(1096万条记录)、药品入库信息表(14万条记录)、药品出库信息表(27万条记录)、医疗门诊收费表(3682万条记录)以及医疗住院收费表(2685万条记录),总记录条数达到8784万条。本AO实例涉及的药品门诊收费表、药品住院收费表等总记录数也高达2300多万条。
(三 )项目最终结果
审计对患者诊疗费用作出各种类型的分析,发现诊疗费用逐年递增,年均增幅超过就诊量年均增幅,其中占比重较大的西药费用增长因素主要是西药用量增长;部分险种医保患者住院费用自付比例上升,患者负担增加。与国务院《医药卫生体制改革近期重点实施方案(2009—2011年)》(国发〔2009〕12号)提出的“切实减轻群众个人支付的医药费用负担”的发展目标不符。
本项目审计报告于2011年11月30日印发,上述问题在我市2011年绩效审计工作报告上发布,已于2011年12月2日向深圳市第五届人民代表大会常务委员会第十二次会议报告,并被南方日报、深圳特区报、深圳商报、深圳新闻网等媒体广泛报道。本案例获审计署2011年度计算机审计AO应用奖。
二、项目实施概要
(一)AO应用介绍
1.审前准备阶段。(略)
2.电子数据的采集和转换
此项目的红蜻蜓财务软件为非常用财务软件,无现成的模板,审计人员通过手工分析方式导入AO2008。由于业务数据量非常大,我们将业务数据采集进入AO2011进行分析。
(1)财务数据
红蜻蜓财务软件后台数据库为SQL Server,由于AO2008没有对应的采集模板,本次财务数据采用数据库方式手工分析导入。
我们首先从红蜻蜓软件公司获取了红蜻蜓财务软件的数据结构,结合财务软件的常用设计,对后台数据库进行了解剖,获取了AO手工采集所需要的三张表:会计科目表、凭证表、科目余额表。
然后使用AO的手动采集功能进行数据采集,得到A医院2008至2010年各年度经费账。
(2)业务数据
A医院业务数据的后台数据库为SQL Server,分别存储在历史库和查询库中,其中2008年以前及2009年部分数据存储在历史库,2009年部分数据及2010年以后的数据存存储在查询库。审计组取得两个数据库的备份文件之后,在审计服务器上进行恢复。
第一步,业务数据结构分析,整理数据字典。
结合A医院的业务流程、信息化管理系统(HIS)使用情况及业务数据处理流程,分析信息化管理系统(HIS)的数据结构,整理出审计分析所需原始数据表的数据字典(仅引用案例中使用的部分)。
数据字典
按病人性质分类查询 | |||
住院病人信息表(ZY_BRRY) | 病人性质代码表(GY_BRXZ) | ||
字段名 | 字段说明 | 字段名 | 字段说明 |
ZYH | 住院号(唯一标识) | XZMC | 病人性质名称 |
ZYLB | 住院类别 | BRXZ | 病人性质代码 |
YBBZ | 医保病种 |
|
|
住院结算信息表(ZY_ZYJS) |
| ||
字段名 | 字段说明 |
|
|
JSRQ | 结算日期 |
|
|
ZYH | 住院号 |
|
|
JSCS | 结算次数 |
|
|
ZFRQ | 作废日期 |
|
|
ZFPB | 作废判别 |
|
|
FYHJ | 费用合计 |
|
|
ZFHJ | 自费合计 |
|
|
JMJE | 减免金额 |
|
|
药品门诊收费信息 | |||
门诊病人档案表(MS_BRDA) | 药品产地信息表(YK_CDDZ) | ||
字段名 | 字段说明 | 字段名 | 字段说明 |
ID | 病人ID(唯一标识) | CDMC | 产地名称 |
MZHM | 门诊号 | YPCD | 产地代码 |
门诊收费信息表(MS_MZXX) | 药品基本信息表(YK_TYPK) | ||
字段名 | 字段说明 | 字段名 | 字段说明 |
BRXB | 病人性别 | YPXH | 药品序号(唯一码) |
BRXZ | 病人性质代码 | YPBM1 | 医院编码 |
SFRQ | 计费日期 | YBBM | 医保编码 |
FPHM | 发票号码 | YPMC | 药品名称 |
CZGH | 操作工号 | YPDM | 药理分类 |
JZRQ | 结账日期 | TYPE | 药品类型 |
|
| YPSX | 药品剂型 |
|
| ZBLB | 账簿类别 |
门诊收费发票作废信息表(MS_ZFFP) | 医生代码表(GY_YGDM) | ||
字段名 | 字段说明 | 字段名 | 字段说明 |
FPHM | 发票号码 | YGDM | 医生代码 |
CZGH | 操作工号 | YGXM | 医生姓名 |
JZRQ | 结账日期 | YGJB | 员工级别 |
门诊处方信息表(MS_CF01) | 门诊处方明细表(MS_CF02) | ||
字段名 | 字段说明 | 字段名 | 字段说明 |
CFSB | 处方唯一码 | CFSB | 处方唯一码 |
BRXM | 病人姓名 | YFGG | 药房规格 |
KSDM | 科室代码 | YFDW | 销售单位 |
YSDM | 医生代码 | YPDJ | 销售单价 |
CFHM | 处方号码 | YPSL | 药品数量 |
CFTS | 处方天数 | CFTS | 处方天数 |
MZZD1 | 门诊诊断 | CFBZ | 诊断说明 |
FPHM | 发票号码 | YPXH | 药品序号 |
|
| YPCD | 药品产地 |
病人性质代码表(GY_BRXZ) | 科室代码表(GY_KSDM) | ||
字段名 | 字段说明 | 字段名 | 字段说明 |
BRXZ | 病人性质代码 | KSDM | 科室代码 |
XZMC | 病人性质名称 | KSMC | 科室名称 |
药品剂型(YK_YPSX) | 账簿类别代码表(YK_ZBLB) | ||
字段名 | 字段说明 | 字段名 | 字段说明 |
YPSX | 药品剂型代码 | CODE | 账簿类别代码 |
SXMC | 药品剂型名称 | NAME | 账簿类别 |
代码字典(GY_DMZD) |
|
| |
字段名 | 字段说明 |
|
|
DMLB | 代码类别 |
|
|
DMSB | 代码识别 |
|
|
DMMC | 代码名称 |
|
|
药品住院收费信息 | ||||
住院病人费用明细表(ZY_FYMX) | 出院病人费用明细(ZY_FYMX_CY) | |||
字段名 | 字段说明 | 字段名 | 字段说明 | |
HZRQ | 汇总日期 | HZRQ | 汇总日期 | |
ZYH | 住院号 | ZYH | 住院号 | |
YPLX | 药品类型 | YPLX | 药品类型 | |
FYXH | 发药序号 | FYXH | 费用序号 | |
FYKS | 费用科室 | FYKS | 费用科室 | |
YSGH | 开药医生代码 | YSGH | 开药医生代码 | |
FYMC | 药品&费用名称 | FYMC | 药品&费用名称 | |
FYDJ | 销售单价 | FYDJ | 销售单价 | |
FYSL | 销售数量 | FYSL | 销售数量 | |
ZJJE | 销售金额 | ZJJE | 销售金额 | |
FYRQ | 计费日期 | FYRQ | 计费日期 | |
YPCD | 药品产地 | YPCD | 药品产地 | |
病人信息表(ZY_BRRY) | 药品基本信息(YK_TYPK) | |||
字段名 | 字段说明 | 字段名 | 字段说明 | |
ZYH | 住院号 | YPXH | 药品序号 | |
ZYHM | 住院编号 | YPBM1 | 医院编码 | |
BRXM | 病人姓名 | YBBM | 医保编码 | |
BRXB | 病人性别 | YPDM | 药理分类 | |
BRXZ | 病人性质代码 | TYPE | 药品类别 | |
RYRQ | 住院日期 | BFGG | 药品病房规格 | |
CYRQ | 出院日期 | YPSX | 药品剂型 | |
|
| BFDW | 病房销售单位 | |
病人性质代码表(GY_BRXZ) | 科室代码表(GY_KSDM) | |||
字段名 | 字段说明 | 字段名 | 字段说明 | |
BRXZ | 病人性质代码 | KSDM | 科室代码 | |
XZMC | 病人性质名称 | KSMC | 科室名称 | |
医生代码表(GY_YGDM) | 代码字典(GY_DMZD) | |||
字段名 | 字段说明 | 字段名 | 字段说明 | |
YGDM | 医生代码 | DMLB | 代码类别 | |
YGXM | 医生姓名 | DMSB | 代码识别 | |
YGJB | 员工级别 | DMMC | 代码名称 | |
药品剂型(YK_YPSX) | 产地信息(CDDZ) | |||
字段名 | 字段说明 | 字段名 | 字段说明 | |
YPSX | 药品剂型代码 | YPCD | 药品产地 | |
SXMC | 剂型名称 | CDMC | 产地简称 | |
账簿类别(YK_ZBLB) | 疾病编码(GY_JBBM) | |||
字段名 | 字段说明 | 字段名 | 字段说明 | |
CODE | 账簿类别代码 | NAME | 名称 | |
NAME | 账簿类别名称 | CODE | 代码 | |
住院病人诊断信息(ZY_RYZD) |
|
| ||
字段名 | 字段说明 |
|
| |
ZDLB | 诊断类别 |
|
| |
ZDXH | 诊断代码 |
|
| |
ZYH | 住院号 |
|
|
第二步,业务数据整理,生成审计中间表。
审计时我们对药品收费、药品入出库信息和医疗服务收费数据分别进行清理,生成审计中间表,以便对药品和医疗服务收费进行审计分析。此处仅对本案例中涉及的药品收费数据清理过程及分析医保患者住院费用自付比例所需数据进行说明。
将取得的A医院信息化管理系统(HIS)数据库(含历史库和查询库)在审计服务器上恢复,对原始数据进行清理。将审计分析所需的原始表(分析医保患者住院费用自付比例所需的住院病人信息表(ZY_BRRY)、病人性质代码表(GY_BRXZ)、住院结算信息表(ZY_ZYJS))以及整理生成的审计中间表导入AO再进一步分析。
在SQL Server中,对历史库和查询库的数据分别使用以下SQL查询语句,分别生成药品门诊收费表与药品住院收费表。数据整理流程图如下:
①药品门诊收费表
A医院的业务数据处理流程中,门诊收费信息作废后未从门诊收费信息表中删除,而是在门诊收费发票作废信息表中新增作废记录,因此SQL查询语句将门诊收费信息表(MS_MZXX)查询的销售金额数据与门诊收费发票作废信息表(MS_ZFFP)查询的销售金额数据负值合并。生成药品门诊收费表的SQL语句如下:
SELECT (SELECT MZHM FROM MS_BRDA WHERE ID = E.ID ) '门诊号',E.BRXM '病人姓名','病人性别' = CASE WHEN G.BRXB = 1 THEN '男' WHEN G.BRXB = 2 THEN '女' else '未知' END ,(SELECT XZMC FROM GY_BRXZ WHERE BRXZ = G.BRXZ ) '病人类别',(SELECT KSMC FROM GY_KSDM WHERE KSDM = E.KSDM) '科室名称',(SELECT YGXM FROM GY_YGDM WHERE YGDM = E.YSDM) '开方医生姓名',E.YSDM '开方医生代码',(SELECT DMMC FROM GY_DMZD,GY_YGDM A WHERE DMLB = 27 AND DMSB = A.YGJB AND A.YGDM = E.YSDM) '医生级别',E.CFHM '处方号码',C.YPBM1 '医院编码',C.YBBM '医保编码',C.YPMC '药品名称',C.YPDM '药理分类','药品类别' = CASE WHEN C.TYPE = 1 THEN '西药' WHEN C.TYPE = 2 THEN '中成药' WHEN C.TYPE = 3 THEN '中草药' else '' END ,F.YFGG '药品规格',(SELECT SXMC FROM YK_YPSX WHERE YPSX = C.YPSX) '药品剂型' ,F.YFDW '销售单位',F.YPDJ '销售单价',F.YPSL*F.CFTS*E.CFTS '销售数量',ROUND(F.YPDJ*F.YPSL*F.CFTS,2) '销售金额',F.CFTS '处方天数',G.SFRQ '计费日期',D.CDMC,'产地' AS '供货单位',(SELECT NAME FROM YK_ZBLB WHERE CODE = C.ZBLB) '账簿类别',E.MZZD1 '门诊诊断',F.CFBZ '诊断说明'
into 药品门诊收费表
FROM MS_MZXX G,YK_TYPK C,YK_CDDZ D,MS_CF01 E,MS_CF02 F
--从门诊收费信息表查询数据
WHERE C.YPXH =* F.YPXH AND D.YPCD =* F.YPCD AND E.CFSB = F.CFSB AND G.FPHM = E.FPHM AND G.CZGH <> '5555' AND G.JZRQ >= '2008-1-1' AND G.JZRQ <='2008-12-31 23:59:59'
UNION ALL
SELECT (SELECT MZHM FROM MS_BRDA WHERE ID = E.ID ) '门诊号',E.BRXM '病人姓名','病人性别' = CASE WHEN G.BRXB = 1 THEN '男' WHEN G.BRXB = 2 THEN '女' else '未知' END ,(SELECT XZMC FROM GY_BRXZ WHERE BRXZ = G.BRXZ ) '病人类别',(SELECT KSMC FROM GY_KSDM WHERE KSDM = E.KSDM) '科室名称',(SELECT YGXM FROM GY_YGDM WHERE YGDM = E.YSDM) '开方医生姓名',(SELECT DMMC FROM GY_DMZD,GY_YGDM A WHERE DMLB = 27 AND DMSB = A.YGJB AND A.YGDM = E.YSDM) '医生级别',E.CFHM '处方号码',C.YPBM1 '医院编码',C.YBBM '医保编码',C.YPMC '药品名称',C.YPDM '药理分类','药品类别' = CASE WHEN C.TYPE = 1 THEN '西药' WHEN C.TYPE = 2 THEN '中成药' WHEN C.TYPE = 3 THEN '中草药' else '' END ,F.YFGG '药品规格',(SELECT SXMC FROM YK_YPSX WHERE YPSX = C.YPSX) '药品剂型' ,F.YFDW '销售单位',F.YPDJ '销售单价',F.YPSL*F.CFTS*E.CFTS '销售数量',0 - ROUND(F.YPDJ*F.YPSL*F.CFTS,2) '销售金额',F.CFTS '处方天数',G.SFRQ '计费日期',D.CDMC,'产地' AS '供货单位',(SELECT NAME FROM YK_ZBLB WHERE CODE = C.ZBLB) '账簿类别',E.MZZD1 '门诊诊断',F.CFBZ '诊断说明'
FROM MS_MZXX G,MS_ZFFP H,YK_TYPK C,YK_CDDZ D,MS_CF01 E,MS_CF02 F
--从门诊收费发票作废信息表查询数据
WHERE C.YPXH =* F.YPXH AND D.YPCD =* F.YPCD AND E.CFSB = F.CFSB AND H.FPHM = E.FPHM AND H.CZGH <> '5555' AND H.FPHM = G.FPHM
AND H.JZRQ >= '2008-1-1' AND H.JZRQ <='2008-12-31 23:59:59'
因数据分时间段存储于历史库和查询库,需对上述语句中记账日期时间段进行变更,在历史库和查询库中分别运行,以分别生成各年度药品门诊收费表后,再合并。生成的药品门诊收费表数据结构如下:
②药品住院收费表
A医院的业务数据处理流程中,病人出院后其住院费用信息从住院病人费用明细表(ZY_FYMX)转到出院病人费用明细表(ZY_FYMX_CY),因此SQL查询语句是对两个明细表数据查询后进行合并。生成药品住院收费表的SQL语句如下:
SELECT B.ZYHM '住院编号',B.BRXM '病人姓名','病人性别' = CASE WHEN B.BRXB = 1 THEN '男' WHEN B.BRXB = 2 THEN '女' else '未知' END ,(SELECT XZMC FROM GY_BRXZ WHERE BRXZ = B.BRXZ ) '病人类别',B.RYRQ '住院日期',B.CYRQ '出院日期',(SELECT KSMC FROM GY_KSDM WHERE KSDM = A.FYKS) '科室名称',(SELECT YGXM FROM GY_YGDM WHERE YGDM = A.YSGH) '开药医生姓名',A.YSGH '开药医生代码',(SELECT DMMC FROM GY_DMZD,GY_YGDM E WHERE DMLB = 27 AND DMSB = E.YGJB AND E.YGDM = A.YSGH) '医生级别',C.YPBM1 '医院编码',C.YBBM '医保编码',A.FYMC AS '药品名称',C.YPDM '药理分类','药品类别' = CASE WHEN C.TYPE = 1 THEN '西药' WHEN C.TYPE = 2 THEN '中成药' WHEN C.TYPE = 3 THEN '中草药' else '' END,C.BFGG '药品规格',(SELECT SXMC FROM YK_YPSX WHERE YPSX = C.YPSX) '药品剂型' ,C.BFDW '销售单位',A.FYDJ '销售单价',A.FYSL '销售数量',A.ZJJE '销售金额',A.FYRQ '计费日期',(SELECT CDMC FROM YK_CDDZ WHERE YPCD = A.YPCD) '产地','' AS '供货单位',(SELECT NAME FROM YK_ZBLB WHERE CODE = C.ZBLB) '账簿类别',(SELECT TOP 1 GY_JBBM.NAME FROM GY_JBBM,ZY_RYZD WHERE ZY_RYZD.ZDLB = 2 AND GY_JBBM.CODE = ZY_RYZD.ZDXH AND ZY_RYZD.ZYH = B.ZYH ) '入院诊断',(SELECT TOP 1 GY_JBBM.NAME FROM GY_JBBM,ZY_RYZD WHERE ZY_RYZD.ZDLB = 3 AND GY_JBBM.CODE = ZY_RYZD.ZDXH AND ZY_RYZD.ZYH = B.ZYH ) '出院诊断'
into 药品住院收费表
FROM ZY_FYMX A,ZY_BRRY B,YK_TYPK C
--从住院病人费用明细表查询数据
WHERE A.HZRQ >='2008-1-1' AND A.HZRQ <= '2008-12-31 23:59:59' AND A.ZYH = B.ZYH
AND A.YPLX > 0 AND C.YPXH = A.FYXH
union all
SELECT B.ZYHM '住院编号',B.BRXM '病人姓名','病人性别' = CASE WHEN B.BRXB = 1 THEN '男' WHEN B.BRXB = 2 THEN '女' else '未知' END ,(SELECT XZMC FROM GY_BRXZ WHERE BRXZ = B.BRXZ ) '病人类别',B.RYRQ '住院日期',B.CYRQ '出院日期',(SELECT KSMC FROM GY_KSDM WHERE KSDM = A.FYKS) '科室名称', (SELECT YGXM FROM GY_YGDM WHERE YGDM = A.YSGH) '开药医生姓名',A.YSGH '开药医生代码',(SELECT DMMC FROM GY_DMZD,GY_YGDM E WHERE DMLB = 27 AND DMSB = E.YGJB AND E.YGDM = A.YSGH) '医生级别',C.YPBM1 '医院编码',C.YBBM '医保编码',A.FYMC AS '药品名称',C.YPDM '药理分类','药品类别' = CASE WHEN C.TYPE = 1 THEN '西药' WHEN C.TYPE = 2 THEN '中成药' WHEN C.TYPE = 3 THEN '中草药' else '' END,C.BFGG '药品规格',(SELECT SXMC FROM YK_YPSX WHERE YPSX = C.YPSX) '药品剂型' ,C.BFDW '销售单位',A.FYDJ '销售单价',A.FYSL '销售数量',A.ZJJE '销售金额',A.FYRQ '计费日期',(SELECT CDMC FROM YK_CDDZ WHERE YPCD = A.YPCD) '产地','' AS '供货单位',(SELECT NAME FROM YK_ZBLB WHERE CODE = C.ZBLB) '账簿类别',(SELECT TOP 1 GY_JBBM.NAME FROM GY_JBBM,ZY_RYZD WHERE ZY_RYZD.ZDLB = 2 AND GY_JBBM.CODE = ZY_RYZD.ZDXH AND ZY_RYZD.ZYH = B.ZYH ) '入院诊断',(SELECT TOP 1 GY_JBBM.NAME FROM GY_JBBM,ZY_RYZD WHERE ZY_RYZD.ZDLB = 3 AND GY_JBBM.CODE = ZY_RYZD.ZDXH AND ZY_RYZD.ZYH = B.ZYH ) '出院诊断'
FROM ZY_FYMX_CY A,ZY_BRRY B,YK_TYPK C
WHERE A.HZRQ >='2008-1-1' AND A.HZRQ <= '2008-12-31 23:59:59' AND A.ZYH = B.ZYH
AND A.YPLX > 0 AND C.YPXH = A.FYXH
因数据分时间段存储于历史库和查询库,需对上述语句中记账日期时间段进行变更,在历史库和查询库中分别运行,以分别生成各年度药品住院收费表后,再合并。生成的药品门诊收费表数据结构如下:
第三步,将整理后业务数据导入AO系统。
在AO2011系统中,通过“采集转换-业务数据”将药品门诊收费表、药品住院收费表、住院病人信息表(ZY_BRRY)、病人性质代码表(GY_BRXZ)、住院结算信息表(ZY_ZYJS)顺利导入AO2011系统中。
3.分发数据包(略)
4.使用AO系统进行数据分析
(1)使用账表分析功能浏览电子账簿;使用数据分析功能编制SQL语句筛选记录;通过财务数据与业务数据对比验证数据真实性与完整性。
(2)使用数据分析功能分析样业务数据,搜索规律、寻找异常。根据审计经验来判断发现审计疑点,通过查阅相关电子数据以及纸质财务会计资料,审计调查核实来逐一落实审计疑点。
5.使用AO进行文书处理(略)
(二)项目取得成果
成果一
1.审计思路
我们从医院财务数据发现2008至2010年度患者总诊疗费用逐年递增(患者诊疗费用即医院诊疗收入)。诊疗费用由药品费用和医疗服务费用构成,其中患者药品费用占总诊疗费用的比重为40.30%。为分析影响患者药品费用上涨因素,审计对医院业务数据进行计算分析。
影响医院药品收入的变动因素由药品销售价格和药品销售量组成。A医院近三年销售的药品按医院编码统计有5353种,每种药品的销售价格变动时间和变动幅度都不相同,药品销售价格变动率还需要结合同一药品、不同销售单价的销售金额权重来计算,因而要计算每种药品的销售价格变动率非常困难。而药品的规格、计量单位不同,药品销售量不能直接加总,药品销售量变动率无法直接计算,只能由药品收入变动率与药品销售价格变动率推算(测算公式:药品销售量年均增幅=(1+药品收入年均增幅)/(1+药品销售价格年均增幅)-1)。于是我们决定以抽样样本推断总体的方式来推算药品销售价格变动率,再与财务数据中得到的药品收入变动率结合来推算药品销售量变动率。最后将药品销售量变动率与患者就诊量变动率进行对比,进而得出评价结论。
经对A医院药品销售表计算分析,2008至2010年药品销售金额排前50名的50种药品销售金额(50种药品全部是西药)占西药销售总金额比例为26.71%,而药品费用中西药费用所占比重为84.83%。我们作出审计专业判断,决定重点关注西药费用变动,认为可用此50种西药的销售价格变动率来推算医院西药总体销售价格变动率。再与患者西药费用年均增长率结合推算西药销售量年均增长率。 最后将西药销售增长率与患者就诊量增长率进行对比。
思路流程如下图所示:
2.审计方法和步骤
具体审计方法和步骤流程图如下:
步骤一:从财务数据获取西药收入数据。在AO2011系统中,使用“审计分析-电子数据管理”打开各年度财务电子账簿,然后用“审计分析-账表分析-会计科目审查”查询各年度“4040101药品收入/门诊收入/西药”、“4040201药品收入/门诊收入/西药”科目,将贷方发生额(即为各年度门诊西药收入、住院西药收入)记录下来填入下表,并计算增幅。
步骤二:在AO2011系统中使用SQL查询语句,根据《药品门诊收费表》及《药品住院收费表》,以医院编码相同的药品销售金额降序排列后分别生成《药品门诊销售表》、《药品住院销售表》,并保存SQL查询语句。
(1)生成《药品门诊销售表》。
在AO2011菜单“审计分析-数据分析”下的“SQL查询器”中输入下面SQL查询语句,运行后生成分析数据,以《药品门诊销售表》名称保存。
select 医院编码,SUM(销售金额) as 金额
from 药品门诊收费表
group by 医院编码
order by 金额 desc
生成的《药品门诊销售表》如下:
生成的《药品住院销售表》结构与《药品门诊销售表》相同。
(2)生成《药品住院销售表》。
在AO2011菜单“审计分析-数据分析”下的“SQL查询器”中输入下面SQL查询语句,运行后生成分析数据,以《药品住院销售表》名称保存。
select 医院编码,SUM(销售金额) as 金额
from 药品住院收费表
group by 医院编码
order by 金额 desc
生成的《药品住院销售表》结构与《药品门诊销售表》相同。
步骤三:在AO2011中将《药品门诊销售表》与《药品住院销售表》合并生成《药品销售表》。在AO2011菜单“审计分析-数据分析”下的“SQL查询器”中输入下面SQL查询语句,运行后生成分析数据,以《药品销售表》名称保存。
select *
from 药品门诊销售表
union all
select *
from 药品住院销售表
经对此药品销售表计算分析,A医院2008至2010年药品销售金额排前50名的50种药品销售金额(50种药品全部是西药)占西药销售总金额比例为26.71%。我们作出审计专业判断,认为可用此50种西药的销售价格变动率来推算医院西药总体销售价格变动率。
步骤四:整理《药品销售表》,生成2008至2010年《销售前50种药品医院编码表》。在AO2011菜单“审计分析-数据分析”下的“SQL查询器”中输入下面SQL查询语句,运行后生成分析数据,以《销售前50种药品医院编码表》名称保存。
select top 50 医院编码,sum(金额)as 销售金额
from 药品销售表
group by 医院编码
order by 销售金额 desc
生成的《销售前50种药品医院编码表》如下:
步骤五:编写SQL查询语句分别生成2008至2010年各年度前50种药品门诊销售价格变化表、前50种药品住院销售价格变化表。
为分析药品销售价格各年的变化率,需按年度分别生成2008至2010年前50种药品销售价格变化表。因医院药品基础信息维护、设置等原因,同一医院编码的药品可能存在不同的医保编码、药品名称、药理分类、药品类别、药品规格、药品剂型属性,销售单价可能不同,为达到可比性和计算销售单价的准确性,我们将以上属性完全相同的药品作为同一药品,分类汇总计算销售总金额。由于药品收费信息存放在药品门诊收费表和药品住院收费表中,要从药品收费表中获取药品销售价格变化信息,需按门诊、住院分别获取。
(1)从药品门诊收费表中获取药品销售价格变化信息。通过对SQL查询语句中计费日期时间段的变化,分年度生成2008至2010年前50种药品门诊销售价格变化表。使用的SQL查询语句如下:
select 医院编码,医保编码,药品名称,药理分类,药品类别,药品规格,药品剂型,销售单价,
SUM(销售数量) as 数量,SUM(销售金额) as 金额
from 药品门诊收费表
where 医院编码 in (select 医院编码 from 销售前50种药品医院编码表)
and 计费日期>='2008-1-1' and 计费日期<='2008-12-31 23:59:59'
group by 医院编码,医保编码,药品名称,药理分类,药品类别,药品规格,药品剂型,销售单价
(2)从药品住院收费表中获取药品销售价格变化信息。通过对SQL查询语句中计费日期时间段的变化,分年度生成2008至2010年前50种药品住院销售价格变化表。使用的SQL查询语句如下:
select 医院编码,医保编码,药品名称,药理分类,药品类别,药品规格,药品剂型,销售单价,
SUM(销售数量) as 数量,SUM(销售金额) as 金额
from 药品住院收费表
where 医院编码 in (select 医院编码 from 销售前50种药品医院编码表)
and 计费日期>='2008-1-1' and 计费日期<='2008-12-31 23:59:59'
group by 医院编码,医保编码,药品名称,药理分类,药品类别,药品规格,药品剂型,销售单价
步骤六:将上述生成的2008至2010年各年度前50种药品门诊销售价格变化表与前50种药品住院销售价格变化表分年度合并,生成2008至2010年各年度前50种药品销售价格变化表。使用的SQL查询语句如下:
select *
from 前50种药品门诊销售价格变化表08年
union all
select *
from 前50种药品住院销售价格变化表08年
生成的各年度前50种药品销售价格变化表如下:
步骤七:将2008至2010年各年度前50种药品销售价格变化表以EXCEL表形式存放在资料树中,作为审计证据,并用于审计分析。
因A医院对药品名称、药品规格、药品剂型等字段录入不规范,导致同一药品、同一销售单价的记录不唯一,需人工判别合并,故不能以SQL查询语句方式实现平均销售单价的计算。
(1)将上述生成的2008至2010年各年度前50种药品销售价格变化表分别按年导到资料树中。
(2)在AO2011中打开《前50种药品销售价格变化表08年》、《前50种药品销售价格变化表09年》和《前50种药品销售价格变化表10年》三张表,通过审计人员判断不同规格的药品是否为同一药品,并对不同规格销售的药品作出数量调整后,统计分析每年每种药品每种规格的数量与销售金额,计算出各年各药品平均销售单价,经分析计算得出销售价格年均涨幅0.92%,生成《2008至2010年药品销售价格变化趋势表》,保存为EXCEL表。并将此表从“项目管理-资料管理-从系统引入资料”下引入AO2011,保存在项目资料树“审计证据”文件夹下。
《2008至2010年药品销售价格变化趋势表》部分数据如下:
步骤八:在EXCEL中,对《2008至2010年药品销售价格变化趋势表》中数据进行计算,通过销售价格年均涨幅0.92%及西药费用年均涨幅15.68%,测算出西药销售量年均增加14.62%。测算公式为:西药销售量涨幅=(1+西药收入变动)/(1+西药销售价格变动)-1。计算表保存为EXCEL表《西药收入上涨因素分析.xls》。
将此表从“项目管理-资料管理-从系统引入资料”下引入AO2011,保存在项目资料树“审计证据”文件夹下。
审计结论:经过审计分析,西药费用年均增幅15.68%是由于西药价格年均上涨0.92%、西药用量年均增加14.62%引起的。可见,在影响西药费用的因素中,西药用量增加是西药费用上涨的主要因素。而西药门诊用量增幅13.22%超过门诊量增幅3.81%,西药住院用量增幅16.03%超过住院量增幅7.73%。(门诊量与住院量数据来源于医院病案统计室)
西药销售量与就诊量年均增幅对比图如下:
成果二
1.审计思路
国务院《医药卫生体制改革近期重点实施方案(2009—2011年)》(国发〔2009〕12号)提出的“切实减轻群众个人支付的医药费用负担”的发展目标,审计决定关注A医院医保住院患者的个人自付比例的2008至2010年的变化趋势。
根据我们对信息化管理系统(HIS)数据的分析,要分析医保患者住院费用自付比例需要使用住院病人信息表(ZY_BRRY)、病人性质代码表(GY_BRXZ)、住院结算信息表(ZY_ZYJS)三张表的信息。通过这三张表生成各年度综合和住院医保患者(不按病种结算的在职和退休保险)住院费用表、劳工合作及少儿医保患者住院费用表。再将各年度综合和住院医保、劳工合作及少儿医保患者住院费用信息合并在一张表中,进行计算分析,得出审计结论。
审计思路流程如下图所示:
2.审计方法和步骤
具体审计方法和步骤流程图如下:
步骤一:生成2008至2010年各年度综合和住院医保患者(不按病种结算的在职和退休保险)住院费用表。
经过对医保政策和医院医保记账情况的了解,离休和生育保险医保患者的记账比例是100%,此处分析的统计口径不应含这两类病人。另为与医院、社保局核对数据,分析时剔除按病种结算的在职和退休保险患者。
通过编写SQL语句,通过住院病人信息表(ZY_BRRY)、病人性质代码表(GY_BRXZ)、住院结 算信息表(ZY_ZYJS),生成2008至2010年各年度综合和住院医保患者(不按病种结算的在职和退休保险)住院费用表,包含年份、病人性质、费用合计、自费金额、医保记账、欠费金额、结算人数字段。
SELECT '2008年' as '年份', AA.BRXZ '病人性质代码',
(SELECT XZMC FROM GY_BRXZ WHERE BRXZ = AA.BRXZ) '病人性质名称',
SUM(AA.FYHJ) '费用合计',SUM(AA.ZFJE) '自费金额',SUM(AA.YBJZ)
'医保记账', SUM(AA.QFJE) '欠费金额',SUM(AA.RC) '结算人数'
FROM (
SELECT B.BRXZ,SUM(B.FYHJ) FYHJ,SUM(B.ZFHJ) ZFJE,SUM(B.JMJE) QFJE,
SUM(B.FYHJ - B.ZFHJ-B.JMJE) YBJZ,COUNT(*) RC
FROM ZY_ZYJS B,ZY_BRRY C
WHERE B.JSRQ >= '2008-01-01 00:00:00'
AND B.JSRQ <= '2008-12-31 23:59:59'
AND B.ZYH = C.ZYH
AND C.ZYLB <> 3 AND ( C.YBBZ IS NULL OR C.YBBZ = '')
GROUP BY B.BRXZ
UNION ALL
SELECT B.BRXZ,0-SUM(B.FYHJ) FYHJ,0-SUM(B.ZFHJ) ZFJE,0-SUM(B.JMJE)
QFJE,0-SUM(B.FYHJ - B.ZFHJ-B.JMJE) YBJZ,0- COUNT(*) RC
FROM ZY_ZYJS B,ZY_BRRY C
WHERE B.ZFRQ >= '2008-01-01 00:00:00'
AND B.ZFRQ <= '2008-12-31 23:59:59'
AND B.ZYH = C.ZYH
AND C.ZYLB <> 3 AND ( C.YBBZ IS NULL OR C.YBBZ = '')
AND (ZFPB = 1 )
GROUP BY B.BRXZ
) AA
WHERE AA.BRXZ IN (30,31)
GROUP BY AA.BRXZ
ORDER BY AA.BRXZ
步骤二:生成2008至2010年各年度劳工合作及少儿医保患者住院费用表。
经过对医保政策和医院医保记账情况的了解,2008、2009年劳工合作保险政策规定仅转诊可使用医保记账,转诊的医保记账比例为72%,劳工急诊和自行转诊的不能使用医保,2010年增加规定急诊住院的医保记账比例64.8%、自行转诊医保记账比例52%。为剔除2010年度因急诊与自行转诊因素造成的自付比例上升因素,需从劳工合作保险数据中剔除2010年度劳工急诊与自行转诊数据。
编写SQL语句,通过住院病人信息表(ZY_BRRY)、病人性质代码表(GY_BRXZ)、住院结算信息表(ZY_ZYJS),生成2008至2010年各年度劳工合作及少儿医保患者住院费用表,包含年份、病人性质、费用合计、自费金额、医保记账、欠费金额、结算人数字段。
SELECT '2008年' as '年份', AA.BRXZ '病人性质代码',
(SELECT XZMC FROM GY_BRXZ WHERE BRXZ = AA.BRXZ) '病人性质名称',
SUM(AA.FYHJ) '费用合计',SUM(AA.ZFJE) '自费金额',SUM(AA.YBJZ)
'医保记账', SUM(AA.QFJE) '欠费金额',SUM(AA.RC) '结算人数'
FROM (
SELECT B.BRXZ,SUM(B.FYHJ) FYHJ,SUM(B.ZFHJ) ZFJE,SUM(B.JMJE) QFJE,
SUM(B.FYHJ - B.ZFHJ-B.JMJE) YBJZ,COUNT(*) RC
FROM ZY_ZYJS B,ZY_BRRY C
WHERE B.JSRQ >= '2008-01-01 00:00:00'
AND B.JSRQ <= '2008-12-31 23:59:59'
AND B.ZYH = C.ZYH
GROUP BY B.BRXZ
UNION ALL
SELECT B.BRXZ,0-SUM(B.FYHJ) FYHJ,0-SUM(B.ZFHJ) ZFJE,0-SUM(B.JMJE)
QFJE,0-SUM(B.FYHJ - B.ZFHJ-B.JMJE) YBJZ,0- COUNT(*) RC
FROM ZY_ZYJS B,ZY_BRRY C
WHERE B.ZFRQ >= '2008-01-01 00:00:00'
AND B.ZFRQ <= '2008-12-31 23:59:59'
AND B.ZYH = C.ZYH
AND (ZFPB = 1 )
GROUP BY B.BRXZ
) AA
WHERE aa.brxz = 42 --劳工
OR aa.brxz = 43--少儿
GROUP BY AA.BRXZ
ORDER BY AA.BRXZ
步骤三: 将前面步骤生成的08至10年各年度综合和住院保险患者住院费用表、劳工和少儿保险患者住院费用表合并到一张表《A医院2008至2010年医保患者住院费用原始表》。
生成的《A医院2008至2010年医保患者住院费用原始表》如下:
步骤四:在EXCEL中对《A医院2008至2010年医保患者住院费用原始表》数据进行整理计算,得到《A医院2008至2010年医保患者住院费用分析表》,分析结果以下图反映。
审计结论:审计发现A医院2008至2010年医保患者平均住院费用自付现金的比例呈上升趋势,从2008年19.57%上升到2010年21.14%(计算口径不含按规定100%记账的离休保险、生育保险及按病种结算的住院患者)。此发展趋势不符合《医药卫生体制改革近期重点实施方案(2009—2011年)》(国发〔2009〕12号)“切实减轻群众个人支付的医药费用负担”的发展目标。
三、案例特点
特点一:关注民生热点,对医院的绩效评价有借鉴和启示意义。“看病难、看病贵”是社会的民生热点,医疗卫生体制改革也是近年改革的重点。目前我国已启动公立医院改革,确定了16个公立医院改革国家联系试点城市和31个省级试点城市。公立医院改革是医药卫生体制改革的重中之重,改革的进展和成效需要通过医院的各项指标来评价,本案例提供了一个对公立医院绩效评价的思路,具有借鉴和启示意义。
特点二:本案例提供了医院业务数据采集和分析的中间表模式,具有推广价值。由于医院业务的复杂和专业性,其业务数据结构相当复杂,面对医院庞大的业务信息数据,如何快速准确地获取审计需要的中间表直接影响审计人员工作效率。尽管各医院使用的管理系统不尽相同,但基础数据的信息结构雷同,可参考本案例业务数据中间表结构采集数据,帮助审计人员提高效率。
特点三:运用因素分析的方法进行剖析,解决审计数据无法直接量化分析的问题。本案例对影响诊疗费用增长的因素进行量化分析,使分析过程更加清晰严谨,分析结果更具有说服力。医院的药品收入即是患者诊疗费用,药品收入的增长可从财务数据直接得出。影响医院药品收入的变动因素由药品销售价格和药品销售量组成,为分析药品收入增长原因,需测算药品销售价格和药品销售量的变动情况。由于药品的规格、计量单位千差万别,药品销售量不能直接加总,药品销售量变动率无法直接计算,可采用因素分析的方法由药品收入变动率与药品销售价格变动率推算。
特点四:运用样本推断总体的方法使大量计算问题简化。A医院近三年销售的药品按医院编码统计有5353种,每种药品的销售价格变动时间和变动幅度都不相同,药品销售价格变动率还需要结合同一药品按不同单价销售的销售金额权重来计算。由于医院药品信息维护不规范,需要人工判别和调整同种药品,因而要计算每种药品的销售价格变动率非常困难,几乎不能实现。于是我们决定以抽样样本推断总体的方式来推算药品销售价格变动率,再与财务数据中得到的药品收入变动率结合来推算药品销售量变动率。
特点五:运用趋势分析的方法来对医院管理绩效作出动态评价。医院管理的绩效评价一直是个难点,传统评价指标如医院人员支出占业务支出比例、医院每百元业务收入支出、每百元固定资产业务收入、医疗收入递增率、每门诊人次费用、每住院人次费用等静态指标均不能反映医院管理的动态和发展趋势。本案例运用患者诊疗费用、医保患者住院费用自付比例的动态变化情况,对医院管理的发展方向作出评价。
特点六:证明了AO2011的海量数据处理能力。利用AO2011的SQL语句查询功能,对大量的数据进行查询节省了数据处理时间,提高了审计效率,也证明了用SQL SERVER开发的AO2011具有比AO2008更加强大的海量数据处理能力。利用AO2011“生成分析数据”的功能,在AO中生成审计分析中间表数据,清晰直观。
- 附件下载: