计算机与现代化2012年第UA总第208文章编号:1006-2475(2012)12-0211-05收稿日期:2012-10-23基金项目:江苏省高校科研成果产业化推进项目(JH10-63);淮安市科技支撑计划()作者简介:徐义晗(1974-),男,安徽安庆人,淮安信息职业技术学院计算机与通信工程学院讲师,硕士,研究方向:软件复用,软件构件技术。社区居民健康档案管理系统的设计与实现(淮安信息职业技术学院计算机与通信工程学院,江苏淮安摘要:标准化、电子化社区居民健康档案的建立和管理,是当前社区卫生信息化建设的重点和难点。本文结合卫生部关于健康档案的相关数据标准和项目实施的实际情况,重点阐述社区居民健康档案管理系统的主要功能、系统架构、数据库设计以及主要实现技术等。关键词:健康档案;信息化;系统架构中图分类号:TP311.52文献标识码:Adoi:10.3969/j.issn.1006-2475.2012.12.-han(,,,China):.-,,,,etc.:;引言自2009年初国家新医改方案出台以来,从中央到地方相继出台了一系列相关加快社区卫生服务发展的政策、措施文件,其中卫生部《健康档案基本架构与数据标准(试行)》(卫办发[2009]46号)和《基于健康档案的区域卫生信息平台建设指南(试行)》的相继出台使得社区居民健康档案管理信息化建设有章可循,极大地推动了社区卫生服务信息化建设的进程。
在此背景下,2009年底淮安信息职业技术学院和江苏省淮安市王营镇社区卫生服务中心就居民健康档案管理信息化进行了深入研讨,联合成立课题组,在深入学习和研究卫生部相关标准和建设指南基设计并开发了“社区居民健康档案管理系统”。1系统功能设计社区居民健康档案管理系统主要实现一个县区级由下至上的居民健康信息数据采集、处理、存储和分析决策系统。其主要包括实现社区居民健康信息数据的多级采集,保证数据的准确性、及时性;实现对健康档案的查询、统计、分析和报表的生成;通过报表数据的分析、筛选和积累,逐步实现社区卫生疾病预防控制的预警决策功能;实现医疗卫生机构内部信息系统与社区医疗卫生信息系统之间的信息共享与交即实现健康档案互联互通。因此系统的核心工作是标准化、电子化的居民健康档案的建立和管理。系统采用模块化设计,包括基本信息、疾病管理、医疗服务、疾病控制、妇女保健、儿童保健等6大社区医疗卫生业务模块以及档案查询(实现统计查询和档案输出功能)和系统管理(实现字典管理和用户管理)两个模块,共计43个子功能模块。系统以居民个人基本信息为基础,以个人健康档案号为线索,全程记录每个社区居民一生中所发生的重要卫生事件。
各功能模块之间,既相互独立,能独立地进行健康信息登记、修改、查询、统计和标准化健康档案输出等功能,又能以健康档案号为线索将各个模块中的个人健康信息关联起来,形成某个居民全面的健康档案信息。系统功能如图1所示系统功能结构图居民健康档案的基本内容主要由个人基本信息和主要卫生服务记录两部分组成。个人基本信息,包括人口学信息、社会经济学信息、亲属信息、社会保障信息、基本健康信息、建档信息等。主要卫生服务记录是从居民个人一生中所发生的重要卫生事件的详细记录中动态抽取的重要信息。与健康档案相关的主要卫生服务记录有:(1)儿童保健:出生医学证明信息、新生儿疾病筛查信息、儿童健康体检信息、体弱儿童管理信息等。(2)妇女保健:婚前保健服务信息、妇女病普查信息、计划生育技术服务信息、孕产期保健服务与高危管理信息、产前筛查与诊断信息、出生缺陷监测信息等。(3)疾病预防:预防接种信息、传染病报告信息、结核病防治信息、艾滋病防治信息、寄生虫病信息、职业病信息、伤害中毒信息、行为危险因素监测信息、死亡医学证明信息等。(4)疾病管理:高血压、糖尿病、肿瘤、重症精神疾病等病例管理,老年人健康管理信息等。(5)医疗服务:门诊诊疗信息、住院诊疗信息、住院病案首页信息、成人健康体检信息等。
系统架构设计为了便于系统的管理和维护,系统总体系统架构选用B方式(/,即浏览器/服务器方式),应用.0作为Web服务器,.0作为首选数据库,J2EE作为开发平台,开发工具采用MyE-.0。这样既保证了在一定范围内系统性能的需求又确保了系统推广应用过程的方便性和版权问题。软件系统架构上采用J2EE轻量级框架技术SSH,即++的集成框架技术,同时采用Ajax页面无刷新技术和技术,提高页面的访问效率和视角效果,系统架构如图2所示系统架构图SSH框架构建的Web应用系统架构从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层。其中使用作为系统的整体基础架构,负责MVC的分离,在框架的模型部分,利用Hiber-nate框架对持久层提供支持,业务层用提供支持。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,后编写基本的DAO()接口,并给出实现,采用架构实现的DAO类来实现Java类与数据库之间的转换和访问,由完成业务逻辑,域模型层包含表达实际业务对象的对象,域模型业务对象贯穿于J2EE整个应用架构的各个层次。
系统数据库设计为记录居民健康档案信息共设计“个人基本信息表”、“高压血病人信息表”等 44 个数据库表。数据结构的设计,严格遵循《健康档案基本架构与数据标准(试 行)》要求。其中个人健康档案号作为社区居民在系统中贯穿始终的唯一性标识 符,直接或间接地将这44 个数据库表连接成一个整体。为方便用户录入操作以及 保证数据的标准化,系统中共设计“证件类型”、“药物类型”等数据字典300 多个。 为了对 数据字典、用户及用户权限进行管理,还设计了“用户信息表”、“数据字典表” 个用户系统管理的数据库表。同时,由于居民健康信息数据量极大,因而海量数据的存储和访问将 是系统需要解决的首要问题。为了解决海量数据存储问题主要采取了如下几点措 (1)数据库查询优化:建立适当的索引、SQL 语句及其优化是主要的策略。 建立适当的数据库表索引。对于使用频繁的“基本信息表”建立健康档案号索 引,对于与每一个 社区居民相关健康体检信息表, 建立信息记录号索引等。建立适合的关系数据库系统索引,可以避免全数据 库表扫描, 并减少了因为查询而造成的输入输出开销,有效提高数据库数据的查询速度, 优化了数据库性能。 性能优良的SQL 语句。
在设计SQL 语句时,首先,在进行查询时,返回的值 应该是查询所需要的。在查询中应该尽量减少对数据库中表的访问次数,使查询的 结果范围最小,这就意味着在查询时,不能过 多地使用通配符,如:“ *from ”语句;其次,在 where 子句中可以使用exist exist代替 或者 。(2)建立视图、临时表。系统中有大量的统计和查 询操作,数据量过大会严重影响查询速度,因此在数据库设计时,针对每个模块的 统计查询设计了相应的视图,去掉无关字段,保留有效字段,在查询时只对视图进 行操作,提高查询效率,系统共设计视图33 (3)数据字典数据一次读取,减少数据库操作。为了方便医护人员操作,系统中设计300 多个数据字典,数据字典数据以 下拉框的形式呈现给用 操作方便,正常情况下,对数据字典中数据的每一次使用都将产生数据库的连接访问,在大并发量的情况下,将严重影响服务器的性能。为了提高数据库访问效 率,将所有数据字典数据存储在同一个数据库表中,系统启动时统一加载数据字典 并保存在-tion 变量中,在后续的所有操作中直接从 变量中选取 数据字典数据,这样只需要系统启动时访问一次数据库,从而大大降低了服务器的 压力,提高了系统运行的速度。
系统实现的关键技术系统采用性能优秀的SSH ( + +Hi- )开发模型,不仅实现 了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这 样无论前端如何变化,模型层只需很少地改动,并且数据库的变化也不会对前端有 所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队 成员并行工作,大大提高了开发效率。同时为了提升系统的视角效果、开发效率、 安全性,项目组还采用其它一些技术。 (1)设计代码生成器,提高工作效率。在系统实现过程中,针对一些重复性 的工作设计代码生成器来提高工作效率,主要包括:生成数据登录、修改、查询等 JSP 页面,生成 映射文件 xxx.hbm.xml ,生成SQL 语句,生成 表单验证,生成 Excel 报表页面,生成档案输出页面等。下面以数据登 录JSP 页面的生成为例来说明。在系统实现过程中每一项功能的实现都需要JSP 页面的支持,从而与用户进行交互,但由于数据库表字段多,对于数据登录、修 改、查询等JSP 页面在设计时容易出错,而且工作效率极低。
系统中设计了JSP 页面代码生器,直接从Excel 表格中读入数据库表结构,生成JSP 页面,对于数据 字典数据生成下拉列表框,对于标志位生成单选框,对于日期类型生成日期选择 框,对普通文本类型生成文字框等。 其实现的主要原理为通过读取数据库结构Excel 文件,将Excel 中所有的字段 生成4 个一维数组,分别描述数据库表字段名称、字段描述、字段类型、是否为 空,涉及数据字典的字段均以Code 结尾,涉及标志位的字段以Mark 结尾,涉及