A Practical Guide to the Science, Data Standards, and ADaM Implementation
Deep Dive Series — CDISC Open Source Ecosystem clinstandards.org | Published: March 2026
Abstract
RECIST 1.1 (Response Evaluation Criteria in Solid Tumors) is the cornerstone of tumor response assessment in oncology clinical trials, yet its translation into ADaM programming is poorly documented. This article bridges that gap — covering the clinical science of lesion classification and response rules, the SDTM data foundation (TU, TR, RS), and the complete ADaM dataset architecture: ADRS, ADEFFSUM, ADINTEV, and ADTTE. We derive ORR, PFS, and DOR from first principles, examine censoring mechanics with scenario tables, and address investigator vs. central read concordance analysis. ADaM spec authoring guidance is woven throughout. Authoritative citations are drawn exclusively from CDISC and ICH primary sources.
References
In oncology trials, the primary efficacy endpoints — Objective Response Rate (ORR), Progression-Free Survival (PFS), Duration of Response (DOR) — all derive from a single underlying process: structured tumor measurement. RECIST 1.1 defines precisely how tumors are measured, how those measurements roll up into per-visit responses, and how those responses roll up into analysis-ready endpoints. Every rule in the criteria has a direct programming implication.
Statistical programmers who treat RECIST as a black box handed down from clinical operations will inevitably produce incorrect derivations. The criteria contain subtle logic — a 5 mm absolute increase threshold on top of the 20% relative threshold for progressive disease; the role of equivocal wording in non-target assessments; the nuanced interaction between non-evaluable (NE) and the confirmed response window. None of this is captured in a brief SAP note. This article is the reference programmers should have had.
NOTE: RECIST 1.1 was published by Eisenhauer et al. (2009) in the European Journal of Cancer and is the current regulatory standard. Earlier versions (RECIST 1.0, WHO criteria) are occasionally seen in legacy data. The principles in this article apply to RECIST 1.1 unless otherwise stated.
At baseline, a radiologist (investigator or central reader) reviews imaging and classifies each identifiable lesion. The classification drives every downstream derivation. Getting lesion classification right in SDTM TU is the single most important data quality step in oncology programming.
Target lesions are the measurable lesions selected to be tracked over time. The selection rules are strict:
The sum of diameters (SoD) at baseline becomes the reference for all subsequent target lesion assessments. The SoD includes longest diameters of non-nodal lesions and short axis diameters of lymph nodes.
WARNING: The SoD mixes two measurement dimensions — longest diameter (LD) for non-nodal lesions and short axis (SA) for lymph nodes. Your SDTM TR domain must capture LDDIAM (LD) for non-nodal and SAXIS (SA) for nodal target lesions. A common error is capturing only one measurement type for all target lesions.
| Parameter Non-Nodal Lesion Lymph Node Lesion | ||
| Measurement used | Longest diameter (LD) | Short axis (SA) |
| Minimum at baseline | ≥10 mm LD | ≥15 mm SA |
| Maximum per organ | 2 lesions | 2 lesions |
| Maximum total | 5 lesions total | 5 lesions total |
| CR definition | LD <10 mm (or disappeared) | SA <10 mm (normalized) |
| SDTM TUORRES / TULOC | PRESENT | PRESENT |
| SDTM TRORRES measure | LDDIAM | SAXIS |
Table 2.1. Target lesion selection and measurement standards per RECIST 1.1.
Non-target lesions are all other tumor lesions (and disease sites) present at baseline that do not qualify as, or were not selected as, target lesions. They are not measured quantitatively but are assessed qualitatively at each evaluation:
NOTE: The phrase "unequivocal progression" is a clinical judgment call — it is intentionally not defined numerically. Programmers should not attempt to derive non-target PD algorithmically from a size increase. NTL PD requires a documented clinical determination (typically TRORRES = "UNEQUIVOCAL PROGRESSION" in SDTM TR).
New lesions represent the appearance of any new site of disease not present at baseline. Under RECIST 1.1, the presence of a new lesion always results in Progressive Disease (PD) for the overall response — regardless of target and non-target lesion behavior. There is no size threshold; a definitively new lesion of any size constitutes PD.
Key programming points for new lesions:
Three SDTM domains form the backbone of RECIST data:
| Domain Purpose Key Variables RECIST Link | |||
| TU | Tumor identification — one record per lesion per timepoint | USUBJID, TUSEQ, TULOC, TUORRES, TUSTRESC, VISITNUM, EPOCH, TUREFID, TUEVAL | Defines which lesions are target vs non-target; assigns TUORRES=TARGET or NON-TARGET |
| TR | Tumor results — quantitative measurements per lesion per timepoint | USUBJID, TRSEQ, TRLINKID, TRTESTCD (LDDIAM/SAXIS), TRORRES, TRSTRESC, TRSTRESN, VISITNUM, TREVAL | Feeds SoD calculation; non-target qualitative assessments; new lesion sizing |
| RS | Disease response — overall response per timepoint | USUBJID, RSSEQ, RSORRES, RSSTRESC, VISITNUM, RSEVAL, RSEVALID, RSSCAT | Stores derived response (CR/PR/SD/PD/NE) for each evaluator at each timepoint |
Table 2.2. SDTM domains supporting RECIST data collection and response derivation.
The variable TRLINKID in the TR domain links a measurement back to the lesion record in TU via TUSEQ (cast as character). This linkage is essential in ADaM for identifying which measurements belong to which lesion category (target vs non-target) and for computing the SoD correctly. Missing or incorrect TRLINKID values are the most common SDTM data quality issue in oncology studies.
/* SDTM TR — Example linking logic */
/* TR.TRLINKID = TU.TUSEQ (character) for the baseline lesion identification */
/* Example data: Subject 001-001, Lesion 1 (Target, Right Lung) */
TU: TUSEQ=1, USUBJID=001-001, TULOC=RIGHT LUNG, TUORRES=TARGET, VISITNUM=1
/* TR measurement at baseline */
TR: TRSEQ=1, USUBJID=001-001, TRLINKID=1, TRTESTCD=LDDIAM, TRSTRESN=25, VISITNUM=1
/* TR measurement at Week 8 */
TR: TRSEQ=5, USUBJID=001-001, TRLINKID=1, TRTESTCD=LDDIAM, TRSTRESN=18, VISITNUM=3
Figure 2.1. SDTM TU–TR linkage via TRLINKID. The linkage persists across all timepoints using the baseline TUSEQ value.
At each evaluation, the Sum of Diameters (SoD) is computed across all identified target lesions. The baseline SoD is the reference denominator for percentage change calculations. The nadir SoD (lowest post-baseline SoD, including any zero value for complete disappearance) is the reference for PD determination.
Key SoD rules:
| Response Abbreviation Criterion SoD Condition Notes | ||||
| Complete Response | CR | Disappearance of all target lesions; short axis of all pathological LN <10 mm | SoD = 0 (non-nodal: all absent; nodal: SA <10 mm) | Every target lesion must qualify; a single measurable residual lesion prevents CR |
| Partial Response | PR | ≥30% decrease in SoD vs. baseline SoD | SoD ≤ (0.70 × Baseline SoD) | Baseline SoD is the denominator, not nadir. Must not qualify as CR. Must not meet PD criteria. |
| Progressive Disease | PD | ≥20% increase in SoD vs. nadir AND ≥5 mm absolute increase | SoD ≥ (1.20 × Nadir SoD) AND SoD ≥ (Nadir SoD + 5 mm) | The 5 mm absolute increase prevents noise-driven PD calls on very small nadir values. Nadir = minimum SoD including baseline. |
| Stable Disease | SD | Neither PR nor PD criteria met | SoD between PR and PD thresholds | Must be maintained for a minimum interval (typically 6–8 weeks) from start of treatment — specified in the protocol. |
| Not Evaluable | NE | Any target lesion measurement missing, indeterminate, or not done at a visit | N/A | NE is not a "response" — it indicates the overall visit response cannot be determined. Different from SD. |
Table 3.1. Target lesion response criteria per RECIST 1.1. CR, PR, PD, SD, and NE are mutually exclusive at each evaluation timepoint.
| Visit L1 (LD mm) L2 (LD mm) L3 (SA mm) SoD (mm) % Change vs BL % Change vs Nadir TL Response | |||||||
| Baseline (V1) | 28 | 20 | 22 | 70 | Ref (BL) | — | — |
| Week 8 (V2) | 22 | 16 | 18 | 56 | -20.0% | -20.0% | SD |
| Week 16 (V3) | 14 | 10 | 12 | 36 | -48.6% | -35.7% | PR |
| Week 24 (V4) | 8 | 7 | 0 | 15 | -78.6% | Nadir (0.0%) | PR |
| Week 32 (V5) | 12 | 9 | 0 | 21 | -70.0% | +40.0% (+6mm) | PD |
Table 3.2. Worked SoD derivation. L3 is a lymph node (short axis). PD at V5: 40% increase from nadir (21 vs 15 mm) AND 6 mm absolute increase — both thresholds met.
NOTE: The nadir at V4 = 15 mm. PD at V5 requires SoD ≥ 1.20 × 15 = 18 mm AND SoD ≥ 15 + 5 = 20 mm. V5 SoD = 21 mm. Both conditions are satisfied → PD.
| ADaM Variable Label Derivation Source Example Value | |||
| AVAL | Analysis Value (SoD mm) | Sum of TRSTRESN across target lesions for TRTESTCD in (LDDIAM, SAXIS) | 56.0 |
| BASE | Baseline SoD (mm) | AVAL where ABLFL='Y' | 70.0 |
| CHG | Change from Baseline (mm) | AVAL - BASE | -14.0 |
| PCHG | Percent Change from Baseline | 100 × (AVAL - BASE) / BASE | -20.0 |
| NXVISIT | Nadir SoD at or before current visit | MIN(AVAL) from baseline through current visit | 56.0 |
| CHGNAD | Change from Nadir (mm) | AVAL - NXVISIT (prior nadir) | 0.0 |
| PCHGNAD | Percent Change from Nadir | 100 × (AVAL - NXVISIT) / NXVISIT | 0.0 |
| AVALC | Target Lesion Response | Derived per RECIST 1.1 rules (Table 3.1) | SD |
| ABLFL | Analysis Baseline Flag | 'Y' if VISITNUM = baseline VISITNUM | Y |
| ANL01FL | Analysis Flag (Primary) | Protocol-defined evaluability flag | Y |
Table 3.3. Key ADaM variables in the target lesion SoD record (ADRS paramcd = 'TLSOD' or protocol-specific name).
Non-target lesion response is a qualitative assessment made by the radiologist at each evaluation. There are three possible states:
| NTL Response Criterion SDTM TRORRES Programming Note | |||
| CR | Complete disappearance of all non-target lesions AND normalization of tumor markers (if applicable) | ABSENT or COMPLETE RESPONSE | All non-target lesions must be absent. If tumor markers were elevated at baseline, they must now be in normal range. |
| Non-CR/Non-PD | Persistence of one or more non-target lesions (even if reduced in size) OR tumor marker still above normal | PRESENT or NON-CR/NON-PD | This is the "present but not PD" category. It is the most common NTL response in practice. |
| PD | Unequivocal progression of existing non-target lesions | UNEQUIVOCAL PROGRESSION | Clinical determination — cannot be derived from size alone. If NTL response = PD, overall visit response = PD regardless of TL response. |
| NE | Non-target lesion assessment not done or indeterminate | NOT DONE or INDETERMINATE | Propagates to overall response NE unless target lesion response is already PD (PD takes precedence). |
Table 4.1. Non-target lesion response classification per RECIST 1.1.
In SDTM TR, non-target lesion assessments are stored qualitatively. TRTESTCD is typically NTRGE (Non-Target Response, Global Evaluation). For programming, a consolidated non-target response per visit is the essential input to the overall response derivation.
/* SDTM TR — Non-target assessment per visit */
/* One TRTESTCD=NTRGE record summarizes all NTLs at the visit */
USUBJID TRSEQ TRLINKID VISITNUM TRTESTCD TRORRES
001-001 10 2 3 NTRGE NON-CR/NON-PD
001-001 15 2 5 NTRGE NON-CR/NON-PD
001-001 20 2 7 NTRGE ABSENT
/* Note: TRLINKID links to TU.TUSEQ for the non-target identification record */
/* For multiple NTLs, the global evaluation (NTRGE) consolidates them */
Figure 4.1. SDTM TR structure for non-target lesion global evaluation records.
The overall response at each visit is the logical combination of three inputs: Target Lesion (TL) response, Non-Target Lesion (NTL) response, and New Lesion (NL) presence.
| TL Response NTL Response New Lesion? Overall Response Rationale | ||||
| CR | CR | No | CR | Complete resolution of all disease, no new sites |
| CR | Non-CR/Non-PD | No | PR | TL gone but NTL residual — cannot call CR |
| CR | NE | No | PR | NTL unevaluable but TL gone — conservative call is PR |
| PR | Non-CR/Non-PD or CR or NE | No | PR | TL ≥30% decrease dominates (assumes NTL not PD) |
| SD | Non-CR/Non-PD or CR or NE | No | SD | TL stable; NTL not progressed |
| NE | Non-CR/Non-PD or CR or NE | No | NE | TL unevaluable — cannot determine response |
| NE | NE | No | NE | Neither domain evaluable |
| Any | PD | No | PD | NTL unequivocal progression overrides TL |
| PD | Any | No | PD | TL progressive disease |
| Any | Any | Yes | PD | Any new lesion = PD, unconditionally |
| N/A (no TL) | CR | No | CR | When no target lesions designated, use NTL response |
| N/A (no TL) | Non-CR/Non-PD | No | Non-CR/Non-PD (= SD) | No target lesions; NTL response drives overall |
Table 5.1. RECIST 1.1 overall response combination matrix. This table is the central decision tree encoded in ADRS derivation logic.
When coding the matrix, establish a clear priority chain to avoid ambiguity from overlapping conditions. The recommended programming priority is:
/* ADRS Overall Response Per Visit — SAS derivation (simplified) */
/* Inputs: TLRESP (target lesion response), NTLRESP (NTL response), NLFL (new lesion flag) */
if NLFL = "Y" then AVALC = "PD";else if NTLRESP = "PD" then AVALC = "PD";else if TLRESP = "PD" then AVALC = "PD";else if TLRESP = "CR" and NTLRESP = "CR" then AVALC = "CR";else if TLRESP = "CR" and NTLRESP in ("NON-CR/NON-PD","NE","")
then AVALC = "PR";else if TLRESP = "PR" then AVALC = "PR";else if TLRESP = "SD" then AVALC = "SD";else if TLRESP = "NE" or missing(TLRESP) then AVALC = "NE";
/* Special case: no target lesions designated */
if n_target_lesions = 0 then do;
if NLFL = "Y" then AVALC = "PD";
else if NTLRESP = "PD" then AVALC = "PD";
else if NTLRESP = "CR" then AVALC = "CR";
else if NTLRESP = "NON-CR/NON-PD" then AVALC = "NON-CR/NON-PD";
else AVALC = "NE";end;
Figure 5.1. SAS pseudocode for overall per-visit response derivation. TLRESP and NTLRESP are intermediate ADINTEV-level variables (see Section 9).
For non-randomized (single-arm) trials, RECIST 1.1 requires confirmation of CR and PR responses. A confirmed response means a second assessment at least 4 weeks after the initial response assessment shows the same or better response category. For randomized controlled trials (RCTs), confirmation is protocol-specific and often not required by the primary analysis.
NOTE: The confirmation window (≥4 weeks) is measured from the date of the first response assessment showing CR or PR, not from the start of treatment. The SAP will specify the exact window and handling of intermediate NE assessments.
| Scenario Visit 1 Visit 2 (≥4 wk later) Visit 3 Confirmed Response? BOR | |||||
| Classic confirmed PR | PR | PR | — | Yes — PR confirmed at V2 | PR |
| CR confirmed | PR | CR | — | Yes — CR improves on PR; CR confirmed at V2 | CR |
| NE between responses | PR | NE | PR | Yes — if V3 is ≥4 wk from V1; NE does not break the window per most SAPs | PR |
| Response then PD | PR | PD | — | No — PD before confirmation | PR (unconfirmed) → check SAP |
| Single PR, no follow-up | PR | (no further assessment) | — | No — unconfirmed | Unconfirmed PR → protocol dependent |
| SD between PRs | PR | SD | PR | Depends on SAP — most accept if 2nd PR ≥4 wk from 1st | PR |
| SD → no CR/PR | SD | SD | SD | N/A (no confirmation needed for SD) | SD |
Table 6.1. Confirmation scenarios and effect on Best Overall Response.
BOR is the best (most favorable) confirmed response across all post-baseline assessment visits. The response hierarchy from best to worst is: CR > PR > SD > PD > NE. BOR is used in ORR, DCR (Disease Control Rate), and CBR (Clinical Benefit Rate) calculations.
BOR derivation rules:
WARNING: Common error: assigning BOR = PR to a subject whose first assessment is PR but who was never re-assessed (e.g., died or withdrew). This is an unconfirmed PR. BOR in this case is protocol/SAP dependent — many trials assign BOR = NE or "Unevaluable" for the ORR denominator. Always check the SAP evaluability criteria.
A complete RECIST ADaM implementation typically involves four datasets, each serving a distinct analytical purpose:
| Dataset Structure Primary Purpose CDISC Class | |||
| ADRS | One record per subject per parameter per visit | Per-visit and overall responses (TL, NTL, overall, BOR) | BDS — Basic Data Structure |
| ADEFFSUM | One record per subject per summary parameter | Response-based efficacy summaries (BOR, responder flag, confirmed response date) | BDS — Basic Data Structure |
| ADINTEV | One record per subject per intermediate evaluation per lesion/visit | Intermediate metadata: SoD, lesion-level measurements, evaluability flags — supports ADRS derivation | OCCDS or custom intermediate BDS |
| ADTTE | One record per subject per time-to-event parameter | PFS, DOR, TTFR (time to first response), OS when co-analyzed | TTE — Time-to-Event structure |
Table 7.1. ADaM dataset roles in RECIST implementation.
NOTE: Not all programs separate ADRS from ADEFFSUM. Some SAPs roll summary parameters (BOR, responder flags) into ADRS. The split shown here reflects best practice for clarity and auditability of complex derivations.
ADRS follows the BDS structure (one record per subject per parameter per analysis timepoint). Key PARAM/PARAMCD values:
| PARAMCD PARAM Label DTYPE Record Type AVALC Values | ||||
| TLSOD | Target Lesion Sum of Diameters (mm) | Blank | Per-visit continuous | Numeric (AVAL) |
| TLPCHG | Target Lesion % Change from Baseline | Blank | Per-visit continuous | Numeric (AVAL) |
| TLRESP | Target Lesion Response | Blank | Per-visit categorical | CR / PR / SD / PD / NE |
| NTLRESP | Non-Target Lesion Response | Blank | Per-visit categorical | CR / NON-CR/NON-PD / PD / NE |
| NLFL | New Lesion Flag | Blank | Per-visit binary | Y / N |
| OVRLRESP | Overall Response per Visit | Blank | Per-visit categorical | CR / PR / SD / PD / NE |
| COVRLRSP | Confirmed Overall Response per Visit | CNFM | Per-visit categorical (confirmed) | CR / PR / SD / PD / NE |
| BOR | Best Overall Response | BORON | Subject-level (DTYPE=BORON) | CR / PR / SD / PD / NE |
| CBOR | Confirmed Best Overall Response | CBORON | Subject-level confirmed | CR / PR / SD / PD / NE |
| RSPFL | Responder Flag (CR or PR, confirmed) | BORON | Subject-level binary | Y / N |
Table 8.1. Key ADRS PARAMCD/PARAM values and their record types. DTYPE distinguishes visit-level from summary-level records.
| Variable Type Derivation / Source Required | |||
| STUDYID | Char | DM.STUDYID | Yes |
| USUBJID | Char | DM.USUBJID | Yes |
| PARAMCD | Char | As per sponsor ADaM PARAMCD list | Yes |
| PARAM | Char | Full label for PARAMCD | Yes |
| AVAL | Num | Numeric analysis value (SoD, PCHG) — null for categorical-only params | Cond. |
| AVALC | Char | Character analysis value (CR/PR/SD/PD/NE) — mapped from RS.RSSTRESC or derived | Cond. |
| ADT | Num | Analysis date — from RS.RSDTC converted to SAS date | Yes |
| AVISIT | Char | Analysis visit label (e.g., "Week 8") | Yes |
| AVISITN | Num | Numeric analysis visit (VISITNUM or derived) | Yes |
| DTYPE | Char | Distinguishes record types: blank=scheduled, BORON=BOR, CNFM=confirmed, etc. | Cond. |
| ANL01FL | Char | Primary analysis flag per SAP evaluability rules | Yes |
| RSEVAL | Char | Evaluator (INVESTIGATOR, CENTRAL) | Yes |
| RSEVALID | Num | Evaluator ID (links to specific central reader) | Cond. |
| TRTP | Char | Planned treatment (from ADSL) | Yes |
| TRTPN | Num | Numeric planned treatment | Yes |
| BASE | Num | Baseline SoD (for TL SoD records) | Cond. |
| CHG | Num | Change from baseline | Cond. |
| PCHG | Num | Percent change from baseline | Cond. |
| ABLFL | Char | "Y" at baseline visit | Cond. |
Table 8.2. Core ADRS variable list. "Cond." = conditionally required per CDISC ADaM BDS standards.
ADINTEV (Intermediate Evaluation dataset) is a study-specific intermediate-layer dataset that captures the granular, lesion-level measurements and pre-response calculations that feed ADRS. It is not a submission dataset in the FDA/PMDA sense — it is an analysis-support dataset that makes the derivation of ADRS fully auditable and transparent.
Without ADINTEV, ADRS derivations become opaque macros. With ADINTEV, a reviewer or auditor can trace exactly which lesion measurement drove a particular SoD, why a visit was NE, or how nadir was computed. It is particularly critical in trials with central imaging reads, multiple reader adjudications, and sensitivity analyses.
| Record Type Granularity Key Variables Purpose | |||
| Lesion-level measurements | Per subject × lesion × visit | USUBJID, LSID (lesion ID = TUSEQ), LSLOC, LSCAT (target/non-target/new), ADT, LSDIAM, LSMISSFL, LSSMFL | Raw input to SoD; individual lesion tracking |
| SoD computation | Per subject × visit | USUBJID, ADT, AVISIT, SODN (SoD numeric), SODC (evaluability status), NEFL, NXSODN (nadir SoD) | SoD and nadir; drives TLRESP |
| TL response | Per subject × visit | USUBJID, ADT, AVISIT, TLRESP, PCHGBL (% change from BL), PCHGND (% change from nadir) | Input to overall response matrix |
| NTL response | Per subject × visit | USUBJID, ADT, AVISIT, NTLRESP, source (TRORRES from TR) | Input to overall response matrix |
| New lesion flag | Per subject × visit | USUBJID, ADT, AVISIT, NLFL, NLLOC (lesion location if new) | Triggers PD if Y |
| Evaluability flags | Per subject × visit | USUBJID, ADT, AVISIT, EVALFL, PDATFL, PDMIFL | ANL01FL logic documentation |
Table 9.1. ADINTEV record types and content. This dataset is the audit trail for ADRS derivation.
/* ADINTEV — Lesion-level measurement record structure */
USUBJID LSID LSLOC LSCAT VISITNUM ADT TRTESTCD LSDIAM LSMISSFL LSSMFL
001-001 1 RIGHT LUNG TARGET 1 01JAN2024 LDDIAM 28.0 N N
001-001 1 RIGHT LUNG TARGET 3 15MAR2024 LDDIAM 22.0 N N
001-001 1 RIGHT LUNG TARGET 5 10MAY2024 LDDIAM 14.0 N N
001-001 2 LIVER TARGET 1 01JAN2024 LDDIAM 20.0 N N
001-001 2 LIVER TARGET 3 15MAR2024 LDDIAM 16.0 N N
001-001 3 MED. LYMPH TARGET 1 01JAN2024 SAXIS 22.0 N N
001-001 3 MED. LYMPH TARGET 3 15MAR2024 SAXIS 18.0 N N
001-001 4 LIVER NON-TGT 3 15MAR2024 NTRGE . N N
/* LSID corresponds to TU.TUSEQ for linkage */
/* LSMISSFL=Y means lesion not assessed (drives SODC=NE) */
/* LSSMFL=Y means too small to measure; LSDIAM imputed = 5mm (non-nodal) or 10mm (nodal) */
Figure 9.1. Example ADINTEV lesion-level records. LSID=3 is a mediastinal lymph node (short axis measurement). LSID=4 is a non-target lesion with qualitative response from NTRGE.
ADEFFSUM contains one record per subject per summary efficacy parameter. It consolidates BOR, responder flags, response dates, and related summaries that span the entire observation period rather than a single visit. ADEFFSUM feeds frequency tables (e.g., ORR table) and is the source for ORR, DCR, and similar categorical summaries in TFLs.
| PARAMCD PARAM AVAL AVALC Programming Notes | ||||
| BOR | Best Overall Response | — | CR / PR / SD / PD / NE | Best confirmed response across all visits per Section 6 |
| RSPFL | Responder Flag (CR or PR) | 1 = Yes, 0 = No | Y / N | Y if BOR = CR or PR (confirmed). Used as ORR numerator. |
| CRPRFL | CR or PR Flag (unconfirmed) | 1 / 0 | Y / N | For sensitivity analysis of unconfirmed responses |
| SDFL | Stable Disease Flag | 1 / 0 | Y / N | Y if BOR = SD (with min duration criterion met) |
| DCRFL | Disease Control Flag (CR+PR+SD) | 1 / 0 | Y / N | Y if BOR in (CR, PR, SD) |
| BORRSP | BOR Response Date | — | Date (ADT) | Date of first visit contributing to confirmed BOR |
| TTFR | Time to First Response (days) | Days from start of treatment to BORRSP | — | AVAL = BORRSP - TRTSDT + 1 |
| EVALFL | Evaluable for Response Flag | 1 / 0 | Y / N | Y if subject meets SAP evaluability criteria |
| RFSTFL | Received First Study Treatment | 1 / 0 | Y / N | Intent-to-treat indicator; from ADSL RFSTDTC non-missing |
Table 10.1. ADEFFSUM PARAMCD inventory for RECIST-based response analysis.
ADTTE follows the CDISC ADaM Time-to-Event structure. Key variables include AVAL (time in days), CNSR (censoring indicator, 1=censored, 0=event), ADT (date of event or censoring), and EVNTDESC/CNSDTDSC (event/censoring description).
| Variable Type Description PFS Example DOR Example | ||||
| PARAMCD | Char | Parameter code | PFS | DOR |
| PARAM | Char | Parameter label | Progression-Free Survival | Duration of Response |
| AVAL | Num | Analysis value (days) | Days from randomization to PD/death/censor | Days from first response to PD/death/censor |
| CNSR | Num | 0=event, 1=censored | 0 if PD or death; 1 if censored | 0 if PD or death; 1 if censored |
| ADT | Num | Date of event or censoring | PD date or censoring date | PD/death date or censoring date |
| STARTDT | Num | Start date for time calculation | Randomization date (RANDDT) | Date of first confirmed response |
| EVNTDESC | Char | Event description | Radiological progression / Death | Radiological progression / Death |
| CNSDTDSC | Char | Censoring description | See Table 13.1 | See Table 13.1 |
| CNSDTDSCN | Num | Numeric censoring reason code | 1–7 per Table 13.1 | 1–7 per Table 13.1 |
Table 11.1. ADTTE core variable structure for PFS and DOR parameters.
ORR is the proportion of subjects achieving a confirmed BOR of CR or PR. It is a binary endpoint derived from ADEFFSUM.
/* ORR — numerator and denominator */
/* Numerator: confirmed CR or PR */
ORR_NUM = sum(RSPFL = "Y" and EVALFL = "Y"); /* evaluable subjects with CR/PR */
/* Denominator options (check SAP): */
/* 1. Evaluable population (EVALFL=Y) — most conservative */
/* 2. Full analysis set (FAS) — all treated subjects */
/* 3. Per-protocol set */
ORR_DEN = sum(EVALFL = "Y"); /* evaluable denominator */
ORR = 100 * ORR_NUM / ORR_DEN;
/* 95% CI: Clopper-Pearson (exact) is standard for single-arm trials */
/* Wilson score or normal approximation used in some RCT settings */
Figure 12.1. ORR derivation from ADEFFSUM. CI method is specified in the SAP.
PFS is the time from randomization (or start of treatment in single-arm trials) to the first documented progressive disease or death from any cause, whichever comes first. PFS is a right-censored time-to-event endpoint analyzed using Kaplan-Meier estimation and the log-rank test (in RCTs).
PFS Event Definition:
DOR is defined only for subjects who achieve a confirmed response (CR or PR). It is the time from the date of first confirmed CR or PR to the date of first PD or death.
NOTE: DOR start date is the date of the visit at which response was first documented (even if confirmation comes later). If a subject achieves PR at Week 8 and confirmation at Week 16, DOR start = Week 8 date. This is important for duration calculation and should be pre-specified in the SAP.
Censoring occurs when a subject leaves the study before the event of interest is observed — or when the analysis cutoff date arrives before the event. A censored observation contributes follow-up time to the denominator of the Kaplan-Meier estimator up to the censoring date, but does not count as an event. Incorrect censoring rules are one of the most common analysis errors in RECIST-based oncology programming.
| Scenario Event? Censoring Date CNSDTDSC CNSR Programming Notes | |||||
| Progressive disease documented on imaging | Yes (PD) | N/A — event date = imaging date | N/A | 0 | EVNTDESC = "Radiological Progression" |
| Death before PD documented | Yes (death) | N/A — event date = death date | N/A | 0 | EVNTDESC = "Death". ADT = death date from DS/ADSL. |
| Death same visit as PD | Yes (PD) | N/A | N/A | 0 | PD takes precedence; event date = imaging date |
| Still in study, no event at cutoff | No | Min(cutoff date, last adequate tumor assessment date) | Last known alive without PD | 1 | Use last assessment date, not cutoff date, if assessment is before cutoff |
| Withdrew consent (no PD) | No | Date of last adequate tumor assessment before withdrawal | Withdrawal of consent | 1 | Do NOT censor at withdrawal date — use last tumor assessment |
| Started new anti-cancer therapy (no PD) | No (primary) or sensitivity event | Date of last adequate tumor assessment before new therapy | Started new anti-cancer therapy | 1 | Primary PFS ignores new therapy. Sensitivity analysis may treat as event. |
| Missed ≥2 consecutive scheduled assessments, then PD | Yes or censored per SAP | Date of last assessment before missed visits | Two or more missed assessments before progression | 1 (primary) or 0 (sensitivity) | FDA often requires censoring at last adequate assessment when ≥2 visits missed before PD. Key sensitivity analysis. |
| Tumor assessment not done at final contact | No | Last adequate tumor assessment date (not last contact) | No adequate post-baseline assessment | 1 | Final contact date ≠ censoring date if tumor not assessed |
Table 13.1. PFS censoring scenarios. FDA guidance (March 2023 Clinical Trial Endpoints document) is the primary reference for censoring rules in oncology NDAs.
| Scenario Event? Censoring Date CNSR Notes | ||||
| PD documented after response | Yes | N/A — event date = PD imaging date | 0 | Event from same ADRS PARAMCD=OVRLRESP source |
| Death before PD (responders) | Yes | N/A — event date = death date | 0 | Death counts as event for DOR in most SAPs |
| Still in response at cutoff | No | Last adequate tumor assessment at or before cutoff | 1 | CNSDTDSC = "Still in Response at Cutoff" |
| Withdrew (responder, no PD) | No | Last adequate tumor assessment before withdrawal | 1 | Consistent with PFS censoring approach |
| Subject never confirmed responder | N/A | N/A — excluded from DOR analysis | N/A | DOR is defined only for confirmed responders (RSPFL=Y) |
Table 13.2. DOR-specific censoring scenarios.
/* ADTTE censoring variable population — PFS example */
/* Event subject */
PARAMCD=PFS AVAL=84 CNSR=0 ADT=25MAR2024 EVNTDESC="Radiological Progression"
STARTDT=01JAN2024 CNSDTDSC="" CNSDTDSCN=.
/* Censored subject — still in study at cutoff */
PARAMCD=PFS AVAL=120 CNSR=1 ADT=01MAY2024 EVNTDESC=""
STARTDT=01JAN2024 CNSDTDSC="Alive Without Progression at Cutoff"
CNSDTDSCN=1
/* Censored subject — missed ≥2 assessments before PD (primary analysis) */
PARAMCD=PFS AVAL=56 CNSR=1 ADT=26FEB2024 EVNTDESC=""
STARTDT=01JAN2024 CNSDTDSC="Two or More Missed Assessments Before PD"
CNSDTDSCN=5
/* CNSDTDSCN lookup: 1=Alive NoPD at Cutoff, 2=Withdrew, 3=New ACA Therapy,
4=Lost to F/U, 5=Missed Assessments, 6=Death No PD, 7=Other */
Figure 13.1. ADTTE CNSR and CNSDTDSC population examples for PFS. CNSDTDSCN enables programmatic analysis of censoring patterns.
Sensitivity analyses test the robustness of primary endpoint conclusions by varying assumptions about ambiguous or missing data. FDA and EMA both expect pre-specified sensitivity analyses in the SAP for oncology NDA/BLA submissions. Programmers must implement each as a distinct ANL0nFL flag (e.g., ANL02FL, ANL03FL) or as a separate ADTTE parameter with a distinct PARAMCD.
| Sensitivity Analysis Deviation from Primary PARAMCD / Flag Programming Approach | |||
| Treat missing assessment as PD | When ≥2 consecutive assessments missed and PD later occurs, treat PD as event at the originally scheduled assessment date | PFSS1 or ANL02FL | Identify subjects with gap ≥(2×assessment interval); set event date to scheduled date of first missed assessment after which PD occurs |
| New anti-cancer therapy as PD event | Subjects who start new ACA therapy (without documented PD) are treated as events | PFSS2 or ANL03FL | Flag in ADSL or ADCM: NACAFL=Y; use min(PD date, last assessment date before new ACA therapy start) |
| Unconfirmed response as event | For DOR, count unconfirmed responses | DORS1 or ANL02FL on ADTTE PARAMCD=DOR | Remove confirmation requirement; update STARTDT to date of first CR/PR |
| Central vs investigator PFS | Repeat primary PFS analysis using central read responses only | PFSCR or RSEVAL=CENTRAL | Filter ADRS to RSEVAL='CENTRAL'; re-derive PFS dates from central assessments |
| Extended censoring window | Use last contact date (not last tumor assessment) as censoring date | PFSS3 | Use max(last tumor assessment, last contact date) for censored subjects |
| Best supportive care excluded | Exclude subjects who never received any active study drug | ANL04FL | ADSL TRTFL=Y and DOSEDURFL=Y (received ≥1 dose) |
Table 14.1. Standard PFS sensitivity analyses. Each should be pre-specified in the SAP with explicit censoring rule deviations documented.
In oncology studies intended to support regulatory approval, imaging is often reviewed both by the site investigator and by an independent central imaging review (IRC). The rationale:
Both investigator and central reads are stored in SDTM RS domain, differentiated by RSEVAL and RSEVALID:
/* SDTM RS — Dual evaluator records */
USUBJID RSSEQ VISITNUM RSORRES RSSTRESC RSEVAL RSEVALID
001-001 1 3 PR PR INVESTIGATOR .
001-001 2 3 SD SD CENTRAL READER CRIT01
001-001 3 5 PR PR INVESTIGATOR .
001-001 4 5 PR PR CENTRAL READER CRIT01
/* In ADRS: RSEVAL populates the evaluator dimension; ANL01FL governs which */
/* evaluator is used in the primary analysis */
Figure 15.1. SDTM RS structure for dual-reader assessments.
| Statistic Formula / Definition SAS PROC / Method Regulatory Relevance | |||
| Overall agreement rate | (concordant pairs / total evaluable pairs) × 100 | FREQ with AGREE option or manual tabulation | Simple summary; limited clinical meaning |
| Cohen's Kappa | κ = (Po − Pe) / (1 − Pe) where Po=observed agreement, Pe=expected by chance | PROC FREQ / tables INV*CENTRAL / agree | κ ≥0.6 = substantial, κ ≥0.8 = almost perfect; FDA often expects κ in concordance report |
| Positive predictive agreement (PPA) | Proportion of central-read responders confirmed by investigator | Manual tabulation from 2×2 table | Assesses whether investigator over-reads responses relative to central |
| Negative predictive agreement (NPA) | Proportion of central-read non-responders confirmed by investigator | Manual tabulation | Assesses false positive rate for investigator read |
| BOR category frequency | Cross-tab of INV BOR vs. CENTRAL BOR | PROC FREQ; tables INVBOR*CTRDBOR / chisq | Identifies systematic discordance patterns |
Table 15.1. Concordance statistics for investigator vs. central read comparison.
/* ADRS concordance — derive wide format for Kappa */
proc sort data=adrs; by usubjid rseval; run;
proc transpose data=adrs(where=(paramcd="BOR" and dtype="BORON"))
out=adrs_wide prefix=bor_;
by usubjid;
id rseval; /* INVESTIGATOR, CENTRAL */
var avalc;run;
/* bor_INVESTIGATOR, bor_CENTRAL now on same record per subject */
proc freq data=adrs_wide;
tables bor_INVESTIGATOR * bor_CENTRAL / agree;run;
/* AGREE option gives Cohen's Kappa with 95% CI */
Figure 15.2. SAS approach to concordance analysis using ADRS wide transposition and PROC FREQ with AGREE option.
ADaM specifications for RECIST datasets are among the most complex in clinical programming. The key principles:
| Spec Section Content Programmer Guidance | ||
| Purpose | Dataset purpose, CDISC class, submission intent | 1–3 sentences; reference SAP section number |
| Source datasets | SDTM: TU, TR, RS; ADaM: ADSL, ADINTEV | List with CDISC domain abbreviation and key variables pulled |
| Population | Analysis population criteria | Reference ADSL flag variable (e.g., FASFL='Y') |
| PARAMCD list | All parameters with PARAMCD, PARAM, DTYPE, record granularity | Tabulate all — never leave PARAMCD implicit |
| Computation Notes | Step-by-step derivation for each PARAMCD | Use numbered steps; reference RECIST 1.1 rule precisely |
| SoD Calculation | Which TRTESTCD values, how to handle missing, nadir logic | Specify LDDIAM+SAXIS inclusion; 5mm imputation for too-small |
| Response Matrix | Full TL × NTL × NL matrix as a table | Reproduce Table 5.1 in the spec — do not summarize in prose |
| Confirmation Rules | Window (days), NE handling, intermediate SD handling | Specify ≥28 days or ≥4 weeks from first response — be exact |
| BOR Derivation | Hierarchy, minimum SD duration, confirmed-only flag | CR>PR>SD>PD>NE; SD duration ≥ protocol minimum |
| Censoring Table | One table per TTE parameter listing all censoring scenarios | Use tabular format (Table 13.1 structure); reference FDA guidance |
| Flag Variables | ANL01FL, ANL02FL, etc. with exact criteria for each | Every flag must have a named criterion; do not reference "per SAP" |
| Handling of Evaluator Reads | How RSEVAL differentiates reads; which read drives primary ANL01FL | State RSEVAL value explicitly; flag each evaluator separately |
Table 16.1. Recommended ADRS spec structure for RECIST-based oncology studies.
For each TTE parameter (PFS, DOR, TTFR, etc.), the spec must contain:
| Error Risk Prevention | ||
| Using cutoff date instead of last tumor assessment date as censoring date | Overestimates PFS for subjects with early dropout | Spec must state: censor at MIN(cutoff date, last adequate tumor assessment date) |
| Not specifying the 5 mm absolute increase threshold for PD | PD over-called on very small nadir SoDs (e.g., 2 mm × 1.2 = 2.4 mm) | Spec must include: SoD increase ≥20% AND ≥5 mm absolute |
| Applying baseline SoD (not nadir) to PD threshold | Understates PD — subjects can grow 19% from baseline but 200% from nadir | Nadir = minimum SoD from baseline onwards. Spec must be unambiguous. |
| Not differentiating confirmed vs. unconfirmed BOR for ORR denominator | ORR numerator/denominator mismatch between programmer and statistician | Spec must state evaluability criteria and whether unconfirmed responses count |
| Missing ADINTEV specification entirely | Unauditable derivation; reviewer cannot trace SoD to individual lesions | Always spec ADINTEV as a companion to ADRS in complex oncology studies |
| Incorrect TRLINKID matching (character vs. numeric) | Lesion measurements fail to merge to TU classification | Spec must define TRLINKID as character; note TUSEQ must be formatted as character for merge key |
| Forgetting minimum SD duration requirement | BOR = SD assigned to subjects showing SD only on first post-baseline visit | Spec must state: SD requires assessment ≥ N weeks from start of treatment (N = protocol-specified) |
Table 16.2. Common RECIST programming spec errors and prevention strategies.
| Attribute Value | |
| USUBJID | 001-001 |
| Treatment | Experimental Drug A |
| Randomization Date (RANDDT) | 01 Jan 2024 |
| Target Lesions | 3 (Right Lung LD: 28 mm; Liver LD: 20 mm; Mediastinal LN SA: 22 mm) |
| Non-Target Lesions | 1 (Retroperitoneal LN — non-target) |
| Baseline SoD | 70 mm |
| Visit Date TL SoD TL Resp NTL Resp New Lesion Overall Resp Confirmed? BOR Candidate | ||||||||
| BL | 01Jan24 | 70 | — | Present | N | — | — | — |
| Wk 8 | 26Feb24 | 56 | SD | Non-CR/Non-PD | N | SD | N/A | — |
| Wk 16 | 22Apr24 | 36 | PR | Non-CR/Non-PD | N | PR | Pending | — |
| Wk 24 | 17Jun24 | 15 | PR | Non-CR/Non-PD | N | PR | Yes (≥28 days from Wk 16) | Confirmed PR |
| Wk 32 | 12Aug24 | 21 | PD | Non-CR/Non-PD | N | PD | N/A | — |
Table 17.1. PD at Wk 32: SoD 21 vs nadir 15 mm → +40% (≥20%) AND +6 mm (≥5 mm). Both thresholds met.
| Dataset PARAMCD AVAL / AVALC ADT CNSR | ||||
| ADEFFSUM | BOR | PR (confirmed) | 17Jun24 (confirmation date) | N/A |
| ADEFFSUM | RSPFL | Y | 17Jun24 | N/A |
| ADEFFSUM | BORRSP | 22Apr24 (first response date) | 22Apr24 | N/A |
| ADEFFSUM | TTFR | 112 days | 22Apr24 | N/A |
| ADTTE | PFS | 223 days | 12Aug24 | 0 (event=PD) |
| ADTTE | DOR | 111 days (22Apr24 → 12Aug24) | 12Aug24 | 0 (event=PD) |
Table 17.2. PFS = 223 days from randomization (01Jan24) to PD (12Aug24). DOR = 111 days from first response (22Apr24) to PD (12Aug24).
Published by clinstandards.org — Technical Reference for the CDISC Statistical Programming Community. All derivations are based on primary CDISC and regulatory sources.
No comments yet. Be the first!