田 琪
广州市卫生信息中心,510180 广东 广州
医院的管理离不开数据的支撑。医院信息系统繁多,数据结构复杂,维度多面,普通的报表制作效率低,多为月报、年报,已不能满足现代医院的快速发展需求。医院信息化建设使医院统计工作模式也不断发生改变,既定的信息系统,可以查询及获取固定的数据,然而实际工作中,对数据的需求不是一成不变的,变动的需求增加了统计工作的难度。数据库具有数据结构化、共享性高及统一管理和控制的特点[1]。在实际统计工作中,笔者建立了一套基于数据中心的卫生统计工作模式,通过建立数据库,针对不同的统计需求,编写对应的SQL脚本,达到快速、准确、可循环地解决实际问题,提高统计工作效率,更好地为医院管理者提供统计信息资料及决策依据。
工作模式流程见图1。
本文以Microsoft SQL Server 2008 R2 为例,新建本地数据库,命名为“医院统计数据库”,将《广东省医疗机构病案统计管理系统》后台数据库中的报表数据及医院HIS系统查询的报表分别导入其中,具体表格结构见表1。
图1 卫生统计工作模式流程
表1 医院统计数据库数据结构表
数据内容不限于表1所列出的,可根据实际开展的统计工作进行添加,如开展重点专科工作、绩效考核工作等。这些都可以将相应的数据导入数据库,建立对应的数据表格式结构。
数据库日常维护中,数据库中报表的数据需要不断更新,需要查询、删除、更新、插入等操作。
建立select查询脚本可以获取我们需要的具体指标数值,如查询2018年3月份全院出院人数,可编写脚本:(select fout from tzyhospitalworkreport where freportdatestr=’2018-03’ and ftykh=’ TZYQY’),其中,fout 代表出院人数, freportdatestr=’2018-03’ 代表出院日期为2018年3月,ftykh=’ TZYQY’ 代表科号等于TZYQY,即全院的科号。
若插入新的数据,则需要将新数据与原来的数据进行合并,如将某月(2018年3月)新汇总的医院工作报表(门诊部分)数据添加到数据库tmzhospitalworkreport表中,可编写脚本:(merge tmzhospitalworkreport as A using [0tmzhospitalworkreport〗 as C on (A.freportdatestr=C.freportdatestr) when not matched then insert values ([FID],[FREPORTCODE],[FREPORTDATESTR],[FTYKH],[FKSNAME],[FZLRC],[FMZZLRC],[FMZZLRCZJ],[FJZZLRC],[FJZZLRCDEAD],[FCAR],[FHOMESERVER],[FOTHER],[FGCSPATIENT],[FGCSDEAD],[FJZWZQJRC],[FJZWZQJSUCC],[FJZWZQJSUCCPER],[FJKJC],[FJZSS],[FAVERMJZ],[FREMARK],[FPX]) Output $Action,inserted.*;),其中,[0tmzhospitalworkreport]表为需要新数据表的表名,脚本通过判断日期是否存在,若不存在,则将表[0tmzhospitalworkreport]的数据合并入本地数据库。
医院统计工作包含数据查询、数据质控、数据分析等过程,在已建立的医院统计数据库的基础上,编写相应的SQL统计脚本,可以高效地解决统计工作中存在的问题。
对于每月固定需要制作的统计报表,可以在数据库中创建存储,而由于存储过程不像解释执行的SQL语句那样,在提出操作请求时才进行语法分析和优化工作,运行效率高,提供了在服务器端快速执行SQL语句的有效途径。也不需要每次输入冗长的SQL语句[2-3,7-8]。
例如医院每月会对医疗业务数据进行统计分析,主要与上年同期进行对比,通过增减幅、排序、累计下降次数及标准化对比进行分析。现以2018年3月数据为例,通过创建存储(图2)建立存储过程,建立之后每月执行存储过程mzrcbb(图3)即可得出固定的统计报表。
例如病案首页数据的质控,通过编写SQL脚本,可以查出数据存在的问题,并予以改正,提高数据质量。病案首页包含患者个人信息、疾病手术信息及费用信息等,是目前卫生系统提供决策支持的主要数据来源之一,数据质量尤为重要。病案首页数据字段繁多,普通的手工质控效率较低,通过编写SQL脚本进行完整性、规范性及逻辑性地评估,对审核通不过的数据在上报前进行更正,从而保证数据的准确性[4,6]。
针对患者身份证信息登记错误,可以在医院统计数据库通过以下SQL脚本查询得出:
DECLARE @CYSJ1 VARCHAR(12)
DECLARE @CYSJ2 VARCHAR(12)
SET @CYSJ1=′2017-01-01′
SET @CYSJ2=′2017-12-31′
select fsry 输入员,fprn as 病案号,ftimes as 住院次数,fname as 姓名,fage
年龄,fcountry 国籍,fcydept as 出院科室,fidcard as 身份证号,error=′身份证号填写错误′,from tpatientvisit where fcydate >= @CYSJ1 and fcydate <= @CYSJ2 and fage not like′D%′ and fage not like ′m%′ and substring(fage,2,4) >18 and fname not like′%无名氏%′ and fcountry =′中国′ and len(fidcard)!=15 and len(fidcard)!=18
图2 创建存储
图3 执行存储
医院统计分析报告,是管理者决策的依据之一。统计分析报告是对现阶段运营状况以数据、图表及文字形成的报告,反映医院经济情况及医疗质量,分析其影响和形成原因等[9]。医院的统计分析报告一般分为月度、季度及年度,相对固定的统计分析报告,可以通过数据库建立可重复性操作的工作模式。例如每月需要撰写一份统计分析报告,制定分析报告的内容尤其重要,主要分门急诊、医技、住院及收入这几方面进行分析,每一方面都确定相应的统计指标。如住院工作方面,会通过床位使用率、平均住院日、床位周转次数等进行描述性统计分析[5]。
制作统计分析报告前,需将所有使用的指标汇编成数据结构表,包含指标名称、字段名、所属类别及来源。部分指标数据结构如表2所示。
制定出指标数据结构表后,编写SQL统计脚本(图4),在分析报告模板上导入统计指标数据,输入后分析报告见图5及图6。
医疗卫生统计工作中,基于数据库管理的医院统计工作模式,统一管理及调用数据,利用数据库表与表间的交互作用,解决繁琐的数据处理过程,提高数据处理及统计效率,形成统计工作标准操作准则(SOP),及时准确地为医院管理者提供数据及统计分析报告。
表2 统计分析报告指标结构表
图4 编写SQL脚本及统计指标
图5 分析报告模板
图6 分析报告初稿
[1] 王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006.
[2] 屠海波.应用SQL语言进行数据查询与统计[J].中国卫生统计,2007,24(4):424-425.
[3] 吴晓云,郑银雄,冯笑玲.基于数据库的医院病案信息SQL查询[J].中国卫生统计,2014,31(1):144.
[4] 许泽杰,丁赞.运用SQL语言对病案首页数据质量进行监控的实例分析[J].中国卫生统计,2018,35(3):1-2.
[5] 王芳,宋蓉.医院统计分析要抓好五方面工作[J].中国医院统计.2017,24(2):159-160.
[6] 顾晓鸣.运用Select编写锁定警示语句审核病案首页信息[J].中国医院统计,2008,15(2):117-119.
[7] 周琴.掌握SQL查询提高统计效率[J].中国医院统计.2008,15(2):100-101.
[8] 刘冬生,欧阳菊香,王尔笑,等.基于SQL的重点疾病和重点手术查询统计[J].中国卫生统计,2015,32(5):863-864.
[9] 李向红,高月华.提高医院统计工作质量 促进医院科学管理水平[J].中国卫生统计,2011,28(3):352.