Linux环境在门诊信息系统中的应用

2010-02-14 01:10孙大鹏
中国医疗设备 2010年4期
关键词:数据库软件环境

孙大鹏

沈阳军区司令部 门诊部,辽宁 沈阳110001

Linux环境在门诊信息系统中的应用

孙大鹏

沈阳军区司令部 门诊部,辽宁 沈阳110001

本文介绍了以Linux为平台,MySQL为后台数据库,Qt为开发工具构建门诊管理系统的情况。对于一些暂时无法停止的Windows平台上的应用,我们使用VirtualBox虚拟机软件对此提供支持。我们的方案解决了单个Windows环境需要运行多个软件系统时可能引起的冲突问题,避免了以Windows为目标的木马病毒的威胁,构建出一个安全、稳定、便捷的办公平台。

门诊信息系统; Linux操作系统; 虚拟机

0 前言

Linux桌面环境经过多年发展,已经相比过去有了极大进步。虽然在易用性等方面与微软操作系统还有一定差距,但做为办公应用已经完全可以接受。Linux发行版通常都包含完整的办公应用软件,从文字处理到各种常用工具应有尽有。做为软件开发平台,Linux环境里也有许多成熟的开发工具可供选择,其中比较有影响的是Trolltech公司出品的Qt。

出于对信息环境安全的考虑,几年前我们就开始了Linux环境下门诊管理系统的可行性方案研究和技术细节测试,并在最近开始在一些节点上开始了Linux平台的实施应用。

1 开发背景

目前盗版Windows操作系统在我国仍有很大的装机量,虽然盗版操作系统使用起来也很稳定,甚至还可以通过一定的手段来登录微软的网站获得升级服务,但这种大面积的盗版毕竟与中国这样一个在国际舞台上负责任的大国形象不符。目前我国政府已经要求所有品牌的PC机在出售时必需预装正版的操作系统。但如果真的要在微软平台上实现正版化,那随之而来的软件成本将会是一个无法回避的问题。零售版的Windows系统价格一直居高不下,即使是品牌机里预装的OEM版,价格也要几百元。数据库产品的价格更是让一般的中小用户高不可攀,软件开发工具的价格通常也很昂贵。

相比之下,Linux下解决方案则是免费的。操作系统、数据库、开发工具分别从各官方网站下载即可。

选择Linux平台的另一个更主要的原因则是出于信息安全的考虑。操作系统是计算机信息系统的基础,在这个领域微软的霸权地位短时间内不会被动摇,在我们使用的Windows系列软件中,操作系统底层的技术细节微软不可能提供给我们,这些规模庞大的代码中是不是留有后门,我们不敢保证。想要脱离微软环境另起炉灶完成一套操作系统,最可行的方法就是利用成熟的Linux平台,发展起我们国家自己的操作系统,这是一条捷径,也是一个机遇。国内已经有一些成熟的Linux发行版进入政府采购项目。

2 软件介绍

2.1 Linux操作系统

Linux于1991年诞生在芬兰的赫尔辛基大学,经过近二十年的发展,尤其是一些商业软件公司的介入,使得它日趋成熟起来。本来它最适用的环境是网络服务器,但近年来为它开发的一些桌面环境使Linux的易用性有了长足的进步,在桌面应用领域与微软的Windows桌面环境相比已经差距很小[1]。

Linux有许多发行版,国外比较著名的有RedHat、TurboLinux、SuSe等,国内厂商中影响比较大的有红旗、中标软等,红旗的前身是中科院计算所,我们选择的平台就是由红旗的技术人员支持的一个社区版Qomo Linux(原Everest Linux)[2]。

Linux 具有稳定、免费、开源、安全等许多优点,但在桌面应用时Linux也有一些不足之处,就目前来说,最突出的问题是外围设备厂商对Linux的支持不够好,但这种情况现在正在一点点的改善。

2.2 MySQL数据库系统

MySQL是如今最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发、发布并支持的,MySQL具有快速、可靠和易于使用等特点。MySQL 服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以来,它已成功用于众多要求很高的生产环境。目前MySQL服务器已能提供丰富和有用的功能。它具有良好的连通性、速度和安全性[3]。

Connector/ODBC (MyODBC)接口为使用ODBC(开放式数据库连接性)连接的客户端程序提供了MySQL支持。Connector/J接口为使用JDBC连接的Java客户端程序提供了MySQL支持。客户端可运行在Windows或Unix平台上。

2.3 Qt开发工具

