电子科技大学学报
主办单位:国家教育部
国际刊号:1008-8105
国内刊号:51-1569/C
学术数据库优秀期刊 《中文科技期刊数据库》来源期刊
       首 页   |   期刊介绍   |   新闻公告   |   征稿要求   |   期刊订阅   |   留言板   |   联系我们   
  本站业务
  在线期刊
      最新录用
      期刊简明目录
      本刊论文精选
      过刊浏览
      论文下载排行
      论文点击排行
      
 

访问统计

访问总数:22408 人次
 
    本刊论文
基于.NET的电子病历的设计

  摘要:基于。NET架构,结合ASP.NET与SQL Server设计了结构化的电子病历系统,该系统实现了病人网上注册、查看病历、医生网上录入、病历集成等功能。本文对系统数据结构模型、总体结构、模块的划分以及关键问题的解决方案进行了详细的介绍。系统能有效提高医生书写病历的效率与质量,减轻医生的工作量,为将来全面实现电子病历打下基础。

  论文关键词:电子病历,NET,数据录入,信息系统,数据的动态显示

    电子病历(electronic medical record ,EMR ) 是用来保存个人的终生健康状况和医疗信息的电子载体,它由医务人员客观记录患者病情的变化及诊疗过程,可在医疗中作为主要的信息源取代纸张病历,满足诊疗、法律以及管理需求。

    目前病历普遍采用人工书写方式, 书写病历占用医生很多时间,保存病历占用大量空间,查阅、辨识都很困难,利用率很低,在一定程度上,影响了保存病历的价值。随着信息技术的发展,采用计算机来存储、管理病历,将有效的解决这个问题。同时还可通过网络传输电子病历,实现远程会诊。对病历中的大量医疗数据信息,不仅可以进行分析和统计,而且通过数据挖掘的手段,可以发现很多疾病之间的关联关系,疾病的发展和变化规律,隐含的疾病分类,以及诊断治疗的方法和诊断治疗的效果之间的关系[1],这些深层次的关系,将强有力地支持医学研究。

    1 系统的设计思想

    系统设计的出发点是为了实现采用计算机来存储、管理病历,减轻医生负担,方便对病历中的数据进行挖掘利用;要求病历使用简单易懂,层次分明;保证病人的个人隐私记录数据的安全。

    (1)采用先进的体系结构

    系统的设计采用B/S体系结构,并结合使用了。Net的N层架构,将对数据的处理和访问集中在了服务器端,易于客户端的调用;

    (2)开发友好的用户界面

    主要设计和开发4个主要用户界面,即患者信息管理界面,各科室录入界面,电子病历界面,系统设定界面,力求使整个模块界面风格统一,操作简单易用,条理清晰;

    (3)设计合理的数据显示模式

    采用动态添加Table的方式显示部分数据,具有较高的灵活性,不仅可以在表格中添加文本信息,还可以添加DropDownList、TextBox、button等控件,这些功能可以满足数据的动态显示需求;

    (4)保证系统的安全可靠

    模块的设计采用SQL数据库,利用存储过程间接修改数据库表,借此来保证用户的个人基本信息和病历数据隐秘性和完整性。

    2 系统的设计

    2.1 开发平台选择

    系统的开发主要在VS.NET 2005环境下进行,系统基于。NET框架构建,使用B/S模式,支持多客户端同时浏览操作。为了满足本系统需要存取大量数据以及对数据库性能的要求,选择SQL Server 2008作为数据库存储平台,使用ASP.NET设计页面,通过ADO.NET实现与数据库的连接。

    2.2 系统的数据结构模型

    电子病历数据包括患者基本信息、以往病史、检查信息、仪器检验数据、诊断结果、住院信息等内容。这些数据具有明显的层次结构,如图1所示。

    基于。NET的电子病历的设计

    图1 系统的数据结构模型图

    Fig.1 model of the structure of system’s data

    树中每个节点表示前一个节点的子信息。所有子信息的集合够成了完整的电子病历数据集。

    2.3 系统的总体结构模型

    用户通过因特网登陆到病历编辑浏览页面,输入正确的用户名密码后,可以正式访问该系统。电子病历系统总体结构如图 2 所示。

    基于。NET的电子病历的设计

    图2 系统的总体结构模型

    Fig.2 model of system’s structure

    在此系统中,为保证电子病历信息及用户信息的安全,对访问权限进行了严格的限定。各科室的医生仅有权对本科室患者的病历进行录入与修改,当诊疗过程结束后,患者的病历将由医生确认完成,此后将不能再次修改。患者通过客户端,可以查看自己的病历信息,使医疗信息更加透明化。

    2.4 系统模块划分

    通过对系统的功能分析,将系统划分为四个模块,如图3所示。

    信息系统

    图3 系统模块划分

    Fig.3 The division of system’s module

    (1)患者信息管理模块

    此模块的操作对象为患者基本信息和健康信息,如姓名、性别、年龄、家庭住址、联系方式、以往病史、家族史等。当患者第一次就诊时,由系统自动分配给一个Patient_ID,医生根据需要进行录入,患者信息将长时间保存,下次就诊时,根据Patient_ID或身份证号、姓名调出即可,无需再次录入。患者信息可根据实际需要,由医生进行补充、修改。

    (2)各科室录入模块

    此模块要求医生输入症状表现、治疗方案等。并按治疗过程依次输入时间、治疗步骤、用药情况等。在页面底部设有打印按钮,点击按钮可进行打印。患者基本信息将从数据库中取出并显示,医生可根据Patient_ID进行查询。

    (3)电子病历模块

    对各科室录入的信息进行归纳、处理并显示,医生可对内容进行编辑、保存、打印等操作;患者可通过此模块查询自己的病历信息。

    (4)系统设定模块

    包括以下功能:用户权限设定。通过实行EMR分级保密管理,设立查阅、输入、修改、使用分级授权,用户只能访问拥有访问权限的页面,防止非法操作及非法访问。病历安全级别设定。根据需要对病历的安全级别进行设定。

    3 系统中关键问题解决方案

    3.1 电子病历数据采集方式

    电子病历不仅是简单的病历记录电子化,它的更主要的价值体现在对电子病历中的大量医疗数据信息进行挖掘及应用以及临床决策支持,因此电子病历中的信息需要满足计算机对于临床信息的理解和利用能力,在计算机能够完全理解人类语言之前,计算机理解临床信息的前提就是临床信息的结构化[2]。

    结构化的内容是为满足计算机处理的要求而设立的,在实际临床应用过程中,需要计算机处理的数据往往集中在容易规范的那部分,如结果是数值型的检查、检验项目和一些具有固定归类的症状。并不是所有内容都需要结构化[3]。完全结构化的病例不仅可能造成临床信息的曲解,还限制了临床医生的思路,往往得不到临床医生普遍认同,早期的电子病历系统实现往往存在这样的问题[4]。自由文本描述是医生进行信息传递的一种重要形式,也是临床病历普遍采用的记录形式,具有较好的临床实用性,可预见的将来医生将依旧继续使用这种方式[5]。在二者之间寻求一种平衡,一方面结构化的部分可用作研究,以及智能化应用,另一方面也容易被医生所接受。

    系统采用单选框、多选框、下拉列表框等与文本相结合的数据录入方式,对于相对固定的内容如基本健康信息、以往病史、过敏史等采用表单的方式录入,如图4所示。对于诊断,建议等不方便进行结构化的部分仍用自由文本录入方式。图4 数据采集方式示例

    Fig.4 Example of data acquisition

    3.2 数据的读取和动态显示

    在电子病历查询中,会出现大量的数据信息,如何更好的读取和显示这些信息成为一个亟待解决的问题。

    (1)利用ADO.NET读取数据

    当同时登陆页面的用户较多时,需要频繁的使用到数据库中的数据,如果为每一个应用程序建立数据库连接并在运行期间一直保持这种连接的话,将对数据库服务器的性能产生较大影响。利用ADO.NET中的DataSet对象可以实现断开模型的访问[6]。DataSet可以包含多个DataTable对象,而DataTable包含列和行,类似于一张数据库中的基本表。当数据库中的数据传输到本地后,DataSet对象便从数据仓库中检索数据,并保存到客户机的内存中,此时,应用程序与数据库间连接的连接就可以断开了,之后数据的各种操作都在本地进行,如果是修改、删除数据,那么在应用程序工作完成后,可以重新连接数据库,将更改映射到数据库中。DataSet与目标数据库的数据交互是通过DataAdapter对象调用存储过程访问数据库来实现的,如图5所示。

    基于。NET的电子病历的设计

    图5 DataSet对象连接DataAdapter对象调用存储过程简图

    Fig.5 Diagram of DataAdapter object using DataSet object to call stored procedures

    (2)利用DataGrid控件实现病历数据的动态显示

    在。NET平台上,Microsoft提供了功能强大的数据显示控件:DataGrid控件。该控件是ASP.NET框架中最丰富最复杂的控件[7],不仅可以对数据库表中的记录进行格式化显示,而且还支持记录排序和分页功能,通过设置该控件的各种属性,能够灵活地定制其外观[8]。使用DataGrid控件主要分以下步骤:首先,在页面前台调用DataGrid控件。接下来,将需要动态显示的数据从数据库中读取,暂存于DataSet中。接下来,将DataSet中的存有需要显示数据的DataTable绑定到DataGrid数据源。最后,对DataGrid控件属性进行设置。启用AllowPaging属性,并建一个用来改变当前页码的子例程,实现分页功能。

    系统中采用DataGrid控件实现病历显示的例子如图6所示,通过对患者的姓名、病历号、日期等条件的查询,用DataGrid控件绑定病历的基本信息,并进行分页。

    图6 使用DataGrid控件实现数据的动态显示

    Fig. 6 Using DataGrid control realizes dynamic display of data

    (3)利用Table实现病历数据的动态显示

    病历系统对数据显示的灵活性要求很高,常常所显示的信息的数据表格并不是固定的,在这种情况下,只使用DataGrid控件无法满足需求。此时利用。NET的中的Table、TableRow、TableCell控件允许利用代码动态处理表格的特性,通过后台代码控制页面的显示。这使得数据显示的灵活性有了较大的提高,通过后台代码不仅可以在表格中添加文本信息,而且可以添加DropDownList、TextBox、button等控件[9],这些功能可以满足数据的动态显示需求。首先在页面上添加一个Table控件,接下来通过后台的代码循环为Table添加行。图7是在Table控件中添加DataGrid控件的展示图,如图7所示,每一个蓝色列标题隔开的部分是一个DataGrid控件,依次添加在Table的单元格中。

    电子病历

    图7 Table控件中添加DataGrid

    Fig. 7 Datagrid control in table control

    3 结论

    本文介绍了一种基于。NET的电子病历系统的设计与实现方法。实现了利用计算机对病历数据存储、管理、数据提取利用等功能。采用结构化表单与自由文本相结合的数据录入方式,有效的解决了电子病历中的医疗数据信息提取及应用困难问题。经测试,系统功能已经基本实现、运行稳定。

    致 谢

    感谢胡延平、刘建伟老师的悉心指导,感谢刘洋、段凯、孙晖同学的热情帮助,感谢宁宁、岳红丽、张秀香、刘鹏、杨国强、侯培栋师弟师妹的支持。

  参 考 文 献

  [1] 朱凌云,吴宝明,曹长修。 医学数据挖掘的技术、方法及应用[J]. 生物医学工程学, 2003, 20(3) : 559 - 562

  [2] JOHNSON et al.,An Electronic Health Record Based on Structured Narrative,Journal of the American Medical Informatics Association Volume 15 Number 1 Jan / Feb ,2008

  [3] 李昊旻。 电子病历的标准化结构化方法研究及实践[D]. 浙江 :浙江大学,2007.

  [4] Stephen Walther著,马朝辉等译。ASP.NET技术内幕。 北京:机械工业出版社,2002.

  [5] 廖邦富、胡安邦。 电子病历的结构化组织和自由化输入方法[J]. 中国数字医学,2007.

  [6] 戴芦生。电子病历中基于XML的CDA应用。电脑知识与技术2006

  [7] 张海涛,刘洪刚,程富强。XML在电子病历中的应用。电脑学习2004年10月第5期

  [8] 姜英华,孙钊。一个基于XML的电子病历系统。应用科技2004年10月VoL31,NO.10

  [9] 吕岩,卢奕南,曹大洲,杨佳颖,刘畅。基于Xpath查询的XML技术在电子病历中的应用。长春理工大学学报Mar.2004VOI.27No.1

特别说明:本站仅协助已授权的杂志社进行在线杂志订阅,非《电子科技大学学报》杂志官网,直投的朋友请联系杂志社。
版权所有 © 2009-2024《电子科技大学学报》编辑部  (权威发表网)   苏ICP备20026650号-8