方敬东
(南京市第一医院临床医学工程处,南京 210000)
随着时代变迁,科学技术飞速发展,计算机技术在各个领域中都有着举足轻重的地位[1]。目前许多医院都加入了现代化进程,各个临床科室都配备了许多先进的医疗设备,但由于发展水平和人员技术水平的不同,医院医疗设备实际的使用年限也有所不同。医疗设备正常工作状况与故障维修进度,直接影响到医院各项工作的正常开展,作为计算机技术运用的一部分,医院需要将医疗设备维修管理系统运用在日常工作中,通过维修人员实时检测设备的运行状况和对有故障的医疗设备及时维修,得到医疗设备的安全保障,这部分工作也是医院工作人员的重要工作。随着社会的发展,医疗问题成为当今社会面临的非常重要的问题,而医院中的医疗设备能否正常使用在一定程度上可以影响医院的日常运转效率。通过使用高科技技术,可以更加快速高效地完成医疗设备的检测和维修[2],更好地保证医院医疗设备的正常运转,也能及时为需要治疗的人群提供帮助。
Sringboot技术的发展是顺应Java技术发展而诞生的,是Javaweb开发的最新并且使用最为广泛的全新开发框架[3]。在最初的Spring应用时是非常麻烦的而且很容易出现问题,每次安装项目和部署时总因为各种Jar包导入错误或者是Jar包冲突等各种问题导致项目失败。因此Springboot开发框架的诞生就是为了解决Spring应用所存在的瓶颈问题,正是Springboot开发框架的诞生使得Spring应用更加广泛。Springboot开发框架的出现还解决了开发人员的样板化的配置问题,使得在快应用领域发挥更加重要的作用,同时Springboot开发框架也成为了蓬勃发展的快应用领域的领导者[4]。
JavaScript是一种编程语言,它的特点就是函数优先、轻量级、解释性以及即时编译等[5],如果JavaScript技术没有出现,那么web前端将会是静态的,无法使得 web前端出现各种酷炫的效果。JavaScript是脚本语言,与前端技术对接,如ajax、css、html等技术,这些技术组合使用并且各司其职,才使得web前端技术最广泛的应用,包括PC端、小程序等以及其他移动端等,都有JavaScript技术的身影。同时JavaScript技术还支持面向对象编程[6],尤其是对于DOM的操作以及提供的各种各样的函数库等,都是web技术开发所需要的。
Mysql是一款关系性质的数据库,此外,Mysql和现今比较流行的一些编程语言结合得很好,为这些主流技术提供可靠的数据存储。Mysql由于体积小,具有高速性,源码免费,所以Mysql得到了广泛的应用[7],为很多中小维修,开发网站或者其他应用方面降低了成本。
整个系统的开发是采用Javaweb系列技术,如Springboot框架、Mysql数据库等,使用目前比较流行的JDBC来连接数据库[8],而且这些技术都是免费的,尤其是Java语言,在遇到问题的时候,网络中存在大量的知识社区,可以在很短的时间内得以解决,因此是可行的。
2.2.1 需求背景
随着经济社会的发展,现在的人们更加关注自身的健康问题,这也对医院提出了更高的要求。目前医疗设备的管理和维修周期较长[9],维修不够及时,对医院的正常运转造成影响,从而对临床的治疗也造成了影响。该系统也就成为医院医疗设备管理的迫切需要。
2.2.2 故障报修信息业务需求
医疗人员通过系统进行故障报修是整个系统的核心。在日常的工作中,如果医疗人员发现医疗设备出现故障可以向系统提交问题。
首先管理人员通过验证登录,可以添加设备故障记录,也可以通过数据库查询设备故障记录,然后分配到维修人员进行维修,对维修结果进行审核,如果审核通过,则结束,如果对维修结果审核不通过,再返回到设备故障记录,交给维修人员重新维修,循环往复。维修人员通过验证登录,查看管理人员分配的设备故障记录,进行维修工作,然后将维修结果提交,并添加到系统中。如果医疗人员发现医疗设备出现故障,医疗人员可以通过验证登录,可以向系统提交故障报修,选择有故障的设备以及故障描述,然后提交,如果当前数据库中有该设备的故障问题,则直接提交成功,反之,添加失败。流程图如图1所示。
图1 功能流程图
2.2.3 查看配件信息功能需求
该系统包括三种用户权限,管理人员、维修人员和医疗人员都能够实时查看到配件的相关信息,是整个系统的核心功能之一。例如管理员通过登录进入到系统中,可以对配件进行管理,可以添加配件信息、编辑修改配件信息、查询配件信息以及删除配件信息等。维修人员和医疗人员也可以通过登录进入系统,可以进行个人信息管理,故障报修管理。流程图如图2所示。
图2 功能流程图
为了保证该系统的长期正常运行,保证数据的安全性和完整性,还需要考虑该系统的性能问题。需要充分考虑以下几点:
具有可维护性。该系统在框架选择上采用的是Springboot的开发框架,该框架对于系统的可维护性非常好,而且该框架是目前比较流行的开源框架,因此该系统在设计上满足可维护性的特点。
较强的安全性。该系统在设计上充分考虑系统的安全性,尤其是像Sql注入的bug问题尤为重视,并采用Mybatis技术对Mysql语句操作,安全性会更高,因此该系统在设计上具有较强的安全性和可集成性的特点。
该程序在整体上共分为三种用户权限,分别是管理员、维修人员和医疗人员,其中管理员实现的功能模块主要有科室管理、医疗人员管理、故障报修、供应商管理、维修人员管理和配件信息管理等;维修人员主要是可以管理个人信息、及时查看维修信息以及提交维修结果;医疗人员主要是可以管理个人信息、提交故障设备维修信息以及对维修人员的维修结果进行及时反馈。系统的总体功能结构如图3所示。
数据库设计是整个程序设计的数据总存储中心,如果没有良好的数据库设计,对于后面的程序开发将会造成很大的影响,甚至影响程序的正常请求数据,从而造成程序不可使用。
(1)维修用户实体图,如图4所示。
图4 实体图
(2)管理员实体图,如图5所示。
图5 实体图
(3)医疗用户实体图,如图6所示。
图6 实体图
(4)配件信息实体图,如图7所示。
图7 实体图
(5)整体实体E-R图:根据以上所有实体图得出整体实体图E-R图,如图8所示。
图8 整体实体E-R图
该系统在设计过程中,主要的数据库表有管理员表、维修用户表、医疗用户表、配件表以及供应商表等5张数据库表。
(1)此表用于记录管理员的详细信息,主要存储的是管理员的姓名、电话以及密码等相应的字段,如表1所示。
表1 admins_fjd
(2)此表用于记录维修用户的详细信息,主要包括姓名、联系电话等相关维修信息,如表2所示。
表2 repairusers_fjd
(3)此表用于记录医疗用户的详细信息,其中包括姓名、联系电话等相关信息,如表3所示。
表3 medicalstaffs_fjd
(4)此表用于记录配件的详细信息,其中包括配件名称、配件数量等相关信息,如表4所示。
表4 parts_fjd
(5)此表用于记录供应商的详细信息,如表5所示。
表5 suppliers_fjd
整个系统主要围绕三种用户权限实现,主要功能包括医疗用户信息管理、维修用户信息管理、维修信息管理、配件信息管理以及供应商信息管理等,接下来主要是从医疗用户信息管理、维修故障信息管理、配件信息管理为例进行介绍。
对于医疗用户功能的实现,主要是从管理员出发的,管理员主要是添加、编辑、查询以及删除对应的医疗用户信息。这里重点以管理员对医疗用户操作为例进行介绍。
管理员点击左侧菜单中的医疗用户信息管理按钮后,直接通过a标签的href属性执行adminmedicalstaffsmanager()方法,在该方法中会通过findAll()方法查询出所有的医疗用户信息,并赋值到table标签中,从而显示到前端页面中。
完成数据初始化后,可以根据姓名、电话以及所属科室等信息进行查询特定医疗用户信息。此外还可以添加、编辑和删除医疗用户信息,其中添加和编辑时,分别通过在adminmedicalstaffs_add.jsp、adminmedicalstaffs_update.jsp方法的页面中输入对应医疗用户信息,然后将MedicalstaffsBean对象通过http请求传递到后台中的AddmedicalstaffsToDB()和UpmedicalstaffsToDB()方法,完成医疗用户信息的添加和编辑操作。点击删除按钮后,先要获取到要删除的医疗用户id,然后通过将该id通过http请求,传递到后台deletemedicalstaffsById()中,完成删除对应id的用户信息。
其对应的程序核心代码如下所示:
配件功能的实现是整个系统的核心功能,主要是管理员用户可以对配件进行添加、编辑修改以及删除等操作。
管理员用户在登录到系统中,点击左侧菜单的配件信息管理按钮后,便进入到后台adminpartsmanager接口,在该方法中通过findAll()方法查询出所有的配件信息并通过http请求的方式传递到前端table标签,最终通过for循环方式进行显示完成。在该页面中通过在modal对话框中输入配件信息并通过ajax请求方式传递到后台AddpartsToDB(),验证通过后,再通过insertPartsInfo()方法插入到数据库中,从而完成配件信息的添加,其配件的编辑修改以及删除操作也是同样的操作。
其对应的程序核心代码如下所示:
该功能是整个系统的最重要的功能,首先是医疗人员点击故障报修管理后,进入到后台medicalstafffaultrepairsmanager接口方法中,在该方法中通过find DataByMId()方法,查询出所有的当前医疗人员的故障信息,并传递到前端,然后点击添加故障信息,在modal对话框中输入故障信息,并通过http请求传递到AddMedicalFaultrepairsToDB()中,通过验证后添加到数据库中,同时医疗人员还可以提交反馈信息,也是同样的操作。
在医疗人员完成维修故障信息后,管理员就可以通过在adminfaultrepairsmanager()方法中,通过find All()查询出所有的故障信息,并显示在table标签上,此时可以通过UpFaultrepairsToDB()完成分配维修人员进行维修,当分配了维修人员后,维修人员就可以查看到对应的维修信息,从而进行维修工作。
维修人员点击故障报修管理按钮后就可以执行repairusersfaultrepairsmanager()方法,在该方法中查询出所有需要维修的信息,可以对维修信息通过UprepairusersFaultrepairsToDB()方法进行提交。
管理员查看后,可以对维修人员结果进行审核,如通过passfaultrepairsById()方法,对维修人员的维修结果进行审核通过。
其对应的程序核心代码如下所示:
为了保证程序在运行中不会出现严重的问题,在程序完成后,都需要对整个程序进行测试,其中包括单元测试、业务逻辑测试等[10]。主要是检查整个程序的业务逻辑是否存在问题,逻辑错误是导致程序瘫痪的最主要的bug问题[11],只有把这些程序中的bug问题都解决掉,才能保证程序的正常运行。
在测试时,首先需要准备开发需求文档、数据库设计、程序源代码以及问题文档等[12],在根据开发需求文档的测试过程中,将存在的程序问题或者业务逻辑问题都需要记载下来,然后根据问题文档进行修改,修改完成后,再进行第二轮同样的测试,直到整个系统没有程序问题或者业务逻辑问题才能结束。
在具体测试过程中一般有两种方法,一种是黑盒测试,一种是白盒测试[13]。黑盒测试方法就是判断对于输入的数据与得到的结果进行比对,如果两者数据对比没有问题,说明该功能是没有问题的,反之存在程序问题或者业务逻辑问题。
(1)登录模块测试用例表,如表6所示。
表6 登录模块测试用例表
(2)维修故障数据管理模块测试用例表,如表7所示。
表7 维修故障数据管理模块测试用例表
该系统在测试时是对整个功能模块都进行了测试,包括三种用户权限下的所有功能模块,并没有在程序运行、功能需求方面等存在问题,因此,该系统是可以正常使用的,如图9~12所示。
图9 登录信息
图10 系统首页
本系统利用互联网技术可以做到及时有效的故障报修与维护服务,通过采用医疗设备维修检测系统来实时检测整个医院的设备运行状况,对于有故障的医疗设备会及时发出警报,在第一时间内通知到维修人员,维修人员则在第一时间内进行维修。通过本数据库管理系统可以有效维护维修信息,便于信息使用,并提供有关维修管理的多项统计数据。
医院医疗设备的日常维护是医院能够正常开展工作的重要组成部分,医院对于这方面的管理通常采用的只是对医疗设备维修人员在素质和技能及制度化等方面的单一管理模式,这种管理方式不仅缺乏计划性,而且对设备维修保养工作量的统计和成本费用控制缺少完善的数据[14]。在互联网信息化时代,医院需要与时俱进,引入网络化医疗设备维修管理系统。
本文设计开发了基于Springboot框架的医疗设备维修管理系统,该系统在设计上主要是围绕着医疗设备维修进行展开,从管理员、维修用户以及医疗用户出发,完成了添加医疗用户、维修用户,维修故障提交、供应商管理、配件信息管理等方面的功能。维修故障信息管理功能是整个系统的最重要的功能,医疗人员进入故障报修管理系统后,查询添加故障信息,管理人员分配维修人员进行维修,维修人员接收维修信息后进行维修工作,任务完成后对维修信息进行提交,管理员查看并对维修人员结果进行审核,同时医疗人员对维修结果提交反馈信息。这样就完成了关于医疗设备,维修管理人员,医疗人员及维修人员的一个闭环管理,从而可以提高工作效率。
医院设备维修人员在日常的设备管理和维修中,积累了大量的技术和维修数据,不仅能满足设备管理部门的需要,同时还能够满足医院其他部门查询的需要,真正实现了资源和数据共享[15]。完善的医院医疗设备维修管理系统对于提高医院的设备管理效率,缩短维修周期以及后期的维护和保养等都具有重要的意义。