APP下载

远程住院档案信息查询系统设计

2021-03-02徐州医科大学医学信息与工程学院左海维彭天淳马金凤

电子世界 2021年24期
关键词:功能模块框架入院

徐州医科大学医学信息与工程学院 左海维 彭天淳 王 淋 马金凤

中国矿业大学物联网(感知矿山)研究中心 俞 啸

随着互联网及大数据时代的到来,医院每天面临着海量的数据管理工作,而仅依靠人工对医院住院档案进行管理效率低下且不能充分挖掘档案价值。针对该问题,本文设计并实现了一个基于WEB的远程住院档案信息查询系统。系统整合了SSM框架(Spring+SpringMVC+MyBatis),前端开发框架采用AdminLTE,安全框架采用Spring Security,数据库采用MySQL,WEB容器采用Tomcat。同时,在项目开发中应用Maven进行项目管理。采用B/S(Browser/Service,浏览器/服务器)架构开发系统,使得用户只需用电脑端浏览器便可访问系统,易于部署,便于后期维护。

医疗档案管理是医院的主要日常工作之一。在医院的日常运作中,为了保证患者医疗档案能够安全有序的存储,以备需要时查阅,每天都有大量的整理与查找工作,其中包括门(急)诊病历的保存与查找、入院记录的保存与查找等。通过信息化存储与查询系统提供的存储与查询功能,能够为医院内部的医疗档案提供第二种存储解决方案,提供高效的检索体验,从而提升医院整体服务水平。

档案存储与查询信息化与医疗档案本身的优化改进紧密结合,可以促进医院的医疗档案存储与查询规范化,把医院的医疗档案管理人员尤其是负责查找患者医疗档案的人员从繁杂的、低价值重复的劳动中解放出来,使他们有更多的时间和精力投入更有价值的地方上去。

本文实现的基于WEB的远程住院档案信息查询系统是基于B/S架构的,采用数据库与WEB服务器相分离的做法,用户通过常见电脑端的浏览器进行访问与操作;系统的开发整体使用三层(WEB表现层、SERVICE业务层、DAO持久层)架构,其中WEB表现层使用MVC(Model模型-View视图-Controller控制器)模型;在开发过程中充分考虑了分布、开放、平台无关的特点,系统健壮、安全、组件化方面也做了精心设计,对今后准备开发此类系统的开发人员有一定的理论参考价值和实际帮助。

1 相关工作

1.1 需求分析

基于WEB的远程住院档案信息查询系统需要实现医院日常工作中的门(急)诊病历记录与查询、入院记录的记录与查询、住院流量的记录与图表分析、医院床位状况的实时记录与实时概览功能,为医院各类工作人员提供信息化的便利,使日常工作更加简单、高效,在提升工作效率与效果的同时减轻医院有关工作人员劳动强度,有效提升医院整体服务水平。医疗档案记录与查询信息化与医疗档案本身的改进,进一步促进医院档案管理规范化,提升医院整体运作效率与竞争力,使医院决策人员更加了解医院运作情况从而做出更佳决策。

1.2 Spring简介