Qt是TrollTech公司的标志性产品,QtCreator是Qt提供的一种可视化的编程工具,采用C++作为程序设计语言。Qt工具包有两种不同的版本,一种是用于商业性质的专业版,另一种是用于开发X平台自由软件的自由版。专业版用于创造商业贸易方面的跨平台软件;而自由版已经成为用C++ GUI工具包在Linux上进行自由软件开发的主流,它是Linux上流行的KDE桌面环境的基础。另外,它还是一种跨平台的编程工具,能够确保软件非常方便地应用于绝大多数操作系统。

Qt作为一种非常优秀的编程工具,具有很多优点和一些其它编程工具所不具备的特征。

Signal和Slot机制是Qt最重要的特征。在Qt中一个类可以定义多个Signal和Slot, Signal就相当于是“事件”,而Slot就相当于是响应事件的“方法”。为了实现“事件驱动”,需要将一个类的Signal和另一个类的Slot连接起来(使用connect) 。采用这种机制是一种安全可靠的方法,它允许回调,并支持对象之间在彼此不知道对方信息的情况下进行合作,这使Qt非常适合于真正的构件编程[4]。

3 门诊管理信息系统的建立

3.1 系统设计思想

在进行系统设计之前,我们考察过一些其它的医疗机构管理系统,包括军字一号工程、军队门诊管理系统等,借鉴了其中一些合理的管理思想,在此基础上结合我门诊部的一些特殊情况和工作流程,设计了自己的管理系统。因为单位的管理要求随着时间推移,可能会有变化,所以对扩展性、兼容性也做了许多考虑。

3.2 系统功能模块划分

整个门诊管理信息系统从功能上划分,大致分为一般管理、基本信息维护、挂号、收款、调剂室管理、库存药品管理、体检管理、军队人员个人医疗卡信息管理、财务管理、综合报表等几大部分。每一部分实现功能如下:

一般管理:包括注销、退出、修改密码,这些功能对所有用户开放权限。

基本信息维护:一些基础数据表的维护,比如系统用户的增加与删除,用户权限的设定,药品及检验治疗项目的统计与打印类别设定等等。

挂号:患者就医的第一个环节,录入患者的基本情况,生成就诊信息。

收款:收款室日常工作。

调剂室管理:包括日常窗口工作和调剂室药品管理。

库存药品管理:药局库房日常工作,入库、出库、查询、盘点等。

体检管理:全面覆盖了本单位体检工作的各个方面,从体检申请单的录入、打印,到体检结论的储存与汇总。

军队人员个人医疗卡信息管理:按军队医疗制度改革的精神要求,为保障范围内的全部人员建立个人帐户,详细记录每个保障对象的药品使用与检验治疗情况,每月按上级要求生成汇总信息上报。

财务:主要针对收款室进行管理,还有一部分记帐用户的管理。

综合报表:供本单位领导使用的各种统计报表。

3.3 应用程序设计

在Linux环境下进行大规模的程序开发,对我们来说是第一次。在开发过程中我们遇到了许多从未见过的技术问题,尤其是在开发过程的初期。虽然之前我们也做过一些技术验证性的工作,但实际开发的时候还是出现许多预料之外的问题。

具体的细节性技术问题太多,比如Qt控件的使用、Linux内码的转换、与数据库的接口方案等等。本文限于篇幅无法一一介绍,如果细写的话,这些问题可以写成另一篇文章。

虽然出现了各种麻烦,但所有问题都最终得到了解决。在Windows环境下能够实现的,在Linux下同样能够实现,只要适应了Linux的工作环境,开发效率同样很高。

4 从微软环境向Linux迁移

4.1 数据库迁移

为了从微软环境向Linux迁移,两年前我们的后台数据库就已经从ORACLE过渡到了MySQL。最初我们的信息化环境建立起来的时候,是完全的微软环境,Win2000服务器,Win98终端。有了向Linux发展的计划之后,在两年前新增加服务器的时候,在新服务器里就直安装了红旗Linux系统,运行MySQL数据库。各终端通过MySQL的ODBC工具与数据库连接。

出于兼容的考虑,MySQL中的数据表与ORACLE使用了相同的结构。为了转移数据,我们单独编制了一组模块,用于把数据从ORACLE数据库读出,写入到MySQL数据库。因为数据操作使用的是都标准的SQL语言,所以整个过渡过程中没有遇到棘手问题。

4.2 工作节点的环境迁移

为保证工作的平稳过度,我们在最初使用Linux系统的机器上采取了安装双系统的方法,同时在机器里安装了Qomo Linux和WindowsXP环境。保留旧的Windows环境可以正常应用,但不把Windows做为首选启动项,机器正常开机进入的是Linux环境。为便于工作人员接受,各节点机器采用了相同的用户帐户登录,工作界面尽量与旧系统保持一致。初期使用的挂号、医生工作站等节点的过度非常顺利。

