APP下载

基于Java Web的DSA信息管理与图像分析系统的研制

2019-10-11孙超孟庆民王力姚吉进宗宝良郭永新焦青山东第一医科大学山东省医学科学院医学信息工程学院泰安市706泰安市中心医院介入放射科泰安市7000山东第一医科大学山东省医学科学院放射学院泰安市706

中国医疗器械杂志 2019年5期
关键词:图像处理信息管理检索

孙超,孟庆民,王力,姚吉进,宗宝良,郭永新,焦青 山东第一医科大学(山东省医学科学院)医学信息工程学院,泰安市,706 泰安市中心医院介入放射科,泰安市,7000 山东第一医科大学(山东省医学科学院)放射学院,泰安市,706

0 引言

数字减影血管造影技术(Digital Subtraction Angiography, DSA)是常规血管造影术与电子计算机图像处理技术相结合的产物,是冠状动脉疾病诊断的金标准[1],在头颈部及中枢神经系统疾病、心脏大血管疾病、肿瘤和外周血管疾病的诊断与治疗中都发挥着重要作用,有助于患者病情的及时控制。

在临床与科研实践中,DSA检查会积累大量数据,包括患者个人信息、实验室检查以及影像学信息。一般情况下,这些信息均分散地保存在计算机中,在信息的存储及检索等方面,会存在一些问题,如图像存储介质所占的空间不断增加,各种不同检查信息分别存储,不便于数据的存放和查找,同时传统图像存储和管理只在本院进行,难以进行异地会诊等[2]。基于临床及科研实践的实际需求,该研究构建了一个DSA信息管理与图像分析系统,可实现患者多种检查信息的分类管理及DSA图像信息的处理,并可实现多地域信息的共享,有效地弥补了传统医学影像系统的不足。

该研究在Windows 环境下,以Eclipse 作为开发工具,以MySQL为数据库开发平台,Tomcat 网络信息服务作为应用服务器,以Java作为开发语言,并利用Java内部嵌入Matlab代码将其强大的计算能力融入到系统当中,构建了一个DSA信息管理及图像分析系统,该文对系统结构及建立过程进行详细介绍。

1 系统结构

该系统基于Browser/Server(浏览器/服务器模式)[3],分为四大模块,即信息管理、图像处理与分析、高级检索及临床数据管理(图1)。信息管理部分实现DSA的DICOM文件的上传、删除及查看;图像处理与分析部分实现对DSA视频图像的亮度与对比度调节、直方图均衡化、色彩变换、测量以及图像的边缘检测与分割等操作;高级检索部分实现对数据库信息的单项及多项查询;临床数据管理部分实现患者临床检查信息的存储、删除及修改等操作。

图1 系统框架图Fig.1 System framework

2 系统的功能实现

2.1 DSA信息管理

信息管理模块可实现患者基本信息及X线机参数信息的上传、删除及查看(图2)。患者基本信息包括姓名、年龄、性别及出生日期等;造影X线机参数信息包括体位、剂量、电压、曝光时间及光栅角度等。

图2 信息管理Fig.2 Information management

实现上传功能时,首先利用JavaScript获取文件路径,使用ajax上传到Web服务器;然后将Matlab中的dicominfo函数导出为jar包,并导入至Eclipse,通过Java语言调用dicominfo函数读取DICOM文件信息;最后借助SQL语句将DICOM文件信息存储至MySQL数据库。删除及查看文件时,通过ajax将选定的文件名信息传送到后台,借助SQL语句进行删除及查询操作,并刷新前端数据。

2.2 图像处理与分析

在进行图像处理与分析时,首先选取获取视频信息(图3)。用户直接拖拽视频文件到视频播放区域,即可实现上传文件到WEB服务器,点击获取视频信息按钮即可获取视频文件的帧数、帧高度、帧宽度及时长等信息。拖拽视频上传功能的实现是通过JavaScript的事件监听函数ondragover与ondragleave捕获视频文件,并阻止浏览器弹出新的标签页,再利用ondrop函数调用ajax上传函数将文件传送到后台[4-5]。在后台利用Java语言将视频文件上传到WEB服务器中的upload文件夹。获取视频信息时,通过ajax将文件路径信息传递给后台,后台调用Matlab生成的jar包读取指定路径的视频文件信息,并将信息返回至前端。

图3 获取视频信息Fig.3 Video information obtaining

系统在实现DSA原始图像(图4(a))的直方图均衡化(图4(b))时,将Matlab中的histeq函数封装为一个自定义函数,其输入参数为原图像及变换后图像的保存路径,第三方jar包在Eclipse上调用该自定义函数。系统利用JavaScript在前端直接实现对图像的亮度调节(图4(c))与对比度调节(图4(d))。亮度调节是利用线性运算的方法,将每一个像素加上一个增强系数,使图像整体变亮或变暗。在实现对比度调节时,首先提取图像中每个RGB像素值,然后利用Crgb=RGB/255将像素值范围缩小为0~1,最后利用公式 [(Crgb-0.5)×contrast+0.5]×255计算出改变对比度后每一点新的像素值。

图像边缘检测(图4(e))可大幅度减少数据量并保留图像的结构属性。系统采用Sobel边缘检测算法,该算法比较简单,实际应用效率高于canny边缘检测算法[6]。边缘提取分为滤波、增强和检测三个步骤,使用Matlab语言编写各主要功能函数。首先使用fspecial函数和imfilter函数对图像进行高斯滤波,然后采用中心为5的8邻域拉普拉斯算子和图像卷积达到锐化图像的目的,最后调用edge(I,Sobel)函数进行边缘检测。

