- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于.NET平台及Cache数据库结构化电子病历系统设计
基于.NET平台及Cache数据库结构化电子病历系统设计
【摘要】 电子病历(CPR)系统是医疗信息化的重要部分,在国外有不少广泛使用的系统,但不能通过汉化提高国内CPR水平,现基于.NET平台和Cache数据库提出一种结构化电子病历系统方案,主要创新点包括平台选择、病历模型结构、接口模型设计以及规则引擎的引入等。
【关键词】 结构化电子病历系统 病历模型结构 接口模型 规则引擎
电子病历(Computer-based Patient Record, CPR)是以病人为中心的信息集成,是医院所有业务系统的有机融合,能完整、动态地反映患者的医疗过程,是对个人医疗信息及其相关处理过程综合化的体现[1]。电子病历又称电子病人记录(EMR),现正向电子健康记录(EHR)发展。
《2007年中国医卫行业信息化建设与IT应用趋势研究报告》显示,电子病历、PACS、HIS系统的升级、完善和集成、信息安全等是2007年医卫行业信息化建设的投资重点[2]。目前不能通过汉化国外CPR软件提高国内CPR使用水平。首先,病历的组织结构、描述方式中外有别,国外的CPR系统不能完全适应国内的病历管理规范。其次,由于电子病历相关立法以及监督机制等方面的差异,国外CPR系统的设计理念和国内不一样。现国内的CPR要求将病历打印出来进行手工签名以起到法律效应。国外的CPR系统以表格或树形结构的方式录入数据,很难将计算机中的数据还原成“手工病历”。
因此,我们在认真分析了国内外CPR系统的基础上开发了基于.NET平合和Cache数据库的结构化电子病历系统。
1 系统体系结构
系统结构见图1。
数据访问层中对数据库的操作分两部分。访问组件在微软Enterprise Library中Data Access Application Block基础上修改,增加了对ODBC数据源的支持(因为目前.NET平台上还没有支持Cache的驱程),对Database抽象类功能进行扩充。图2所示的数据访问组件是以工厂模式[3]设计的,Database和DbCommandWrapper都是抽象类。客户端代码通过DatabaseFactory类创建Database实例。通过Cache提供的CacheObject访问Cache多维数组。
因病历输入过程中使用大量代码字典表数据,如诊断、症状、药品目录等。客户端在输入时都从数据库中读取,服务器负担很重,可用数据缓存方式加以解决。
2 开发平台选择
因国内医院普遍使用Windows操作系统,本系统基于Windows平台以WinForm程序为主,采用.NET平台进行开发。
数据库选择相对复杂。CPR系统中包括病历数据和其它基础数据。对于一般性数据可用关系型数据库进行建模、存储,而结构化处理后的病历数据就不能满足数据分析的需要。
病历本身数据量很大,再加上结构化处理时增加的描述符,最终数据会增加很多。基于共享需要,病历数据以XML格式保存[4],对它处理要用XQuery、XPath等技术。虽然主流关系型数据,如SQL Server、Oracle、DB2等都支持XML数据,但要提高数据查询效率,必须对数据添加索引。然而,病历数据的结构是动态的,不能有效建立索引。因而,将动态结构的数据分解为固定格式的明细数据。
在关系型数据库中,路径表示数据在病历结构中的位置。同步数据时借助路径来定位,分析数据时通过路径过滤。因为病历数据分解为明细数据后数据量非常大,相应的路径数量非常多,且查询数据时因缺乏必要的索引信息需遍历整个表。同时,值字段需要保存各种类型的数据,而字段类型只能是字符类型,在进行数据比较时要进行类型转换,查询的代价急剧上升。若能够提高数据遍历速度,并避免类型转换,将大大提高效率[5]。而这恰恰是Cache数据库的特点之一。
Cache数据库的核心是高效的多维数据引擎。通过内置的CacheObjectScript脚本语言,可以直接访问多维数据结构,这样可以获得最高的性能和最好的存储利用率。当有特别的或者专业的结构并且不需要提供对象或者SQL的方法来访问数据时,或者当要求尽可能高的性能时,直接的“global访问”是特别普遍的。
3 插件式应用程序框架
本系统客户端使用基于SmartClient技术的插件式应用程序框架,主要包括:①加载基本模块:基础框架类库定义接口IPlugin、IStartup模块程序实现接口,主程序通过PlugInHelper辅助类加载:②数据访问:基础框架类库定义接口IDataAccess,并实现SqlDataAccess,主程序通过DataAccessFactory访问数据库;③浮动窗口:主程序支持浮动窗口显示,基础类库定义DockingWindow,
DockingForm,Dock
文档评论(0)