APP下载

基于Eclipse Scripting API的剂量限制结构生成系统的设计与实现

2019-10-18莫文杰黄金汉罗传文

医疗卫生装备 2019年10期
关键词:缓冲区调用检索

莫文杰,黄金汉,徐 升,罗传文

(恩施土家族苗族自治州中心医院肿瘤放疗中心,湖北恩施 445000)

0 引言

调强放射治疗(intensity modulated radiation therapy,IMRT)因其能够形成高度适形的剂量分布,现已成为一种主流放射治疗技术[1]。为了控制和调整剂量分布,基于计划靶区(planning target volume,PTV)和危及器官(organs at risk,OAR)建立危及器官计划体积(planning organs at risk volume,PRV)、剂量缓冲区、剂量控制环等剂量限制结构成为制订IMRT计划时必不可少的步骤[2]。临床工作中,放疗物理师在使用美国瓦里安(Varian)公司医用电子直线加速器配套软件Eclipse制订IMRT计划时,需要以手工操作方式建立剂量限制结构。虽然手工操作方式技术难度不高,但是步骤烦琐、容易误操作,放疗物理师需要花费大量时间,降低了工作效率。谢朝等[3]使用AutoHotkey热键脚本语言,编写程序脚本来模拟放疗物理师手工操作时的键盘和鼠标的键击动作,在一定程度上简化了生成剂量限制结构的操作。然而模拟手工操作的程序脚本运行速度较慢,且依赖于特定的计算机软硬件环境,兼容性不佳,使用较为不便。为了使放疗物理师能够在Eclipse软件中自动化创建剂量限制结构,减少手工操作步骤、节省操作时间、提高工作效率,本文利用Eclipse软件内置的应用程序开发接口Eclipse Scripting API,以Eclipse功能插件的形式开发了剂量限制结构生成系统[4],可直接在Eclipse软件中调用。

1 系统设计

1.1 需求分析

剂量限制结构生成系统的主要功能是检索并显示IMRT计划中的PTV和OAR,接收用户指定的操作对象和参数,对指定PTV和OAR进行相应处理,从而生成剂量限制结构。本系统包括结构检索、结构生成和界面显示3个模块。剂量限制结构生成系统功能模块结构示意如图1所示。

图1 剂量限制结构生成系统功能模块结构示意图

1.2 系统开发流程

剂量限制结构生成系统的开发流程主要包括原理架构设计、技术选型、界面设计、程序编码、测试和临床应用反馈6个步骤。剂量限制结构生成系统开发流程如图2所示。

图2 剂量限制结构生成系统开发流程

1.3 系统实现原理及架构

为实现在Eclipse软件中创建剂量限制结构的功能,剂量限制结构生成系统与Eclipse软件的交互主要包括:(1)读取 IMRT计划包含的PTV和OAR 的相关信息;(2)调用Eclipse的轮廓体积处理功能生成剂量限制结构。Eclipse ScriptingAPI作为Eclipse软件提供的应用程序开发接口,使用户可以编写应用程序读取和操作Eclipse软件中存储的患者基本信息、放疗影像和放疗计划等信息。本系统利用EclipseScriptingAPI检索并读取IMRT计划中PTV和OAR的名称、体积、三维轮廓等信息,通过调用Eclipse软件自身的功能进行新建结构、体积外扩和裁剪等操作,从而生成剂量限制结构。剂量限制结构生成系统架构如图3所示。

图3 剂量限制结构生成系统架构图

1.4 开发技术

剂量限制结构生成系统开发工具为Microsoft Visual Studio 2015,开发语言为Eclipse Scripting API指定编程语言C#,客户端显示技术采用WPF(WindowsPresentationFoundation),软件开发框架.NETFramework版本为Eclipse V11版软件中指定版本4.0。

2 系统功能实现

2.1 界面显示模块

剂量限制结构生成系统在安装了Eclipse V11版软件的计算机上均可以运行。用户使用具有Eclipse软件写入操作权限的账户登录后,在外照射计划模块中使用Tools菜单Scripts命令,选择并运行程序文件DLS Generation System.esapi.dll,即可启动本系统。

剂量限制结构生成系统启动后,主界面作为Eclipse软件的子窗口以模态窗口的形式显示在Eclipse软件主窗口之上,用户必须关闭主界面才能继续操作Eclipse软件[5]。剂量限制结构生成系统主界面如图4所示,分为PRV生成、剂量缓冲区生成、剂量控制环生成3个部分。通过调用结构检索模块中按类型检索功能,主界面将IMRT计划中可以操作的所有PTV和OAR分别显示在对应区域,用户可以选择需要操作的对象,并指定相应参数,点击生成按钮即可完成剂量限制结构的创建。

图4 剂量限制结构生成系统主界面

2.2 结构检索模块

