APP下载

我院“军字一号”历史病历光盘查询系统的实现

2010-10-09黄卫平李军张渝

中国医疗设备 2010年7期
关键词:光盘病案病历

黄卫平,李军,张渝

重庆第三军医大学附属新桥医院 计算机中心,重庆 400037

我院“军字一号”历史病历光盘查询系统的实现

黄卫平,李军,张渝

重庆第三军医大学附属新桥医院 计算机中心,重庆 400037

本文介绍我院在“军字一号”信息平台上建立相应的病案转存系统的技术和实现方法。解决了“军字一号”文件服务器中的病历文件越积越多、不便查询的问题。

军字一号;历史病历;光盘;查询

0 前言

我院是2001年安装并使用的“军字一号”,以前的手工操作方式也被计算机的数字化所代替,随着每年病人流量的逐渐增多,“军字一号”使用年龄的增长,文件服务器中的历史病历文件越积越多,到目前为止历史病历文件已经高达12G以上,而临床医生经常抱怨医生工作站不能一次查阅本科室的所有历史病历文件。他们希望对历史病历文件的查阅不要局限于“军字一号”这个信息平台。因此,建立一个相应的病案转存系统,让病案管理人员对历史病历的管理并对历史病历文件建立光盘查询系统,以方便、快捷、准确、全面地为所需人员提供历史病历相关数据显得相当重要和迫在眉睫。

1 技术路线

理清文件服务器病历存储结构和“军字一号”数据结构中所用到的数据字典之间的关系后,从文件服务器中寻找满足临床研究条件的病历文件并按科室将其拷贝到本地机器,并将光盘查询所需的数据字典从服务器中导出。同时允许手工修改刻录方案并将光盘查询系统和历史病历文件及所需数据字典刻录成盘。

在历史病历文件导出和光盘存储方面,由于“军字一号”历史病历文件比较大,一次性从服务器拷贝过来占用资源比较多,那么对历史病历文件由大化小进行分类后拷贝便成了首选,在光盘存储和搜索查询机制方面,可根据需要分别按区域、年龄、科室、病种、时间、治疗结果等进行。

2 系统设计

2.1 系统查询设计

历史病历光盘查询系统用PB8.0开发。在本系统中,数据库的相关技术主要用于历史病历分科子模块和光盘查询系统,在历史病历分科子模块中主要是用到数据库中表的权限使用、索引技术。能够在一大堆数据中很快找出自己需要的数据,大大地减少了等待时间,降低了服务器消耗的资源,并为光盘上的数据建立数据索引,使得用户在光盘上查询时能够快速方便。

“军字一号”的病历文件是由WORD编辑并采用非结构性存储在文件服务器上,所以没有相应的数据表记录病人的病情发展和医生的诊断详述。而从WORD文档中按相应的字段搜寻所需内容的技术现在无法实现,所以生成结构化存储病历的数据表是无法实现的。这样可能会造成光盘查询系统在查询时由于医生诊断不详而导致查询失败。在这种情况下,弥补的办法就是模糊查询,查询较大范围的数据,然后再手工搜索。

2.2 设计中要解决的问题

历史病历光盘查询系统主要集中在科室字典、病案部分的病人主索引、病人住院主记录、病人在科记录、诊断记录、病案索引、诊断对照记录等几张表上,临床科室和临床科室病人的ID,并从中找到该病人的病历文件路径。

2.2.1 合理分配12G的病历文件的存储方式

“军字一号”病历文件现在已经达到了12G,如何分配其到底是按科室还是病种是一个比较棘手的问题,因为一张一般的CD刻录光盘的容量毕竟只有几百兆,如果全用DVD光盘进行刻录,势必会在某些科室(如整形美容科)或是病种上造成浪费。解决好这一问题是做好光盘查询系统的关键。

2.2.2 从光盘查询的索引条件

从光盘中查询病历,其条件是非常重要的,这些条件对于病种和病诊情况都是关键字。主要决定于临床医生研究中常用到的检索词,这个问题主要是靠和临床医生的交流、探讨来解决。