5 对Windows系统的兼容处理

单位办公室的机器需要运行一些上级部门下发的专用软件,因为这些软件来历不一,所以软件之间经常会有冲突。比如我们手头正在使用《执业医师注册管理系统》和《实报实销医疗费管理系统》,它们都使用了ORACLE做为后台数据库,这两套软件无法安装在同一台机器上,工作起来很不方便。

经过研究和试验,我们摸索出了这样的方法:在办公机器中安装Linux操作系统做为平台,然后在这个平台上安装虚拟机管理软件,在Linux操作系统的统一管理下,运行多个虚拟的目标Windows环境,这样就完美地隔离开各个系统之间的干扰,从根本上解决了软件冲突问题。

5.1 软件选择与安装

虚拟机软件我们选择了SUN公司的VirtualBox 2.1.4版本。下载来的VirtualBox是个二进制安装包,安装过程很简单,在Linux下取得root帐户权限后,在命令终端下直接运行即可执行安装,安装过程中不需要进行任何选择。安装过程在命令终端上完成[5]。

5.2 虚拟机软件的使用

虚拟机软件安装好之后可以通过开始菜单在桌面环境上直接启动。虚拟机软件主界面左侧列表中显示了已经安装的虚拟机,选中相应虚拟机之后,右侧列表中显示出该虚拟机的配置内容,需要启动某一台虚拟机时,单击“开始”按钮,被选中的虚拟机即开始启动。需要新建虚拟机时,点击左上方“新建”按钮即可弹出新建虚拟机的对话框。

5.2.1 建立并配置一个新的虚拟机

为便于用户使用虚拟机,软件本身提供了向导功能,按照向导的提示,做一些很少的选择即可。大多数的选项都可以按默认设置。新建立的虚拟机就会出现在主窗口的左侧列表中。点击“设置”按钮,进入虚拟机设置界面。在各项设置中,相对复杂一点是数据空间。数据空间是主机硬盘上的一个公共的数据存储区域,虚拟机和主机都可以对它进行读写,通过这种方式来进行主机和虚拟机之间的数据交换。

使用USB存储设备进行数据交换也是可选方案之一,但我们在实际测试中发现,Linux系统对设备的操作权限有比较严格的限制,在我们使用的Qomo Linux上的测试结果表明,只有进入root帐户启动虚拟机,才可以进行正常的USB操作。而出于安全考虑,在日常工作中应尽量避免使用root帐户进行工作。其它Linux的发行版是否也是有这种限制,我们没有做过测试。但无论如何,使用数据空间来交换数据都是既可靠又便捷的方法。

首先要在用户的主目录下建立一个专用路径,用做数据交换空间。比如,主机用户名为“pub”,我们给新路径命名为“dataExchange”,这样交换空间的完整路径就是“/ home/pub/dataExchange”。

点击数据空间设置窗口右上方的增加按钮,在增加数据空间对话框里输入之前建立好的路径“/home/pub/ dataExchange”,并给空间命名为“dataExchange”。

至此,虚拟机的准备工作已经完成,我们现在相当于有了一台裸机,可以用来安装操作系统了。

5.2.2 虚拟操作系统的安装与配置

虚拟机的启动过程和真实机器的启动是一样的,先进行BIOS自检,然后进入虚拟操作环境。在虚拟机里安装XP和实际机器安装XP的过程也是一样的。

XP安装完毕之后,启动虚拟XP,在虚拟XP所在窗口的“设备”菜单中选择“安装增强功能”,安装此功能之后,虚拟机才可以提供对数据空间存取的支持。

数据空间的工作过程大致是这样的:VirtualBox把主机上指定的交换空间,以网络共享的方式提供给虚拟机,虚拟机则以访问网络文件夹的方式来对交换空间进行读写。

“增强功能”安装完成之后,还需要为XP设置网络驱动器的映射。打开虚拟XP中的“我的电脑”,在“工具”菜单中选择“映射网络驱动器”功能,把虚拟的网络驱动器映射为本地的Z盘。这样,在虚拟的XP上就可以像访问正常的本地驱动器一样访问这个共用的交换空间。

当主机上有文件需要传向虚拟机时,在主机上把文件复制到共享路径“/home/pub/dataExchange”,然后在虚拟机上打开“我的电脑”中的“Z盘”,就可以看到刚才复制的文件。

5.2.3 安装专用的工作软件

