一种家庭电子病历系统的设计

张文威1,杨享武2,谭剑辉1

1.解放军第四二一医院 医学工程科,广东 广州 510000;2.珠海迈科智能科技股份有限公司,广东 珠海 519090

[摘 要]目的 设计一种家庭电子病历系统,实现家庭成员可以随时、方便地查询自己或家人的病历信息。方法 系统设计分为病历数据库、代理服务器和客户端,它们之间通过网络进行互连。客户端和代理服务器间使用自定义的应用协议实现网络通信交互以及数据传输;代理服务器监听客户端的病历查询请求,并将查询结果返回客户端显示给用户。结果 通过系统测试验证,PC客户端和Android手机客户端均能实现病历查询,且系统的性能稳定,实用性较强。结论 电子病历不应局限于医院应用,需要面向社会、面向家庭使用。

[关键词]家庭电子病历系统;电子病历;网络通信;HTTP协议

0 引言

电子病历(EMR)是病人在医院诊断治疗全过程的原始记录,是医疗信息的载体,其中既有结构化信息,也有非结构化的自由文本,还有图形、图像信息。它是以电子化方式管理的有关个人终生健康状态和医疗保健行为的信息,它可在医疗中作为主要的信息源取代纸张病历,提供超越纸张病历的服务,满足所有的医疗、法律和管理需求[1-2]。电子病历集成了来自医疗、护理、检验、影像等各方面的医疗信息,以病人信息为中心通过完整统一的视图提供给不同用户所需的服务,更好地服务于临床教学、医院管理、远程医疗和医疗保险等。电子病历超越了传统病历时间和区域的限制。它记录的信息覆盖了个人从生到死的整个生命周期,不仅包括病人的基本信息、医生下达的医嘱、检查结果、病程记录、护理记录等信息,而且要记录包括出生、免疫接种、查体记录等健康信息,范围涉及医疗机构、社区、家庭甚至整个社会。所以电子病历具有集成性、持续性、交换性、共享性等特点。

在国内,电子病历已经成为医学信息学的研究热点,目前很多医院都在自行开发或与软件公司合作开发电子病历系统。但电子病历系统建设还仅局限于医生工作站、护士工作站的建设,使用模板和电子字典等工具,实现下达医嘱、输入病历等基本业务操作的功能。基于DICOM和ASTM标准的电子病历系统和其他系统的集成;基于HL7标准、XML描述的数据交换和共享都是电子病历系统需解决的问题。另外,电子病历系统不仅仅是收集、存放病人信息的仓库,更需要应用知识库、数据仓库和数据挖掘技术对信息做深层次的处理与分析,为决策层提供有价值的医学信息,辅助完成医学决策。特别是,基于统一标准和Internet 技术,各医疗机构间实现电子病历信息的集成、交换和共享,及为远程医疗服务的电子病历系统都是未来研究的主要方向[3-5]

1 系统框架分析

本系统是基于网络面向家庭应用的电子病历检索系统。如今一些家庭中拥有无线接入的设备就有台式电脑、手机、IPTV网络电视机顶盒等,只需要一台路由器,或者电脑的无线网卡作为路由建立无线Wi-Fi,它们之间就可以轻松组成一个家庭局域网。基于家庭局域网的系统应用模型,见图1。

图1 家庭局域网系统应用架构

系统为3层C/S模型架构[6],客户端可以是智能手机和PC机;中间层是替客户端完成病历查询请求的代理服务器,因为需要响应的是不同种类的客户端,代理服务器必须是多线程的,且是通用的接口程序;底层是电子病历数据库。在逻辑上将系统分为3层结构是为了增加系统扩展性和可移植性,如果系统的建设仅在家庭中完成,则代理服务器和数据库服务器可以运行在一台计算机上。但为了能结合医院电子病历系统的建设,数据库可以由医院提供,家庭中计算机只需要运行代理服务器程序,它们之间通过网桥连接,代理服务器和客户端连接由家庭局域网连接。系统需要最终实现用户不管是在看电视、玩手机或是玩电脑都能够利用当前设备查询到电子病历。系统建立方案如下:

(1)利用Mysql(关系数据库管理系统)软件建立了一个家庭病历数据库,数据库为代理服务器提供一个远程登录用户,可以设定权限。