3 部分模块算法及其实现

该模块在选择临床科室时用到《“军字一号”数据结构手册》中的数据字典,如科室字典 DEPT_DICT、临床科室与病房(区)对照DEPT_VS_WARD,由这两张表,在数据窗口中运用SQL语句便可以得到医院的所有临床科室。

从数据库中读取所选科室历史病人信息和病历文件名,先检查所选临床科室是否为空,若为空则给出提示,若不为空则向下执行从数据字典中选出所选科室的相关信息,具体为“军字一号”系统中的数据字典表:病人住院主记录 PAT_VISIT、病历文件索引 MR_FILE_INDEX、诊断记录 DIAGNOSIS。用此几张表中字段,病人ID:PATIENT_ ID、住院标识:VISIT_ID,便可以唯一标示一个住院病人,再由病人ID,便可以在病人主索引表PAT_MASTER_ INDEX、病历文件索引表 MR_FILE_INDEX中找到表中所列的信息,再用PB建立数据窗口由SQL语句便可以从数据库中找到所有科室病人的信息,再根据Filter( )函数,setfilter(pat_visit_dept_discharge_from =’所选临床科室代码’),由此对数据窗口中的数据进行过滤,最终便得到所选临床科室的病人及病历文件相关信息。

“军字一号”医疗文件服务程序的初始设置中确定了病历文件在文件服务器上的存储目录,如做实验的服务器上的文件存储目录为“E:Mr”,而病历文件的存储结构是这样的:由于病人ID目前最长为10位,先取病人ID的后两位作为目录,然后看剩下的位数,如果剩下的位数为8位,则就以这个数作为第二级文件目录,并在它下面存储该ID病人的病历文件,如果剩下的位数不足8位,则差几位就在前面补几个0,让它变成8位,然后使它成为第二级文件目录,并把其对应病人ID的病历文件存储到该目录下。比如有两个病人,其ID 分别为“2005165874”、“119110”,那么它们的病历文件存储路径分别为“E:Mr7420051658”、“E:Mr100001191”。知道了病历文件的存储结构,然后从数据窗口中一行一行的提取病人的ID号和病历文件名,并用拼凑的方法解决了文件路径的生成,避免了用循环带来的麻烦,具体方法如下:

先定义一个为10位,且全部是0的字符串s1为“0000000 000”,把该字符串作为标准字符串,用它的长度与从数据窗口中得到的病人ID字符串s2长度作比较,即k = len(s1)-len(s2),那么病人病历文件的存储路径为:

“E:Mr ight(s2,2)left(s1,k)+left(s2,(len(s2)-2))”,其操作示意图如下:

先由s1和s2作比较,从s2中提取后两位,作为第一层目录:

取s2剩下的字符,并将前面的空位填上“0”,作为第二层目录:

图 1 历史病历分科模块程序流程图

由此便可以给到文件服务器上文件的保存路径,也可以得到用相应的方法存储文件的存储路径。然后根据医生工作站的公共函数连接库文件fsrv.dll,用它里面包含的函数get_file(),根据路径便可以读取病人病历文件到相对应的本地目录。这里需要特别说明的一点,在存储结构上继用了“军字一号”病历文件的存储方法,同是新增了一个分科目录,即用科室代码作为文件的第一层目录,方便区分病历文件的科室。

该模块的流程如图1所示。

3.1 导出数据模块

导出的数据是光盘检索的关键。导出的数据表主要包括病人的基本情况和就诊情况,包括医生对病人的诊断、诊断类型、病人的治疗结果、治疗天数、出院科室、出院时间等方面。由于考虑到有的科室病人多、病种多,所以将此类导出数据模块分别按科室导出与病种导出。

3.1.1 按科室导出数据

这是按照科室代码从“军字一号”数据字典中提取相应的数据,通过病人patient_id 和 visit_id,建立数据窗口,用SQL语句便可以从数据库中提取病人信息和病人住院就诊信息。点击“导出数据”,然后就将数据窗口中得到相关数据,如果所选科室为空,则以文本文档的形势存储到各个科室代码的文件夹中,否则就以文本文档格式存储到相对应科室的代码文件夹中(主要是方便某些科室数据更新所用)。

