论文部分内容阅读
摘 要 目的:在安卓手机上进行放射诱导的肺损伤发生率计算,评估待选胸部放疗计划肺组织的不同剂量体积的优劣。方法:利用NTCP-Lyman模型将DVH数据综合为正常组织并发症概率,基于安卓手机开发了肺损伤发生率计算软件。结果:可以在安卓手机上进行RILT发生率计算。结论:在真机上调试运行,完全实现预期功能,可辅助评估胸部放疗计划。
关键词 安卓手机 放射 肺损伤
中图分类号:TP3 文献标识码:A
一个理想的放射治疗计划,要求对肿瘤有最大的控制率和对周围正常组织产生较小并发症。接受根治性放疗的肺癌中大约有13%~37%的患者会发生RILT,发生时间一般在放射治疗后6周~6个月。正常组织并发症概率(NTCP)是指正常组织接受一定体积一剂量照射后发生并发症的概率。NTCP能够全面体现整个DVH的信息,与放射性肺损伤之间的相关性,是现有的方法中最为密切的。根据DVH直接算出每个计划中正常组织发生并发症概率的大小,则不同计划的优劣就一目了然。
1放射诱导的肺损伤发生率的计算方法
式(1)中n是无单位的体积效应因子,n越大,体积效应越大;反之,体积效应就越小。m是NTCP剂量效应曲线斜率。TD50(V=1)、TD50(V)分别为整个肺体积、部分肺体积受照射时引起50%的患者发生放射性肺损伤所需的剂量。m、n值,是根据有关正常组织耐受量的临床资料绘出剂量和并发症发生率之间的关系曲线,用以上公式拟合得出。肺的TD50、n、m值分别为124.5Gy、0.87和0.18。上述模式均假设整个器官或组织及部分器官或组织受到均一剂量的照射。事实上肺受到的照射是非均匀的。所以,应用 Lyman公式时必须在它们之间进行转化。较常用的Kutcher转化方法算法是把DVH转化为于器官或组织的部分等效体积(Veff),该体积小于或等于整个器官体积受到最大剂量的均匀照射的器官或组织损伤。
一般而言,累积剂量体积直方图是一个不规则形状。计算等效体积的方法就是把不均匀的直方图转化成一定高度的Veff和剂量,Dmax就是直方图中的最大剂量。假设转化后的直方图与原直方图产生的并发症是相同的,并同时假设每一阶梯高度直方图和的扩展之间满足幂律关系,则:(VVeff)i=VVi(Di/Dmax)^1/n, n是一个大小参数,此方程被用于直方图的每一阶梯,所以整个直方图的Veff就是:Veff=VVmax+VV1(D1/Dmax)^1/n+VV2(D2/Dmax)^1/n+……。
式(1)中的积分区间为[-∞,t],不便进行数值积分运算,经过以下变换的积分区间为[0,t]:。数值积分采用矩形公式要达到同样精度,需要更多循环次数来计算更多数据,占据了进程影响电话接听等其他应用,也使剂量体积数据输入量增大,因此采用梯形数值积分公式计算。
2软件开发设计
Android手机的品种规格繁多,在不同屏幕上的显示效果不同。为此,采用尽可能简洁的视图小工具,以便在多样化Android手机上,都有较一致的显示效果。因为数据较多,采用了全屏列表框加Android菜单键。编辑修改所需要的输入法,占据一半左右的屏幕,另外设置了一个编辑活动界面;删除操作无需输入法,以长按弹出菜单实现。计算前需要核对全部输入数据,用不能修改数据的列表框加按钮实现。按钮在列表最下方,点击按钮后,压缩列表框,按钮跳到上方边侧,下方显示计算结果。设置了三个活动界面:显示数据(三个菜单)、编辑修改数据(两个按钮)、计算数据(一个按钮)。添加界面,就是插入新记录后的编辑界面。活动界面和菜单都统一地用XML定义。其中主要程序代码如下:
double anum=1.149;double mnum=0.18;double D50=24.5;
cursor.moveToFirst();
temptwo[0] = Double.valueOf(cursor.getString(2));
tempthree[0] = Double.valueOf(cursor.getString(3));
double temp = tempthree[0];
cursor.moveToNext();
for (int i = 1; i < j; i++) {
temptwo[i] = Double.valueOf(cursor.getString(2));
tempthree[i] = Double.valueOf(cursor.getString(3));
tempfour[i] = Math.pow(temptwo[i]/temptwo[0],anum);
tempfive[i] = tempthree[i]-tempthree[i-1];
temp = temp + tempfour[i]*tempfive[i];
cursor.moveToNext();
}
double tempone = tempthree[j-1];
double VE = temp/tempone;//
double TT = D50*Math.pow(VE,-1/a);
double TB = (temptwo[0]-TT)/(10*mnum*TT);
double BB = Math.exp(-100*TB*TB/2)+1;
for (int k = 1; k < 10; k++) {
BB=BB+2*Math.exp(-k*TB*k*TB/2);
}
DecimalFormat df = new DecimalFormat("#0.00000");
String NTCPS = df.format(0.5+TB*BB/(2*Math.sqrt(2*Math.PI)));
double NTCP = Double.valueOf(NTCPS);
3软件应用及效果
在Android手机上调试运行,能够快速计算出RILT发生率,完全实现预期功能,不同版本的Android系统具有一致的显示效果,可辅助评估胸部放疗计划。根据DVH算出三维计划中的NTCP,从生物效应分布的角度进行治疗方案的评估和比较,不仅能预测正常组织的放射生物效应,也可以比较不同治疗计划的优劣。但由于有关软件尚未商业化和设计复杂,并基于高性能台机,不利于普及。由于Android平台的便携性、开放性、稳定性且不需版权费用等特点,并且硬件性能的不断提升,必将成为医疗软件开发应用的主流系统平台之一。
参考文献
[1] 姚昱旻,刘卫国. Android的架构与应用开发研究[J]. 计算机系统应用,2008,11:110-112+24.
关键词 安卓手机 放射 肺损伤
中图分类号:TP3 文献标识码:A
一个理想的放射治疗计划,要求对肿瘤有最大的控制率和对周围正常组织产生较小并发症。接受根治性放疗的肺癌中大约有13%~37%的患者会发生RILT,发生时间一般在放射治疗后6周~6个月。正常组织并发症概率(NTCP)是指正常组织接受一定体积一剂量照射后发生并发症的概率。NTCP能够全面体现整个DVH的信息,与放射性肺损伤之间的相关性,是现有的方法中最为密切的。根据DVH直接算出每个计划中正常组织发生并发症概率的大小,则不同计划的优劣就一目了然。
1放射诱导的肺损伤发生率的计算方法
式(1)中n是无单位的体积效应因子,n越大,体积效应越大;反之,体积效应就越小。m是NTCP剂量效应曲线斜率。TD50(V=1)、TD50(V)分别为整个肺体积、部分肺体积受照射时引起50%的患者发生放射性肺损伤所需的剂量。m、n值,是根据有关正常组织耐受量的临床资料绘出剂量和并发症发生率之间的关系曲线,用以上公式拟合得出。肺的TD50、n、m值分别为124.5Gy、0.87和0.18。上述模式均假设整个器官或组织及部分器官或组织受到均一剂量的照射。事实上肺受到的照射是非均匀的。所以,应用 Lyman公式时必须在它们之间进行转化。较常用的Kutcher转化方法算法是把DVH转化为于器官或组织的部分等效体积(Veff),该体积小于或等于整个器官体积受到最大剂量的均匀照射的器官或组织损伤。
一般而言,累积剂量体积直方图是一个不规则形状。计算等效体积的方法就是把不均匀的直方图转化成一定高度的Veff和剂量,Dmax就是直方图中的最大剂量。假设转化后的直方图与原直方图产生的并发症是相同的,并同时假设每一阶梯高度直方图和的扩展之间满足幂律关系,则:(VVeff)i=VVi(Di/Dmax)^1/n, n是一个大小参数,此方程被用于直方图的每一阶梯,所以整个直方图的Veff就是:Veff=VVmax+VV1(D1/Dmax)^1/n+VV2(D2/Dmax)^1/n+……。
式(1)中的积分区间为[-∞,t],不便进行数值积分运算,经过以下变换的积分区间为[0,t]:。数值积分采用矩形公式要达到同样精度,需要更多循环次数来计算更多数据,占据了进程影响电话接听等其他应用,也使剂量体积数据输入量增大,因此采用梯形数值积分公式计算。
2软件开发设计
Android手机的品种规格繁多,在不同屏幕上的显示效果不同。为此,采用尽可能简洁的视图小工具,以便在多样化Android手机上,都有较一致的显示效果。因为数据较多,采用了全屏列表框加Android菜单键。编辑修改所需要的输入法,占据一半左右的屏幕,另外设置了一个编辑活动界面;删除操作无需输入法,以长按弹出菜单实现。计算前需要核对全部输入数据,用不能修改数据的列表框加按钮实现。按钮在列表最下方,点击按钮后,压缩列表框,按钮跳到上方边侧,下方显示计算结果。设置了三个活动界面:显示数据(三个菜单)、编辑修改数据(两个按钮)、计算数据(一个按钮)。添加界面,就是插入新记录后的编辑界面。活动界面和菜单都统一地用XML定义。其中主要程序代码如下:
double anum=1.149;double mnum=0.18;double D50=24.5;
cursor.moveToFirst();
temptwo[0] = Double.valueOf(cursor.getString(2));
tempthree[0] = Double.valueOf(cursor.getString(3));
double temp = tempthree[0];
cursor.moveToNext();
for (int i = 1; i < j; i++) {
temptwo[i] = Double.valueOf(cursor.getString(2));
tempthree[i] = Double.valueOf(cursor.getString(3));
tempfour[i] = Math.pow(temptwo[i]/temptwo[0],anum);
tempfive[i] = tempthree[i]-tempthree[i-1];
temp = temp + tempfour[i]*tempfive[i];
cursor.moveToNext();
}
double tempone = tempthree[j-1];
double VE = temp/tempone;//
double TT = D50*Math.pow(VE,-1/a);
double TB = (temptwo[0]-TT)/(10*mnum*TT);
double BB = Math.exp(-100*TB*TB/2)+1;
for (int k = 1; k < 10; k++) {
BB=BB+2*Math.exp(-k*TB*k*TB/2);
}
DecimalFormat df = new DecimalFormat("#0.00000");
String NTCPS = df.format(0.5+TB*BB/(2*Math.sqrt(2*Math.PI)));
double NTCP = Double.valueOf(NTCPS);
3软件应用及效果
在Android手机上调试运行,能够快速计算出RILT发生率,完全实现预期功能,不同版本的Android系统具有一致的显示效果,可辅助评估胸部放疗计划。根据DVH算出三维计划中的NTCP,从生物效应分布的角度进行治疗方案的评估和比较,不仅能预测正常组织的放射生物效应,也可以比较不同治疗计划的优劣。但由于有关软件尚未商业化和设计复杂,并基于高性能台机,不利于普及。由于Android平台的便携性、开放性、稳定性且不需版权费用等特点,并且硬件性能的不断提升,必将成为医疗软件开发应用的主流系统平台之一。
参考文献
[1] 姚昱旻,刘卫国. Android的架构与应用开发研究[J]. 计算机系统应用,2008,11:110-112+24.