(2)利用Java编写代理服务器程序,程序功能主要有:① 多线程程序,使得能够监听多个客户端查询请求;② 能够查询病历数据库,将客户端的请求组织成数据库操作;③ 将查询结果反馈给客户端。为了使代理程序能够和不同系统的客户端通信,使用标准TCP/IP网络编程接口Socket编写。

(3)利用Hibernate(开放源代码的对象关系映射框架),解决代理服务器程序在数据库操作中数据持久化问题[7-9]

(4)自定义通信协议,实现数据包定义,用XML实现传输过程中数据的储存。

(5)利用Java编写2个客户端:手机客户端和PC客户端。客户端也使用标准TCP/IP网络编程接口Socket编写,并设计客户端用户界面。

家庭网络病历检索系统主要功能是完成请求的传递、解析和处理3个环节。本系统采用3层C/S结构设计,客户端和服务器程序之间通过协议完成请求的传递和解析。而处理部分则是由服务器程序和后台数据库来完成。服务器接收到客户端的请求并解析,之后根据需要组织相应的HQL语句通过Hibernate间接实现数据库的各种操作,包括查询、插入、更新等,网络病历检索系统主要以查询为主[10-11]

2 系统的实现

2.1 流程图设计

参考HTTP协议实现通信。HTTP协议是面向短连接的通信,支持客户/服务器模式,即服务器接收到客户端的请求,完成客户端的请求之后即断开连接。采用这种方式可以节省传输时间。对于多线程的服务器程序,因为设置的线程数量有限,使用短连接可以使能够请求的客户端变多。家庭网络病历检索系统需要处理的终端查询请求为多个,因此服务器程序需设计为多线程的程序,当监听到客户端的请求之后将连接状态交给处理请求的线程完成数据交换,而主程序则继续监听其他客户端的请求。服务器主程序的流程图,见图2;处理请求线程流程图,见图3。

图2 服务器主程序流程图

图3 处理请求的线程流程图

在客户端首先设置所连接的服务器的IP地址,以及服务器端监听的端口(本系统设为8821)。根据IP地址及端口号创建客户端Socket,一旦和服务器连接上Socket连接就会被置真,若超过java socket默认的阻塞时间还没连上,就会抛出连接超时或服务器拒绝连接,根据捕捉异常提示客户端服务器未打开,或服务器防火墙拦截。客户端通信流程,见图4。

图4 客户端程序通信流程图

2.2 终端管理界面设计

家庭中具有网络功能的可视化终端包括PC个人电脑、智能手机和IPTV机顶盒。系 统设计了两套客户端,一个是电脑应用程序,一个是Android的手机程序。界面中提供查询的选择条件较少,尚有许多扩展。但是在数据库查询类queryFromDB类中设计了所有能够用于查询的条件,因此,客户端界面扩展很容易,添加相应的文本输入框用于接收即可。

2.2.1 PC客户端界面设计

PC客户端主界面见图5,菜单栏提供的操作有文件操作、设置操作和帮助。文件操作目前提供了打开本地的XML病历信息文件;设置操作提供的是设置端口操作,用于设置所连服务器的IP地址和端口;帮助操作提供的是软件使用说明。主界面提供的查询条件为就诊的起始时间和结束时间以及成员姓名,查询的结果为该时间段中的就诊病历。为了控制输入时间的格式,输入框采用时间控件,点击年或月然后通过上下键来调节具体大小,不是直接输入时间。若没有输入家庭成员则默认查询所有人在时间段中病历,查询的所有记录按时间显示在左边的列表中,右边最初显示的是左边列表的第一条记录,当点击左边列表的其中一条记录时,右边显示的就是该条记录的详细信息。如果在没有设置IP地址和端口的情况下查询,软件会提示先设置IP地址和端口。

图5 PC客户端主界面

端口界面设置见图6,用于输入连接服务器的IP地址和端口,一般的软件设置功能是程序会记住上一次的设置信息,不用每次打开软件都要设置。因此在设置端口的时候,在根目录文件件夹中预留了一个文件用于保存设置,因此软件总是会保留上一次的设置信息。如果服务器程序和客户端程序都在一台电脑上,它们之间的通信就是一台电脑上的两个进程间通信, IP地址应设为本机IP地址,127.0.0.1,端口号不变仍是服务器程序预留的端口号。

图6 设置端口界面

2.2.2 Android手机客户端界面设计