3.1.2 按病种导出数据

有的科室由于病人较多,病历文件较多,而病历文件又日复一日的增长,为了长远考虑和目前研究人员的需要,故增添按照科室病种导出数据字典子模块。其思想是通过先对科室数据的筛选,然后在此基础上分别对不同病种的筛选。最后保存数据到相关科室文件夹下。

3.1.3 自动生成刻录方案并刻录模块

这个模块主要要用到外接的API函数,首先是计算每个科室对应代码文件夹的大小,对其进行分盘刻录。

3.2 查询病历文件模块流程图

图 2 查询病历文件模块程序流程图

该模块主要是根据病人信息和病人就诊信息对满足条件的病历文件和相关信息进行查询。其程序流程如图2所示。

3.3 文件操作和个人收藏文件子模块

该模块下设置针对个人研究、学习需要建立病历之收藏子模块,通过该子模块,用户在ID号存在的基础上可以收藏信息,包括病人信息和病人对应的病历文件,病人信息保存到用户机器D:mget用户IDdata.txt中,病历文件保存到用户机器D:mget用户ID目录下。在用户在不同的电脑上使用时,只需要将data.txt拷贝到D:mget用户ID中,光盘系统就会自动识别并拷贝以前收藏的病历到D:mget用户ID。

4 结束语

本历史病历光盘查询系统的实现,首先可以加强对病案的管理并且不用再在数据字典和数字目录中为了手工查询而盲目奔波。其次,可以消除在手工查询时给在线文件服务器带来的不可预测的危险。最重要的是,使医生、学生和研究人员能够脱离“军字一号”的同时,也能方便、快捷、准确地在临床诊断、学习和临床研究获得有价值的信息。

[1] 吴洁明.PowerBuilder 6.0应用与开发[M].北京:清华大学出版社,1998.

[2] 王新英.Oracle8.x for Windows NT实用教程[M].北京:清华大学出版社,1999.

[3] 顾春山,等.关于电子病案管理所要解决的三个问题[J].中国医疗设备,2009(4):43-45.

[4] 军卫一号-0000-0601-DSM.“军字一号”医院信息系统数据结构手则[S].

[5] 王立,史明磊.医院信息系统的建设与维护[J].医学信息学, 2007,20(3):393.

[6] 庄炜.浅谈区域医疗卫生信息化建设需要注意几个问题[J].现代医院,2004(7):1-2.

[7] 左晖.电子病案是卫生信息管理发展的必然趋势[J].中国病案,2006,7(1):28.

[8] 赖仲琼.病案室如何做好电子病案管理[J].中国病案,2006, 7(1):26-27.

[9] 陈利康.互联网上电子病历系统安全机制[D].武汉:华中师范大学,2008.

Development and Application of No.1 Military Project History Medical Record CD Inquiry System

HUANG Wei-ping,LI Jun,ZHANG Yu
Computer Center,Xinqiao Hospital of the Third Military University,Chongqing 400037,China

TP317.3

A

10.3969/j.issn.1674-1633.2010.07.014

1674-1633(2010)07-0038-03

2009-11-03

2009-12-10

作者邮箱:hwp55662@163.com

Abstract:This paper introduces the technology and realization method of medical record unloading system based on No.1 military project information platform in our hospital.The accumulation problem of medical records in No.1 military project file servers and has been solved.

Key words:No 1 military project;history medical record;CD;inquiry

猜你喜欢

光盘病案病历
基于二维码的病案示踪系统开发与应用
强迫症病历簿
光盘行动
试析病案管理中预防病案错位发生的方法
“大数的认识”的诊断病历
光盘小熊
为何要公开全部病历?
试论病案管理在防范医疗纠纷中的作用
PDCA循环改进对病案首页中主要诊断正确选择的影响分析
村医未写病历,谁之过?