图4 图像处理与分析Fig.4 Image process and analysis

图像分割是将图像中的血管与背景进行分割。该系统采用基于阈值的分割方法[7],首先使用fspecial('gaussian', HSIZE, sigma1)函数分别生成像素矩阵A和B。生成矩阵A的函数中HSIZE参数值较大(1 000),因此滤波后图像接近于原图像的背景,生成矩阵B的函数中HSIZE参数值较小(10),起到去噪的作用,两个矩阵相减即可将血管从背景中分割出来(图4(f))。

系统可对图像进行长度与面积的测量(图5)。测量长度时,首先使用canvas.onmousemove函数对Canvas画板对象设置鼠标监听事件,获取起点坐标(x1,y1)和终点坐标(x2,y2),然后使用stroke函数在两点间绘制直线,利用公式求出两点间距。面积测量包括任意形状、矩形和圆形面积测量,首先在Canvas画板上设置监听事件,绘制图形后将画板保存为img对象,对图像内部的连通区域进行扫描,统计连通区域内部像素个数,得到的结果与特定比例的乘积即为区域面积。

2.3 高级检索

高级检索模块(图6)可供用户查询数据库内的所有信息,包括单项查询和多项查询。默认检索方式是按照文件名进行检索,在主界面输入要查询的文件名,点击搜索按钮即可进行检索。高级搜索条件包括姓名、文件名、年龄区间、体位区间及病变位置等。

图5 图像测量Fig.5 Image measurement

在MySql数据库中,通过SELECT语句完成检索查询操作,为了优化数据库的性能,本系统采用C3P0数据库连接池负责分配、管理和释放数据库连接[5]。使用SELECT * FROM WHERE语句查询满足条件的字段信息,WHERE后输入逻辑运算符AND进行多项查询,输入关键字BETWEEN AND进行范围查询,输入的信息由前端通过ajax传递到后台。在前端界面仍应用缓冲池技术,将查询条件信息保存在Cookie域中,这样即使刷新系统,输入的信息也不会丢失。

图6 高级检索Fig.6 Advanced search

2.4 临床数据管理

为了防范医疗风险,保障手术安全,在进行血管造影手术前,需要对患者进行常规检查,包括血常规、尿常规、肾功能及超声检查等。该系统将患者的临床检查数据按检查类型保存在数据库中,用户可按照单项查询或多项查询的方式对信息进行检索。系统还可统计数据库中各个年龄段患者的人数并以柱状图的形式显示。

在主界面(图7),用户通过点击菜单栏的检查类型和NEXT按钮,滑动切换不同的填写模块。滑动效果是采用css中的animate方法改变模块的位置来实现。当用户填写完所有信息后,点击提交按钮,系统将信息以json格式提交到WEB服务器,在后台利用java语言接收数据,然后执行INSERT INTO 语句将信息保存至数据库。用户点击查询按钮,选择查询条件,系统执行SELECT * FROM WHERE 语句来查询指定信息,并将信息返回到用户界面。系统使用JavaScript导入可视化包echarts.js,对查询到的各个年龄段信息进行统计分析,并制作柱状图显示。

图7 临床数据管理Fig.7 Clinical data management

3 总结

随着信息技术迅速发展,互联网已成为集信息采集、处理、传播、开发与利用等多种功能于一体的平台。该系统采用的Browser/Server(浏览器/服务器模式)结构简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,其最大的优点是可以跨平台操作而无需安装任何专门软件,可实现客户端零维护[8]。系统采用的MySQL关系数据库是目前运行速度最快的SQL语言数据库,大大提高了系统的运行效率[9]。

该系统采用JavaScript、ImageJ和Matlab三种方式结合进行图像处理,JavaScript可减少网络数据传输,便于操纵HTML对象,可提高系统的运行效率[10],适用于简单的图像处理;ImageJ是一种开源的图像处理利器,程序小,运行快,借助其中的工具包可进行复杂的图像处理[11];Matlab具有高性能数据运算与可视化的优势,适用于算法复杂度高的图像处理[12]。该系统整合了上述三种方法的优势,针对不同的图像处理操作需求采用合适的语言,不仅增强了图像处理效果,而且提高了系统的运行效率。

该系统可进行图像的边缘检测与分割,是感兴趣血管部分提取的基础,后续可进行DSA图像中血管骨架及血管中心线的提取,以实现对冠状动脉血管夹角与直径的测量,对于判断某段血管是否病变,病变程度及病变位置具有重要意义。

该研究依据临床与科研实际需求,运用模块化的开发思想,基于Java Web开发了DSA信息管理与图像分析系统,实现了对图像数据的高效管理与分析。该系统可供一线临床科研人员回顾及分析DSA相关数据,也可作为教学工具为学生展示DSA检查原理及图像信息,界面简约友好,易于操作,具有一定的实用价值。

猜你喜欢

图像处理信息管理检索
海战场侦察图像处理技术图谱及应用展望
人工智能辅助冠状动脉CTA图像处理和诊断的研究进展
造价信息管理在海外投标中的应用探讨
地球物理台网仪器维修信息管理的研究与实现
评《现代物流信息管理与技术》(书评)
瑞典专利数据库的检索技巧
在IEEE 数据库中检索的一点经验
基于ARM嵌入式的关于图像处理的交通信号灯识别
一种基于Python的音乐检索方法的研究
机器学习在图像处理中的应用