RECIST v1.1 Timepoint

Calculation of RECIST v1.1 Timepoint

RecistTimePoint DataClass

Definition


source

RecistTimePoint

 RecistTimePoint (target:recist_calc.target.RecistTarget=<factory>,
                  nontarget:recist_calc.nontarget.RecistNonTarget=<factory
                  >, is_new_lesion:bool=None)

This class represents the RECIST (Response Evaluation Criteria in Solid Tumors) evaluation for a specific time point, combining the assessments of target and non-target lesions.

Example

Progressive Disease (PD) - Due to New Lesion

Scenario: A new lesion has appeared, which indicates Progressive Disease (PD).

target = RecistTarget(current_mm=25, baseline_mm=20, is_new_lesion=True)
nontarget = RecistNonTarget(unequivocal_progress=False)
timepoint = RecistTimePoint(target=target, nontarget=nontarget)

print(timepoint.category)
{'final': 'PD', 'target': 'PD', 'nontarget': 'Non-CR/Non-PD'}

Progressive Disease (PD) - Due to Increase from Nadir

Scenario: The target lesion has increased in size by more than 20% from the nadir with an absolute increase of at least 5 mm, indicating PD.

target = RecistTarget(current_mm=40, baseline_mm=30, nadir_mm=30)
nontarget = RecistNonTarget(unequivocal_progress=False)
timepoint = RecistTimePoint(target=target, nontarget=nontarget)
print(timepoint.category)
{'final': 'PD', 'target': 'PD', 'nontarget': 'Non-CR/Non-PD'}

Complete Response (CR)

Scenario: Both target and non-target lesions have disappeared, indicating Complete Response (CR).

target = RecistTarget(current_mm=0, baseline_mm=25, is_ln_pathological=False)
nontarget = RecistNonTarget(disappear_all=True, is_tumor_mk_normalized=True, is_ln_pathological=False)
timepoint = RecistTimePoint(target=target, nontarget=nontarget)
print(timepoint.category)
{'final': 'CR', 'target': 'CR', 'nontarget': 'CR'}

Partial Response (PR)

Scenario: The target lesion has decreased in size by at least 30% from baseline, and the non-target lesion is stable, indicating Partial Response (PR).

target = RecistTarget(current_mm=15, baseline_mm=30)
nontarget = RecistNonTarget(unequivocal_progress=False)
timepoint = RecistTimePoint(target=target, nontarget=nontarget)
print(timepoint.category)
{'final': 'PR', 'target': 'PR', 'nontarget': 'Non-CR/Non-PD'}

Stable Disease (SD)

Scenario: The target lesion shows a minor decrease in size (less than 30% from baseline), and the non-target lesion is stable, indicating Stable Disease (SD).

target = RecistTarget(current_mm=28, baseline_mm=30)
nontarget = RecistNonTarget(unequivocal_progress=False)
timepoint = RecistTimePoint(target=target, nontarget=nontarget)
print(timepoint.category)
{'final': 'SD', 'target': 'SD', 'nontarget': 'Non-CR/Non-PD'}

Not Evaluable (NE)

Scenario: Insufficient data is available to evaluate the target lesion, so the time point is categorized as Not Evaluable (NE).

target = RecistTarget(current_mm=None, baseline_mm=30)
nontarget = RecistNonTarget(unequivocal_progress=None)
timepoint = RecistTimePoint(target=target, nontarget=nontarget)
print(timepoint.category)
{'final': 'NE', 'target': 'NE', 'nontarget': 'NE'}