范莉芳,赵峰,张霞,齐干,朱向明
(皖南医学院附属弋矶山医院,安徽芜湖241001)
基于Dotnet插件架构的医学影像通用浏览器的研究与应用
范莉芳,赵峰,张霞,齐干,朱向明*
(皖南医学院附属弋矶山医院,安徽芜湖241001)
基于Dotnet插件架构的医学影像通用浏览器,利用我院现有的FULLPACS系统,在Dotnet环境下运用WCF、XML、HL7、DICOM、HTTP、SOAP等标准接口技术,研究遵循DICOM通信标准的Dotnet插件,使各插件均可装配到不同型号的影像浏览器中,实现了灵活添加或卸载医学影像浏览器的功能插件、远程教学及远程会诊。基于Dotnet插件的卸载和添加操作简单,不必改动软件程序,保证了软件程序的稳定性,实现快捷调阅和共享医学影像资料。
医学影像浏览器;信息共享;DICOM通信标准
近几十年来,随着医学日新月异的发展,医学影像学也有着突飞猛进的进展,数字化信息与技术也越来越多地渗入到医学领域,影像存储与传输系统(Picture Archiving and Communication System,PACS)也成为综合性医院不可或缺的一部分。郑涛等〔1〕在对“我院PACS∕RIS在放射科质量控制工作中的应用价值”这一课题进行研究时就曾发现,PACS在放射科中的应用可有效改善放射科影像资料质量,提高放射科工作效率。进而种类繁多的医学影像浏览器也如雨后春笋般出现,这些给医学的进步和发展带来了很多便利。但是,在临床使用过程中,仍然会遇到诸多问题,比如影像科医师需要增加或减少医学影像浏览器的某种功能时,必须请浏览器开发商的专业人员操作才能实现。而且源代码的修改给主程序稳定性也带来了威胁,如果局部出现错误,整体程序运行就会出现问题,排查问题很麻烦。重要的是,大家一直设想的利用PACS实现不同医院之间及医院与医学院校之间的影像资料的传输与互访成了海市蜃楼。远程调阅患者的影像资料比较困难,远程会诊与远程教学也难以真正实现。为了解决上述难题,我们通过不懈努力,研发出了基于Dotnet插件架构的医学影像通用浏览器。
1.1 系统总体设计思路该系统的总体设计思路(见图1)是把患者在医院采集的各种医学影像资料,包括CT、MRI、超声、内镜等临床诊断设备产生的图像,通过模拟、网络、DICOM等接口以数字化的形式长期、海量保存,当临床诊断需要时可经授权取回使用、编辑〔2-6〕。在整个系统中,首先要在遵循DICOM标准〔7〕的网络通信协议完成影像图像的接收,并把图像归档储存在Web服务器的内部数据库中,然后作为客户端访问Web数据库。无论院内还是院外的客户端都可以访问。
图1 系统总体设计思路
1.2研究材料基本平台利用我院现有的FULLPACS系统,开发工具用VisualStudio 2012;Microsoft SQL Server2008 R2;MicrosoftCompact3.5。标准接口技术运用WCF、XML、HL7、DICOM、HTTP、SOAP等。
1.3 研究方法
1.3.1 定义标准接口我们所定义的标准接口,一方面要求所设计的Dotnet插件接口遵循这个标准,另一方面要求所匹配的医学影像浏览器也遵循这种标准。鉴于DICOM通信标准已被广泛认同接受,所以选择DICOM通信标准来定义标准接口,通过同样的标准接口实现Dotnet插件及医学影像浏览器的互通。
1.3.2 插件设计原理与在医学影像浏览器中的应用图2所示的是插件设计的基本原理,插件管理模块(PluginManager)的功能是管理插件的加载和卸载,内部类关系图参考图3,PluginLoader是插件加载和卸载的具体实现类;PluginInfo是插件具体功能的实现类,可以根据各种不同的需求开发出相应的Plugin。我们的Dotnet插件,是在Dotnet编程环境下,使用C#、VB或其他允许的编程语言(我院使用C#语言),按照之前我们定义的DICOM通信标准编写出来的程序,这个程序是独立存在的,与医学影像浏览器的成像是并行关系,相互不制约,不影响,但它可以通过自反射供医学影像浏览器调用来实现其预设的相应功能。只要遵守插件标准接口规范,就可以为医学影像浏览器设计许多含有各种功能的Dotnet插件,只要用户需要某些功能,就可以去开发,然后安装即可,而且安装过程简单迅速,不必改动医学影像浏览器的固有程序,也不影响医学影像浏览器其他功能的运行,实现了边运行边进行功能扩展。卸载也是同理,当用户不需要某些功能或需要限制某些功能的使用时可以快速将具有某项功能的插件移除。最直观的体现就是添加插件后医学影像浏览器就多一个相应功能的工具条按钮,而这个按钮的本质就是插件,也就是一个具有某项功能可以独立存在的小程序。当安装好后通过点击插件按钮就可以调用插件,其功能即可实现。如果不同的设备厂家或个体按本研究定义的DICOM标准接口去开发Dotnet插件及医学影像浏览器,那么功能插件与医学影像浏览器之间、不同医学影像浏览器之间便可以相互交流,实现了医学影像浏览器的互通,即基于Dotnet插件架构的医学影像通用浏览器。这样设计的医学影像浏览器的架构灵活,功能可以随需随加,且具有通用性、开放性及广泛性。
图2 基本原理
图3 内部类关系图
1.3.3 插件的示例代码
标识插件的特性
∕∕追加浏览器插件需要的特性
[MenuAction("apply","global-menus∕Menu-Tools∕MenuStandard∕MenuMyDesktopTool","Apply")]
[ButtonAction("apply","global-toolbars∕ToolbarStandard∕ToolbarMyDesktopTool","Apply")]
[Tooltip("apply","TooltipMyDesktopTool")]
[IconSet("apply","Icons.MyToolSmall.png","Icons.MyToolMedium.png","Icons.MyToolLarge. png")]
[EnabledStateObserver("apply","Enabled","EnabledChanged")]
[ExtensionOf(typeof(DesktopToolExtension-Point))]
public class MyDesktopTool:Tool<IDesktop-ToolContext>
{
private bool_enabled;
private eventEventHandler_enabledChanged;
public MyDesktopTool()
{
_enabled=true;
}
插件的初始化
∕∕∕<summary>
∕∕∕插件初始化函数
∕∕∕<∕summary>
public override void Initialize()
{
base.Initialize();
∕∕可以在这里初始化插件功能需要的参数信息
}
插件的属性和状态变更事件
∕∕∕<summary>
∕∕∕可以获取∕设定该属性,此属性标记该插件在主窗体的UI中是否可用
∕∕∕<∕summary>
public boolEnabled
{
get{return_enabled;}
protected set
{
if(_enabled!=value)
{
_enabled=value;
EventsHelper.Fire(_enabledChanged,
this,EventArgs.Empty);
}
}
}
∕∕∕<summary>
∕∕∕当插件的可用状态发生改变时,会触发此事件,去执行自定义的动作
∕∕∕如插件可用时,加载资源,不可用时,释放资源
∕∕∕<∕summary>
public eventEventHandler EnabledChanged
{
add{_enabledChanged+=value;}
remove{_enabledChanged-=value;}
}
插件的实现
∕∕∕<summary>
∕∕∕通过点击窗体上插件对应的按钮,调用该函数
∕∕∕<∕summary>
public void Apply()
{
∕∕这里追加该插件的主要功能代码
}
}
1.3.4 医学影像浏览器组件概述如图4所示,影像浏览器组件包含很多内容:StudyTree是所有当前加载的DICOM图像的缓存。IPhysicalWorkspace是域代表的图像表面所显示的内容。LogogWorkWorkspace将图像逻辑分组在一起。EventBroker发布一些插件操作的触发事件,例如图像被选择时或当图像即将被绘制时。客户端可以向CommandHistory添加命令以支持撤消∕重做操作。
图4 影像浏览器基本组件
医学影像浏览器是医院PACS系统、HIS系统、RIS系统、EIS等系统及医学院校PACS系统必不可少的一部分。随着医学的发展,普通医学影像浏览器已渐渐不能满足医师的诊疗需求,本研究研发的基于Dotnet插件架构的医学影像通用浏览器应运而生。与传统的医学影像浏览器不同之处在于,该浏览器遵循DICOM通信标准接口,准许具有相同标准接口的功能插件识别,这样就实现了便捷按需添加或卸载某些功能插件,无需改动主程序的源代码,不影响整体系统其他功能运行,系统稳定性好,目前已在我院及附属院校实验运行中,效果良好,为我院临床、影像相关科室及附属院校教学带来了极大的方便。此外,与传统的医学影像浏览器相比,该浏览器还具有以下优势:(1)灵活性、开放性:插件组建简单,便于安装和使用,可灵活地添加或卸载某些功能。操作简单,不需要专业的程序员参与。不同插件之间相互独立,卸载或添加某些功能后,其他功能不受影响。基于Dotnet插件架构的医学影像通用浏览器扩展功能时简单、方便,实现了其功能扩展的灵活性、开放性。(2)通用性、广泛性:方便了远程教学及远程会诊。医学影像学作为一门实践性较强的学科,在临床疾病诊断中的意义举足轻重,而随着现代社会网络技术、影像检查技术以及医学影像设备的快速发展,传统的教学模式已经逐渐无法适应目前的教学需求,PACS逐渐开始在科研、医学临床与教学工作中应用〔8〕。基于Dotnet插件架构的医学影像通用浏览器的研发使不同医院之间以及学校与教学医院之间的PACS系统无障碍交流成为可能。相信基于Dotnet插件架构的医学影像通用浏览器的出现与推广使用,将更好地为临床、教学及科研工作服务,其应用价值将是不可估量的。
〔1〕郑涛,王武,李传东,等.我院PACS∕RIS在放射科质量控制工作中的应用价值〔J〕.中国医疗设备,2011,26(8):67-69.
〔2〕齐赛,左玮玮,贾亚男,等.PACS∕RIS系统对放射科工作流程优化的影响〔J〕.中国基层医药,2012,19(18):2764-2765.
〔3〕汪桦,张威江,吴君健,等.PACS在放射科的应用研究〔J〕.医疗卫生装备,2013,34(11):112-113.
〔4〕董世杰,李欣.PACS∕RIS系统在多院区医院放射科中的应用〔J〕.中国继续医学教育,2015(12):37-38.
〔5〕陆伟.基于Web技术的医生工作站调阅LIS∕RIS∕PACS图文报告的接口设计与实现〔J〕.中国医疗设备,2012,27(3):38-40.
〔6〕王筝,袁慧书.基于PACS的放射科教学文档系统的设计与应用〔J〕.医疗卫生装备,2013,34(3):45-47.
〔7〕NationalElectricalManufacturers Association(NEMA),DigitalImaging and communicationsin Medicine(DICOM)〔S〕,draftstandard 2003.
〔8〕陈柱,马聪,肖恩华,等.医学影像学见习应用PACS教学读片法的对比研究〔J〕.医学与哲学,2014(4):86-88.
Design and Application of MedicalImage GeneralBrowser on Dotnet Plug-in Framework
Fan Lifang,Zhao Feng,Zhang Xia,QiGan,Zhu Xiangming*
(Yijishan Hospital,Wannan Medical College,Wuhu,Anhui241001,China)
Medical image general browser based on Dotnetplug-in framework was studied,using the present FULLPACS system in hospital and standard interface technologies in dotnet environment including WCF,XML,HL7,DICOM,HTTP and SOAP,etc.The Dotnet plug-ins follow the DICOM standard and could be assembled to different types of image browsers.This research realized the flexibility of installing and uninstalling of plug-ins of medical browser,distance learning and remote consultation.Dotnet plug-ins could be installed and installed simply without changing the software program,which guarantees the stability of software and easy access to retrieve and share medicalimage data.
Medicalimage generalbrowser;Sharing ofmedicalimage data;DICOM communication standards
TP37
A
2096-2266(2017)06-0012-04
10.3969∕j.issn.2096-2266.2017.06.003
(责任编辑袁霞)
2013安徽省重大教学改革研究资助项目(2013zdjy112)
2017-02-14
2017-04-18
范莉芳,硕士研究生,主要从事心血管超声研究.
*通信作者:朱向明,主任医师,教授,博士生导师.