沈阳医学院 刘致放辽宁广播电视大学 佟思睿
结构化电子病历系统的开发与实现
沈阳医学院 刘致放
辽宁广播电视大学 佟思睿
【摘要】在对国内电子病历系统进行了需求分析的基础上,按照软件工程的思想要求,对电子病历系统进行了详细的分析、设计和建模,根据医院的日常实际工作流程设计系统各个功能模块,采用客户端/服务器(C/S)结构,以C#语言作为开发工具,SQL Server 2008为后台数据库,设计开发电子病历系统。
【关键词】电子病历系统;XML;C/S结构;软件工程
电子病历系统(EMRS,Electronic Medical Records System)是医院信息系统(HIS)的核心。它不仅指静态病历信息,更包括了电子病历信息的采集、存储、处理、传输、保密和显示,可以取代传统的手写纸张病历。电子病历是医疗、科研的最主要的数据来源,也是医疗服务质量、医疗技术水平、医疗管理水平综合评价的依据[1]。
医学院附属医院住院业务如下:
1)经医生诊断确需住院治疗的患者,由主治医生开具住院单,到住院部办理住院手续。
2)患者办理住院手续后,由护士站为新入院患者分配床铺,联系主管医生,并对病人进行测量体重,生命体征等检查,建立住院信息卡。
3)主管医生接诊后,询问患者病情,并填写入院记录,初诊病历等。
4)经过会诊,主管医生根据患者诊断情况,开具医嘱和治疗方案。
5)护士审核并执行主管医生开具的医嘱和治疗方案。
6)患者住院期间,医生每天巡视病房,并填写巡视记录。
7)患者住院期间,护士每天护理患者,并填写护理记录。
8)病人康复,由主管医生下达出院通知单,患者出院。
9)医院将出院证明、医嘱、病历等资料存档。
2.1 系统开发环境
系统开发环境根据C/S结构的要求进行选择,满足以下条件:操作系统选用Windows XP Professional,开发工具选用C#,数据库使用SQL Server 2008。
2.2 系统运行环境
2.2.1 硬件运行环境
(1)服务器配置:CPU:英特尔至强ES-2620;内存:8G;硬盘:300G。
(2)客户机配置:CPU:英特尔酷睿i5 3470;内存:4G;硬盘:1T。
2.2.2 软件运行环境
服务器端操作系统采用Microsoft Windows2003 Server,数据库采用SQL Server 2008,客户端操作系统采用Windows XP Professional。
3.1 系统功能设计
电子病历系统整个系统由基本信息管理、临床路径管理、电子病历管理、病历模板管理四大模块组成。电子病历系统功能结构分解图如图1所示。
图1 电子病历系统功能结构分解图
基本信息管理主要是对患者、科室以及医护人员的基本信息进行管理与维护。电子病历系统的用户我们一般根据各自的职责不同将其划分三类身份:管理员、医生、护士,不同身份的用户病历系统赋予不同的使用权限,管理员可以对患者信息,医护人员信息和科室信息进行管理,包括增加、修改、删除等操作。而医生仅可对患者信息进行管理,对医护人员信息与科室信息则只能查看,而护士仅可以对患者信息、医护人员信息、科室信息进行查看。之所以这样设计,主要是从电子病历系统的安全性角度去考虑,通过各类角色的业务范围来设定对系统的使用权限,避免越权行为的出现,使工作人员各司其职[3]。
电子病历系统的核心业务是针对不同情况的患者开出不同的电子病历,并将有代表性的病历制作成标准的病历模板,提供给全院医护人员调用查看。因此,电子病历系统的核心功能包括电子病历管理和病历模板管理两大功能。电子病历管理功能应该包括患者信息浏览,病历上传以及病历下载等功能。病历模板管理功能应该包括模板上传以及模板下载等功能。患者信息浏览主要是浏览患者的一些信息以及己经开具的电子病历信息。病历上传、病历下载、模板上传以及模板下载主要用于电子病历系统实际操作过程中对电子病历和病历模板进行添加、修改和删除操作。
临床路径管理主要是对临床路径与临床路径项之间的管理,临床路径和临床路径项二者之间的关系既独立,又有联系,一条临床路径中可以包含多个不同的临床路径项,一个临床路径项可以运用于多条不同的临床路径中。因此在增加一条临床路径时需要通过确认临床路径与临床路径项的关系来给新增的临床路径添加若干个临床路径项,而一个患者就诊后,对其的治疗可能包含若干条不同的临床路径,并且在实施时,护士根据临床路径执行的时间安排,对临床路径中的各个路径项进行执行[4]。
3.2 数据库结构设计
数据库结构设计是一项非常重要的工作,一个数据库的设计好坏直接决定着程序效率的高低。当程序使用时间越来越长,数据量越来越大时,数据库设计的好坏会显得更加重要[5]。因此,数据库设计直接影响到整个电子病历系统的可用性。
数据库名为DZBL,包括医护人员表(t_yhry),住院患者表(t_zyhz),科室信息表(t_ksxx),电子病历表(t_dzbl),病历模板表(t_blmb),临床路径表(t_lclj),临床路径项表(t_lcljx),患者临床路径表(t_ hzlclj),临床路径与临床路径项关系表(t_lcljgx),临床路径执行表(t_lcljzx)。
1)医护人员表(t_yhry){编号,姓名,类型,职称,密码,所做科室,备注},用来保存医护人员信息。
2)住院患者表(t_zyhz){流水号,姓名,编号,就诊科室,床位号,主管医生,主管护士,住院日期,出院日期,备注},用来保存住院病人信息。
3)科室信息表(t_ksxx){科室编号,科室名称,备注},用来保存科室信息。
4)电子病历表(t_dzbl){文档编号,住院流水号,文档名称,创建医生,创建日期,文档路径,备注},用来保存病人的电子病历信息。
5)病历模板表(t_blmb){模版编号,模版名称,模版路径,所属科室,备注},用来保存电子病历模版信息。
6)临床路径表(t_lclj){临床路径编号,临床路径名称,备注},用来保存临床路径信息。
7)临床路径项表(t_lcljx){临床路径项编号,临床路径项名称,备注},用来保存临床路径项信息。
8)患者临床路径表(t_ hzlclj){编号,临床路径编号,项目开始时间,住院流水号,创建医生,备注},用来保存某个病人的临床路径信息。
9)临床路径与临床路径项关系表(t_lcljgx){临床路径编号,临床路径项编号,备注},用来保存临床路径与临床路径项关系信息。
10)临床路径执行表(t_lcljzx){编号,临床路径项编号,执行时间,完成情况,备注},用来保存某个病人临床路径项的执行信息。
4.1 患者信息管理模块的实现[6]
4.1.1 模块说明
在患者信息管理模块中,主要是增加住院患者,以及对患者基本信息进行查询、修改和删除等。
4.1.2 操作步骤
在“患者信息管理主页面”中,操作人员点击【增加】,出现“增加患者信息页面”,填入患者信息,点击【保存】。操作人员输入住院流水号、患者姓名、患者编号,点击【查询】,选中查询出的患者,点击【修改】,出现“修改患者信息页面”,修改患者信息,点击【保存】。
4.2 医护人员信息管理模块的实现
4.2.1 模块说明
在该模块中,主要是对医院的工作人员进行增加、查询、修改和删除等。
4.2.2 操作步骤
在“医护人员信息管理主页面”中,操作人员点击【增加】,出现“增加医护人员信息页面”,填入医护人员信息,点击【保存】。操作人员输入医护人员姓名或医护人员编号,点击【查询】,选中查询出的医护人员,点击【修改】,出现“修改医护人员信息页面”,修改医护人员信息,点击【保存】。
4.3 科室信息管理模块的实现
4.3.1 模块说明
在科室信息管理模块中,主要是增加医院的职能科室信息,以及对科室基本信息进行查询、修改和删除等。
4.3.2 操作步骤
在“科室信息管理主页面”中,操作人员点击【增加】,出现“增加科室信息页面”,填入科室信息,点击【保存】。操作人员输入科室名称或科室编号,点击【查询】,选中查询出的科室,点击【修改】,出现“修改科室信息页面”,修改科室信息,点击【保存】。
4.4 临床路径管理模块的实现
4.4.1 模块说明
在临床路径管理模块中,主要是增加临床路径信息,以及对临床路径信息进行查询、修改和删除等。并可通过由此进入修改临床路径与临床路径项关系页面。
4.4.2 操作步骤
在“临床路径信息管理主页面”中,操作人员点击【增加】,出现“增加临床路径信息页面”,填入临床路径信息,点击【保存】。操作人员输入临床路径名称或临床路径编号,点击【查询】,选中查询出的临床路径,点击[修改],出现“修改临床路径信息页面”,修改临床路径室信息,点击【保存】。
4.5 临床路径项管理模块的实现
4.5.1 模块说明
在临床路径项管理模块中,主要是增加临床路径项信息,以及对临床路径项信息进行查询、修改和删除等。
4.5.2 操作步骤
在“临床路径项信息管理主页面”中,操作人员点击【增加】,出现“增加临床路径项信息页面”,填入临床路径项信息,点击【保存】。操作人员输入临床路径项名称或临床路径项编号,点击【查询】,选中查询出的临床路径项,点击【修改】,出现“修改临床路径项信息页面”,修改临床路径项信息,点击【保存】。
4.6 临床路径与临床路径项关系管理模块的实现
4.6.1 模块说明
在临床路径与临床路径项关系管理模块中,主要是为某一个临床路径添加临床路径项,以及对临床路径中所包含的临床路径项信息进行查询、修改和删除等。
4.6.2 操作步骤
在“临床路径信息管理主页面”中,操作人员点击【详细情况】,出现“临床路径与临床路径项关系主页面”,操作人员选择添加的临床路径项,输入延迟时间,点击【增加】,即可为临床路径增加一个路径项。操作人员选择临床路径项信息,点击【删除],即可为在临床路径中删除一个路径项。
4.7 患者临床路径管理模块的实现
4.7.1 模块说明
在患者临床路径管理模块中,主要是为某一个住院病人添加临床路径,以及对该病人的临床路径信息进行查询、修改和删除等。
4.7.2 操作步骤
在“患者临床路径管理主页面”中,操作人员选择可添加的临床路径,输入开始时间,点击【增加】,即可为患者增加一条临床路径。操作人员选择临床路径项信息,点击【删除】,即可删除一条临床路径。
4.8 患者临床路径执行模块的实现
4.8.1 模块说明
在患者临床路径执行模块中,主要是查询某一个住院病人临床路径项详细信息,以及执行该病人的临床路径项等。
4.8.2 操作步骤
在“患者临床路径管理主页面”中,操作人员点击【查看详情】,出现“患者临床路径执行主页面”,操作人员选择未执行的临床路径项,点击【执行】,即可为将该临床路径项改为己完成。
4.9 电子病历管理模块的实现
4.9.1 模块说明
在电子病历管理模块中,主要是为病人添加电子病历,以及对该病人的电子病历进行下载和删除等。
4.9.2 操作步骤
在“电子病历管理主页面”中,操作人员点击【浏览】,出现“电子病历上传页面”,选择需要上传的病历,点击【上传】,即可上传一份电子病历。操作人员选择【下载】,出现“电子病历下载页面”,点击【保存】,即可下载一份电子病历。
4.10 病历模版管理模块的实现
4.10.1 模块说明
在病历模版管理模块中,主要是添加一个病历模版,以及对该病历模版进行下载和删除等。
4.10.2 操作步骤
在“电子病历模版管理主页面”中,操作人员点击【浏览】,出现“电子病历模版上传页面”,选择需要上传的病历模版,点击【上传】,即可上传一份电子病历模版。操作人员选择【下载】,出现“电子病历模版下载页面”,点击【保存】,即可下载一份电子病历模版。
系统测试是软件开发周期中极为重要的一个阶段,通过测试可以保障所开发的软件是否满足用户需求,是否可靠。软件测试的方法包括白盒测试法和黑盒测试法两种[7]。
由于电子病历系统需要多名医护人员同时使用,多人访问服务器,系统需要能够提供多名用户同时使用,确保系统平稳运行,不会导致系统瘫痪及重大故障[8]。
5.1 系统登录
系统登录时,为了防止使用者身份被他人冒用,系统必须验证其是否是访问者本人[9],验证过程中需要访问者输入正确的用户名和密码,当用户名或密码不正确,或者数据库配置不正确和ORACLE数据库异常而引起的不能正常登录,系统应该给出相应的信息。测试输入错误密码,系统会出现“口令错误”提示框,输错3次,系统自动退出。
5.2 增加患者
病人住院后,由管理员为住院患者输入基本信息。管理员输入患者信息时,系统自动为住院患者生成住院流水号,当患者是第一次住院时,还将自动生成患者编号,如果患者以前己经住过院,并在系统中有记录,那么患者编号将使用其在系统中己经存在的编号。并自动为患者填写住院日期。
在测试环境中,输入一个名字为“张光”的患者,系统自动生成住院流水号为“20120101071000001”,由于患者是第一次住院,自动生成患者编号为“2012010100000001”,并生成住院日期“2012-1-1 7:10:00”。管理员只需选择就诊科室,床位号,主管医生,主管护士即可。输入完成,管理员点击【保存】。在数据库中增加了一条患者记录,增加测试成功。
5.3 增加科室
某些时候,需要对科室信息进行维护,增加新的科室,删除过时的科室,以便在查询到相应的科室信息。在录入时不能出现同名的科室。
测试增加科室信息,在增加科室窗口,新增一个科室“内分泌科”,由于数据库中己经有“内分泌科”这个科室,系统自动提示“该科室己存在”,拒接添加“内分泌科”到数据库。
5.4 上传下载病历
患者住院后,需要对患者制作新的病历,或者查阅患者己有的病历。这就需要利用到病历的上传下载功能。
进入患者电子病历界面,我们可以看到该名患者名下所有的病历信息,医生若要为该患者上传一份新添加的电子病历,只需【浏览】,在上传窗口选择需要上传的病历文件,点击【上传】。若需要查看该患者某一份病历,只需【下载】,在下载窗口选择病历保存的文件夹,点击[保存]。
测试病历上传下载功能,进入患者“赵光”的电子病历界面,点击【浏览】,在打开的上传窗口选择“医疗病历”文件夹下的“糖尿病治疗方案.doc”,点击【上传】,发现在“赵光”的电子病历信息中多出了一份名为“糖尿病治疗方案”的电子病历。测试上传成功。
点击“糖尿病治疗方案”后的【下载】链接,在打开的下载窗口中选择保存的文件夹,点击【保存】,发现在该文件夹下下载了一份“糖尿病治疗方案.doc”的电子病历。测试下载成功。
随着医院信息系统的快速发展,电子病历将逐渐作为临床信息系统的核心,成为HIS发展的必然趋势。电子病历(EMR)是从更高角度来组织和利用医疗信息,提供规范化的、便于阅读和交流的病历信息,实现准确的信息检索和分类统计,从更高层次上保证数字化医院的长期稳定发展,使计算机更多地为临床医疗工作服务,同时作为信息交流和资源共享的数据基础为区域卫生服务系统和公共健康体系的建设创造条件[10]。
本系统基于微软.NET框架设计,选择客户端/服务器(C/S)的模式,采用典型的三层开发架构,利用C#语言实现了系统的部分功能模块。本系统实现了一个完整的结构化电子病历系统,临床文档结构设置灵活,可以适应不同医院的要求。从目前部署实施的医院来看,电子病历系统的应用提高了医护人员的工作效率,提高了病历的规范度,也提高了医院的医疗服务质量,因此取得了良好的效果。在新医改推向深入的今天,本系统在医疗信息化方面有着广泛的应用潜力和一定的商业价值。
参考文献
[1]吴庆成,吴勇,李家靖.电子病历系统在医院信息管理系统中的应用[J].知识经济,2013(14):112.
[2]孟庆崧,戴鲁男.基于SOA的医院信息系统集成平台研究[J].中国数字医学,2012,7(6):51-53.
[3]何杉.基于.NET的电子病历的设计[J].大众科技,2011,1: 57-58.
[4]李慧玲,杨小平,宁文漱丽.支持临床路径的电子病历系统开发设计[J].医学信息学杂志,2011,32(3):13-15.
[5]Jeffery A.Hoffer,Mary B.Prescott.Modern Database Management,Sixth Edition[M].电子工业出版社,2004:269-276.
[6]陈可.基于XML的电子病历系统[J].计算机系统应用,2012,21(6):46-50.
[7]Chen Mingsong,Qiu Xiaokang,Li Zuandong.Automatic Test Case Generation for UML Activity Diagrams[C].International Conference on Software Engineering Proceedings of the 2006 international workshop on Automation of software test,2006,2-8.
[8]魏翎.关于电子病历系统的探讨[J].医学设备信息,2007, 20(6):74-75.
[9]章丹,李凤华,傅万明.电子签名在电子病历中的应用及相关法律问题[J].医学研究生学报,2007,20(2):189-190.
[10]陈金雄.电子病历建设与发展[J].中国数字医学,2011,6(5): 52-55.
刘致放(1980—),女,辽宁沈阳人,计算机软件与理论硕士,讲师,主要研究方向:医院信息系统。
作者简介:
基金项目:2014年辽宁省教育厅科学技术研究一般项目“结构化电子病历系统的设计与开发”(项目编号:L2014412)。