在疾病缓解 (CR+PR) 作为主要终点的非随机肿瘤试验中,是需要确认CR和PR的,这篇文章从RECIST 1.1出发梳理肿瘤BOR的确认。
文章共有3部分,第1部分是RECIST 1.1中有关BOR确认的描述以及相关内容的补充,第2部分是肿瘤BOR确认练习的说明与演示,第3部分是BOR确认的SAS程序分享。
希望文章的介绍以及配套练习,能够帮助读者进一步理解和掌握肿瘤BOR的确认。完成练习后,大家完全可以3秒内判定BOR_temp。
欢迎关注,SAS茶谈,后台回复:BOR,获取配套练习文件。配套练习说明,详见文章第2部分。如果练习过程中发现任何问题或有任何疑惑,欢迎留言、私信反馈。
1. RECIST 1.1 简述
RECIST 1.1,Response Evaluation Criteria in Solid Tumours (Version 1.1),实体瘤疗效评估标准 1.1版。
实体瘤评估的具体过程是,在基线选定一定数量的靶病灶与非靶病灶,计算所有靶病灶的直径总和。在基线后的各时点,也会计算靶病灶的直径总和,并与基线相比较,研究人员评估该时点靶病灶的疗效;同时,研究人员也会定性评估非靶病灶的疗效,观察并记录是否有新病灶出现。
结合基线后各时点的靶病灶、非靶病灶疗效以及是否出现新病灶,研究人员评估出受试者在该时点的总体疗效 (Time point response),综合所有时间点疗效进而评估出最佳总体疗效 (Best overall response, BOR)。
这就是RECIST 1.1的整体脉络,完整内容参考临床试验-肿瘤:RECIST 1.1 中文版 (v1.0)。
1.1 时间点疗效 (Time point response)
在基线选定靶病灶与非靶病灶后,基线后各时点会基于靶病灶、非靶病灶以及新病灶的观察结果,评估肿瘤的时间点疗效,评估规则如下:
时间点疗效通常由现场研究人员以及独立中心审查人员提供,不需要Sponsor单独衍生。这一部分内容通常会在SDTM RS中进行处理,具体参考临床试验-肿瘤:从RECIST 1.1出发梳理肿瘤相关SDTM数据集 (TU\TR\RS) 。
1.2 最佳总体疗效:所有时间点 (Best overall response: all time points)
一旦获取受试者所有时间点疗效,就可以综合确定最佳总体疗效。直观地讲,最佳总体疗效就是所有时点中疗效最好的评估。
疗效比较的优先级如下:
CR > PR > SD > PD > NE
举个例子,如果基线后4个时点疗效为PR-SD-SD-PD,在疗效不需要确认的情况下,PR为最佳总体疗效。
在一些试验中,我们并不能通过简单比较时间点疗效来获取BOR。RECIST 1.1将BOR的获取分为2类:一类是CR和PR不需要确认,另一类是CR和PR需要确认。(RECIST 1.1, 4.4.4节)
- Confirmation of complete or partial response IS NOT required
- Confirmation of complete or partial response IS required
如果疗效不需要确认,就可以直接选择基线后最好的那一个时点疗效作为BOR。如果需要确认,时点疗效并不能直接用于BOR的确定。
一般情况下,现场研究人员只会提供受试者的时间点疗效,不会提供最佳总体疗效,BOR需要单独衍生。独立中心审查人员,除了提供时间点疗效外,可能会提供BOR,这种情况下,不需要单独衍生。通常,BOR的处理是在ADaM ADRS中进行。
1.3 确认 (Confirmation)
RECIST 1.1 的 4.6.1节,提到肿瘤疗效需要确认的考量:在疾病缓解 (CR+PR) 作为主要终点的非随机试验中,需要确认CR和PR,以确保疾病缓解不是测量误差的结果。除了CR和PR,原文中提及SD也需要确认。
一些研究可能基于试验本身的考虑,PD也需要确认,具体情况须参考Protocol与SAP的要求。这种情况下,一般也会说明疗效评估是基于 “Modified RECIST 1.1”。在RECIST 1.1原文中,PD是不需要确认的,如果发生PD,结合实际情况,可能会暂停既定的疗效观察,为受试者采用新的疗法。
在一些免疫疗法中,肿瘤可能会出现假性进展,直接按照RECIST 1.1标准判定为PD可能会错失后续比较好的疗效。这时会采用iRECIST标准,在满足一定条件下,会对PD进行跟踪确认。这篇文章的内容是基于RECIST 1.1的,iRECIST 标准后续再做介绍。
1.4 如何确认?
1.4.1 CR与PR的确认
CR与PR的确认,需要后续时间点疗效满足一定的标准,具体是需要达到一定的疗效与时间要求。(RECIST 1.1,4.4.2节)
疗效要求,后续时间点需要达到一定疗效水平,即:CR只能被后续的CR确认;PR可以被后续的CR、PR确认。时间要求,前后两个时间点的间隔通常要4周及以上。
1.4.2 SD的确认
SD的确认,虽然RECIST 1.1中描述的并不明确,但它也需要满足疗效与时间的要求。
疗效要求,疗效必须是SD及以上,即SD、PR、CR;时间要求,自研究开始后,时间点疗效必须满足一个最小时限,即必须经过一定时间之后,疗效才能被确认为SD。这个时间通常不少于6-8周,不过具体还是要看试验本身分析的要求。(RECIST 1.1,4.6.1节)
1.4.3 “PD的确认”
RECIST 1.1 并不要求对PD进行确认,可以这样理解,PD本身即可确认PD。如果试验要求PD需要确认,处理与CR、PR确认类似,这篇文章不再进行单独说明。
1.4.4 无法确认,则为NE
如果一个疗效不能被确认为CR、PR、SD、PD,那么其对应的BOR为NE。
1.4.5 确认结果的选择
CR和PR需要随后时点疗效进行确认,SD通过自身情况就可以进行确认,这就可能出现有两个确认疗效的情况。BOR的确认是寻找最优疗效的过程,如果时间点疗效同时可以确认为PR和SD,那么BOR会选择较优的那一个疗效——PR。
1.5 BOR确认的分类
在RECIST 1.1中,BOR的确认分为两类:
- 第一类:相邻时点疗效的确认;
- 第二类:非相邻时点疗效的确认。
1.5.1 相邻时点疗效的确认
原文提供了一张表格,用于描述相邻时间点疗效的确认(RECIST 1.1,4.4.3节)。这张表格比较简略,也有一些不足。表格默认两个相邻时间点疗效间隔是4周以上,并且也没有涵盖所有可能情况。
RECIST 1.1原文中的表格只是粗略的参考,在实际项目中,SAP中一般会有比较全面的情况描述,实际编程需要参考项目的分析说明。
以上表格描述了相邻两个时点疗效的确认情况,过程中可能会有多个确认结果,BOR会选取较优的那一个确认疗效。
对一个受试者来说,只会有一个最佳总体疗效,两时点疗效的确认结果可以称之为临时BOR (BOR_temp),最后会综合所有时点的确认疗效,选取最优的那一个作为BOR。当前时点的BOR_temp,是结合当前时点与上一时点的确认疗效,选取较优的那一个结果。
对于基线后第一个时点疗效,因其之前无相邻疗效,所以只能从自身确认BOR_temp,参考前面表格T2为"No further evaluations"的情况。换句话说,对于第一个时点疗效,BOR_temp只能为SD、PD与NE,因为之前没有CR、PR供第一时点进行确认。
接下来,我会详细解说一遍RECIST原文表格中的所有确认情况,希望能够帮助读者更进一步理解相邻疗效BOR的确认。
第1种情况,T1时点疗效为CR,在满足4周后的间隔条件下,T2时点的CR可以确认T1时点的CR,在这种情况下,T2时点的BOR为CR。
第2种情况,T1时点为CR,4周后的T2时点为PR,这种情况可能是Data Issue,需要重新检查数据(受限于篇幅,具体缘由参考文末附录)。这一点脚注a描述得很详细:
- 如果在第一个时间点确实达到了CR,那么在随后的时间点出现的任何病变,甚至是与基线相关的符合PR标准的病变,都将使该病变在那个时间点出现PD(由于病变已经在CR后再次出现)。
- 最佳疗效取决于是否满足SD的最小时限。
- 然而,当随后的扫描显示小病变可能仍然存在,并且实际上患者在第一个时间点是PR,而不是CR时,有时可能会声称“CR”。在这种情况下,应将原始CR更改为PR,最佳疗效是PR。
具体解释:
- T1时点实际上可能是PR,由于4周后的T2时点为PR,T2时点的PR可以确认T1时点的PR,BOR为PR。
- T2时点实际上可能是PD,PD本身可以确认为PD;T1时点为CR,如果T1时点满足SD的最小时限,CR可以确认为SD;CR又不能被随后的PD确认,BOR为SD(SD>PD)。
- T2时点实际上可能是PD,PD本身可以确认为PD;T1时点为CR,如果T1时点不满足SD的最小时限,CR只能确认为NE;CR又不能被随后的PD确认,BOR为PD(PD>NE)。
第3种情况,T1时点为CR,4周后的T2时点为SD。这种情况与第2种情况类似,可能是Data Issue,需要重新检查数据(受限于篇幅,具体缘由参考文末附录),原文描述不太严谨。
具体解释:
- T1时点实际上可能是PR,T2时点为SD。如果T1或T2时点满足SD的最小时限,BOR为SD。
- T1时点实际上可能是PR,T2时点为SD。如果T1或T2时点都满足SD的最小时限,BOR为NE。
- T2时点实际上可能是PD,PD本身可以确认为PD;T1时点为CR,如果T1时点不满足SD的最小时限,CR只能确认为NE;CR又不能被随后的PD确认,BOR为PD(PD>NE)。
第4种情况,T1时点为CR,4周后的T2时点为PD,PD本身可以确认为PD。如果T1时点不满足SD的最小时限,CR只能确认为NE,则BOR为PD (PD>NE);如果T1时点满足SD的最小时限,CR能确认为SD,则BOR为SD (SD>PD)。
第5种情况,T1时点为CR,4周后的T2时点为NE。如果T1时点不满足SD的最小时限,CR只能确认为NE,则BOR为NE;如果T1时点满足SD的最小时限,CR能确认为SD,则BOR为SD (SD>NE)
第6种情况,T1时点为PR,4周后的T2时点为CR,CR可以确认为PR。如果T1或T2时点满足SD的最小时限,则可以确认为SD,最后BOR为PR (PR>SD);如果T1或T2时点不满足SD的最小时限,则可以确认为NE,最后BOR为PR (PR>NE)。
第7种情况,T1时点为PR,4周后的T2时点为PR。同第6种情况
第8种情况,T1时点为PR,4周后的T2时点为SD。原文描述不严谨。如果T1或T2时点满足SD的最小时限,BOR为SD;如果T1或T2时点不满足SD的最小时限,BOR为NE。
第9种情况,T1时点为PR,4周后的T2时点为PD。参考第1种情况的第2个解释。
第10种情况,T1时点为PR,4周后的T2时点为NE。如果T1时点满足SD的最小时限,则可以确认为SD,最后BOR为SD (SD>NE);如果T1时点不满足SD的最小时限,则可以确认为NE,最后BOR为NE。
第11种情况,T1时点为NE,4周后的T2时点为NE,显然BOR为NE。
1.5.2 非相邻时点疗效的确认
关于非相邻时点疗效确认的描述,原文提及并不多,4.4.4节有这样的描述:
在需要确认缓解的试验中,重复的“NE”时间点评估可能会使最佳疗效的确认复杂化。试验分析计划必须解决,在确定缓解和进展时,如何处理缺失的数据/评估。例如,在大多数试验中,将具有时间点疗效PR-NE-PR的患者视为确认缓解是合理的。
一般情况下,中间夹杂的、不限数目的NE不影响CR和PR的确认。例如,以下情况,CR和PR都将得到确认:
- CR-NE-CR
- CR-NE-NE-CR
- PR-NE-PR/CR
- PR-NE-NE-PR/CR
原文附录三常见问题中,提到了PR-SD-PR确认的情况:
- Q:患者靶病灶直径总和在周期2减少 32% (PR),在周期4减少 28% (SD),在周期6减少 33% (PR)。PR的确认是否必须发生在接下来的时点,或者这种情况是否是PR确认?
- A: 肿瘤缩小徘徊在30%左右的情况并不少见。在这种情况下,从整个案例来看,大多数人会认为,PR 已经得到确认。如果在两个PR疗效之间有两到三个非PR的观察结果,最保守的方法就是考虑这种情况为SD。
虽然原文谈到PR-SD-PR这种情况可以确认PR,但最终还是以项目中明确的说明规定为准。
关于非相邻时点疗效的确认,还有一种类型:
- PR-PR-PR/CR
- CR-CR-CR
当连续两个PR,但第2个PR距第1个PR的间隔没有超过28天,这种情况下不能确认PR。但是如果第3个疗效为PR或CR,这时候一些项目会规定第一个PR会得到第3个PR的确认。
CR的逻辑同理,具体情况以项目要求为准。
2. 肿瘤BOR确认的练习
我自己Dummy了十几个例子,可供读者进行BOR确认的练习。
练习分为两块,第一个是只考虑相邻疗效时点情况下BOR的确认(ADRS_1),第二个是同时考虑相邻时点以及非相邻时点疗效的确认(ADRS_2)。练习的答案在ADRS_1_AN与ADRS_2_AN页中,如果对答案存疑可参考BOR_PER_RECIST_1.1的内容。
在能够非常熟练地人工判定BOR后,读者可以自行将RawData RS导入SAS中,利用程序实现BOR的确认,并比较程序输出结果与人工判定结果是否一致。
接下来,演示一下如何进行练习。
2.1 相邻时点疗效的确认
ADRS_1页的左上角有相关确认要求,其中最重要的两点是,1)SD的最小时限为35;2)CR与PR确认时,后续时点的时间间隔必须≥28天。
这里需要说明,关于与C1D1的间隔,练习使用的是ADY,也就是T1-RFSDTC+1
的取值。不同项目要求可能不同,有的使用T1-RFSTDTC
,有的使用基线最晚的TR检测值作为被减数,具体要看项目要求。两相邻时点确认的最小时间间隔,也要看具体项目要求。
受试者001
基线后T1时点为PR,ADY=38超过SD最小时限,可以确认BOR_temp为SD。由于T1时点无相邻时点疗效,BOR_temp为SD。
T2时点为PR,ADY=85超过SD最小时限,可以确认BOR_temp为SD;T2-T1=47≥28, T2时点的PR可以确认T1时点的PR,BOR_temp为PR;最后BOR_temp取较优的疗效——PR。
T3时点为SD,ADY=123超过SD最小时限,可以确认BOR_temp为SD;T2时点为PR,ADY=85超过SD最小时限,可以确认BOR_temp为SD;T3时点SD不能确认T2时点PR,最后BOR_temp为SD。
T4时点为PD,直接确认BOR_temp为PD;T3时点为SD,ADY=123超过SD最小时限,可以确认BOR_temp为SD;最终,BOR_temp为SD。
在获取到每个时点的BOR_temp值后,最优的那一个疗效就是受试者的BOR,即PR。对于受试者来讲,只会有一条最佳总体疗效记录。但是,不同公司对BOR的处理可能不同。我公司当前做法是会为每个时点做一条BOR记录,即截至当前时点的最佳总体疗效。
以受试者001为例,截止到T1时点,BOR为SD;截止到T2时点,BOR为PR;截止到T3时点,BOR为PR;截止到T4时点,BOR为PR。
受试者012
基线后T1时点为CR,ADY=30没有超过SD最小时限,无法确认BOR_temp为SD,BOR_temp为NE。由于T1时点无相邻时点疗效,BOR_temp为NE。
基线后T2时点为CR,ADY=56超过SD最小时限,可以确认BOR_temp为SD;由于T2-T1=26<28,T2时点的CR不能确认T1时点的CR;最后,BOR_temp为SD。
基线后T3时点为CR,ADY=83超过SD最小时限,可以确认BOR_temp为SD;由于T3-T2=27<28,T3时点的CR不能确认T2时点的CR;最后,BOR_temp为SD。
基线后T4时点为CR,ADY=110超过SD最小时限,可以确认BOR_temp为SD;由于T4-T3=27<28,T4时点的CR不能确认T3时点的CR;最后,BOR_temp为SD。
最后,各时点BOR如下:
2.2 相邻时点以及非相邻时点疗效的确认
在考虑非相邻时点疗效确认的情况下,BOR的确认就会复杂一些。非相邻时点疗效的规则,在顶部右侧有说明。练习中,两PR疗效间出现不限量NE与SD,认为第一个PR得到确认。在3个连续CR的情况下,如果T2-T1<28,但T3-T1≥28,规定第3个CR可以确认第一个CR。PR情况,同理。
练习2中的BOR_temp1列代表相邻时点疗效确认的情况,BOR_temp2列代表非相邻疗效确认为CR的情况,BOR_temp3列代表非相邻疗效确认为PR的情况。BOR_temp列会取前3列中最优的疗效。
受试者006
T4时点与T2时点相距39+31=70>28,所有T4时点PR可以确认T2时点PR,这时T4时点的BOR_temp3为PR、BOR_temp为PR。
具体结果如下:
受试者007
T4时点与T1时点相距165-38=127>28,所有T4时点CR可以确认T1时点CR,这时T4时点的BOR_temp2为CR、BOR_temp为CR。
具体结果如下:
3. SAS程序实现
这里提供一下我SAS处理BOR确认的程序,程序基于相邻时点疗效与非相邻时点疗效的确认分为两部分。非相邻时点疗效的确认,包含CR与PR的确认。
相邻时点疗效的确认,需要遍历项目中所有可能的情况组合,如1.5.1节图2。非相邻时点疗效的确认,主要考虑首次CR或PR的时点如何Retain以及时间连续性的判断。
程序输出结果可以与人工判定结果相互验证。
程序细节不再介绍,若有疑问,欢迎留言讨论:
***1. Get Data from RS;
proc import datafile = "E:\999_test\Examples_BOR_Confirmation v1.1.xlsx"
out = rs dbms = xlsx replace;
sheet = "RS";
getnames = yes;
run;
***2. Derive BOR_temp;
**2.1 Create format for response;
proc format;
value resp
1 = "CR"
2 = "PR"
3 = "SD"
4 = "PD"
5 = "NE"
. = " "
;
invalue respn
"CR" = 1
"PR" = 2
"SD" = 3
"PD" = 4
"NE" = 5
;
run;
**2.2 Variables for analysis;
data adrs1;
set rs;
length paramcd $8;
paramcd = rstestcd;
visitnum = time_point;
ady = rsdy;
avalc = rsstresc;
aval = input (avalc, respn.);
proc sort;
by usubjid ady;
run;
**2.3 Neighboring & Non-neighboring response confirmation;
data adrs;
set adrs1;
by usubjid;
*Pre RESP;
avalc_lag = lag(avalc);
aval_lag = lag(aval);
ady_lag = lag(ady);
retain ady_cr ord_cr ady_pr ord_pr born;
*For first record;
if first.usubjid then do;
*No lag record for first record;
call missing(avalc_lag, aval_lag, ady_lag);
*First bor_temp;
if avalc in ("CR" "PR" "SD") then do;
if ady>=35 then born_temp1=3;
else born_temp1 = 5;
end;
else if avalc = "PD" then born_temp1 = 4;
else if avalc = "NE" then born_temp1= 5;
*Get bor for first record;
born = born_temp1;
*First CR ady and ord for comfirmation continuity ;
if aval = 1 then do;
ady_cr = ady;
ord_cr = 1;
end;
else do;
ady_cr = .;
ord_cr = .;
end;
*First PR ady and ord for comfirmation continuity ;
if aval = 2 then do;
ady_pr = ady;
ord_pr = 1;
end;
else do;
ady_pr = .;
ord_pr = .;
end;
end;
*For non-first records;
else do;
*For Non-neighboring CR confirmation (ignore NE, CR);
if avalc not in ("NE" "CR") then do;
ady_cr = .;
ord_cr = .;
end;
else if ady_cr ne . then ord_cr = ord_cr + 1;
if avalc = "CR" and ady_cr = . then do;
ady_cr = ady;
ord_cr = 1;
end;
if avalc = "CR" and ady_cr ne . then do;
if ady -ady_cr >=28 and ord_cr >2 then born_temp2 = 1; /*ord_cr >2 --> Non-neighboring*/
end;
*For Non-neighboring PR confirmation (ignore NE, SD, PR, CR);
if avalc not in ("SD" "NE" "PR" "CR") then do;
ady_pr = .;
ord_pr = .;
end;
else if ady_pr ne . then ord_pr = ord_pr + 1;
if avalc = "PR" and ady_pr = . then do;
ady_pr = ady;
ord_pr = 1;
end;
if avalc in ("CR" "PR") and ady_pr ne . then do;
if ady - ady_pr >=28 and ord_pr >2 then born_temp3 = 2; /*ord_pr >2 --> Non-neighboring*/
end;
*avalc_lag="CR";
if avalc_lag="CR" and ady_lag>=35 then do;
if avalc="CR" then do;
if ady-ady_lag>=28 then born_temp1 = 1;
else born_temp1 = 3;
end;
else if avalc in ("PR" "SD") then do;
born_temp1 = 0;
put "War" "ning: need to query data";
end;
else if avalc in ("PD" "NE" "") then born_temp1 = 3;
end;
else if avalc_lag="CR" and ady_lag<35 then do;
if avalc="CR" then do;
if ady-ady_lag>=28 then born_temp1=1;
else if ady-ady_lag<28 and ady>=35 then born_temp1=3;
else if ady-ady_lag<28 and ady<35 then born_temp1=5;
end;
else if avalc in ("PR" "SD") then do;
born_temp1 = 0;
put "War" "ning: need to query data";
end;
else if avalc = "PD" then born_temp1=4;
else if avalc in ("NE" "") then born_temp1=5;
end;
*avalc_lag="PR";
if avalc_lag="PR" and ady_lag>=35 then do;
if avalc in ("CR" "PR") then do;
if ady-ady_lag>=28 then born_temp1 = 2;
else born_temp1 = 3;
end;
else if avalc in ("SD" "PD" "NE" "") then born_temp1 = 3;
end;
if avalc_lag="PR" and ady_lag<35 then do;
if avalc in ("CR" "PR") then do;
if ady-ady_lag>=28 then born_temp1=2;
else if ady-ady_lag<28 and ady>=35 then born_temp1=3;
else if ady-ady_lag<28 and ady<35 then born_temp1=5;
end;
else if avalc="SD" then do;
if ady>=35 then born_temp1=3;
else born_temp1 = 5;
end;
else if avalc = "PD" then born_temp1=4;
else if avalc in ("NE" "") then born_temp1=5;
end;
*avalc_lag="SD";
if avalc_lag="SD" and ady_lag>=35 then born_temp1=3;
if avalc_lag="SD" and ady_lag<35 then do;
if avalc in ("CR" "PR" "SD") then do;
if ady>=35 then born_temp1 = 3;
else born_temp1 = 5;
end;
else if avalc = "PD" then born_temp1=4;
else if avalc in ("NE" "") then born_temp1=5;
end;
*avalc_lag="PD";
if avalc_lag="PD" then born_temp1 = 4;
*avalc_lag="NE";
if avalc_lag = "NE" then do;
if avalc in ("CR" "PR" "SD") then do;
if ady>=35 then born_temp1 = 3;
else born_temp1 = 5;
end;
else if avalc = "PD" then born_temp1=4;
else if avalc in ("NE" "") then born_temp1=5;
end;
end;
*born for or non-first records;
if born > min(born_temp1, born_temp2, born_temp3) then born = min(born_temp1, born_temp2, born_temp3);
bor_temp1 = put(born_temp1, resp.);
bor_temp2 = put(born_temp2, resp.);
bor_temp3 = put(born_temp3, resp.);
bor = put(born, resp.);
keep usubjid paramcd visitnum born_temp1 bor_temp1 born_temp2 bor_temp2 born_temp3 bor_temp3 born bor aval avalc ady ord_cr ord_pr;
run;
附录
关于T1时间点疗效为CR,T2时间点疗效为PR或SD时,Data Issue情况说明。RECIST 1.1原文中,对于T1时点为CR、T2时点为PR的情况,有脚注进行说明。不止CR-PR情况需要说明,CR-SD情况也是需要解释说明,这里我结合时间点疗效的判定详细解释一下Data Issue的缘由。
脚注a:
- 如果在第一个时间点确实达到了CR,那么在随后的时间点出现的任何病变,甚至是与基线相关的符合PR标准的病变,都将使该病变在那个时间点出现PD(由于病变已经在CR后再次出现)。
- 最佳疗效取决于是否满足SD的最小时限。
- 然而,当随后的扫描显示小病变可能仍然存在,并且实际上患者在第一个时间点是PR,而不是CR时,有时可能会声称“CR”。在这种情况下,应将原始CR更改为PR,最佳疗效是PR。
脚注a的理解需要结合RECIST原文中时间点疗效的判定:
CR-PR情况
如果T1时间点疗效为CR,那么只能是靶病灶评估为CR、非靶病灶评估为CR、没有新病灶的出现,即病灶全部消失。而T2时间点为PR,对应3种可能的情况。
- 第一种情况,靶病灶评估为CR,非靶病灶评估为Non-CR/non-PD,无新病灶出现。但是,T1时点非靶病灶评估为CR,说明非靶病灶全部消失;T2时点非靶病灶评估为Non-CR/non-PD,即非靶病灶没有全部消失。于是,T2与T1相比,出现了新病灶。评估出现矛盾。
- 第二种情况,靶病灶评估为CR,非靶病灶评估为Not evaluated,无新病灶出现。这种情况可能出现。
- 第三种情况,靶病灶评估为PR,非靶病灶评估为Non-PD or not all evaluated,无新病灶出现。同第一种情况,T1时点靶病灶评估为CR,说明靶病灶全部消失;T2时点靶病灶评估为PR,说明靶病灶没有全部消失。于是,T2与T1相比,出现了新病灶。评估出现矛盾。
CR-SD情况
如果T1时间点疗效为CR,那么只能是靶病灶评估为CR、非靶病灶评估为CR、没有新病灶的出现,即病灶全部消失。而T2时间点为SD,对应1种可能的情况。
- 靶病灶评估为SD,非靶病灶为Non-PD or not all evaluated,无新病灶出现。T1时点被病灶评估为CR,T2时点靶病灶评估为SD,T2与T1相比,出现了新病灶。评估出现矛盾。
这就是通常CR-PR/SD出现后,需要Query Data的原因。
感谢阅读, 欢迎关注:SAS茶谈!
若有疑问,欢迎评论交流!
梳理不易,转载请注明出处 (by Jihai / SAS茶谈)