基于Web的远程裂隙灯显微镜诊查系统
2015-11-28作者陈俊发卓勇刘祖国陈延平
【作者】陈俊发,卓勇,刘祖国,陈延平
1 厦门大学机电系,厦门市,361005
2 厦门大学医学院,厦门市,361005
基于Web的远程裂隙灯显微镜诊查系统
【作者】陈俊发1,卓勇1,刘祖国2,陈延平1
1 厦门大学机电系,厦门市,361005
2 厦门大学医学院,厦门市,361005
为了实现远程操控裂隙灯显微镜进行眼科会诊,并直观地显示远程端的裂隙灯显微镜的实时状态,该文设计了基于B/S结构的远程裂隙灯显微镜诊查系统。将裂隙灯显微镜架构于网站系统上,实现了远程操控和图像数据的实时采集与传输。并利用WebGL技术将建立的裂隙灯显微镜三维模型在网页中进行渲染,实现在网页上显示裂隙灯显微镜的三维运动学仿真。实际应用结果能够良好地展现远程会诊系统的实时交互。
裂隙灯显微镜;远程会诊;浏览器和服务器结构;WebGL
0 引言
裂隙灯显微镜,是眼科检查中常用的诊断仪器,裂隙灯显微镜的基本工作原理是将具有高亮度的裂隙光带成一定角度照射到眼睛的被检部位,然后利用双目显微镜来观察眼睛深部的病变组织[1]。随着信息技术的发展,出现了数字化裂隙灯显微镜,与传统的裂隙灯显微镜相比,数字化裂隙灯显微镜具有对图片编辑、存储等功能[2-3]。
目前国内裂隙灯显微镜诊查基本都是医生与患者面对面地进行诊查,然而在医生不在现场,患者又急切需要治疗的情况下会造成很大的不便,特别在偏僻的山区和偏远的岛屿等医学资源匮乏的地区,病患更是无法得到治疗。随着网络技术的发展,国外开始研究基于C/S结构的远程裂隙灯显微镜诊查系统,该系统解决了会诊过程中地理相隔的问题[4-5]。但由于该系统采用C/S结构,需要在客户机上安装相应的软件才能进行会诊,而且C/S结构具有兼容性差,不能快速安装和配置等缺点。
本文将裂隙灯显微镜与网络技术相结合,设计了一套基于B/S结构的远程裂隙灯显微镜诊查系统,实现了远程操控裂隙灯显微镜来进行会诊,并在网页上仿真远程裂隙灯显微镜的实时状态。基于WebGL建立远程遥控设备模型的实时跟踪显示,是整个远程操作系统可视化的一个亮点,它能直观地展示平台的状态,便于医生在会诊过程中观察远程裂隙灯显微镜的运动情况,及时对裂隙灯显微镜的运动状态进行分析和调整。
1 系统的分析与设计
1.1系统的总体结构
系统的总体结构如图1所示。将系统的结构体系分为3层:浏览器层、服务器层和裂隙灯显微镜系统。
浏览器层 在个人计算机上安装了浏览器的客户端,通过互联网向Web服务器提交请求,待服务器响应请求后,将请求结果返回并呈现在网页上。该层的主要功能是显示远程裂隙灯显微镜实时拍摄的患者眼睛检查图片,实现远程会诊。为能够对患者的眼睛进行全方位的检查,需要在检查过程中更改裂隙灯显微镜的照射位置,所以在页面上设有远程控制按钮,能够发送控制命令给远程端,以此实现远程操控裂隙灯显微镜,并运用WebGL技术在网页上实现对远程裂隙灯显微镜的实时跟踪显示。
服务器层 包括Web服务器和数据库服务器。Web服务器的主要功能是接受来自浏览器的用户请求,然后执行相应的业务逻辑处理和数据库连接等操作[6],Web服务器封装用户请求,对不同的请求,执行不同的响应:(1)将对数据库的操作请求转换为结构化查询语言SQL向数据库服务器提交数据处理申请,待数据库处理请求后,将处理的结果返回给Web服务器,再由Web服务器传回浏览器层;(2)将对远程操控的请求直接发给裂隙灯显微镜系统,通过之间的通讯协议,实现远程操控裂隙灯显微镜运动。数据库服务器的主要功能是接受Web服务器对数据的操作请求,实现对数据库查询、修改、更新等操作,并通过与裂隙灯显微镜系统的连接,储存裂隙灯显微镜系统实时拍摄并上传的病患的眼睛诊查图片。
裂隙灯显微镜系统 由裂隙灯显微镜和下位机组成。裂隙灯显微镜主要包括运动滑台、目镜部分、照明部分、头架部分、数码摄像头等,并在需要运动的部分添加电机驱动装置。下位机主要用来驱动裂隙灯显微镜运动,控制拍照,上传图片。下位机与服务器层通过接口进行通信,当下位机接收到Web服务器发送过来的控制命令后,根据之间的通讯协议,解析控制命令,驱动电机,使裂隙灯显微镜朝着给定的位置动作;当启动裂隙灯显微镜进行检查时,裂隙灯显微镜的数码摄像头拍摄病人眼睛被检查图片,然后存储到数据库服务器上。
图1 系统的总体结构图Fig.1 Overall structure °f the system
2 系统的架构设计与实现
2.1网站设计和实现
本系统基于 J2EE 中的Struts2与Spring两大框架开发B/S架构的裂隙灯诊查系统网站。网站采用三层架构,目的是为了实现网站系统的高内聚性,降低模块之间耦合度,便于系统开发和维护。
2.1.1网站三层架构
表现层 是用户看到并与之交互的视图,它显示的是整个系统所实现的功能界面。表现层可以对用户界面进行同步更新,通过JSP页面显示相关数据,并提交用户输入的业务处理,但表现层没有进行实际的业务处理,而是将业务处理交给业务逻辑层处理。本文主要采用超文本标记语言HTML、JSP的EL(Expressi°n Language)、jQuery库和CSS等设计动态网页界面,创建动态菜单栏和简洁大方的列表框,给用户提供一个舒适、友好的网站界面,并满足用户与系统的实时交互。
业务逻辑层 针对具体问题的操作,接受表现层传来的数据传输对象,封装业务请求,并调用数据访问层。本文编写Acti°n控制类来完成流程控制和请求响应,根据对应的响应结果返回到表现层的视图中,具体的业务代码交给Service类负责实现。根据系统的需要,业务逻辑经常修改和扩充,所以需要保持伸缩性和扩展性,本文创建Service接口,根据目前的功能或业务,接收来自Acti°n类的业务处理请求,让创建的Service接口实现类ServiceImpl调用数据访问层,以此来降低耦合,并根据实际需要来进行多态继承和重载等。
数据访问层 该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。本文编写DAO类作为数据访问接口,实现对数据库的操作,包括加载数据库连接驱动,创建数据库连接,根据业务逻辑的数据操作请求,转换为SQL命令,直接对底层数据库的CURD(Create、Update、Read、Delete)操作,并将操作结果存储在Java集合的List和Map中,便于业务逻辑层提取数据。
2.1.2Spring 与 Sturts2 两大框架技术整合三层结构
Struts2框架 利用Struts2框架实现MVC(M°del-View-C°ntr°ller)模式,MVC是一种设计模式,它将应用程序的输入、处理和输出分开,即将前台页面显示和后台逻辑处理分开,把业务逻辑处理交给业务逻辑层,简化JSP页面代码,便于系统维护。本文编写的M°del为Acti°n类,View为JSP文件,C°ntr°ller为struts.xml文件。JSP页面主要用于显示,根据用户的请求,由struts.xml决定调用相应的Acti°n类进行业务处理,待处理后将结果返回JSP页面,如图2所示。
图2 Struts2框架图Fig.2 The framew°rk °f Struts2
Spring框架 实现控制反转I°C(Inversi°n °f C°ntr°l),整合三层架构,降低层与层之间的耦合,控制权由内部代码中转到了外部容器,类之间的依赖关系由容器在运行期决定,如图3所示。本文将Service类注入到Acti°n类中,将DAO类注入到Service类中。Spring容器就是一个XML文件,当需要修改类之间的依赖关系,只要修改XML即可[7]。并用Spring配置了C3P0数据库连接池,管理数据库连接操作包括初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等。
图3 Spring框架图Fig.3 The framew°rk °f Spring
2.2裂隙灯显微镜的改造
对裂隙灯显微镜进行改造,给各个需要运动的部分添加电机驱动,主要是运动滑台的X轴、Y轴、Z轴方向运动和目镜部分与照明部分的绕轴转动。
将裂隙灯显微镜与下位机相连,直接由下位机控制,下位机接收网站服务器发送过来的控制命令,根据控制命令里的速度和位移等参数,驱动电机运动,实现远程操作。另一方面,在开始进行远程会诊时,下位机启动裂隙灯显微镜的数码摄像头,实时拍照并将所拍的图片上传至数据库服务器中。
3 裂隙灯显微镜三维模型的建立和仿真运动的实现
3.1建立三维模型
由于实际的裂隙灯显微镜的零部件之间具有父子层级关系,所以需要给模型添加层级结构,并且最后要导出Three.js支持的3D文件格式COLLADA。COLLADA是面向交互式3D应用程序的数字资产交换方案,它以XML的文件格式储存了模型的几何数据、材质、光照、层级结构等[8]。本文选用3DS MAX三维动画渲染和制作软件来完成模型的编辑和导出。
由于3DS MAX直接建模比较麻烦,本文采用Cre°三维绘图软件建立裂隙灯显微镜三维模型。首先根据裂隙灯显微镜实际尺寸,画出各个组成零部件的大体轮廓,简化细节,建立装配图,然后导出STEP文件并导入到3DS MAX中,并用3DS MAX的场景图编辑器,给三维装配模型的各零件添加层级。由于导入的STEP文件与3DS MAX的坐标系不同,还需要重新调整模型的坐标系,最后导出COLLADA文件。导出流程如图4所示。
图4 COllADA文件导出流程图Fig.4 The exp°rted fl°wchart °f COllADA file
3.2仿真运动的实现
Three.js是JavaScript编写的WebGL第三方库,是一款运行在浏览器中的3D引擎,可以创建各种三维场景,包括了摄影机、光影、材质等各种对象[9]。将三维模型载入到Three.js中,由Three.js的内置函数遍历模型的层级,找到相应部分的零件,并给零件添加运动轨迹,然后在页面中为各个零件添加按钮响应监听[10]。如图5所示,为三维模型在WebGL的渲染流程图。
图5 三维模型的WebGL渲染流程图Fig.5 WebGL rendering pr°cess °f 3D m°del
为更直观地展现交互性,在显示页面上添加了一个运动数值显示列表,并在仿真运动界面上增添了页面交互功能,添加了鼠标点击选择、旋转、放大、移动等功能,让整个仿真运动页面更丰富。
4 系统运行实例与分析
本文采用J2EE为平台,运用Struts2和Spring框架技术,结合jQuery,CSS,WebGL等技术开发了基于Web的远程裂隙灯显微镜诊查系统。整个系统已成功运行,系统主要运行界面如图6所示。网站页面左边为实时裂隙灯诊查画面,左下方显示的是病人的基本信息,右上方为仿真裂隙灯系统的运动界面,右下方显示的是控制按钮和位移显示框。
图6 系统运行界面Fig.6 Operating interface °f the system
5 结束语
本文提出了一种基于Web的裂隙灯显微镜诊查系统,实现了远程会诊和远程状态可视化。结合医疗仪器和网络信息技术,实现了远程操控裂隙灯显微镜进行眼科会诊,为远程医疗增添了一种新的诊查方法。同时,运用WebGL技术对远程操控设备实时跟踪显示,便于及时对系统的运动状态进行分析和调整。
[1] 亓昊慧. 裂隙灯显微镜及其在视光学中的应用[J]. 中国医疗器械杂志, 2013, 37(6): 437-440.
[2] 马玉莹. 数码裂隙灯显微镜在隐形眼镜验配中的应用[J]. 中国眼镜科技杂志, 2011, (9): 132-134.
[3] 汪东生, 王宁利. 裂隙灯显微镜图像网络信息系统在眼科图像及病历资料管理中的应用[J]. 中华眼科医学杂志, 2012, 2(1) : 52-54.
[4] Cheung CY, Li H. Lam°ureux EL, et al. Validity °f a new c°mputer-aided diagn°sis imaging pr°gram t° quantify nuclear cataract fr°m slit-lamp ph°t°graphs[J]. Investigat Ophthalm°l & Vis Sci, 2011, 52(3): 1314-1319.
[5] G° K, Kashiwagi K, Tanabe N, et al. Iterative design °f Tele°perative Slit Lamp Micr°sc°pes f°r Telemedicine[C]. 4th Int C°nf Pervas C°mput Tech Healthcare, 2010: 1-4.
[6] 李万莉, 项著廷. 基于B/S结构远程监测系统软件设计[J]. 计算机技术与发展, 2015, (3): 15-18.
[7] 张俐, 张维玺. 基于JavaEE的固定资产管理系统的设计与实现[J]. 计算机工程与设计, 2009, 30(16): 3797-3800.
[8] Turk°wski R. Enabling the Immersive 3D Web with COLLADA and WebGL[M]. Beavert°n: the Khr°n°s Gr°up, 2010.
[9] 刘维峰, 左泽军, 赵利强, 等. 基于HTML5的生产装置实时监测可视化[J]. 计算机工程与设计, 2015, (3): 809-813.
[10] Parisi T. WebGL: up and running [M]. Oreilly Media, 2012.
Remote Slit Lamp Microscope Consultation System Based on Web
【 Writers 】CHEN Junfa1, ZHUO Yong1, LIU Zuguo2, CHEN Yanping1
1 Department of Mechanical and Electrical Engineering, Xiamen University, Xiamen, 361005
2 Medical college, Xiamen University, Xiamen, 361005
【 Abstract 】To realize the remote operation of the slit lamp microscope for department of ophthalmology consultation, and visual display the real-time status of remote slit lamp microscope, a remote slit lamp microscope consultation system based on B/S structure is designed and implemented. Through framing the slit lamp microscope on the website system, the realtime acquisition and transmission of remote control and image data is realized. The three dimensional model of the slit lamp microscope is established and rendered on the web by using WebGL technology. The practical application results can well show the real-time interactive of the remote consultation system.
slit lamp microscope, remote consultation, B/S, WebGL
TP319
A
10.3969/j.issn.1671-7104.2015.06.004
1671-7104(2015)06-0403-04
2015-07-20
陈俊发,E-mail: 1078302092@qq.c°m
卓勇,E-mail: zhu°y°ng@xmu.edu.cn