陈楥帅,吴勇,蒋卫芳
(1.浙江大学医学院附属第二医院,浙江 杭州 310000;2.浙江省肿瘤医院,浙江 杭州 310000;3.浙江大学校医院,浙江 杭州 310000)
目前浙江大学校医院的门诊内镜检查预约采用的是EXCEL 在线编辑的方式,使用不方便、数据存储不安全且很难保护隐私数据。迫切需要利用信息技术对流程进行优化改造,对预约数据进行统一管理和存储,更方便医院的一线工作者使用,让师生患者得到“智慧医院”的体验[1]。
广州市妇女儿童医院与集成平台对接,以Web Service接口形式向外接平台提供服务,实现了手机预约、自助机预约、窗口预约[2]。
无锡市人民医院将收费处作为检查预约服务中心的补充[3],将预约平台与收费系统进行对接,收费后,如果是自动预约的项目,就打印预约单给患者;如果是特殊项目,系统提示收费员告知患者到预约中心处理。
浙江大学医学院附属第二医院采用诊间预约、自助机预约、综合服务窗预约、App 预约和公众号移动端预约等多种模式,普通彩超项目在诊间可以按知识库维护规则自动预约,医生也可以根据患者要求进行改约,特殊类检查项目可以在综合服务窗口预约,另外还支持多个检查项目一起自动预约到最近的一天(如同时开立A 和B,A 项目最近一天是3月1日,B 项目最近一天是3月2日,则按此时间分别进行预约)或者预约到最近的同一天(如同时开立A和B,A项目最近一天是3月1日,B项目最近一天是3月2日,则两者都自动预约到3月2日)。
浙江大学校医院目前门诊主要开展DR、CT、彩超、心电图和内镜检查,其中心电图、放射和彩超项目一般都是当天开立当天即可完成检查,所以无须做预约,内镜项目需要预约,且因为涉及麻醉会诊或者检查前宣教并不适合在诊间完成预约操作,所以系统设计时,需要面向窗口人员来做内镜预约功能。
1) 按工号密码登录,须与医院HIS系统的工号密钥一致,可以直接取用户相关表的信息,并且过滤已退休和已离职的记录,管理人员和医生按不同的权限进行分类,供查看预约记录和导出数据使用。
2) 检查排班支持排到医生个人,并需要排到具体的校区,同时支持上下午分开排班,比如医生上午在玉泉校区工作,下午在紫金港校区工作,还需有停诊的功能。
3) 建立排班后,可以按患者的开单项目进行预约,胃镜、肠镜、无痛肠镜和无痛胃镜占用1个号源,胃肠镜和无痛胃肠镜占用2个号源。如果有特殊事项需要有备注栏供填写。
4) 预约前,需要患者先在诊间、窗口或者自助机上完成付费,操作时,输入患者的病案号,可以自动获取患者姓名、电话、检查项目。
5) 预约后,需要记录预约号和预约时间,并将预约标志回写到HIS 数据库的检查申请表。允许改约和取消预约,同一个检查只能预约一个号源(特殊检查项目占用两个号源)。
6) 完成检查后,需要按预约记录录入实际完成时间,供后期对两者进行数据分析使用。
7) 检查医生可以查看预约情况。支持医生导出自己名下的预约数据,支持管理人员导出所有预约数据并记录导出时间和IP地址。
用户信息(工号、密钥、人员所属科室)、患者基本信息(病案号、姓名、电话等)和患者门诊检查开单信息可以直接取校医院的HIS数据库。校医院的HIS目前使用的是oracle 数据库,oracle 在管理功能、完整性检查、安全性、一致性方面都有良好的表现[4]。
需要单独建两张表,一张用于存储预约信息,一张用于存储项目规则,包含的内容有:项目占号、是否空腹(空腹项目需约在每天早上固定时间之前)、周末节假日是否开展检查等。其中检查预约表的表结构设计如表1所示。
表1 检查预约表结构设计
服务器安全:关闭未使用的端口,服务器设置字母+数字+特殊符号的复杂组合密码,禁止通过远程桌面直接访问,仅限使用堡垒机[5]访问服务器并记录操作日志。服务器本身还需安装360天擎来防病毒和修补漏洞。
数据备份和恢复:为了防止网络设备故障、人为误操作、洪水地震自然灾害、停电等原因导致数据丢失[6],需要定期对业务数据进行备份。
其他安全性设计:搭建防火墙、入侵检测、WEB安全网关等来保护系统。增加超时自动锁屏或者退出的功能,保障操作员使用安全。
系统以JavaScript 作为开发语言,方便操纵html对象和支持分布式应用运算,软件前端设计采用vue2技术,它简单易学,支持双向数据绑定,运行速度快,可以带来比较便捷的前端开发流程[7]。操作界面自适应,能兼容主流浏览器。
界面功能分为“排班操作”和“排班查看”两个模块,“排班操作”用于窗口操作员新建或者修改医生排班、检查预约、取消预约使用。“排班查看”用于按照不同用户角色查询到预约信息和导出预约信息使用。
打开预约界面前,只显示当前医生排班里未预约的顺序号,预约后保存时,再判断数据库是否存在相同预约号(因为存在并发操作的可能)。
后端设计采用SpringBoot+oracle 技术,目前在JAVA 领域,SpringBoot 框架使用率比较高,它能够极大地简化Spring 配置,让开发人员可以轻松构建项目,从而提高开发效率[8]。开发的过程中,大多是由框架自动配置,大大地简化和优化了依赖管理[9]。
数据库使用Oracle,主要因为它支持多种业务形态的融合,可执行多种操作[10],同时医院的HIS系统目前也使用Oracle,取数据、回写标识和后期根据需求二次开发比较便捷。
在软件设计的过程中,因为vue2 的局限性,需要利用axios 来做请求拦截和响应拦截,axios 是一个基于promise 的易用、简洁且高效的HTTP 库,可以用在浏览器和node.js 中[11]。比如功能上为了保护用户使用安全,需要定时判断用户在界面是否有操作,超过10 分钟没有操作,需弹出提醒告知用户已锁屏,需重新录入工号密码解锁。程序语言中,在axios中校验用户登录失效时进行路由跳转,引入vue-router 后跳转到锁屏录入工号密码界面。
首先,操作员针对检查医生建立按校区的排班,如A 医生在玉泉、紫金港都做内镜检查,则需按日期(同一天区分上下午),设立相应排班信息,如果输入错误可以点击编辑按钮修改。
等待做好医生排班后,操作员可以按医生排班对患者的门诊检查进行预约,如图1所示,录入患者的院内唯一号病案号后,自动获取患者姓名、联系电话、开单项目和开单医生填写的备注信息,操作员根据与患者的沟通情况,选择预约号(选择预约号后自动跟上默认的预约时间)。
图1 检查预约界面图
如患者需要改约,则在界面上找到预约记录后,点击编辑,打开后修改预约号即可,修改后预约时间根据维护自动与号源联动。
如果患者需要退费,则需操作员在界面上找到预约记录,删除预约记录(后台置作废标志)后,再请患者在窗口完成退款。
完成预约后,操作员可以在“排班查看”界面,浏览到已预约情况,医生本人也可以在此界面通过传入工号查询自己名下的检查预约情况。如图2所示,因为该预约项目为胃肠镜项目,根据预约规则,占2个号源,所以患者姓名旁提示‘占’,号源1也会变成加大加粗字样。同时下一个号源根据规则自动跳过2号,从3号开始。
图2 检查预约结果查看
同时,系统支持导出预约信息的功能,管理人员可以导出所有已预约患者的预约记录,检查医生可以导出自己名下的患者预约记录。同时,系统支持记录导出痕迹,记录导出时间、操作员工号和IP地址。
目前此自主研发的检查预约系统已经在浙江大学校医院的综合服务窗完成安装并开始试用,用户反馈较好。从功能上和技术手段来看,该系统还有一定的改进空间。
功能上,后期考虑尝试把预约信息嵌入到浙大钉或者医院的微信公众号供师生患者查询。然后预约功能增加支持体检患者的内镜检查。
技术上,Vue2 因本身局限性,所有的模块都是杂糅的,随着需求的增加,逻辑会容易混乱;同时,Vue2无法监听属性的添加和删除,后期考虑通过使用Vue3重新进行代码设计。