结构检索模块由界面显示模块或结构生成模块调用,循环读取IMRT计划中的所有结构(忽略未实际勾画的空结构),可以按照结构类型或者结构名称检索需要处理的PTV和OAR,检索结果以列表的形式返回给界面显示模块或结构生成模块。结构检索模块运行流程如图5所示。

图5 结构检索模块运行流程图

结构检索模块应用效果如图6所示。其左侧Eclipse软件Context栏中列出了拟制订IMRT计划的结构组CT_Plan,通过调用结构检索模块,PRV生成区列出了类型为Organ的所有OAR(不包含Body结构),剂量缓冲区生成区和剂量控制环生成区列出了类型为临床靶区(clinicaltargetvolume,CTV)、肿瘤靶区(gross tumor volume,GTV)或 PTV 的结构,忽略了 Esophagus、计划临床靶区(planning clinical target volume,PCTV)等4个未勾画的结构。

图6 结构检索模块应用效果图

2.3 结构生成模块

结构生成模块包括PRV生成、剂量控制环生成和剂量缓冲区生成3个子模块。

2.3.1 PRV生成子模块

在肿瘤放射治疗过程中,某些串联类型的OAR(例如脊髓)由于摆位、呼吸运动等原因导致了位置的不确定性和变化[6]。为了补偿这种位置不确定性和变化,在IMRT计划制订过程中,放疗物理师使用由OAR体积外扩生成的PRV进行剂量优化和计划评估。

用户可以在本系统PRV生成区的OAR列表中勾选一个或多个OAR,并在OAR名称后输入需要外扩的宽度(单位为mm)。点击生成按钮后,PRV生成子模块调用结构检索模块检索当前结构组中是否已经存在对应名称的PRV,如果存在则引用该结构,如果不存在则生成新结构,然后按指定宽度对OAR的体积进行外扩生成一个新的体积,最后将新生成的体积赋值给目标PRV,从而生成相应的PRV。PRV生成子模块运行流程如图7所示。

图7 PRV生成子模块运行流程图

2.3.2 剂量缓冲区生成子模块

部分IMRT计划具有2个不同处方剂量的PTV,且低剂量PTV与高剂量PTV部分重叠甚至完全包含,如图 8(a)所示。图中所示IMRT计划存在名为PCTV和计划肿瘤靶区(planning gross tumor volume,PGTV)的2个PTV,分别给予5 000和6 000 cGy的处方剂量,其中PCTV完全包含PGTV。如果按单一PTV的优化方式对PCTV和PGTV各自设定剂量最低限值和最高限值,则产生了相互矛盾的优化目标,即PCTV的最高限值使PGTV无法达到处方剂量,同时PGTV的最低限值使PCTV内出现超过限值的受照剂量。此时放疗物理师需要裁剪PCTV来建立剂量缓冲区,以避免优化目标之间的矛盾。

剂量限制结构生成系统建立剂量缓冲区步骤如下:(1)将PGTV按指定的宽度进行体积外扩;(2)PCTV的体积减去PGTV外扩后的体积,生成名为PTV-Low 的结构[图 8(b)浅灰色空心圆结构];(3)使用PGTV外扩后的体积减去PGTV的体积,生成剂量缓冲区DoseBuffer[图8(b)中深灰色空心圆结构]。剂量缓冲区生成后,PGTV优化目标不变,放疗物理师按原PCTV的优化目标优化PTV-Low结构,同时给予剂量缓冲区适当的优化目标,使剂量缓冲区的受照剂量由6 000 cGy平滑过渡至5 000 cGy,从而避免了优化目标相互矛盾,使2个PTV均达到处方要求。

图8 2个不同处方剂量的PTV和剂量缓冲区示意图

2.3.3 剂量控制环生成子模块

在制订IMRT计划时,放疗物理师使用剂量控制环控制和调整PTV之外的剂量分布。剂量控制环是由PTV从内至外多次外扩再反向裁剪生成的多层同心圆环式结构。

剂量限制结构生成系统可按用户指定的宽度在PTV之外生成4层控制环,把PTV边缘向外的3层控制环依次命名为Ring1、Ring2和Ring3,第4层控制环是除PTV和内层3个控制环之外的所有区域,命名为Ring4。剂量控制环的具体生成步骤如下:(1)将PTV体积外扩生成中间结构V1,将V1体积外扩生成V2,将V2体积外扩生成V3;(2)用患者的整个Body结构减去 V3,得到 Ring4;(3)用 V3 减去 V2,得到 Ring3,用 V2 减去 V1,得到 Ring2;(4)用 V1 减去PTV,得到最内层控制环Ring1。

3 关键技术的实现

3.1 响应用户调用

为了在Eclipse软件中响应用户的调用并使用Eclipse Scripting API的功能,剂量限制结构生成系统在源代码文件中引用Eclipse V11版软件提供的VMS.TPS.Common.Model.API.dll和VMS.TPS.Common.Model.Types.dll文件,其默认安装位置为C:Program Files(x86)VarianVision11.0Bin64,使用 using指令导入VMS.TPS.Common.Model.API和VMS.TPS.Common.Model.Types命名空间。响应用户调用的主要代码如下:

