电子病历开发经验共享 —— 2009年一时兴起写在某个论坛上的,转抄留恋。

半年前,重新回到了医疗信息行业,接受的第一个任务就是电子病历系统开发,我的主要职责是电子病历系统的总体设计和电子病历编辑控件的代码编写。经过3个多月的研发、调试,总算有一个基本成型的产品能够在一些医院开始试用,就在今天都还在陆陆续续地修改BUG。
回顾整个研发过程和实施过程,一些心得与大家共享,共同推进中国医疗信息化发展。有不同见解地方,欢迎讨论。
1、目标的确定
电子病历系统开发,目标确实是非常重要的,为确定最终的需求,我花费了大约3周的时间查阅资料和与人探讨。在此要感谢陈联忠老师,在咨询他时给予了一些支持。由于离开这个行业太久,所以查阅资料重新熟悉花费了很多的时间,最终确定了需求目标。

不过在产品上线后,还是发现需求目标与实际需求的偏离。目前无论是网上还是会议、还是卫生部标准,大篇幅地都在讨论电子病历的结构化问题,但目前医院医生们的实际需要是什么?是哪些医生在书写病历?不知道有几位能够准确的回答这个问题。
15年前我也是一个医生,写大病历的数量没有30份也有20份吧,入院病历应该在200份以上,那时的病历书写全靠钢笔和纸张,真希望有个能复写的东东来解决大篇幅重复书写的问题。大家都知道病历是医疗过程的记录,但是几乎所有的人,包括很多医生自己都忽略了,病历书写还是训练临床低年资医生严谨思维方式的重要手段。老一辈医学家张孝骞老师曾经说过“写大病历的阶段至为重要,要通过它形成一种终生不改的习惯,即在诊务繁忙之中,也能如条件反射般运用,在诊治病人过程中不遗漏任何要点。这种训练是短暂的,稍纵即逝,一旦落课,就无法再补,切勿等闲视之”。还有谁记得,上学时老师们强调的“查你所写,写你所查”的病历书写要点。
在此呼吁和提醒各位,对电子病历的认识,不能仅仅停留在记录上,还应意识到书写病历有训练低年资医生的作用。所以目前的电子病历应充分重视书写便捷性和书写过程中对临床事务的训练作用,其次才是结构化存储和查询。

这也是后来通过实践认识到这个问题后,我们的电子病历系统在初步解决结构化问题后,90%以上的精力都放在了如何提高书写便捷性和引导式输入上。关于引导式输入的问题我会在另外的论题上探讨。

2、工具的选择
软件研发行业都知道,最先进的不一定是最适用的。在开发电子病历系统时,选择何种开发工具,确实有一个犹豫过程。公司产品是用PB开发的,说句老实话,我一直对PB和VB这两种解释性语言不太感兴趣,10多年来一直用C/C++和Pascal,三层结构和面向对象设计的优劣都很清楚。

PB在两层数据库开发速度上有绝对优势,但运算性能和复杂算法、图形操作上显得很弱。再加上时间紧迫,与领导协商后,决定与数据库系统相关的还是用PB完成,最核心的电子病历编辑控件用我熟悉的Delphi开发,做成ActiveX控件。另外Delphi丰富的第三方控件库,基本上都是开源的,即便买也很便宜,这也是一个重要原因。从目前结果来看,效果还是不错。所以要想快速开发出产品,还必须选择自己熟悉的工具,最好在已有的控件基础上改,否则从最底层做起,那得猴年马月去了。至于为什么不选择.Net,呵呵,个人喜好。

3、设计
解决了电子病历控件问题,其他设计基本上不算有难度,毕竟搞了10多年数据库,再复杂的业务都搞定过。不过在总体设计时,应充分考虑将来的扩展,卫生部《基于健康档案的区域卫生信息平台建设指南(试行)》和《电子病历基本架构与数据标准征求意见稿》要多看几遍,毕竟代表了一个趋势。在设计时一定要考虑到未来发展需要,电子病历控件不能仅仅满足书写病历,还必须支持健康档案书写的需要,例如表格、图片、表达式的支持,另外对RadioButton、CheckBox、Edit、ComboBox等控件的支持也是需要的,否则以后表格书写很困难的。

不同开发工具之间的兼容性问题也要在代码开始前解决,说句实话,PB与Delphi的兼容性有些让人头痛,不过好在都解决了。花了1个半月写代码,又花了半个月调试,三个控件,每个近150个函数和事件,工作量还是很大的。不过干得很愉快,成就感强烈,哈哈!

4、实施
实施的一句话“沟通比技术重要”,与医生进行写病历沟通,《病历书写规范》是每个实施人员必须熟读的东西,不理解,背呀!我们当初医学生就是这样训练出来的,想要一口吃成胖子,只有天才能做到。想很好理解病历书写过程中的需要,简单,跟着医生手写5份大病历,10份入院病历,就能有感觉了。不愿写?对不起,我帮不了你了。

5、预计与现实的差距
从书写角度讲,通用性书写器Word是电子病历非常不错的选择,可惜MS太小气了,开放的接口不够理想,如果能让我获取到操作者书写过程中的动作,比如按下哪个键了,光标位置在哪里,鼠标移动到哪个文字上了等等,我一定选择Word了,可惜...金山WPS也许是一个不错选择,不知道他们是否有这方面的意愿,由于开发时间紧迫而没有联系,一般来讲在中国搞合作不容易啊!

6.感叹

作为软件开发者,最高兴的事其实是自己的产品能够为使用者接受和推崇。10多年来为这个目标走了很久,可惜一直不理想,搞过的行业众多,包括社保、住房公积金、产权产籍管理、住房保障、教育考试等,甚至最后还在工业控制上尝试了1年多,最终还是走回了自己熟悉的医疗专业,不过目前看来是走对了,感谢现任公司领导,给了这样的机会。

从医生改行搞软件,从程序员做起,一步步走过来,其中的辛苦不是常人能够理解的,好在喜欢。回顾10多年,还是要感谢在医学院的老师们,是他们当年的严格要求,造就了现在的严谨态度和对事业的责任心。从事临床工作的数年,吃过各种苦,才能在当程序员后再苦再累也不感觉苦累。

目前在公司继续领导和开发合理用药、临床决策、PACS/LIS等项目,公司的小伙子们是我见过的最棒的,心情也很愉快,很愿意把自己的经验和知识传授给他们。

如果大家有兴趣和疑问,也可以和我联系,QQ:453897806,最好是发邮件,我不常上QQ。

2011-10-14

2009年曾经在一家HIS公司从事电子病历开发大半年,因个人原因离开,甚感歉意。当时用Delphi基于第三方控件RichView做的,总感觉存在问题。后来仔细思索了很久,最后认为还是对电子病历的理解以及实现思路问题。电子病历不仅仅是要解决病历书写问题,还应解决病历内容检索、内容识别、对低年资医师思维模式训练等多个要求。用文字编辑器做病历编辑器,能够解决书写问题,但不能解决其他问题,尤其是卫生部关于病历数据元管理规范公布后,结构化、内容识别与质量控制等成为病历编辑器的一个重要瓶颈。

posted @ 2011-10-14 18:40  玻璃城市  阅读(1692)  评论(1编辑  收藏  举报