目前放射治疗为肿瘤治疗主要治疗手段之一[1], 在肿瘤的综合治疗手段中占有重要的地位. 放射治疗过程中, 医用直线加速器产生射线照射肿瘤以达到治愈肿瘤的目的. 近些年来, 肿瘤精确放射治疗技术要求提高射线照射区域的照射剂量[2], 同时降低肿瘤周围正常组织吸收剂量, 即提高放射治疗执行的准确性. 医用直线加速器的质量保证(Quality Assurance, QA)是保证放射治疗准确执行、提高治疗效果、控制不必要照射和防止辐射事故的关键, 因此质量保证在放射治疗流程中具有重要意义[3, 4].
我国放射治疗QA流程在整体上正在不断完善, 但一些问题仍尚未解决, 如QA流程复杂繁琐以及流程规范性差等, 导致放疗过程中的QA高效完成仍有一定障碍[5]. 在互联网技术高速发展的大环境下, 建立放疗QA数字化分析系统, 实现放疗设备QA数据的数字存储与智能分析, 可极大地简化放疗QA流程, 提高物理师工作效率, 符合精准放疗时代所提出的基本要求[6-8].
Pylinac是一套提供AAPM TG-l42报告相关的加速器QA分析的开源代码[9, 10], 用于分析日常加速器QA的数据和图片. 本研究利用Python编程语言调用Pylinac中各函数模块, 基于Django Web开发框架和MySQL数据库建立QA数字化分析系统. 其可分析物理师导入的加速器QA流程中数字、图片或日志数据并得出分析结果. 同时, QA数字化分析系统可简化并规范放疗设备安装后的验收检查和放疗流程中质量保证, 提高放疗工作效率, 节省物理师工作时间, 降低放疗差错和放疗事故的发生概率.
1 系统设计本文中放射治疗QA数字化分析系统是一款专用于放射治疗流程中质量保证工作的分析系统. 该系统基于B/S架构进行设计, 包含数据上传、QA数据分析和可视化展示3个功能模块, 实现QA数字化分析流程中QA数据的导入、自动处理分析、结果展示和存储下载功能.
1.1 系统整体架构设计本文中放射治疗QA数字化分析系统采用分层架构设计模式, 其应用层、服务层和数据层之间保持相互独立且各层内部迭代互不影响, 系统整体架构如图1所示. 以浏览器作为用户交互界面, 交互界面包含数据上传模块和可视化展示模块. 数据上传模块具有从Django框架中加载前端界面模板与上传QA数据和图片至Django框架功能; 可视化展示模块可具有将图表等直观的形式展示分析结果和下载分析结果功能. Django服务框架将数据上传模块上传的数据和图片进行处理后保存至数据库中, 同时将数据导入QA分析模块. QA分析模块可完成对数据和图片的自动分析, 一方面将结果保存于数据库, 另一方面将结果进行格式化封装封装后返回到Django服务框架.
1.2 系统功能模块设计 1.2.1 数据上传模块设计数据上传模块在QA数字化分析系统中主要负责将QA分析所需要的数据、图片及日志文件上传至Django服务框架, 主要包括前端界面加载功能和数据上传功能. 前端界面加载功能将前端界面加载展示到浏览器以用于用户交互, 其中包括需要QA分析功能选择区, 数据上传区与结果展示区. 数据上传功能实现将数据上传区的数据上传至Django服务框架中.
1.2.2 QA数据分析模块设计
QA数据分析模块主要负责将导入的医用加速器数据进行自动化分析得到结果. 数据分析模块主要包括数据存储、数据比对分析与结果格式化封装3个功能. 数据存储功能实现QA数据分析流程中数据的保存与读取, 可将Django框架中QA初始数据和QA分析结果保存至数据库, 亦可从数据库读取初始数据和分析结果. 数据分析功能对QA原始数据的内容和格式进行判断, 若数据缺失或格式错误, 则向前端界面返回数据错误提示; 若数据齐全且格式正确, 则模块调用分析函数进行QA数据分析并给出分析结果. 结果格式化封装功能将分析结果生成前端界面所需要的JSON格式数据并返回到Django服务框架供可视化结果显示使用.
1.2.3 可视化展示模块设计可视化展示模块包括可视化界面展示和结果下载两个部分. 可视化展示功能是将数据分析功能模块返回到Django服务框架中的QA分析结果以表和图的形式展示在前端界面. 结果下载功能是将QA分析结果以PDF的形式下载, 方便交流与研究.
2 系统实现基于上文系统的架构设计和各个功能模块的设计需求, 需选择开发语言、开发框架和数据库对各个模块功能进行实现. 系统服务端选用Python 3.7语言, 并基于Django框架进行开发. 该框架是MVC (Model View Controller)软件架构的扩展与延伸, 具有耦合性低, 重用性高和开发周期短的特点. 系统客户端基于Bootstrap开发框架对前端界面进行编写. Bootstrap为聚合HTML、CSS和JS开发语音的前端开发框架, 可用于开发响应式布局、移动设备优先的Web项目. 系统数据库采用MySQL数据库管理系统对QA数据、图片、日志文件及结果进行存取管理.
2.1 数据上传模块设计数据上传模块完成QA数据、图片和日志文件的上传至Django系统框架的功能. 模块功能主要包块界面加载功能和文件上传功能. 在系统开发过程中, 各个QA分析前端界面中页头和侧边栏部分完全一样, 若各界面单独编写前端代码, 则增加了工作量, 更为后期更新升级带来不便, 故在界面加载中选用Django模板继承方式, 将界面中顶部和侧边栏写入base.html模板中, 各功能界面通过{% extends "base.html" %}载入‘base’模板. 因此, 各个界面只需编写模块功能代码, 大大减少冗余内容.
文件上传功能中通过基于加jQuery的Ajax (Asyn-chronous javascript and xml)方式完成QA数据、图片和日志的上传. 引用jQuery文件以方便使用文件中Ajax文件上传模板. 在数据输入表单中载入QA数据, 点击上传按钮触发文件上传事件. 系统通过jQuery技术$("#id").val()得到form表单数据, 创建一个formdata对象并将form表单数据以键值对的形式保存, Ajax携带formdata对象以post方式上传至指定Django后台中的url.py文件进行数据处理. Django后台将接收到的数据后会自动识别其信息类型, 若是数字型或字符串型则通过request.POST.get方式读取数据; 若是图片和日志文件则request.FILES.get方式读取文件. 获取数据和文件后对格式进行判断, 若文件格式错误, 返回上传文件错误提示; 若上传正确, 则将文件发送至数据分析模块.
文件上传功能通过Ajax方式完成QA数据、图片和日志的上传, 接收服务端返回数据并处理的关键代码如下:
$.ajax({
url: "{% url "planarimagingleeds" %}",
type: "post",
data: formdata,
contentType: false,
processData: false,
success: function (data) {
if(data.status == 'success') {
var hc_rois_points = data.hc_rois;
am4core.ready(function() {···});
var constant_points =data.contrast_constant;
var noise_points = data.contrast_to_noise;
am4core.ready(function() {···});
$('#MTF').val(data.MTF);
$('#median_Contrast').val(data.median_Contrast);
$('#Median_CNR').val(data.Median_CNR);
$('#result_image').attr("src","../../"+data.result_img);
}else if(data.status == 'fail'){
$('#jsEditUserForm').html(data.msg)
}}});
2.2 QA数据分析模块设计QA数据分析模块是系统的核心功能模块, 具有存储数据、QA数据分析和格式化封装结果三项功能. 存储数据功能选用MySQL数据库管理系统对数据进行管理, 采用ORM模型来操作数据库. 首先在settings.py中配置DATABASES中数据库信息; 然后在model.py中以类继承models.Model的方式生成数据表; 最后在view.py文件中获取models.py对应数据表对象, 从而完成前端上传数据和QA数据分析结果的存取操作.
对于QA数据分析功能, 首先新建功能类继承Pylinac库中类来实现QA数据与图片的分析功能; 然后通过数据表对象获取QA数据并将数据导入功能类中使用analyze函数分析; 最后通过get()函数和save_image_image()分别得到数据结果与图表结果. 以平板成像模块中Leeds TOR 18部分为例, QA数据分析功能新建功能类核心代码如下所示:
class myLeedsTOR(LeedsTOR):
def plot_image_image(self):
self.plot_analyzed_image(low_contrast=False,high_contrast=False)
def get_hc_rois(self):
hc_rois = [roi.mtf for roi in self.hc_rois]
return hc_rois
def get_contrast_constant(self):
contrast_constant = [roi.contrast_constant for roi in self.lc_rois]
return contrast_constant
def get_contrast_to_noise(self):
contrast_to_noise = [roi.contrast_to_noise for roi in self.lc_rois]
return contrast_to_noise
def save_image_image(self, filename,**kwargs):
self.plot_analyzed_image(show=False,low_contrast=False,high_contrast=False, **kwargs)
plt.savefig(filename, **kwargs)
其中, plot_image_image()与save_image_image()函数完成图表结果的绘制与保存工作. get_hc_rois()、get_contrast_constant()和get_contrast_to_noise()分别具有获得平板成像的高频相对调制传递函数值、低频率对比度和载噪比数值功能.
结果格式化封装功能将分析结果整理成json类型数据, 通过HttpResponse(json.dumps(result_dict), content_type='application/json')将json数据返回到指定HTML前端界面用于可视化展示.
2.3 可视化展示模块设计可视化展示模块包括可视化界面展示和结果下载两项功能. 可视化界面展示功能主要实现将QA分析结果以图表形式直观的展现出来. 首先通过Ajax的异步调用获取服务器端返回的json类型数据, 然后使用amCharts定制图表加载数据的方法将QA分析结果进行动态加载实现可视化展示功能. 在使用amCharts定制图表时, 先通过DIV标签设置图表的位置和大小, 然后在<script></script>标签中调用amCharts中var chart = am4core.create("ID", am4charts.XYChart)方法来得到图表div; 然后通过对象定义完成图表属性的相关设置, 如xAxes、yAxes、color以及图表数据data等相关信息; 最后通过chart.series.push(new am4charts.LineSeries())设置图表属性. 结果下载功能实现对可视化结果以PDF形式下载, 点击下载按钮触发download事件, 调用download(request)函数将分析结果以数据流的方式下载.
amCharts定制平板成像模块中Leeds TOR 18图表的核心代码如下所示:
am4core.ready(function() {
var chart = am4core.create("rMTF_Chart", am4charts.XYChart);
chart.data = get_hc_rois_points(hc_rois_points);
var dateAxis = chart.xAxes.push(new am4charts.CategoryAxis());
dateAxis.dataFields.category = "date";
dateAxis.title.text = "线对值";
dateAxis.renderer.minGridDistance =5;
var contrastAxis = chart.yAxes.push(new am4charts.ValueAxis());
contrastAxis.title.text = "相对MTF";
contrastAxis.renderer.grid.template.disabled = false;
var rMTF_Series = chart.series.push(new am4charts.LineSeries());
rMTF_Series.dataFields.valueY = "hc_rois";
rMTF_Series.dataFields.categoryX = "date";
rMTF_Series.yAxis = contrastAxis;
rMTF_Series.tooltipText = "{date}:{hc_rois}";
rMTF_Series.name = "相对MTF";
rMTF_Series.strokeWidth = 2;}
3 系统测试 3.1 系统操作界面放射治疗QA数字化分析系统的主界面如图2所示, 左侧为QA分析模块操作侧边栏, 包括日常周检查和月检查所需QA分析操作. 其中剂量校准模块依据TG51协议可完成对医用直线加速器输出剂量的测定和校准数据计算. 等中心验证模块通过分析胶片图像, 既可验证机架旋转轴与辐射束等中心一致性, 也可完成准直器旋转轴与辐射束等中心一致性的验证. 容积调强质控模块主要包括剂量率与机架旋转速率的联合测试和多叶光栅速率与剂量率的联合测试两个部分. 该模块加载电子投影影像设备(EPID)采集的DICOM图像文件并分析VMAT/Rapid Arc的误差变化. 平板成像模块通过分析直线加速器MV图像或KV图像来判断MV探测板及KV探测板成像质量, 其支持Leeds TOR 18、Standard Imaging QC-3和Las Vegas模体的分析. Winston_Lutz分析模块可加载winston_lutz图像, 分析验证医用直线加速器的机械等中心与辐射束等中心的重合度. 光栅运动检测模块通过分析EPID采集的DICOM图像来确定多叶光栅的峰值, 判断多叶光栅的运动状况, 并给出通过、警告或失败的可视化指示. CT质量检查模块对上传的CBCT或CT图像进行分析, 得到CT图像的空间分辨率、图像噪声和低对比度分辨率结果. 平坦度与对称性模块依据平坦度/对称性计算标准, 可以加载和分析胶片或EPID图像来检查直线加速器辐射束的平坦度与对称性. 日志分析模块可读取及分析瓦里安直线加速器机器的日志, 包括动态日志和轨迹日志.
选择界面左侧QA分析操作侧边栏对应QA分析操作, 右侧主界面会加载QA分析操作与结果界面, 其包括参数设置、文件上传、结果可视化和结果下载. 文件上传部分支持图片上传格式为TIF格式、JPEG格式和DICOM格式, 同时也支持文件压缩包上传及文件夹上传. 参数设置部分需要设定QA中测定的参数值和预定的影响QA结果的值, 其中测定值主要包括: 温度、气压和跳数、参考值、误差值和对比度阈值等.
3.2 测试实例本文选用KV/MV影像分析中分析KV/MV影像质量的Leeds TOR Phantom为例来介绍QA数字化分析系统分析操作界面. 使用本院医用直线加速器Varian Edge拍摄Leeds TOR Phantom图像用于MV平板质量分析. 如图3 Leeds TOR Phantom分析操作与结果界面所示, 在左上方文件上传部分输入低对比度阈值和高对比度阈值并载入加速器拍摄dicom类型MV平板分析文件. 点击上传按钮, 对数据和文件进行上传. 上传数据及文件后, 系统可自动进行分析并返回可视化结果, 结果呈现部分以图表的形式展现QA的分析结果. Leeds TOR Phantom的可视化结果分别在分析结果、高频相对MTF结果和低频率对比度与载噪比结果3个区域展示. 在可视化结果界面点击“下载”, 既可进入结果下载界面. 结果下载界面中根据日期排序列出分析结果, 点击“下载”即可得到分析结果的PDF文件. Leeds TOR Phantom传统QA流程是物理师采集到模体图像后, 在高对比度区域通过肉眼判断得出高对比度结果, 在低对比度画圈读出低对比度结果. QA数字化分析系统改变了传统QA流程, 通过分析上传的模体图片可得到结果, 减少了因为技能水平差异而造成的分析结果误差, 将影像质量评定缩短至数分钟内可以完成的任务.
在系统可靠性和实用性测试中, 分别将本院七台医用直线加速器2019年度年检QA数据与图片QA导入用数字化分析系统进行分析, 使用对比分析法将分析结果与年检结果进行比较后得到两者偏差的概率小于千分之一.
经测试结果表明, 我们搭建的放射治疗QA数字化分析系统可以成功识别并自动处理前端界面表单中添加的放疗设备参数、图像或日志文件, 帮助物理师得到QA分析计算结果并根据QA标准检查设备工作质量.
4 讨 论
放射治疗的QA是保证和提高肿瘤治疗水平的基础, 也是放射治疗的安全与有效的关键[11, 12]. 高水平的质量保证工作不但减少或避免放疗差错及放疗事故的发生, 而且使直线加速器保持良好的工作状态. 通过精确地输送处方剂量到放疗靶区, 减少附近正常组织的受照量, 进而使患者能够获得更好的治疗[13-15].
在传统的QA过程中, 物理师使用QA设备得到QA数值或图像后, 通过人工计算或观察评估医用直线加速器QA是否通过[16-18]. 由于QA工作繁重且计算复杂, 在进行手动计算的时, 可能存在人为失误导致重新计算或数据采集, 会进一步增加了物理师的工作量. 此外, 物理师个人之间的工作能力与QA评价标准也存在差别, 需要分析的图片数量多且复杂, 观察评估QA是否通过存在较大主观性和间接性[19, 20]. 基于Pylinac开发的QA数字化分析系统很好地解决了这方面的问题, 物理师将采集的数据导入系统, 系统自动分析得到QA结果, 从而可直观的判断直线加速器QA能否通过. 本系统的测试结果显示, 医用加速器QA工作流程得以顺利的实现, 物理师工作内容得到简化, 工作效率得到明显的改善和提高.
随着互联网与自动化技术的发展, 越来越多放射治疗QA管理系统被物理师接触并使用, 如Darcis M开发设计的加速器等中心检验系统[21, 22]. 但这样的系统往往功能单一, 缺乏系统整合, 物理师对直线加速器进行不同项目的QA时需要打开多个软件. 本设计将加速器性能检测的所有项目都集成到一个系统中, 极大地简化了工作流程, 提高工作效率.
综上所述, 基于Pylinac的放射治疗QA数字化分析系统改变了物理师传统的QA流程, 使质量保证过程得到进一步规范; 建立QA流程标准化体系和数据数字化管理并自动化分析QA数据, 提高了物理师工作效率, 从而具有推动放射治疗事业向前发展的作用.
[1] |
Myint AS. The role of radiotherapy in the palliative treatment of gastrointestinal cancer. European Journal of Gastroenterology & Hepatology, 2000, 12(4): 381-390. |
[2] |
李涛, 王培, 吴大可, 等. 非小细胞肺癌精确放射治疗呼吸控制及剂量学研究. 中国医疗前沿, 2007, 2(18): 17-19. DOI:10.3969/j.issn.1673-5552.2007.18.010 |
[3] |
张峰. 放射治疗的物理质量控制与质量保证. 临床医药文献电子杂志, 2016, 3(34): 6901, 6903. |
[4] |
Ishikura S. Quality assurance of radiotherapy in cancer treatment: Toward improvement of patient safety and quality of care. Japanese Journal of Clinical Oncology, 2008, 38(11): 723-729. DOI:10.1093/jjco/hyn112 |
[5] |
田源, 张红志. 肿瘤放射治疗技术进展. 中华结直肠疾病电子杂志, 2016, 5(4): 287-291. DOI:10.3877/cma.j.issn.2095-3224.2016.04.002 |
[6] |
朱晓华, 曾程, 刘汉成, 等. 放射治疗质量控制标准化体系的研究进展与应用. 中国医疗设备, 2018, 33(4): 108-110, 114. DOI:10.3969/j.issn.1674-1633.2018.04.028 |
[7] |
陈利军, 谷晓华, 杨留勤. 基于放射治疗图像引导系统对放疗设备进行质控检查. 中国医疗设备, 2017, 32(1): 75-77. DOI:10.3969/j.issn.1674-1633.2017.01.019 |
[8] |
Gaze MN, Boterberg T, Dieckmann K, et al. Development of an electronic database for quality assurance of radiotherapy in the International Society of Paediatric Oncology (Europe) high risk neuroblastoma study. Radiotherapy and Oncology, 2010, 97(3): 593-595. DOI:10.1016/j.radonc.2010.08.017 |
[9] |
Benedict SH, Yenice KM, Followill D, et al. Stereotactic body radiation therapy: The report of AAPM Task Group 101. Medical Physics, 2010, 37(8): 4078-4101. DOI:10.1118/1.3438081 |
[10] |
Zaila A, Adili M, Bamajboor S. Pylinac: A toolkit for performing TG-142 QA related tasks on linear accelerator. Physica Medica, 2016, 32(S3): 292-293. |
[11] |
Bernier J, Horiot JC, Bartelink H, et al. Profile of radiotherapy departments contributing to the Cooperative Group of Radiotherapy of the European Organization for Research and Treatment of Cancer. International Journal of Radiation Oncology·Biology·Physics, 1996, 34(4): 953-960. DOI:10.1016/0360-3016(95)02177-9 |
[12] |
Munbodh R, Jackson A. Quantifying cell migration distance as a contributing factor to the development of rectal toxicity after prostate radiotherapy. Medical Physics, 2014, 41(2): 021724. DOI:10.1118/1.4852955 |
[13] |
刘咏梅. 图像引导的自适应放疗研究进展. 中国肿瘤临床, 2008, 35(22): 1314-1316, 1320. DOI:10.3969/j.issn.1000-8179.2008.22.014 |
[14] |
Kim SW, Shin JW, Oh KM, et al. Study on the feasibility of the HgI2 dosimeter for quality assurance of radiotherapy
. Journal of Instrumentation, 2013, 8(5): P05020. DOI:10.1088/1748-0221/8/05/P05020 |
[15] |
邵洁, 闫婧, 周霞, 等. 质量保证和质量控制体系在放射治疗中的建立与应用. 浙江临床医学, 2013, 15(7): 1101-1103. DOI:10.3969/j.issn.1008-7664.2013.07.085 |
[16] |
Du WL, Johnson JL, Jiang W, et al. On the selection of gantry and collimator angles for isocenter localization using Winston-Lutz tests. Journal of Applied Clinical Medical Physics, 2016, 17(1): 167-178. DOI:10.1120/jacmp.v17i1.5792 |
[17] |
Levitt SH, Khan F. Quality assurance in radiation oncology. Cancer, 1994, 74(S9): 2642-2646. DOI:10.1002/1097-0142(19941101)74:9+<2642::AID-CNCR2820741810>3.0.CO;2-E |
[18] |
Papakostidi A, Tolia M, Tsoukalas N. Quality assurance in health services: The paradigm of radiotherapy. Journal of the Balkan Union of Oncology, 2014, 19(1): 47-52. |
[19] |
张晓军, 吴文魁. 放射治疗中的质量保证与质量控制. 中国医疗设备, 2009, 24(11): 83-84. DOI:10.3969/j.issn.1674-1633.2009.11.032 |
[20] |
应军盛. 医院放疗技术的质量管理与控制探讨. 中医药管理杂志, 2014, 22(10): 1711-1712. |
[21] |
Gao J, Liu X. SU-F-T-547: Off-isocenter Winston-Lutz test for stereotactic radiosurgery/stereotactic body radiotherapy. Medical Physics, 2016, 43(6): 3589. |
[22] |
Pitz M, Birmili W, Schmid O, et al. Quality control and quality assurance for particle size distribution measurements at an urban monitoring station in Augsburg, Germany. Journal of Environmental Monitoring, 2008, 10(9): 1017-1024. DOI:10.1039/b807264g |