APP下载

STRUTS框架的病理查询系统的设计和实现

2018-05-14江晓鹏俞云程晓青赵富宽

中国卫生产业 2018年7期

江晓鹏 俞云 程晓青 赵富宽

[摘要] 随着中国改革开放,中国的经济飞速发展,特别是信息化,智能化,网络化。我国的医疗体系改革也一直在不断深化中,对各级医院的信息化和规范化的要求越来越高,越来越全。特别是对于中小型医院,信息化投入不够多,信息化水平还有待提高,如何提高中小医院的信息化水平和工作效率,是中小医院的一项问题。这里针对于当前工作所在医院的实际情况和所碰到问题,结合所学的计算机设计和编程经验,设计、架构和实现了医院病理自动查询系统,提高了该医院的工作效率,也是为解决中小医院所碰到的问题的提供一种信息化解决途径。

[关键词] MVC;STRUTS;自动查询;历史查询;修改次数;颜色声音提示

[中图分类号] R302 [文献标识码] A [文章编号] 1672-5654(2018)03(a)-0151-03

随着医疗体系的不断完善和改革,我国的医疗事业迅速发展,保障的人群也越来越多,人们也越来越关注身体健康。随着的是医院的门诊、住院量增加,对于医院也是可挑战和机遇,如果能更好地利用信息化,网络化,智能化来武装自己,不仅提高了工作效率、工作质量[1-2],也对人们来说是一种好的体验。但对于中小医院来说,信息化投入资金有限,信息化程度不全,这就需要医院信息化工作人员,另辟蹊径,解决矛盾。该课题就该医院当前遇到病理报告查询问题提出解决方案[3]。

1 需求分析

目前医院遇到以下问题:医生给患者做手术的同时,会取一部分标本,给予病理科鉴定,在手术过程中病理科立即鉴定,但报告需要打印送出,而且需要电话通知,两部门中间还有段距离,这影响了工作效率,效应时间也滞后。

该文根据以上分析,设计基于MVC的STRUTS框架的WEB系统,即医院病理自动查询系统,既有较强针对性,也有通用性和网络共享能力。通过架构此WEB系统,解决了之前人工方式的滞后性,即实现了实时性,也兼顾了历史的记录。提高了工作效率和信息化程度[4-5]。

此系统有以下特点:①简约的系统操作界面。整个系统界面简单,明了,避免医护人员阅读的难度。②系统全自动化查询。全自动化查询,无需人工介入,当有新发布的病理报告,自动显示在最上面。③可查询历史记录和导出。实现了历史记录的翻阅和导出功能,以备案。④新消息声音和颜色提示。当有新报告或修改时,显示在最上面,且颜色区别和声音提示。

2 总体设计

STRUTS是基于MVC设计模式的WEB应用框架,在STRUTS作为控制器来建立模型与视图的数据交互,提供了MVC的一个清晰的框架[6]。

基于上述理论,该次采用了基于J2EE的MVC的STRUTS框架。具有可用性,可扩展性,已维护性特点[7-8]。

基于以上描述本系统采用设计系统结构图见图1。

3 详细设计

依照医院信息化要求,和该医院现有矛盾的特点,结合自己对手术室医护人员的咨询的调查,该系统功能需求如下:①病理报告保存时,能及时在该系统查询到该报告。②系统最新的报告或最新修改的报告显示在最上面。③当病理报告修改时,重新发布,插入一条新纪录,记录修改次数。④当有新报告或重新修改报告时,声音提示,且修改过的报告颜色区分。⑤能查询历史记录和每次的修改记录。⑥右键可选择“导出到 Microsoft Excel”导出到Excel表。

系统定时刷新,自动查询病理报告,查询的报告与数据库中进行比对,是否已存在该患者病理报告,如无,则插入一条新记录,如果存在该患者报告,则比较发布时间是否一致,如不同,则认为修改过记录,插入一条新记录,修改次数加1;如果发布时间一致,则抓取本机web页面,查看该页面是否已经显示,已经显示则结束,如果该页面没有,则认为是新消息,提示语音,如果修改次数不为0,则认为修改过报告,颜色区分提醒。具体业务流程见图2。

系统需要历史记录表记录每次查询的报告数据,包括申请号、姓名、手术间、报告日期、报告医生、性别、年龄、申请科室、病区、检查结论、修改次数、是否修改。见表1。

4 系统实现

下面是该系统的开发和运行环境:①开发语言:J2EE企业框架,JAVA编程语言,基于MVC的STRUTS框架,JSP界面。②数据库:SQLSERVER 2008。③开发工具:ECLIPSE。④WEB服务器:TOMCAT。⑤硬件环境: CPU四核2.0以上,内存4G,硬盘500G。⑥运行环境:WINDOWS XP,2000,WIN7及以上操作系统,Internet Explorer 及搜狗,360等浏览器

开发病理自动查询系统的过程中,遵循着MVC模式的理念,采用STRUTS框架开发,界面采用JSP,业务层包装DAO与数据库交互,通过ACTION控制业务流。由于该系统系统代码过多,所以该文只用关键部分代码阐述基于MVC的STRUTS框架的方法和过程。

4.1 Action业务流

String newmsg=“0”;

for(int i=0;i

{HosBlxx bl=(HosBlxx) l.get(i);

HosBlxx queryBl= blxx.queryHosBlxx(bl);

if(queryBl.getID()>0)

{if(!(queryBl.getReportTime().equalsIgnoreCase(bl.getReportTime())))

{//如果有修改,修改次數加1

bl.setXgcs(queryBl.getXgcs()+1);

blxx.insertHosBlxx(bl);

bl.setSfxg(1);

newmsg=“1”;

}else{ //如果无修改,取得修改次数

bl.setXgcs(queryBl.getXgcs());} }

else //如果有新增报告,修改次数为0

{bl.setXgcs(0);

blxx.insertHosBlxx(bl);

bl.setSfxg(0);

newmsg=“1”;

}

queryList.add(bl);

}

request.setAttribute(“newmsg”,newmsg);

request.setAttribute("blxx", queryList);

return“success”;//返回数据

4.2 JSP页面的JS脚本的处理

...……
icp