医院设备维修流程管理软件的设计与开发
2010-06-08谢海源刘怡青
谢海源,刘怡青
上海交通大学医学院附属新华医院,上海,200092
1 背景及设计目的
医疗设备的维修和保养是医院设备科一项重要的工作。为保证医疗设备的正常运行和快速修理,有相当一部分医院已经建立起了一支人员充实的维修队伍。但是,如何有效地管理和利用这支队伍,让其发挥出最高的效率,目前仍然是一个值得研究的课题。医院设备科属于行政事业单位的辅助性科室,因维修工作不直接产生效益,绩效考核较难实施,容易导致出现工作积极性不高,人浮于事等一些负面的现象[1]。针对这个问题,有管理者也提出过一些维修流程上的改进方法:如设置维修热线电话,由专人负责接听、记录,并分配任务;或者,划分区域,由工程师分别负责等等[2-3]。但在实际的运用中以上这些做法都遇到了一些问题。如接线员不能担当设备主管的角色,去分配工程师的工作,设备主管也不可能去做接线员的工作;工程师的水平高低,技术特长各不相同,如何能让每个工程师都能参与其擅长的工作;工程师工作拖拉,却无法监督等。根据设备科维修工作的具体情况,为解决上述问题,这里设计了一款适合医院使用的计算机维修流程管理软件,它能规范维修流程,提高维修效率,方便绩效考核,并能有效的跟踪维修设备的去向。
2 程序设计方法
该软件设计采用混合编程,前台控制输入输出,采用Java[4,5]语言设计;后台连接数据库,用于保存和查询数据,预估总数据量应在100万条之内,采用小型数据库即可,可选用Microsoft Access数据库,以SQL[7]语言编程。Java语言则是一种面向对象的程序设计语言,Java程序的运行与计算机操作系统平台无关,可以在任何一台具有Java虚拟机的机器上运行。开发平台使用的是NetBeans IDE 6.8,以及Sun公司的JDK1.6(Java Development Kit)[6]。
首先建立数据库,并建立前台与后台的连接。新建的数据库包含两个表:一个用于存储用户登录信息;另一个用于存储维修流程管理中产生的数据,如维修设备、维修时间等。因ODBC采用C语言编写,采用JDBCODBC桥的方式,即将JDBC的方法映射到ODBC上。通过桥建立connection连接,并生成statement对象,DBQ代表数据库名。程序中大量采用了try-catch块,用于捕获程序运行时的异常(Exception),防止程序可能的非正常结束,有助于提高程序的稳定性和健壮性。建立数据库连接的方法如下:
建立连接后,数据库中的表可通过SQL语言的SELECT语句进行筛选,并映射成Java中的tableModel对象,最终通过创建J Ta bl e类的对象,并导入tableModel,即可在屏幕上以表格的形式显示数据库中提取的内容。
程序界面的GUI设计相对简洁,所有的控件通过一个Frame容器显示。这里采用BorderLayout布局管理器,将管理器窗口分成五部分:东区、南区、西区、北区和中区。在此程序中,BorderLayout.NORTH,用于放置注册用户登录以及密码修改的控件。BorderLayout.CENTER,通过JTable类的表格,显示修理工作的内容和设备目前的修理状态。BorderLayout.EAST是功能控制区,主要提供管理员增加或减少工作,以及工程师处理设备维修状态的操作区域。程序界面的GUI如图1所示,主要应用的一些控件类有JTable、JTabbedPane、JPanel、JButton、JTextField、JLabel、JComboBox等。
图1 程序界面的GUIFig.1 GUI of program interface
G U I设计的最后,需要对各功能键进行监听器的注册,以便为控件增加程序执行代码。这里主要对Button进行了监听器注册,如Button.addActionListener(this),当监听器响应ActionEvent时,即执行相应代码。
控件功能的添加分为三部分:
(1) 用户信息 包括登录功能,密码修改功能;
(2) 管理员操作 包括维修任务的添加,任务的删除和维修设备的去向;
(3) 工程师操作 包括设备接修、设备外修、设备修复、放弃修理四个选项。
实现这些控件的功能均需要与底层数据库进行交互。用SQL语句通过建立的JDBC-ODBC桥修改数据库内容,例如在数据库中增加一条记录:
两者之间必须并做好同步工作,特别是在增加了TableRowSorter类的排序功能之后,否则数据表与JTable表中指向的数据行是不同的。
在其他主要程序功能设计方面,创建了sorter方法,用于表格数据的排序;创建了一个时钟,与Windows时钟同步,并设置其表达方式,维修编号的生成即采用时钟的年月日时分秒共24位数字,可方便做到维修编号的唯一性,为防止工程师擅自填写修复时间虚报维修效率,设备的修复时间在改为修复状态后自动生成;管理员操作功能与工程师操作功能严格区分。程序还添加了防止误操作的对话框提醒功能。
3 程序操作功能
该维修流程管理软件需要先登录,方可使用。登录操作大同小异,这里不再说明。当登录人为管理员时,中间表格可显示所有已完成和未完成的工作。此时,管理员操作功能可用,工程师操作功能无法选中。管理员在接到报修电话后,把相关信息填入输入框并添加维修记录,此时新增的维修设备状态自动设置为待修。当管理员输入信息有误时,管理员可选中表格中的错误记录进行删除。在实际维修工作中,有时因时间较长,工程师很难回忆起维修设备的去向,容易引起科室间的误会,这里在管理员的功能中增加了一条设备去向的记录,用于记录维修设备当前的地点,包括:临床科室,设备科和已报废。这样能有效避免以上情况发生。
当登录人为工程师时,表格显示为当前登录工程师已处理完的和正在处理的工作,该工程师也能在表格中看到还未有人接管的待修理工作项目,并可选择接管该项修理工作还是放弃该项修理工作。为保证隐秘性,当前登录工程师不能看到管理员所能看到的内容和其他工程师接管的维修工作。当然工程师登录时,管理员的操作按键也是被禁用了。工程师处理完当前修理工作时,选择已修复,系统将确认该项维修工作已完成,并自动生成完成时间。工程师也可选择放弃自己正在处理的工作,但系统会提醒是否确实要放弃,避免误操作。
4 实践和总结
该软件由管理员负责维修工作的输入。输入后,不必负责工作的分配,工程师可自行登录查看待修理任务。这样,有效的避免了前面提到的因工作角色不同带来的不便。工程师登录后可在待修任务中选择自己擅长的工作,或自己想尝试的工作。该软件设计的私密性,保证了工程师之间并不清楚彼此的工作量,这样能在工程师之间形成一种潜在的竞争机制,这也在程序设计时考虑进去的一个问题。
据调研,医院设备维修管理软件大都集成在设备管理系统中,软件把重点放在设备外修及维修成本的核算上[3],未曾有人采用专门的计算机软件进行维修流程的管理。该软件的应用是一种很好的尝试。经两个月的测试后发现,该软件的使用,使工程师维修的平均响应速度提高了1.2小时,平均维修周期缩短3.2小时。每月的工作量数据经导出后,可明显看出每个工程师的工作积极性。较好地达到了软件预期的设计目的。
[1]张玉林, 宋娟, 相玉香.现代医院医疗器械维修机构的建设与管理[J].医院装备, 2008, 5: 39-40.
[2]王丽姿.医院设备维修管理[J].中国医院管理, 2003, 23:55-56.
[3]秦占伟, 梁昌明, 郑盘根.计算机故障登记管理系统设计[J].医疗设备信息, 2007, 22: 35-36.
[4]Y.Daniel Liang.Introduction to Java Programming[M].Pearson Education, inc, NJ, USA, 2005.
[5]Bruce Eckel, Thinking in Java, Third Edition[M], Pearson Education, inc, NJ, USA, 2005.
[6]JDK API 1.6,http://cn.sun.com EB/oL.2009.1.10.
[7]Jeffrey D.Ullman, Jennifer Widom, A First Course in Database Systems[M].Pearson Education, inc, NJ, USA, 2003