基于二维码的电子诊疗卡系统的设计
2020-05-20
第九O九医院,厦门大学附属东南医院,福建 漳州 363000
引言
诊疗卡或医院一卡通,是医院在HIS上建立患者信息后,为病人分配的唯一标识编码载体[1],通常为磁卡、IC卡、医保卡等。诊疗卡主要用于挂号、缴费、打印报告、取药等就医环节。实体诊疗卡的应用已久,它的使用为提高门诊效率,提升医院服务水平发挥较大作用,但也存在如下一些问题:① 患者必须携卡才能就诊,忘记携带则无法就诊,就医体验差;② 卡片易丢失或损毁,引起重复办卡、单个病人存在多张就诊卡导致信息分布散乱的问题[2];③ 患者丢失诊疗卡未及时挂失,可能被他人用于挂号开药,造成经济上损失;④ 线下实体发卡需要医院一定的成本支出[3]。
二维码电子诊疗卡系统(简称本系统)的设计是在不影响当前医院实体卡使用的基础上,充分利用移动互联网及移动智能设备技术的发展[4],将二维码作为患者身份的电子标识,解决了实体卡带来的上述问题。
1 现状
我院拥有自己的微医疗平台,微医疗平台是以微信公众号为入口,为患者提供预约、充值、检查检验报告查询、门诊住院信息查询等功能的信息平台。本系统和微医疗平台在网络架构和患者信息认证这两个方面存在共性,因此直接采用微医疗平台的现有网络架构及认证机制。
(1)本系统需要同时连接互联网和医院内网,我院内网与互联网是隔离的,因此在网络搭建方面,最重要的是内外网数据交互的实现方式[5]。在内、外网之间构建一个既符合“物理隔离”安全要求,又能进行数据交换的通道。微医疗平台通过网闸的IP配置和端口映射技术,只允许配置两台服务器之间的通信,满足系统的网络需求。本系统直接采用微医疗平台这种网络架构模式。
(2)使用电子诊疗卡需要先绑定患者院内账号,微医疗平台已经有完善的患者信息认证及绑卡机制,本系统直接采用该认证结果,即在微医疗平台绑定账号的患者可以直接使用相应的电子诊疗卡。
2 系统设计
2.1 系统总体架构设计
系统架构如图1所示。在医院内网部署后台服务器访问HIS数据,通过网闸与外网前置机进行数据交互,同时提供内网终端系统(收费系统、门诊医生站、药房及检查检验自助机等)的二维码内容解析服务。前置服务器受理用户请求,生成诊疗卡二维码。
图1 系统总体架构图
2.2 关键流程设计
2.2.1 二维码生成
接收患者ID(患者在HIS中的唯一标识,简称患者ID),查找患者信息表中该患者记录,获取最近一次二维码创建时间,并与当前系统时间对比,如果时间间隔在20 min内,则获取二维码内容字段,用该字段内容生成二维码。如果二维码创建时间为空或超过20 min,拼接患者ID和当前时间的时间戳,生成MD5值,该值即为二维码内容,保存该值和创建时间到患者信息表对应字段。二维码生成流程,见图2。
图2 二维码生成流程
2.2.2 二维码解析
医院HIS涉及读卡的地方很多,例如排队叫号系统、门诊医生工作站、收费系统、药房取药系统、报告打印自助机等,增加了电子诊疗卡后,这些系统需要通过配备码枪获取二维码内容后调用后台服务解析二维码内容。二维码内容解析服务采用Web Service部署。该服务的主要功能:接收二维码内容,判断该二维码的有效性,查找该二维码对应的患者信息,返回相应信息给调用者。二维码内容解析流程,见图3。
图3 二维码内容解析流程
2.3 关键技术
2.3.1 二维码
二维码是用特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0、1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理[6]。随着无线网络的发展和移动终端的广泛普及,二维码在智能手机上得到了充分的应用[7],在电商、移动支付、OTO(Online To Offline)及等领域的应用非常广泛。考虑到二维码能表示的信息量较大、被接受程度高及识别设备较为普及,本系统采用二维码作为电子诊疗卡的载体。
本系统采用Java语言开发,Java拥有众多的第三方工具包,在二维码创建和解析方面,目前主要有SourceForge(开源软件开发平台)的Qrcode.jar和Google(搜索引擎公司)的zxing.jar包,本系统采用Qrcode.jar。创建二维码的代码,见图4。
2.3.2 MD5
MD5消息摘要算法,是一种被广泛使用的密码散列函数,用于确保信息传输完整一致[8]。MD5可以将任意长度的字节串映射为一个同样独一无二的固定长度字符串,且将一个MD5的值变换回原来的字符串是非常困难的。鉴于此特性,本系统对患者ID及时间戳进行MD5计算产生二维码内容,具有不易破解的特点。
2.3.3 数据安全
诊疗卡是患者的凭证,其安全性至关重要。本系统从有效时间及二维码内容两个方面来确保安全性。
图4 二维码生成的代码片段
(1)二维码有效时间为20 min(可设置),超过时间后患者需刷新或重新进入页面获取新的二维码。有效时间机制使该二维码具有动态性,有效避免患者二维码被复制进而被盗用的风险。
(2)二维码内容利用数字签名技术产生,签名的对象包括了患者ID及时间戳信息,将患者ID和二维码创建时间的时间戳拼接成字符串,计算其MD5值,用该值作为内容生成二维码。使用MD5算法将原始内容变成无意义的字符串,有效避免被它人识别并破译内容伪造二维码的风险。
2.4 涉及HIS的改造
需要诊疗卡读取功能的HIS子系统有预约叫号系统、门诊医生工作站、收费系统、取药自助机、发药系统、报告自助打印系统等12个系统,改造步骤主要有:① 配备扫码设备;② 增加二维码读卡功能,读取二维码内容调用后台服务解析内容。
3 应用效果
3.1 主要应用界面
本系统依附微医疗平台,在患者已经是微医疗平台用户的情况下,可直接使用。患者在我院微医疗平台中绑定自己就诊账号即可进入“我的二维码”页面,查看自己的二维码。应用页面如图5、图6。
3.2 应用效果
3.2.1 减少患者就医时间
二维码识别时间在十毫秒级别,且在我院运行以来识别成功率接近100%。以一次就诊过程需要读卡5次计算,通常实体卡会遇到多次刷卡、插卡等待、片卡无磁、损坏等问题,平均读卡时间约1 min,使用电子诊疗卡为患者一次就诊大约缩短5 min时间,减少门诊患者就医时间[9]。
图5 诊疗卡信息
图6 我的二维码
3.2.2 减少实体卡发放量,降低医疗成本
我院月平均门诊量大约10万人次,本系统上线前月均发卡数约13000张(包括新办和补办)。本系统上线后,月均发卡数约2500张,月均发卡数减少约10500张,发卡量降低约80%。以磁条卡成本0.35元/张计算(如使用IC卡或非接触式卡则成本更高),每月节省卡片成本约4000元,一年节省成本约5万元。且在减少医院发卡成本的同时极大缓解办卡中心工作压力,避免办卡中心排长队[10],为医院节省人工窗口的工作量,提高医疗资源的利用率[11]。图7为本系统上线前后(2018年上半年及2019年上半年)我院月实体卡发放量对比,在我院门诊量同比有所上升的情况下,系统上线前后实体发卡量大幅下降。
图7 系统上线前后我院实体卡发放量对比
3.2.3 使医疗数据更加精准
在没有电子诊疗卡时,患者丢失或者忘记携带就诊卡,通常情况会重新办理诊疗卡,这就形成一个患者多个账户的情况,造成同一个患者多次门诊病历、检查检验等医疗数据无法关联,可能造成重复检查等问题,甚至影响医生的正确诊断。本系统上线后,随着患者越来越多使用电子诊疗卡,解决了单个病人多个账户导致信息分布散乱的问题。通过对HIS新增的患者数据的统计发现,单个病人多个账户的情况较上线前减少约45%。
3.2.4 提升患者满意度
电子诊疗卡的应用,基本解决患者因忘记带卡而多次往返医院、时间成本较大的问题[12],减少患者由于实体卡损坏需要维护或更换而在反复排队和等候时浪费时间,提升患者就医体验[13],提高患者满意度。
4 结论与展望
本文结合我院信息化现状和特点从系统总体结构、关键流程、关键技术、安全性、HIS改造等方面介绍基于二维码的电子诊疗卡系统的设计思路。采用电子诊疗卡替代实体卡降低医院成本,提高患者满意度,提升医院竞争力,社会和经济效益显著[14]。
为适应互联网+健康医疗事业的快速发展[15],国家卫健委统计信息中心联合腾讯公司推出电子健康卡平台。电子健康卡同样以二维码为载体,通过对接平台接口的方式接入。本文所介绍的二维码电子诊疗卡系统在硬件配置、整体架构方面同样适合接入该平台。因此,本系统不仅可以跟电子健康卡同时使用,甚至只需对本系统进行少量的改动接入平台接口即可同时支持电子健康卡。
加快电子诊疗卡的推广,为未来医院智能化发展打下基础[16]。相信在不久的将来,电子诊疗卡将成为主流,届时只需一部手机,就可满足门诊全流程的就诊之需。