namespace VMS.TPS

{

public class Script

{

public Script()

{}

public void Execute(ScriptContext context)

{

Patient patient=context.Patient;//引用当前患者

StructureSet stSet=context.StructureSet;//引用当前结构组

//……显示主界面等其他功能代码

}

}

}

按照Eclipse Scripting API规范,上述代码将程序的命名空间设置为VMS.TPS,同时定义名为Script的类,并在该类中定义Execute方法。Execute方法中包含名为context的ScriptContext类型参数,代表Eclipse软件当前载入的患者、影像、放疗计划等项目信息[7]。用户调用剂量限制结构生成系统时,Eclipse软件将自动运行Execute方法中的程序语句。

3.2 结构检索

剂量限制结构生成系统通过IEnumerable接口使用foreach循环语句读取IMRT计划中每一个结构的名称、类型等信息来完成结构检索。按类型检索时使用结构的DicomType属性进行筛选,按名称检索时使用结构的Id属性进行筛选[8]。

3.3 新建结构

剂量限制结构生成系统创建剂量限制结构时,使用IMRT计划结构组的AddStructure方法新建对应的结构。在调用AddStructure方法时,应提供以字符串表示的新结构的类型和新结构的名称2个参数。

3.4 体积的外扩与裁剪

在Eclipse Scripting API中,结构的SegmentVolume属性代表该结构在三维空间中的轮廓体积。在对结构的体积进行外扩时,调用其SegmentVolume属性的Margin方法,以mm为单位进行外扩。在对结构的体积进行裁剪时,调用其SegmentVolume属性的Sub方法,即可从当前结构中减去目标结构。

4 应用效果

4.1 功能与性能测试

在我院Eclipse软件中,随机调取OAR(包含脑干和脊髓)的IMRT计划10例,测试剂量限制结构生成系统的PRV生成功能,PRV生成参数统一设置为脑干和脊髓均外扩5 mm。随机调取具有2个PTV且处方剂量不同的IMRT计划10例,测试剂量限制结构生成系统的剂量缓冲区生成功能,剂量缓冲区宽度统一设置为10 mm。随机调取具有单一PTV的IMRT计划10例,测试剂量限制结构生成系统的剂量控制环生成功能,统一设置第一至第三层控制环宽度均为10 mm。逐一运行剂量限制结构生成系统生成剂量限制结构,记录生成操作完成后信息提示窗口上显示的操作时间。放疗物理师在同一计算机上按相同参数手动生成相同类型剂量限制结构,并记录操作时间。测试结果详见表1。

表1 2种生成方式平均用时对比(n=10)s

2种生成方式生成剂量限制结构的平均用时对比显示,剂量限制结构生成系统自动生成的剂量限制结构外形轮廓、体积数值、颜色与手工生成完全一致,而操作用时大幅减少,符合功能设计要求。

4.2 临床应用

2018年7—12月间我院肿瘤放疗中心放疗物理师使用剂量限制结构生成系统累计对392个IMRT计划生成剂量限制结构。本系统因其操作简单、运行快速、与Eclipse软件完全兼容的优势,成功代替了放疗物理师手工创建剂量限制结构的操作,可满足临床工作需求。

5 结语

不同于模拟键盘和鼠标动作的程序脚本,本文采用Eclipse Scripting API开发的剂量限制结构生成系统以功能插件的形式整合于Eclipse软件中,扩展了Eclipse软件的功能,使放疗物理师在制订IMRT计划时,无需离开Eclipse软件主界面即可直接调用系统实现自动化生成剂量限制结构。剂量限制结构生成系统具有操作简单、运行快速、与Eclipse软件完全兼容等优点,简化了剂量限制结构生成步骤,避免了放疗物理师的重复劳动,减少了操作用时,提高了工作效率。但在剂量限制结构生成系统投入临床应用后,也暴露了剂量缓冲区生成模块处理功能不足的缺陷。因其同时只能处理2个PTV,不能满足部分IMRT计划同时处理3~4个不同处方剂量PTV的需求。剂量限制结构生成系统的下一步研究方向是开发具有处方剂量适应功能的剂量缓冲区生成模块,使其能够自动完成低剂量PTV裁剪高剂量PTV,并根据PTV处方剂量的差值生成相应宽度剂量缓冲区,从而能够处理包含2个以上PTV的IMRT计划。

猜你喜欢

缓冲区调用检索
核电项目物项调用管理的应用研究
基于系统调用的恶意软件检测技术研究
专利检索中“语义”的表现
一类装配支线缓冲区配置的两阶段求解方法研究
关键链技术缓冲区的确定方法研究
初涉缓冲区
利用RFC技术实现SAP系统接口通信
多目标缓冲区生成算法
国际标准检索
国际标准检索