Spring是以IoC(Inverse of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为内核的轻量级开源框架。提供用户可选择使用的WEB表现层框架技术SpringMVC和DAO持久层框架技术SpringJDBC,提供SERVICE业务层事务管理等许多企业级应用技术。该框架拥有整合世界上众多著名三方开源框架和类库的能力,所以Spring目前越来越被Java系统开发人士所认可与接受。

Spring能够简化我们的软件开发工作,将很多相对固定,不会变动,又非常消耗时间的底层操作进行了封装,使我们只需用简单的声明和配置就能实现相应功能。比如声明式事务管理,如前文所述,我们只需在SERVICE实现类上加“@Transactional”标记就可以实现,非常的简单和方便,这样,我们可以更加专注于系统业务逻辑的实现而不必在系统底层细节浪费过多的时间与精力。

Spring提供新兴的面向切面编程技术,该技术引入“切面”的概念。如沿系统的Controller面横向切开,写入系统日志记录的程序代码,因为任何访问系统的用户在我们使用MVC模型编写的系统中一定是访问了Controller的,那么我们对所有Controller进行拦截与记录日志,一定可以捕获所有来访系统用户的访问踪迹。当然,也可以沿SERVICE层进行“切面”等。显然,随着系统的功能增长,Controller类一定是越来越多,而只要指定了是Controller的切面,就无需担心Controller的数量,大幅降低编程实现难度与工作量,用更少的时间就能实现更好的系统。

如前所说,Spring可以成熟地集成世界上其他优秀开源框架,比如MyBatis、Struts、Hibernate等,这些框架可以是WEB表现层框架或DAO持久层框架,例如本篇毕设所集成的DAO持久层框架就是MyBatis,WEB表现层框架使用的是Spring提供的基于Spring框架的Spring-MVC框架,总体即构成所谓的SSM(Spring+SpringMVC+MyBatis)框架,该框架目前使用的相当普遍。

“控制反转”是Spring技术的核心之一。我们知道系统代码设计时需要“高内聚、低耦合”,尽量减少不同对象之间的耦合关联。但系统中不同对象间一定需要有信息流通,有一些耦合是必要的耦合,也是不可能消除的耦合,否则系统不可能正确运行。那么这些必须耦合的代码,存在于编写的class文件中,使我们对代码的维护额外增加了相当的成本。Spring提供的解决方案是,将这些必须耦合的部分交由Spring来实现,Spring提供了“IoC容器”,专门存储和管理这些耦合内容。我们实际编程时只需写一个声明“@Autowired”,并写上需要耦合进来的对象即可,大幅减少后期代码维护难度。

2 系统总体设计

整个系统设计共6大功能模块:门(急)诊病历模块、入院记录模块、医院住院流量模块、医院床位状况模块、账户管理模块以及系统日志模块等,各功能模块又包含其子功能模块。系统功能模块图如图1所示。

图1 系统功能模块图

(1)门(急)诊病历模块

包含门(急)诊病历查询、录入与管理等子功能模块,主要支持查阅病历本首页、查阅病历本内容页、门(急)诊病历录入修改追加删除等功能。

(2)入院记录模块

包含入院记录查询子功能模块与入院记录录入与管理子功能模块,主要支持查阅入院记录、查阅24h内入院死亡记录、各种入院记录录入修改删除等功能。

(3)医院住院流量模块

包含医院住院流量查询与绘图分析子功能模块与医院住院流量录入与管理子功能模块,主要支持按“住院流量查询与绘图分析起止日期”筛选数据库内已有住院流量数据并绘制相应统计图、住院流量数据录入修改删除等功能。

(4)医院床位状况模块

包含医院床位状况概览子功能模块与医院床位状况更新子功能模块,主要支持展示全科室总计和各科室信息、医院床位状况更新、录入表单数据前台校验等功能。

(5)账户管理模块

包含密码修改子功能模块与账户管理子功能模块,主要支持系统所有用户账户角色自主修改自身密码、对查询到的用户账户更改账户信息等功能。

(6)系统日志模块

包含系统日志审计子功能模块,主要支持条件联合检索对访问系统的用户操作记录进行筛选、审计的信息项展示等功能。

3 基于WEB的远程住院档案信息查询系统

3.1 系统结构设计

本JavaWeb系统采用数据库与WEB服务器相分离的开发模式,WEB服务器Tomcat内含JavaWeb系统的WEB表现层,WEB服务器与JavaWeb系统的SERVICE业务层对接,SERVICE业务层与DAO持久层对接,DAO持久层使用MyBatis框架与数据库服务器MySQL对接,用户通过PC端主流浏览器通过网络访问WEB服务器Tomcat。系统的结构如图2所示。

图2 系统结构示意图

3.2 系统数据流图

系统顶层数据流图如图3所示。图中,系统角色分为“系统总管理员”、“门(急)诊病历录入员”、“入院记录录入员”、“住院流量数据录入员”、“床位状况数据更新员”、“普通查询用户”六种。“系统总管理员”可向系统中输入门(急)诊病历、入院记录、医院住院流量、医院床位状况、账户等数据,可从系统中得到账户、日志等数据;“门(急)诊病历录入员”可向系统中输入门(急)诊病历等数据;“入院记录录入员”可向系统中输入入院记录等数据;“住院流量数据录入员”可向系统中输入医院住院流量等数据;“床位状况数据更新员”可向系统中输入医院床位状况等数据;所有角色均可从系统中获得门(急)诊病历、入院记录、医院住院流量、医院床位状况等数据,均可向系统输入更改的新密码数据。

图3 系统顶层数据流图

4 系统设计与实现

4.1 环境搭建

数据库使用MySQL Server 5.6,JSP容器使用Apache公司的Tomcat 7.0,系统运行环境为Windows 10家庭单语言版21H1 64位,开发工具使用IntelliJ IDEA 2018.3.5、Navicat for MySQL 11.1.13等,Maven项目管理工具使用IntelliJ IDEA 2018.3.5内置的Maven3.3.9。

本系统页面设计基于AdminLTE前端页面开发框架。AdminLTE基于bootstrap和jquery框架开发,其拥有多套常用页面模板。使用AdminLTE不仅美观、而且免去大量的CSS与JS代码的工作量。

4.2 数据库设计

数据库技术是检索与管理大量信息的有力武器。对给定的系统应用环境,构造出合适的数据库模式、建立数据库表、实现有效的数据存储、满足用户对系统的各种信息方面的需求以及数据库结构的更优设计是我们设计数据库时的基本任务。本系统涉及的具体模块数据库设计及相应功能较多,下面以门(急)诊病历查询功能模块为例,给出具体介绍。

由于现实中门(急)诊病历本拥有1页首页和多页内容页,是1对多的关系,所以将“门(急)诊病历首页表”的表项homepageUuid作为“门(急)诊病历内容页表”的外键,门(急)诊病历表的外键关系图如图4所示。

图4 门(急)诊病历表外键关系图

4.3 功能演示

门(急)诊病历查询页面支持“患者名”、“性别”、“出生日期日期区间”、“民族”、“工作单位或住址”五项条件联合检索数据库内已录入的门(急)诊病历,可展示信息项有“患者姓名”、“性别”、“出生日期”、“民族”、“职业”、“婚姻状况”、“工作单位或住址”、“药物过敏史”等8项内容。门(急)诊病历查询页面如图5所示。

图5 门(急)诊病历查询页面

在系统认证与授权功能的设计方面,本系统设计账户认证过程时采用了Spring Security安全框架。由于本系统使用SSM框架开发,而Spring Security安全框架包含在Spring框架内,且Spring Security功能强大、安全性高,故本系统在安全框架的选用中选择Spring Security。同为流行的安全框架还有Shiro。用户在尝试登录时,Spring Security可以使用用户键入的username来得到一个UserDetails对象。UserDetails对象包含该用户名对应的密码信息,接下来应当将用户输入的password与UserDetails对象中密码信息进行比对,比对通过即完成了“认证”过程。系统登陆页面的表单部分如图6所示。

图6 系统登陆页面的表单部分

本文以提高医院住院档案管理效率为目标,设计了一个基于WEB的远程住院档案信息查询系统。综合运用Maven、SSM框架、Spring Security安全框架、AdminLTE前端开发框架等对系统进行了实现,能够在有效提升系统开发质量的同时大幅减少编码工作量。系统操作简单,运行稳定,在住院档案查询管理工作中具有一定应用价值。

猜你喜欢

功能模块框架入院
利用信息技术再造急诊入院管理流程*
框架
住院医师入院教育实践与效果探索
广义框架的不相交性
基于ASP.NET标准的采购管理系统研究
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
关于原点对称的不规则Gabor框架的构造
一种基于OpenStack的云应用开发框架
功能模块的设计与应用研究