Android系统是google的一个开源的手机操作系统,现在市面上的智能手机大多采用Android系统,受到了广大手机爱好者的欢迎,基于Android系统的手机软件开发也非常的热门。而现在的Android手机基本都具有Wifi无线网功能,而Android程序的开发也是基于java语言。java提供java.net包中socket网络编程也适用Android。因此Android的手机病历查询软件可以实现。借鉴于PC客户端的界面设计,首先主界面仍提供查询的条件输入,和查询按钮,手机客户端主界面见图7。点击起始时间按钮会弹出一个时间控件,通过滚动调节时间控件来输入时间(图8),查询的记录仍用列表显示在主界面的下方,当记录数量超出屏幕显示时出现滚动条。病历的详细信息是点击其中一条记录才会显示详细信息的界面,若没有查询记录自然不会显示出详细信息界面,IP地址和端口设置在点击手机的菜单键时弹出。图9显示的是手机端点击一条记录弹出的详细就诊信息界面,因为详细信息的内容项有点多,手机界面不能全部显示,因此添加了滚动条用于浏览完整的就诊信息。

图7 手机客户端主界面

图8 时间的输入

3 结束语

通过系统测试,验证了系统具有稳定性和实用性,同时也具有一定的不足,例如功能有限,病历信息不全面等。

图9 详细就诊信息

随着电子病历的发展,电子病历应用范围需要扩大,不能局限于医院应用,需要面向社会、面向家庭、面向用户使用。因此电子病历的建设需要医院、社会等一起努力共建,建立标准的公民的病历数据库,由专门部门去维护(如社保局),医院的电子病历系统和家庭的网络病历查询系统使用同一个数据库,使得信息既能服务医院工作人员,也能服务家庭。

[参考文献]

[1] 付帅.电子病历信息系统的设计浅析[J].山东工业技术,2016,(1):139.

[2] 张璇.支持临床路径的电子病历系统技术开发设计[J].中国新技术新产品,2016,(3):18.

[3] 梅文华,刁君,常奕,等.结构化电子病历的应用[J].中国数字医学,2016,11(3):22-25.

[4] 任?.浅析电子病历系统[J].医学信息学,2010,23(1):19-20.

[5] 孙沂振,沈云学,唐鹤云.电子病历概述[J].医学信息学,2009, 17(3):23-24.

[6] 周希武,钱琦,朱大伟.基于HIS的嵌入式BIS结构临床路径信息系统的设计及应用[J].中国医疗设备,2015,30(12):107-108,148.

[7] 夏昕,曹晓钢,唐勇.深入浅出Hibernate[M].北京:电子工业出版社,2005.

[8] Will lverson.轻松掌握Hibernate[M].王华峰,唐发根,译.北京:清华大学出版社,2007.

[9] 刘斌.精通Java web整合开发:JSp+AJAX+Struts+Hibernate[M].北京:电子工业出版社,2007.

[10] 刘亚宾,杨红.精通Eclipse[M].北京:电子工业出版社,2005.

[11] 罗军舟,黎波涛,杨明.TCP/IP协议及网络编程技术[M].北京:清华大学出版社,2004.

Design of a Family Medical Record System

ZHANG Wen-wei1, YANG Xiang-wu2, TAN Jian-hui1
1. Department of Medical Engineering, No.421 Hospital of PLA, Guangzhou Guangdong 510000, China; 2. Maike Intelligent Technology Co., Ltd., Zhuhai Guangdong 519090, China

Abstract:Objective To design a family medical record system to make medical information accessible for family members at any time. Methods The system was divided into three parts which were interconnected via the network, including the medical record database, the proxy server and the client. The user-def ned application protocol was deployed to implement network communication interaction and data transfer between the client and proxy server. The proxy server monitored the query application of medical records from the clients and returned the query results to the user via the client. Results The system testing and validation indicated that medical information could be queried by using the system in PC (Personal Computer) clients and Android phone clients. And the system proved its great stability and strong practicality. Conclusion Electrical medical records not only should be applied in hospitals, but also for the society and families.

Key words:family electronic medical records; electronic medical records; network communications; hyper text transfer protocol

[中图分类号]TP311.52

[文献标志码]A

doi:10.3969/j.issn.1674-1633.2016.10.026

[文章编号]1674-1633(2016)10-0086-04

收稿日期:2016-02-29

修回日期:2016-04-07