可以把专用工作软件的安装文件放到数据交换空间,启动各自的虚拟机进行安装即可。为隔离软件之间的干扰,最好每个虚拟机上只运行一套专用系统。

有些特殊情况,比如,我们有一个老的报表系统,它的安装过程还需要对软盘进行操作来确认一些信息,可是现在新配备的电脑都不带软驱。为此我们找到一台有软驱机器,使用UltraISO工具把软盘制成镜像文件,在虚拟机里把软盘镜像加载之后,在需要读取软盘时,指向软盘镜像即可。

6 讨论

6.1 Linux系统的安全性

在我们的工作中,信息系统面临的最切实的威胁就是来自日益泛滥的木马病毒的攻击。目前流行的木马等病毒都是以Windows家族的系统做为攻击目标,其传播途径除了互联网之外,最重要的载体就是各种移动存储器,而移动存储器在我们的工作中又是无法取代的文件交换手段。自从使用Linux操作系统之后,我们从根本上避免了这种攻击。从我们的工作实践来看,染有病毒的移动载体在Linux系统下可以正常使用,而且病毒不会被激活。

6.2 Linux系统做为办公平台的可行性

在日常工作中,除了专项工作需要启动专门的软件系统,平时最主要的工作就是文字处理。而在Linux平台上有许多成熟的办公软件可供选择。目前我们选用的是国产的永中Office。永中Office可以读取和处理流行的微软格式的文档,也支持目前国家标准的中文文档交换标准UOF格式。在使用上它的操作界面和操作习惯也与微软的Office类似,很容易上手。在Linux平台上可以完成绝大多数的办公任务。

7 结论

在实践中我们感觉到,Linux桌面系统的成熟度与过去相比已经有了明显提高,应用软件虽然不如Windows家族那么丰富,但做为常规应用,做为办公平台已经足够。稍有不足之处就是对硬件的支持不够,尤其是对一些打印机的支持。大多数打印机厂商都没有提供打印机在Linux环境下的驱动程序。但大多数的打印机在互联网上都可以找到兼容驱动,不影响工作。

使用主机+虚拟机的工作架构,从根本上解决了软件间的冲突问题,整个平台的稳定性安全性都大大提高,这是一种很有推广价值的工作模式。

[1] 马昕炜.Linux系统管理员手册[M].北京:兵器工业出版社, 2005.

[2] Linux人知识库.[EB/OL].(2007-06-08)[2009-08-04].http:// www.linux-ren.org/modules/mediawiki/index.php/

[3] (荷)Rick F. van der Lans.MySQL开发者SQL权威指南[M].北京:机械工业出版社,2008.

[4] (加)Blanchette,J. ,(英)Summerfield,M. C++GUI Qt4编程[M].第2版.北京:电子工业出版社,2008.

[5] 周芃,等.J2EE轻型架构下开发感染数据共享平台[J].中国医疗设备,2009(11):35-37.

[6] 李华才.依托门诊信息系统优化就诊工作流程[J].中国数字医学,2008,3(2):1.

[7] 张琛.门诊医生站在信息系统中的应用与体会[J]电脑知识与技术, 2009(24):334.

[8] 徐广毅,张晓林,崔迎炜,等.Qt/Embedded在嵌入式Linux系统中的应用[J].单片机与嵌入式系统应用,2004(12):12-16.

[9] 栾建海,李众立,黄晓芳.Linux 2.6内核分析[J].兵工自动化,2005(2):93-94.

[10] 陈蓓.基于嵌入式Linux安全网关的实现[D].成都:西南交通大学,2003.

[11] 陈莉君.Linux内核的分析及应用[J].西安邮电学院学报,2001 (01):20-23.

Application of Linux Environment in Clinic Information System

SUN Da-peng
Out-patient Department,Shenyang Military Region Headquarters,Shenyang Liaoning 110001,China

TP316

B

10.3969/j.issn.1674-1633.2010.04.014

1674-1633(2010)04-0035-04

2009-08-04

作者邮箱:sundp70@163.com

Abstract:This paper introduces the construction of clinic management system using Linux,MySQL and Qt. For some Windows application which can not stop currently,we used VirtualBox virtual machine to offer support.Our solution has solved the clash problem of single Windows environment needs several softwares,also has avoided the menace of Trojan,and has constructed a safe,stable and convenient office platform.

Key words:clinic information system;Linux operation system;virtual machine

猜你喜欢
数据库软件环境
禅宗软件
长期锻炼创造体内抑癌环境
一种用于自主学习的虚拟仿真环境
孕期远离容易致畸的环境
软件对对碰
环境
数据库
数据库
数据库
数据库