贺建峰 宝媛媛 张 俊 胡杨升 张 昊 张明军
1(昆明理工大学信息工程与自动化学院 云南 昆明 650500)2(昆明澳滇科技有限公司 云南 昆明 650000)
基于B/S模式的医学实验室信息平台(LIS)的设计与实现
贺建峰1宝媛媛1张俊1胡杨升1张昊1张明军2
1(昆明理工大学信息工程与自动化学院云南 昆明 650500)2(昆明澳滇科技有限公司云南 昆明 650000)
随着医疗信息化的发展和对检验要求的提高,医学检验实现信息化管理已成为必然趋势,这也使得LIS在专业细分多、技术要素复杂的医学实验室信息管理中越来越重要。然而,传统的LIS大多基于C/S模式进行开发,这种模式开发的平台安装繁琐,扩展性和分布能力差,实现维护和平台移植困难。针对这些问题,基于B/S模式,运用SSH框架和ExtJS技术对LIS平台进行研究并设计开发了一种医学实验室信息平台。结果表明,该平台有效地解决了传统LIS的许多不足,完成并实现了医学实验室的规范管理与信息融合,提高了工作效率。
检验科LISC/SB/S模式SSH框架ExtJS技术
随着自动化的医学检验仪器和设备在医院中的应用和普及,如何更好地实现检验结果的管理和共享,提高医学实验室的工作效率,成了近年研究和探讨的热门课题[1]。将计算机技术融入医学实验室无疑是最好的办法。医学实验室信息管理系统(LIS)就是利用计算机网络技术和数据存储、处理技术,快速高效地对医学实验室信息的采集、存贮、处理、传输、查询和分析等全方位管理的计算机软件系统。目前,LIS在各大医院的使用越来越普遍,它促进了医学实验室信息化、自动化和网络化的高速发展[2]。
就目前而言,国内大多数医院采用的LIS都是基于传统的C/S模式进行设计和开发的,该种模式设计的系统虽然有个性化的用户界面和响应较快等优点,但是由于其需要在每一个用户下安装客户端并且对客户端硬件要求较高 ,给系统的维护和升级带来了极大困难[3,4]。除此之外,基于C/S模式开发的系统跨平台使用难以实现[5]。如果想要跨平台,就得重新开发该系统平台下的客户端,这样又造成了人力和物力的浪费。随着医院检验业务的不断拓展,对实验室管理平台的可扩展性要求越来越高,并且随着4G时代的到来和各种移动终端的应用普及,C/S模式开发的LIS平台劣势表现的越来越明显。
基于以上C/S模式开发的LIS平台的许多不足之处,我们设计和开发了基于B/S模式的医学实验室信息平台。这种模式开发的系统灵活方便,不受客户端限制,只要有浏览器且能上网,就能够登录服务器进行信息处理。鉴于医院已经建立良好的局域网络并且与英特网相连,B/S模式又特别适用于在英特网上公布信息和查询的优点,医学实验室管理平台的B/S模式开发引起了医疗设备信息化研究对其的广泛关注[6]。除此之外,在此种模式下,平台升级和维护也只用在服务器端进行配置就可以完成,跨平台问题也能得到轻松解决。并且随着B/S模式开发工具的逐渐完善,系统前端界面不美观的问题也得到了克服。另外,在该系统开发过程中,融入了ISO15189为原型和指导,将标准化管理的要素融入信息系统的工作环节,用软件来规范操作,履行标准,实现了管理与信息的真正融合[7]。
本医学实验室信息平台基于B/S模式,采用轻量级的Tomcat7.0.54作为应用服务器,Oracle11g作为后台数据库。选择MyEclipse2013 作为开发工具,ExtJS4.2作为界面开发技术并采用了SSH框架。其中ExtJS是一个用JavaScript编写的用于创建前端用户界面的一个与后台技术无关的前端Ajax框架,它提供了一套较为完整和成熟的Web应用的数据包[8]。而ExtJS4.2与以前的版本相比,功能更加丰富,更加符合面向对象的设计,也更能满足医学实验室信息平台以后不断扩展和升级的需要,尤其是它在图形功能的处理方面有了更大的提升,更能满足LIS平台在数据分析、图形展现方面的优势。
SSH是一种多层Web应用程序的框架[9]。它将Struts2、Spring和Hibernate这三个当前流行的JavaWeb开源框架进行整合,从而构建出灵活,易于扩展的多层Web应用程序。SSH架构分为表现层、业务逻辑层、持久层和域模块层[10]。其中表现层用Struts2框架,业务逻辑层用Spring框架,数据持久层用Hibernate框架实现。基于SSH框架的Web系统架构如图1所示。Struts2 是Webwork和Struts的结合,以Webwork为核心,采用拦截器机制来处理用户的请求,它也是MVC设计模式的一种实现,清晰地划分了控制部分、事务逻辑和外观视图,使开发者都可以遵循一个统一的模式进行代码设计,简化了后期系统维护的难度[11]。Spring框架是一个控制反转(IOC)和面向切面编程(AOP)的轻量级J2EE框架,它服务于所有层面的应用程序并有效的组织了系统的中间层对象,使组件的创建与使用更加的耦合。Hibernate是一个功能强大的对象/关系映射ORM(ObjectRelationalMapping)框架,用于对JDBC访问数据库的操作进行轻量级封装[12]。利用Hibernate的ORM技术,可以将数据库中表映射成为对象。
图1 基于SSH框架的Web系统构架图
这样在整个基于B/S模式设计的医学实验室信息平台(LIS)开发中,Struts2负责从界面获取表单及表格的数据并调用事务逻辑层进行业务的各种处理;Hibernate负责与LIS数据库中各功能数据表的交互,对数据进行CRUD操作;Spring则对Hibernate和Struts2进行管理,以提高应用效率。
2.1医学实验室信息平台功能模块组成
基于医学实验室检验环节多,标本种类数量大,专业细分多,技术要求较高,质量管理严格,管理复杂等特点,要求LIS平台必须要满足7×24小时的稳定和高效(一是操作上的高效,操作必须敏捷直观、风格统一;二是在工作量数据量很大时,系统依然运行快)的工作状态等要求,基于B/S模式的医学实验室信息平台(LIS)需要实现如图2所示的功能模块。
图2 LIS主要组成模块图
2.2检验核心业务流程
在整个LIS平台中,检验核心业务模块覆盖了检验项目申请、患者准备、患者识别、标本采集、运送、保存到标本接收、处理、检验,检验结果确认、生成报告以及报告发布等众多检验核心环节,是整个医学实验室业务的主体,所以也是整个LIS平台设计的核心模块。LIS平台检验核心业务流程如图3所示。
图3 检验核心业务流程图
在整个系统设计中,严格参照ISO15189的规范和要求进行设计。检验核心业务模块要求实现检验申请完全电子化,通过与HIS的接口,实现门诊医嘱转化为检验申请条形码,采用条形码管理,不需要再开纸质申请单。系统要能自动检查收费金额是否有误。对未交费的检验申请样品要有提示,如因紧急抢救等特殊情况不能收费的,LIS要有相应的模块进行处理。在样品采集阶段,通过扫描样品上的条形码就能自动记录患者姓名及采集时间。不合格被退回的样品不会进入下一流程,同时有退回原因的记录。样品检验过程要实现全电子化记录,对检验信息改动者要进行强制记录,以保证结果的真实性和检验者责任的明确。要对失控类别进行自动判别,失控时进行自动报警,避免失控时继续进行的无效检验造成时间和试剂的浪费。在报告审核过程中,审核者在报告发出前可以看到该患者的其他检验结果,以防止某种疏忽导致同一患者的各种检验结果互相矛盾。报告发布要实现患者同一诊疗项目的检验结果只生成一张报告单,以解决报告单繁杂和资源浪费的问题。除此外,报告发布还应该充分发挥B/S跨平台易于实现的特点,使患者在具备条件时,在互联网通过密码登录就能查询自己的检验结果。
2.3检验核心业务实体设计
医学实验室进行的一系列的业务操作,最终的目的就是生成准确的检验报告单,根据这个目的,可围绕检验报告单的内容将检验核心业务涉及到的数据分为检验申请、检验仪器、检验项目基础数据、检验报告和仪器接口几大类,从而从这几大类中抽象出检验报告,检验结果、标本检测记录、检验图形结果、检验申请表及检验项目等实体,实体以及实体关系如图4所示。根据如图4所示的实体内容以及实体间的关系,就可以构造出LIS平台核心业务功能模块的数据模型。
图4 核心实体其关系图
基于B/S模式的LIS平台界面的开发主要是以ExtJS4.2技术为主,JSP和CSS等技术为辅来实现。具体的业务逻辑处理、用户的数据访问以及合法校验性等功能的实现通过SSH框架来封装,并由Java语言来实现。这样既能保持界面的美观性和易于维护性,又能保证系统的高效运行。
3.1检验核心业务功能前端实现
检验核心业务功能的前端设计与实现主要考虑到业务的内容和操作者与界面的交互(包括操作者的习惯和界面设计的简易性)。考虑到C/S模式平台的业务键盘操作性特点和操作者的习惯以及业务的特殊性,在该B/S模式设计的医学实验室信息平台前端实现中,改变传统B/S模式设计的习惯,界面操作多增加键盘的应用,下拉选项框也由ExtJS传统设计习惯的一列增加为显示两列,一列是用来进行CRUD操作,一列用来显示。除此外,该平台增加了很多本地过滤功能,减少了操作中对数据库的访问次数,保证该B/S模式LIS平台的效率问题。检验核心业务功能模块界面如图5所示。在LIS平台中,检验核心业务功能模块界面的打开首先访问的app.jsp文件中引入的JavaScript和css源,引入相应源之后系统平台即可根据需要,实例化界面中的表格、表单、窗口等一系列组件,然后再动态加载该模块的.js文件,才可以显示出界面。
图5 检验核心业务功能模块主界面
3.2检验报告单的实现
根据现代医学实验室检验项目繁多,检验复杂,各实验室检验有交叉,病人检验报告单也繁多的实际情况和以往医学报告单的不足,本医学实验室信息平台对医学报告单的实现做了重新的思考。在该平台中,检验报告单的生成首先要通过LIS从检验仪器接收数据,根据标本号和LIS中的检验申请信息匹配出患者信息和检验结果,然后再根据患者的ID查询出检验结果应该使用的报告单模板,然后再对模板采取一定的处理方式将患者基本信息和检验结果信息设入PDF,最后根据设入信息的多少,决定打印报告的页数。在报告单模板的处理中,不同的模板采取的处理方式不同,如:自我免疫检验报告的模板必须要包含患者的骨髓图片,那么在该模板处理过程中就要对图片的显示位置、大小、像素做明确的规定;患者基本信息,检验结果的安放位置也要区别于其他模板。但是在所有类型的报告单中,二维码、患者基本信息和操作员信息是所必须的,所以在处理模板时这一块可以适当抽取一些公共方法以提高程序的重用性、从而降低耦合。报告单中的二维码是由系统根据报告单号自动生成的,在LIS系统中是患者个人信息的唯一标识。报告单通过判断当前模板的行数和患者实际产生的检验结果多少来进行自动分页。由于本系统采用的是B/S模式,它允许患者在允许条件下进行报告单的自助查看和打印。图6是该系统自动生成的自免检验报告单。
图6 自免检验报告单
本文阐述了一种基于B/S模式设计和开发的医学实验室信息平台(LIS),重点介绍了该平台中检验核心业务模块的设计思路与实现。实践表明,基于B/S模式开发的实验室信息平台,具有良好的维护性和可扩展性,有效地解决了传统C/S模式开发的平台的一些问题,提高了检验科的工作效率和工作质量,充分发挥了检验仪器和实验室信息管理的自动化水平。该LIS系统的实现,必将加速医院实验室全面数字化信息管理的步伐。
[1] 陈小婷,郑尾珍.妇幼保健院医学检验系统的设计与实现[J].中外医疗,2013,32(30):189-190.
[2] 庞微微,张瑜.检验信息系统在医学检验中的应用探究[J].中国医院统计,2013,20(3):204-206.
[3] 任慧朋,周宏宇,李强.基于B/S结构的LIS数据分析系统设计[J].中国医疗设备,2014,29(3):56-58.
[4] 徐蕾.基于C#语言开发的医院实验室信息管理系统[D].天津:天津大学,2012.
[5] 杨志和,胡虚怀,王辉,等.混合模式下的高校科研管理系统的设计与实现[J].计算机技术与发展,2006,16(8):211-213.
[6] 刘胜林,张叙天,王国宏.基于B/S模式的医疗设备维护信息平台的开发与应用[J].中国医疗器械杂志,2012,36(2):145-148.
[7] 姚晴虹,柏志安,朱立峰.基于ISO15189认证的LIS系统改造探索[J].中国医疗器械杂志,2012,36(1):59-61.
[8] 张建军,刘虎.基于ExtJS的J2EE轻量级框架的研究与应用[J].计算机应用与软件,2014,31(4):73-76.
[9] 姚敏,王方石.基于MVC模式和SSH框架的高效科研管理系统设计与实现[J].电脑知识与技术,2014,10(11):2485-2487.
[10] 张红卫,贾松涛,李晓,等.基于SSH的多语种构件库管理系统的设计与实现[J].计算机应用与软件,2010,27(5):139-143.
[11] 祝文军.基于Struts框架和Hibernate技术的Web应用的设计与实现[D].大连:大连理工大学,2006.
[12] 李天明,何月顺.基于ExtJS技术与SSH框架的权限管理研究[J].计算机应用与软件,2011,28(5):165-167,205.
DESIGNANDIMPLEMENTATIONOFB/SMODEL-BASEDMEDICALLABORATORYINFORMATIONMANAGEMENTSYSTEMPLATFORM
HeJianfeng1BaoYuanyuan1ZhangJun1HuYangsheng1ZhangHao1ZhangMingjun2
1(School of Information Engineering and Automation,Kunming University of Science and Technology,Kunming 650500,Yunnan,China)2(Aodian Technology Co.Ltd ,Kunming 650000,Yunnan,China)
Withthedevelopmentofmedicalinformatisationandtheincreaseinmedicaltestrequirements,torealisetheinformatisationmanagementonmedicaltestshasbecomeaninevitabletrend,andthismakesthelaboratoryinformationmanagementsystem(LIS)playsincreasinglyimportantroleinmedicallaboratoryinformationmanagementwhichcontainsmanyspecialisationsandcomplextechnicalelements.However,traditionalLISsaremostlydevelopedbasedonC/Smode,andthedevelopmentplatformofsuchmodeiscumbersomeininstallationandhaspoorexpansibilityanddistributionability.Besides,itisdifficultformaintenanceandplatformtransplantationaswell.Fortheseproblems,inthearticlewestudytheLISplatformbasedonB/SmodeandbyemployingSSHframeworkandExtJStechnology,anddesignanddevelopamedicallaboratoryinformationplatform.ResultdemonstratesthattheplatformovercomesmanydisadvantagesoftraditionalLISeffectively,completesandimplementsthenormalisedmanagementandinformationintegrationofmedicallaboratory,andimprovesworkefficiency.
ClinicallaboratoryLISC/SB/SmodeSSHframeworkExtJStechnology
2014-11-02。国家自然科学基金项目(112650 07)。贺建峰,教授,主研领域:计算机技术与应用。宝媛媛,硕士。张俊,硕士。胡杨升,本科。张昊,硕士。张明军,工程师。
TP391
ADOI:10.3969/j.issn.1000-386x.2016.03.018