基于Eclipse Scripting API 的剂量验证计划生成系统的设计与实现
2020-12-24莫文杰黄金汉罗传文邹文谦
莫文杰,黄金汉,徐 升,罗传文,邹文谦
(恩施土家族苗族自治州中心医院肿瘤放疗中心,湖北恩施445000)
0 引言
调强放疗(intensity modulated radiation therapy,IMRT)作为一种主流放疗技术,在肿瘤放疗中应用较为普遍,IMRT 计划的剂量验证工作因此成为肿瘤放疗科室在日常的质量保证(quality assurance,QA)和质量控制(quality control,QC)流程中一个重要的环节[1]。与传统的二维计划或三维适形计划不同,IMRT 计划的剂量验证需要将专用的剂量验证计划实际投照在验证模体上,以检测和验证绝对点剂量、二维或三维剂量分布等数据[2]。临床工作中,放疗物理师通过放疗计划系统提供的剂量验证计划生成工具,根据已经制订的IMRT 计划生成相应的剂量验证计划[3]。我院肿瘤放疗中心使用美国瓦里安公司直线加速器配套的Eclipse 放疗计划系统,其生成剂量验证计划的操作包括3 个步骤:(1)选择患者和IMRT计划;(2)选择剂量验证的方法/验证模体,并设置相关参数;(3)执行剂量计算。虽然操作技术难度不高,但步骤较为烦琐,操作效率较低,一方面是由于系统本身的功能限制,放疗物理师一次只能操作一个IMRT 计划,每个计划均要完整执行上述流程;另一方面是由于在实际工作中往往固定设置的参数却需要针对每个IMRT 计划进行重复设置。一旦需要验证的IMRT 计划较多,放疗物理师必须反复执行上述操作步骤,耗费较多的时间与精力。为了使放疗物理师能够减少手工操作量,节省操作时间,本文利用Eclipse 计划系统内置的应用程序开发接口Eclipse Scripting API,结合我院肿瘤放疗中心的工作实际,开发了一套剂量验证计划生成系统。本系统可以快速、批量自动化生成剂量验证计划,减少放疗物理师的工作量,提高工作效率,方便临床工作。
1 系统设计
1.1 功能设计
剂量验证计划生成系统的主要功能是检索Eclipse 计划系统后台数据库中的患者信息和IMRT计划,接收用户指定的操作对象和参数,根据患者现有的IMRT 计划生成对应的剂量验证计划[4]。该系统的设计应包括参数设置、患者选择、计划选择和剂量验证计划生成4 个功能模块。
系统的4 个模块应以向导的方式指引用户进行设置和选择,完成剂量验证计划的批量自动化生成。其中,参数设置模块可以让用户指定剂量验证计划生成操作所需的相关参数。患者选择模块可以检索并显示患者列表,用户可以指定需要生成剂量验证计划的患者。计划选择模块可以针对指定的患者检索其拥有的IMRT计划,用户可指定需要进行剂量验证的IMRT 计划。剂量验证计划生成模块用于针对指定的IMRT 计划生成对应的剂量验证计划。
1.2 Eclipse Scripting API 应用
Eclipse Scripting API 是Eclipse 计划系统中内置的一套应用程序开发接口。通过该接口,用户可以在自己开发的软件中调用Eclipse 软件的相关功能,以操作Eclipse 计划系统后台数据库。为了实现剂量验证计划的批量自动化生成,剂量验证计划生成系统主要在2 个方面使用Eclipse Scripting API:(1)在患者选择和计划选择2 个模块中,检索后台数据库中的患者信息和IMRT 计划,使用户可以指定需要生成剂量验证计划的对象;(2)在剂量验证计划生成模块中,根据用户指定的参数和对象创建剂量验证计划。根据需求分析和功能模块设计,剂量验证计划生成系统的功能实现流程如图1 所示。
图1 剂量验证计划生成系统功能实现流程图
1.3 系统架构
剂量验证计划生成系统采用与Eclipse 计划系统一致的客户端/服务器(Client/Server,C/S)架构,采用Eclipse Scripting API 的可执行应用程序(Executable Application)模式独立运行,如图2 所示。
图2 剂量验证计划生成系统整体架构
1.4 开发与运行环境
剂量验证计划生成系统采用的开发工具为Microsoft Visual Studio 2019 版,开发语言为Eclipse Scripting API 指定编程语言C#,用户界面显示技术采用WPF(windows presentation foundation)框架,软件开发与运行均应用.NET Framework 4.5.2 版本[5]。本系统可以在安装13.6 或更高版本Eclipse 计划系统的物理师工作站上运行。
2 系统实现
2.1 创建Eclipse 软件后台程序
剂量验证计划生成系统启动时,将调用Eclipse Scripting API 中Application 类的CreateApplication 静态方法,创建一个没有用户界面的Eclipse 后台程序。通过使用该程序的相关属性和方法,可以实现与放疗物理师手工操作Eclipse 软件时相同的功能,进而利用循环、条件判断等编程语句实现对患者、IMRT 计划等内容的自动化处理。
2.2 检索患者
创建Eclipse 后台程序后,通过Patient Summaries属性获取Eclipse 计划系统后台数据库中存储的患者列表。Patient Summaries 属性是一组Patient Summary 对象的集合,每一个Patient Summary 对象代表一位患者,包含患者的放疗Id(Patient Id)、姓名、性别、出生日期、登记时间等基本信息。患者选择模块利用Patient Summary 对象显示患者列表,供用户进行选择。用户选择完成后,该模块记录被选择患者的放疗Id,生成待处理患者列表。
2.3 检索放疗计划
计划选择模块获取待处理患者列表后,使用Eclipse 后台程序的Open Patient 方法,以某个患者的放疗Id 作为参数,打开该患者信息并查询其放疗疗程、放疗计划等内容。与手工使用Eclipse 软件的操作方式相同,Eclipse 后台程序一次只能打开一位患者完成相关操作,操作完成后必须使用Close Patient方法关闭当前患者信息后才能处理下一位患者的IMRT 计划。
在Eclipse 计划系统中一位患者可能拥有多个放疗疗程,一个疗程可能包含多个放疗计划。计划选择模块使用for each 循环语句遍历每一个放疗疗程,然后再使用嵌套的for each 语句遍历该疗程中的每一个放疗计划[6]。对每个放疗计划,该模块均通过检测其相关属性执行以下筛选:(1)是否为IMRT 计划。检测放疗计划的Optimization Setup 属性,当该属性为Null 时,表明该计划无剂量优化目标,即非IMRT 计划。(2)是否本身即为剂量验证计划。检测放疗计划的Plan Intent 属性,当该属性值为VERIFICATION时,表明该计划本身即为剂量验证计划。(3)是否可用于治疗投照。检测Approval Status 属性值是否为Rejected 或Retired,以排除不能用于治疗投照的放疗计划。
用户指定了需要验证的IMRT 计划后,计划选择模块把患者的放疗Id 和放疗计划的Id 共同作为一条记录添加至待处理计划列表,传输至剂量验证计划生成模块进行处理。
2.4 生成剂量验证计划
生成剂量验证计划的流程如图3 所示。
图3 生成剂量验证计划的流程图
生成剂量验证计划流程中的关键操作步骤包括:(1)复制验证模体CT 图像至当前患者。在表示当前患者的Patient 对象上使用Copy Image From Other Patient 方法,并提供后台数据库中验证模体CT 图像的Patient Id、Study Id 和Image Id 作为参数。(2)新建外照射计划。在当前IMRT 计划的放疗疗程Course对象上使用Add External Plan Setup As Verification Plan方法,即可在当前疗程中新建一个用于剂量验证的外照射计划。(3)复制并调整原计划射束。对于原IMRT计划中的每一个代表射束的Beam 对象,首先使用其Treatment Unit.Id(治疗设备)、Energy Mode Display-Name(射线能量)、Dose Rate(剂量率)、Technique.Id(投照技术,即固定野照射或旋转照射)4 个属性值作为参数新建一个External Beam Machine Parameters对象。然后将该对象作为参数在第2 步中新建的外照射计划上使用Add Sliding Window Beam 方法新建一个调强射束,同时设置该射束的机架角度、准直器角度和治疗床角度。最后将原始射束中用于控制多叶准直器(multi-leaf collimator,MLC)运动状态以实现射束强度调节的Control Points 属性复制到新的射束中。(4)剂量计算。首先在原IMRT 计划上使用Get Calculation Model 方法获取剂量计算模型,即剂量算法及其参数,然后把该模型通过Set Calculation Model方法复制到第2 步中创建的外照射计划中,最后在该外照射计划上调用Calculate Dose With Preset Values方法完成剂量计算。
3 功能实现
3.1 参数设置模块
图4 参数设置模块应用界面
参数设置模块的应用界面如图4 所示。用户可以在验证模体栏中选择进行剂量计算和剂量检测的模体,可供选择的模体其CT 图像序列已保存于Eclipse 计划系统中[7-8]。机械参数栏可以设置剂量验证计划中机架、准直器和治疗床的角度,对于二维剂量验证或者点剂量验证选择三者均设置为0°。若进行三维剂量验证可选择“使用原计划设置”,以保留原IMRT 计划中的机械参数[9-10]。
根据我院肿瘤放疗中心的工作实际,参数设置模块保留了日常使用中可能改变的项目,对于部分项目直接使用默认设置(如剂量验证计划所在的放疗疗程均默认为原IMRT 计划所在疗程)。本模块精简了设置界面,减少了相应的手工操作步骤。不同于Eclipse 计划系统中需要针对每一个待验证的IMRT计划进行参数设置,本模块中的参数将应用于当次批量操作中所有的IMRT 计划,避免了重复的手工设置操作。
3.2 患者选择模块
患者选择模块的应用界面如图5 所示。本模块可检索Eclipse 计划系统后台数据库中的患者信息,按照患者的登记时间倒序排序,并显示患者的放疗Id 和姓名等。同时,用户可以在列表中勾选近期有IMRT 计划需要进行剂量验证的患者,并生成待处理患者列表传输至计划选择模块进行处理。
3.3 计划选择模块
计划选择模块的应用界面如图6 所示。待处理患者列表生成后,计划选择模块会查询每位患者的所有放疗疗程及其包含的放疗计划,将符合筛选条件的放疗计划列出[11]。用户可以勾选需要进行剂量验证的IMRT 计划生成待处理计划列表,由剂量验证计划生成模块进行处理。本模块中放疗计划的筛选条件包括以下3 个:(1)计划的类型为IMRT 计划,不包含二维计划和三维适形计划;(2)计划本身不为剂量验证计划;(3)计划的状态为可以治疗投照。默认情况下本模块不显示已经开始治疗投照的计划,用户可以通过勾选“包含已治疗计划”选项以显示该类计划。同时,同一位患者可能拥有多个放疗计划,本模块可依据疗程名称、计划名称依次排列显示。
图5 患者选择模块应用界面
图6 计划选择模块应用界面
3.4 剂量验证计划生成模块
剂量验证计划生成模块的应用界面如图7 所示。本模块可显示已被选择的患者及其IMRT 计划,用户点击“开始生成”按钮即可启动剂量验证计划的批量生成。新创建的剂量验证计划与原IMRT 计划处于同一疗程中,系统自动在原IMRT 计划名称后加QA 字符作为新计划的名称。当在该疗程下有相同名称的计划时,系统将尝试在QA 字符后添加数字1~99,以避免计划名称重复引发的系统错误。在系统自动生成剂量验证计划的过程中,用户可以点击“中止生成”按钮中断生成操作,已生成的计划将保留。在生成操作完成或中止前,用户无法点击“上一步:选择IMRT 计划”按钮和“退出”按钮。
图7 剂量验证计划生成模块应用界面
4 应用效果
4.1 功能与性能测试
在我院Eclipse 放疗计划系统中随机调取30 例IMRT 计划,以应用本系统自动方式和放疗物理师手动方式分别生成对应的剂量验证计划进行对比测试。30 例IMRT 计划均采用固定射野角度的动态调强技术,共214 个射野。剂量验证计划投照的测量模体为德国PTW 公司生产的OCTAVIUS Detector 729型二维验证矩阵,机架角度、准直器角度、治疗床角度均设置为0°,每一个剂量验证计划包含其所有射野[12]。剂量验证计划的剂量算法为各向异性分析算法(anisotropic analytical algorithm,AAA),计算网格大小为0.25 cm。剂量计算采用Eclipse 软件自带的分布式计算框架(distributed calculation framework,DCF)。在此框架下,计算过程由一台专用的剂量计算工作站完成,进行软件操作的物理师工作站不进行剂量计算。剂量计算工作站的主要硬件配置为12 核2.0 GHz处理器,32 GiB DDR3 内存。
采集使用本系统自动生成剂量验证计划时从打开参数设置界面到所有剂量验证计划生成完毕的总用时,以及一名放疗物理师在同一计算机上按相同参数手工操作从打开患者信息至生成剂量验证计划,并重复完成30 个IMRT 计划的总操作时间。用时统计包含患者选择和IMRT 计划选择、模体和参数设置及剂量计算3 个环节的总用时。
经测试,本系统自动生成30 个剂量验证计划共耗时627 s,放疗物理师手动生成共耗时3 032 s,系统自动生成比手工生成节省2 405 s。根据系统的设计原理,自动生成与手工生成在剂量计算环节过程相同,耗时相近。自动生成方式无法节省该环节用时,其节省的操作用时来源于非剂量计算环节。一方面在进行患者选择和IMRT 计划选择时,无需载入并显示患者和IMRT 计划的详细信息,尤其是CT 图像等数据量较大的内容;另一方面模体和参数设置实现了一次设置多次使用,无需重复进行设置操作。通过生成总耗时减去剂量计算环节耗时可得非剂量计算环节耗时。测算表明,剂量计算工作站完成1 个射野的剂量计算平均耗时2.3 s,计算30 个剂量验证计划共214 个射野约耗时492.2 s。通过计算可知,在非剂量计算环节中,自动生成方式耗时134.8 s,手工生成方式耗时2 539.8 s,自动生成方式相比手工生成方式效率提升了18.8 倍。
由于Eclipse Scripting API 是Eclipse 放疗计划系统内置的开发接口,通过调用Eclipse Scripting API 实现的功能和操作与手工操作Eclipse 放疗计划系统是等效的。逐一检查对比2 种生成方式生成的剂量验证计划,发现二者在机械参数、计划参数、剂量学参数等方面完全相同,验证了本系统自动生成的剂量验证计划命名操作正确无误,符合功能设计要求。
4.2 临床应用
2019 年7—12 月我院肿瘤放疗中心放疗物理师使用剂量验证计划生成系统累计对512 位患者的593 个IMRT 计划生成剂量验证计划并用于实际验证投照。本系统因自动化程度高、运行速度快、操作简便等优点,成功代替了放疗物理师手工创建剂量验证计划的操作,较好地满足了临床工作需求。
5 结语
剂量验证是IMRT 计划治疗投照之前必不可少的准备工作,创建剂量验证计划是必要环节。本文采用Eclipse Scripting API 开发的剂量验证计划生成系统使放疗物理师可以轻松批量创建大量剂量验证计划,简化了创建剂量验证计划的操作步骤,避免了放疗物理师的重复劳动,减少了操作用时,提高了工作效率。虽然本系统的应用取得了良好的效果,但仍存在一些不足。如在生成剂量验证计划后不能自动导出剂量通量图进行后续的比对检验。故下一步研究方向是为系统开发剂量通量图自动导出功能,以进一步满足临床工作需求。