临床试验-肿瘤:从RECIST 1.1出发梳理肿瘤BOR的确认

在疾病缓解 (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节

  1. Confirmation of complete or partial response IS NOT required
  2. 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_ANADRS_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茶谈)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容