肝脏移植三层数据库应用系统的设计与构建

来源:岁月联盟 作者: 时间:2010-07-12

        作者:杨滔,史宪杰,周宁新,黄志强

【关键词】  肝移植;数据库;Microsoft,SQL,Server;Delphi

  Design and construction of threetiered database system for liver transplantation

  【Abstract】 AIM: To design and construct a threetiered database system for liver transplantation, to explore the application of the database system in data management, clinical study and multicenter sharing in the field of liver transplantation.  METHODS: Requirements and feasibility of the liver transplantation database and blueprint of the data structure was designed and accomplished based on the analysis of liver transplantation data flow. Microsoft SQL Server was used as the background database. Delphi was adopted for programming. Performance test was carried out for clinical application. RESULTS: Along with the relevant data transforming and userdefined querying utilities, the database, the server and client application were built up and applied to clinic.  Combination of network realize the multicenter data sharing.CONCLUSION: The system, which can support clinical realtime decision, remarkably increases the efficiency of data management and analysis, and is expected to have important clinical application significance and prosperous future.

  【Keywords】 liver transplantation; databases; Microsoft SQL Server; Delphi

  【摘要】  目的: 设计并构建适合国内肝移植实际情况的数据库系统,探讨利用数据库技术进行肝移植数据管理、临床研究应用、多中心应用的可行性及前景. 方法: 进行肝移植数据库系统的可行性及临床需求分析,采用Microsoft SQL Server作为后台数据库,利用Dephi进行编程设计应用程序,应用于临床,测试系统性能. 结果: 完成了数据库、服务器端与客户端应用程序及相应的数据转换、自定义查询工具的构建,已投入临床使用. 结合互联网可实现多中心联合应用. 结论: 肝脏移植数据库管理系统能够显著提高肝移植数据的管理和分析效率,同时提供临床决策支持,结合多中心可实现国内肝移植的登记与数据分析、整理,具有良好的实用价值和应用前景.

  【关键词】 肝移植;数据库;Microsoft SQL Server;Delphi

  0引言

  美国与欧洲在移植外科数据库建设方面起步较早. 美国最大的数据库UNOS(United NetWork of Organ Sharing)建于1977年,欧洲的数据库系统(ELTR)略小于UNOS,但功能相仿. 他们都因此发表了大量的,了许多可以值得借鉴的经验[1-2]. 解决联合多中心应用以获得更理想的数据结果是国内肝移植工作面临的一个实际问题.
 
  随着机与存贮技术的,HL7[3]和医学影像的DICOM标准逐渐广泛应用于医疗领域. 联合多中心数据的临床数据库系统的开发有益于更合理的制定适合我国国情的HL标准. 我所自2003年初开始,设计并构建了符合我所实际情况的肝移植数据库管理系统,探讨利用数据库技术进行肝移植数据管理、分析及临床决策支持的可能性及应用前景.

  1材料和方法

  1.1材料

  1.1.1工具应用程序系统采用Delphi开发编写,数据库采用Microsoft SQL Server 2000,系统建模工具采用ModelMaker,界面设计采用第三方控件suiPack等. 数据库查询语言为SQL(structured query language),数据库访问模块采用COM+(component object model plus)组件,数据接口采用ADO(activX data object). 客户端与服务器端应用程序数据交换采用SOAP(simple object access protocl)和WebService(Web服务)模式.
 
  1.1.2业务流程肝移植工作是以围绕肝移植手术进行的,每一例肝移植手术的实施至病肝切取,决定了供体与受体的供受关系完成. 所以数据均可以视为围绕手术的有时序性的数据流. 而等候移植、活体供体及脑死亡供体均视为数据源. 考虑到一些移植中心自有数据库管理系统开发语言可能互不兼容,所以本系统采用SOAP/HTTP传输协议,并以WebService的方式通过COM+组件访问数据库,可以为不同的系统之间提供桥梁,而无需考虑编程语言和组件的差异,并且最终可以扩充至各种移动设备,如掌上电脑甚至智能手机上. 当然在本地局域网内可以直接使用DCOM组件(主从模式)以提高性能.
 
  1.2方法

  1.2.1系统模块设计服务器端包括远程数据模块,主要的系统维护模块,包括用户管理、权限管理、字典管理,数据环境设置等. 客户端包括信息管理、查询、和少量系统维护模块(如数据链接选择、用户口令更改). 客户端信息管理系统按时序性划分为基本信息、术前评估、手术信息、术后管理、门诊随访5个模块,此外还有化验检查及影像管理两个模块. 化验检查和影像管理还包括用于检查结果时间曲线绘图及图片信息处理等二级模块. 查询系统包括病例查询、一般统计图表、用户自定义查询等.
 
  1.2.2数据库设计数据库系统包括近47张数据表,包括病例基础数据表、住院信息表、手术数据表、随访数据表和系统维护等. 各表建有完整的序列和约束,表与表之间通过ID(病例号)相关联. 此外还包括20余张视图用于数据以适应系统统计查询功能,以及一些存储过程和相应事务处理程序以适应系统需求.
 
  1.2.3系统实现应用服务器程序采用COM+组件,结合ADO数据接口访问数据库服务器,COM+组件包涵所有远程数据模块,运行时以动态链接库(dynamical link library,  DLL)的方式驻留服务器. 采用SOAP技术实现WebService服务器,运行时以可执行程序(exe)方式运行于应用程序服务器,并可应客户端激活. 同时该程序还包涵数据库维护模块,通过COM+组件调整数据结构与内容. 客户端程序包涵浏览与录入功能,并通过对系统注册表注册,完成系统运行所需的初始化配置. 对于维护系统及二级功能扩展等模块,服务器和客户端程序均采用DLL以函数的方式调用. 每个功能模块作为一个单独的Delphi工程,通过编译成为动态链接库.
 
  1.2.4系统测试本系统初步完成后即投入运行,在我科室自建的局域网络(数据库与应用程序服务器为DELL PowerEdge服务器,主频为3GHz,操作系统为Windows 2000 Server;客户机为P4或Celeron机型,操作系统为Windows XP或Windows Server 2000 Server/Professional)运行良好.

  2结果

  2.1应用程序服务器

  2.1.1COM+组件服务器端COM+组件的远程数据模块中,使用ADO接口通过Delphi的DataSnap技术向客户端提供所需的数据集;向WebService服务程序提供数据表结构管理接口. 运行时可以在Windows控制面板中的组件服务中对COM+应用程序进行查看与管理.
 
  2.1.2WebService服务程序该程序为ISAPI(internet server application programming interface)类型,客户端通过IAppServer接口访问服务器,调用COM+组件. WebService服务程序可以被客户端激活,与客户端以SOAP封装标准交换数据. 运行时以系统托盘程序的方式最小化至Windows系统任务栏的右下方,并提供右键菜单,动态调用程序的系统维护模块(DLL),对系统进行管理.

  2.2客户端

  2.2.1界面安装客户端后通过点击图标进入主界面. 界面外观采用第三方控件suiPack Pro,使系统程序更加美观. 各功能模块通过菜单和工具栏快捷按钮调用. 录入窗口以页面方式呈现,回车响应,提高了录入速度. 实验室检查可以为各单项数值指标生成时序性时间测量值曲线图(图1).

  图1界面与曲线(略)

  2.2.2图片管理模块B超, CT, MRI等图片数据用JPG格式通过Image字段存储于数据库中,以数据流格式通过BLOB字段调用. 在图片浏览器中可以批量加入图片、全屏放大,并可以JPG格式另存图片.
 
  2.2.3查询与统计子模块可以通过病案号、姓名、诊断等多种方式查询病例、更改数据. 随系统需求生成的各项相对固化的统计报表均可以以图形的方式展现,包括柱形图、饼图、折线图等,产生的数据可以输出为Excel或XML格式(图2).

  图2查询模块(略)

  2.2.4自定义查询与数据导出子模块自定义查询是数据库查询实现中较难的部分,同时也需要操作者有一定的数据库知识. 因此除自定义查询外,还增设了查询语句(SQL语言)的保存与载入功能,并可以添加现有数据库中已定义视图,获得视图的查询语句,另存为文本格式文件(自定义文件后缀名为.sql). 所查询的结果同样可以导出为Excel或XML格式文件. 最后客户端可以选定所需的数据记录,以Delphi默认的cds格式另存为本地数据包(briefcase),在使用移动设备时可以脱机修改(如将笔记本电脑带入手术室),联机时进行数据更新.

  3讨论
 
  肝移植数据库开发的重点在于处理复杂数据之间的关系,建立合理的符合于第三范式的数据结构[4]. 根据临床工作的特点,我们建立了以患者为中心,以手术建立关联的数据结构. 每个病例按时序性建立数据业务流程,从入院直至出院后的随访跟踪. 而每一例移植手术成功与否直接关系到受体的存活,也代表着一次移植的实施. 合理的数据结构有利于数据管理系统的研发.
 
  应用程序服务器采用基于SOAP的Web服务模式主要是考虑到不同移植中心数据库管理系统使用的编程语言及通讯组件有差异,SOAP可以为它们之间的数据交换提供良好的解决方案.
 
  SOAP的主要缺点是需要使用XML解析器,同时它的封包及Base64 Encoding方式含有大量的冗余信息,这使得它的传输效率不如CORBA, DCOM, EJB等传统的组件模型[5-6]. 针对这一缺点,我们采用了一些方法来解决,包括: ① 采用ISAPI类型来实现Web服务. ISAPI程序使用多线程的多路复用方式处理请求,可以增加执行效率;② 采用COM+组件,将数据模块放入COM+组件中,利用Delphi提供的强大组件,便可以轻易坐享COM+提供的数据库Polling技术,以减少WebService重建数据库链接和其它系统资源的负荷;③ 减少RoundTrip,包括以一个封包封装多个远程调用、客户端直接使用SOAP输出的WSDL文档和IAppServer接口等;④ 针对XML的文本格式可以选择数据压缩后再进行传输;虽然这会增加服务器端解压缩的时间,但对于目前现有的互联网络带宽,高效压缩包传输耗时的减少会远大于服务器解压所消耗的时间. 在局域网上测试,使用前三种方法可以使WebService的执行效率提高约5倍以上. 如果在互联网传输中使用压缩技术将更大程度改善WebService的性能.
 
  最后在客户端,针对肝移植领域内每一项不同的研究课题都会提出不同的数据需求,我们设计了自定义查询模块. 用户可以根据数据库中现有数据提出不同的查询条件与组合,并将最终结果以文件的形式保存,并导入SPSS或SAS等统计软件中进行数据分析,绘图,以获得更好的扩展性能.
 
  系统投入运行后,初步达到了预期的效果. 本系统在数据库设计时已考虑到病信息管理系统的扩展性,并同时开发了胆管癌数据库数据结构建模,拟构建肝胆外科临床病例数据库仓库,进行数据挖掘[7]. 更为重要的是最终必须扩大多中心联合应用,为器官捐赠、患者登记、临床,科研前瞻性研究提供有益的帮助.

  【】

  [1]   Adam R, McMaster P, OGrady JG, et al. Evolution of liver transplantation in Europe: Report of the European Liver Transplant Registry[J]. Liver Transpl, 2003,9(12):1231-1243.

  [2]   Karam V, Gunson B, Roggen F, et al. Quality control of the European Liver Transplant Registry: results of audit visits to the contributing centers[J]. Transplantation, 2003,75(12):2167-2173.

  [3]   Huang EW, Hsiao SH, Liou DM. Design and implementation of a webbased HL7 message generation and validation system[J]. Int J  Med Inform, 2003,70:49-58.

  [4]   李芳. 关系数据库设计的优化技术[J]. 技术, 2003,1(9):72-74.

  [5]   罗征. Delphi 7 从入门到精通[M]. 北京: 电子出版社, 2003:802-803.

  [6]   李维. Delphi6/Kylix2 SOAP/WebService程序设计篇[M]. 北京: 机械工业出版社,2002:122-123.

  [7]   范明,孟小峰. 数据挖掘概念与技术[M]. 北京: 机械工业出版社, 2001:17-22.