翟娜,余浩,史洪飞
解放军总医院 医学保障部计算应用与管理科,北京 100853
基于Web的实验室质量控制系统的设计与实现
翟娜,余浩,史洪飞
解放军总医院 医学保障部计算应用与管理科,北京 100853
为了实现检验科室对仪器质量控制数据的管理,开发了实验室质量控制系统。系统基于.NET开发平台,采用B/S 3层结构模式构建。借助开源OFC(Open-Flash-Chart)框架的图形报表绘制功能,实现多种质量控制图,并用Flash形式动态展示质量控制图的详细信息;利用jQuery技术将系统页面中显示的flash保存成静态图片,实现了Web方式打印质量控制报告。实际使用过程中,实验室管理人员可以检测质控过程,实时掌握所有质量控制数据和质量控制图。实验室工作人员可以即时打印质量控制报告,摆脱了传统的手工绘制质控报告,提高了工作效率。同时,该系统的设计方案还可以扩展到其它统计图表的应用系统中。
实验室质量控制系统;B/S结构;质量控制图;OFC框架;jQuery
实验室质量控制是指将分析测试结果的误差控制在允许限度内所采取的控制措施。它包括实验室内质量控制和实验室间质量控制2部分内容[1]。实验室内质量控制过程包括空白实验、仪器设备的标定、质控品的选择、标准差和均值的确定、质量控制图的绘制以及失控的判断等,是实验室分析人员对对测试过程进行自我控制的过程。实验室间质量控制包括分发标准样对诸实验室的分析结果进行评价、对分析方法进行协作实验验证、加密码样进行考察等,是发现和消除实验室间存在的系统误差的重要措施。
随着医院检验科室的仪器种类日益增多,更新速度很快,对仪器质量控制结果数据的共享、质量控制报告(以下简称为质控报告)的生成等实验室内质量控制的需求愈来愈突出。为了方便实验室管理人员实时掌握仪器的质量控制数据、质量控制图(以下分别简称为质控数据、质控图),即时打印质控报告,计算机室自主开发了基于Web 的实验室质量控制系统。
1.1 功能设计
通过调研,检验科室实验室内质量控制的需求主要有:及时查看质控结果数据,判断数据是否失控,查看指定时间范围内的质控报告,打印符合管理要求的质控报告等。结合已有的检验信息系统,实验室质量控制系统主要实现两大功能,见图1。
(1)质控数据的管理。查询仪器当前日期内的全部质控数据,根据程序界面中提供的靶值、结果值等信息作为依据,选择部分质控数据,用以形成仪器质控图。
(2)质控图的管理。主要实现两种常用的质控图:Levery-Jennings图、Z-分数图。每种质控图都需要完成显示及质控报告打印功能。质控图的显示界面中,用红线、蓝线分别代表2个、3个标准差值,质控点可以动态呈现多种相关信息,界面提示质控点的失控规则[2]。质量控制报告的打印效果完全符合用户传统的手工绘制图。
图1 系统功能结构图
1.2 架构设计
采用基于.NET开发平台的测浏览/服务器(Browser/Server,B/S)模式体系结构,B/S结构是对C/S结构的一种改进。在B/S结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端实现,主要事务逻辑在服务器端实现,形成所谓3层结构[3]。这大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。系统架构图,见图2。
图2 系统架构图
2.1 开发环境及工具
本系统的开发环境:Web服务器为Windows Server 2000和IIS6.0;数据库为Oracle 10g release2;开发工具:Microsoft Visual Studio 2008;使用技术为Asp.net,Open-Flash-Chart,jQuery。
2.2 数据结构
系统采用“军字一号”中检验模块的数据库表,通过数据结构的扩展,实现基于Web的实验室质量控制系统。新增了记录质控标本的数据表(质量控制标本表、质控标本参数表、仪器与质控标本对照表),仪器的质控结果数据表(质控原始结果表、质控结果表),质控规则数据表(质量控制规则表、仪器与质控规则对照表)等。
2.3 主要技术
2.3.1 Open-Flash-Chart
Open-Flash-Chart(OFC)是一个开源的 Flash 图表绘制工具[4],提供了各种程序接口的数据生成方式,包括:PHP、Ruby、Perl、Python、Java、.Net、AS、JS 等。 通 过Flash 展示的功能,很简单地就生成直观、形象的数据统计图表。
OFC 提供了很强大的图形报表绘制功能,依赖于Flash,使得图形美观、流畅,具有很好的动态效果。OFC所支持的统计样式比较丰富,包括:Line Chart、Bar Chart、Area Chart、Pie Chart、Scatter Chart、Radar Chart等。OFC 2.0提供了对JSON格式数据的支持,可以用 JSON来描述图表,通过OFC加载JSON数据持久化后的文本文件,就能展示该图表。
结合OFC的上述优势,本系统采用OFC 2.0很好地实现了质控图的动态显示功能。页面中OFC控件的引用语句为:
swfobject.embedSWF("open-flash-chart.swf","div_id","8 00","440","9.0.0","expressInstall.swf")
OFC主要包括三部分:OpenFlashChart.dll(基础类,定义了方法和属性);open-flash-chart.swf(Flash的展示控件);swfobject.js(定义方法对open-flash-chart.swf控件进行控制,包括控件大小、显示位置、支持的Flash版本、指定图像数据等)。本系统只采用了open-flash-chart.swf、swfobject.js两部分,依据OFC支持的基础类,自定义了OFCClass类,及 Title、Axis、Legend、ToolTip、Element等相关类,主要实现功能有以下几方面。
Axis+Legend实现带有描述信息的坐标轴:Axis类用来实现坐标轴,默认的只有1个X轴和1个Y轴,需要指定其最小值、最大值、阶等信息。 Legend类用来为坐标轴添加描述信息。ToolTip实现动态显示信息提示框,为用户提供更加详细的内容。OFC支持多种提示框模式,我们采用的是模式2,即只有在坐标点处才会显示信息提示框。Element用来实现多色彩的坐标线、质控数据线。系统中将2个标准差刻度线标识为红色,将3个标准差刻度线表示为蓝色,更加清晰地展示质控图。并且通过Element还实现了Z-分数图中多水平质控数据线的集中显示,即在1个图中显示多条质控数据线。
完成OFCClass类的定义及实例化之后,将其以字符串的形式传到前台页面,经json2.js将字符串转换成JSON格式,然后呈交给OFC控件,显示出动态的检验质控图。具体实现过程:① OFCClass类的实例化;② 利用内存流读写方式,将实例化对象写入内存,经过处理后,以字符串的形式传到前台页面;③ 由json2.js将字符串转换成JSON格式;④ 把JSON格式数据呈交给OFC的open-flash-chart.swf控件,显示出动态的检验质控图。
2.3.2 jQuery
jQuery是继prototype之后又一个优秀的Javascript框架。它是轻量级的js库,它兼容CSS3,还兼容各种浏览器。jQuery的最新版本jQuery 1.5与其它版本相比较,修复了83个bug,解决了460个问题。重大改进有:重写了Ajax模块;新增延缓对像;增强了遍历相邻节点的性能等[5]。
运用jQuery将系统页面中显示的Flash保存成静态图片。jQuery对象通过函数get_img_binary()可以获取图像的base64编码,具体实现为:
系统在实际应用中遇到的问题:由于IE6、IE7不支持base64码,无法直接将Flash转换成静态图片。解决方案:为了在IE6、IE7中兼容,系统中把jQuery对象通过函数get_img_binary()获取到图像的base64码发送到服务器,利用文件流处理技术将其保存为服务器端的图片文件,再返回浏览器的页面中将图片显示在元素中。
2.3.3 Web打印
Web应用程序的开发过程中,都会面临一个共同的难题:客户端页面打印控制问题。目前,比较成熟的Web打印方法有3种:自定义控件完成打印;利用IE自身打印;将报表导出成Word、Excel或PDF形式打印。
根据应用实际需求,选择利用IE自身实现打印。为了防止前台页面在打印时出现错行显现,通过后台代码来控制前台页面排版。Web打印时页面总是自动带有页眉、页脚,非常影响打印效果。系统在开发过程中考虑了2种方案:① 通过javascript脚本程序来控制;② 在客户端直接清空注册表中浏览器PageSetup:footer/header的数值。两者都可以清除打印页面中的页眉和页脚,前者需要在客户端安装ActiveX控件,原理是在程序中改变注册表内容。
通过实验室仪器质量控制系统的设计与开发,得出以下两点结论:
(1)采用OFC2.0+jQuery技术相结合,可以实现用户的特定需求:动态展示,静态打印;使得程序的层次清晰,有利于系统维护及代码重用。
(2)利用OFC强大的图表支持功能,可以扩展实现多种检验质控图。
目前,本系统已经在临床检验科试运行,实验室管理人员可以方便、及时地监测质控过程的各个环节,检查质控结果是否可靠,确保质控环节中所有阶段运行良好。同时,本系统的应用使得实验室工作人员从繁重的手工绘制质控图工作中得以解脱,提高了工作效率。
[1] 临床实验室定量测定室内质量控制指南(GB/T20032302-T-361)[EB/OL].(2008-01-26)[2011-05-20].http://wenku.baidu.com/view/56bd59b91a37f111f1855bd4.html.
[2] WESTGA RDRULES AND MUTIRULES[EB/OL].(201-08-18)[2011-05-20].http://www.westgard.com/mltirule.htm.
[3] 刘同波,邱明辉,薛万国.基于Web的门诊实时查询系统的设计与实现[J].中国医疗设备,2008,23(4):27-29.
[4] Open-Flash-Chart[EB/OL].(2010-10-19)[2011-05-20].http://teethgrinder.co.uk/open-flash-char.
[5] jQuery[EB/OL].(2010-12-23)[2011-05-20].http://docs.jquery.com/Downloading_jQuery.
[6] 美国福禄克公司.临床工程指引:医疗仪器设备临床应用分析评估[M].北京:中国讲师出版社,2009.
[7] 中国国家标准化管理委员会.GB 9706.28-2006,医用电气设备 第2部分:呼吸机安全专用要求 治疗呼吸机[S].北京:中国标准出版社,2006.
Design and Implementation of Laboratory Quality Control System Based on Web
ZHAI Na, YU Hao, SHI Hong-fei
Computer Application and Management Section of Medical Assurance Department,General Hospital of PLA, Beijing,100853, China
To implement the management of data quality control in laboratory, we developed the laboratory quality control system. This system is based on .NET development platform and B/S mode. The system uses the open-source OFC (Open-Flash-Chart) framework that generates quality control chart and displays detailed information about the chart with flash format. The system also uses jQuery framework that saves the quality control chart as picture and prints the web page as report. The managers of laboratory can real-time monitor the quality control process and master the data and chart about quality control. The workers of laboratory can print the report instantaneously by means of the system, instead of drawing the report by hand. At the same time, the design can be extended to other application in which the system generates statistical chart.
laboratory quality control system; B/S structure; quality control chart; OFC framework; jQuery
TP317.3
A
10.3969/j.issn.1674-1633.2011.10.09
1674-1633(2011)10-0033-03
2011-05-20
2011-06-12
本文作者:翟娜,硕士研究生,工程师,主要从事医院信息系统研发。
作者邮箱:zhnem@126.com