Opening: when a correct table is clinically wrong
CASE PREVIEW · PHASE 1B ONCOLOGY
When a Correct Table
Is Clinically Wrong
The rows are right. The story is wrong.
ADRS defects are clinical before statistical
New lesion in a supplemental qualifier — nobody merged
PD date defaulted to next scheduled scan
TU, TR, RS join logic is what ADRS programs
recist.csv: only 2019-12-03 row holds OVRESP=PD
Goal — trace TU → TR → RS into ADRS; then hand PDS to ADTTE
Open with the concrete work situation: a response-analysis listing looks arithmetically fine yet misstates disease course, because a new lesion sat in a supplemental qualifier nobody merged.
Speaker notes
Welcome. This case preview comes from a Phase 1b oncology study, and the lesson is that a table can be numerically correct yet clinically wrong. A new lesion that should have triggered progressive disease was captured in a supplemental qualifier nobody merged, so the progressive disease date defaulted to the next scheduled scan. The domains tumor identification, tumor results, and response were never designed to be joined, and that join logic is exactly what the response analysis dataset, or ADRS, programs. In recist.csv, the demo subject is recorded as partial response on 2019-11-05, then target partial response with LESNEW=Yes on 2019-12-03 — only the second row holds OVRESP=PD. Our goal is to trace those domains into ADRS parameters, then hand the progressive disease status, or PDS, decision to the Analysis Data Model Time-to-Event, or ADTTE.
RECIST 1.1 as a Decision Table
RECIST 1.1 as a Decision Table
| Target lesions | Non-target lesions | New lesions | Overall response |
|---|---|---|---|
| CR | CR | No | CR |
| CR | non-CR/non-PD | No | PR |
| PR | non-CR/non-PD | No | PR |
| SD | non-CR/non-PD | No | SD |
| PD | any | any | PD |
| any | PD | any | PD |
| any | any | Yes | PD |
• New-lesion = Yes ⇒ PD alone.
• PD dominates — any PD component ⇒ PD.
• non-CR/non-PD ≠ SD — non-target remains, no PD.
• SAP pins version; confirm repeats only as it states.
Establish the published RECIST 1.1 category logic that ADRS turns into code: target results, non-target status, and new lesions combine into one overall response per subject per timepoint.
Speaker notes
This slide turns Response Evaluation Criteria in Solid Tumors version one point one into a programmer's decision table. You read the target lesion row, the non-target status, and the new-lesion flag together to get an overall response of Complete Response, Partial Response, Stable Disease, Progressive Disease, or non-Complete Response/non-Progressive Disease. A new lesion marked Yes forces Progressive Disease on its own, no matter what the target or non-target readings say. Progressive Disease also dominates every other row. Non-Complete Response/non-Progressive Disease is not Stable Disease; it applies only when disease is entirely non-target and has neither cleared nor progressed. The Statistical Analysis Plan pins the version and states whether Complete Response or Partial Response need a repeat assessment to count as confirmed.
The TU → TR → RS → SUPP Traceability Chain
TU → TR → RS → SUPP
The Traceability Chain into ADRS
TU
TR
RS
SUPP
1 row per
identified
lesion
1 row per
lesion per
assessment
1 row per
assessment &
evaluator
extra qualifier
rows: new-lesion
detail, first-obs
JOIN
TR ↔ TU on lesion
identifiers; RELREC
formalizes vendor splits
RSEVAL
INVESTIGATOR vs
independent review —
parallel, not blended
SUPP + MATERIAL
New-lesion detail hides
in SUPPTR / SUPPRS
rows; merge early
NEWLIND Y 06-13 · N 11-05
Show the SDTM domains that feed ADRS and the traceability discipline needed to join them, including the SUPP pockets where new-lesion detail hides.
Speaker notes
Let's trace the chain from Tumor Identification, or TU, through Tumor Results, or TR, and Response, or RS, into ADRS, the response analysis dataset. TU is one row per identified lesion, TR one row per lesion per assessment, joined on the lesion identifier variables. Related Records, or RELREC, formalizes that link when a vendor splits the domains. RS is one row per assessment per evaluator, and the Response Evaluator variable, RSEVAL, keeps the investigator call separate from independent review; those flows stay parallel, never blended. Supplemental Qualifiers, or SUPP, carry what the base domains had no slot for, like new-lesion detail, so merge SUPPTR and SUPPRS early with a row-count check. For the demo subject, rs.csv shows NEWLIND equal to Y at RSDTC 2019-06-13 with RSDY 30, and equal to N at 2019-11-05 with RSDY 54.
ADRS Parameters: One Decision at a Time
ADRS Parameters: One Decision at a Time
• ADRS = ADaM BDS: subject × parameter × timepoint
• Subject-level parameters enter as their own rows
• Families: OVR · BOR · CRSP · LSTA · PDS
• Reference events: DEATH · CNCRTRP
• PARCAT1: Tumor Response vs Reference Event
• PARCAT2: evaluator (Investigator)
• PARCAT3: RECIST 1.1
• Source rows traced; ANL01FL marks the analysis record
Example 043-18101-74001-001: BOR / CRSP / LSTA rows appear under Tumor Response – Investigator – RECIST 1.1;
DEATH / CNCRTRP appear under Reference Event with AVALC = N.
Introduce ADRS as an ADaM BDS dataset whose parameter families encode the response analysis plan: OVR, BOR, CRSP, LSTA, PDS, and reference events.
Speaker notes
The ADRS dataset, or Analysis Data Model Response, follows the Basic Data Structure, BDS. So you get one record per subject, parameter, and analysis timepoint, with subject-level parameters as their own rows. Recurring families include OVR, overall response per timepoint; BOR, best overall response; CRSP, confirmed response; LSTA, last disease assessment; and PDS, the first progressive disease date feeding ADTTE, the Time-to-Event analysis dataset. Reference events like DEATH and CNCRTRP also appear. PARCAT1 separates Tumor Response from Reference Event, PARCAT2 carries the evaluator, and PARCAT3 pins RECIST 1.1, the Response Evaluation Criteria in Solid Tumors version 1.1. For the demo subject, BOR, CRSP, and LSTA appear under Tumor Response – Investigator – RECIST 1.1, while DEATH and CNCRTRP sit under Reference Event with AVALC = N, and ANL01FL marks the analysis record with traceability variables pointing back to source rows.
Checkpoint: response logic and the chain
1 In the Response Evaluation Criteria In Solid Tumors (RECIST) 1.1 overall-response decision table, the New Lesion row for a subject is marked Yes. What should the overall response be in the RS domain, regardless of the Target and Non-Target rows?
2 Which statements are correct when using the Study Data Tabulation Model (SDTM) TU, TR, and RS domains together with their supplemental qualifier domains (SUPP--)? Select all that apply. (select all that apply, then Check)
Speaker notes
This is a checkpoint quiz on response logic and the traceability chain. In the Response Evaluation Criteria In Solid Tumors (RECIST) 1.1 overall-response decision table, when the New Lesion row for a subject is marked Yes, what is the overall response in the RS domain regardless of the Target and Non-Target rows? The correct answer is D, Progressive Disease (PD), because the presence of one or more new lesions is an overriding condition that forces overall response to PD. Which statements are correct when using the Study Data Tabulation Model (SDTM) TU, TR, and RS domains together with their supplemental qualifier domains? The correct answers are A, B, and D: TU, TR, and RS have different grains, the SUPP-- row count per parent record must be checked to prevent a one-to-many merge that inflates TR rows, and RECIST 1.1 logic with Analysis Data Model (ADaM) parameter labels must be applied separately within each RSEVAL flow.
Real-data walkthrough: raw rows become OVR
Real-Data Walkthrough
Raw Rows → Recorded OVR
| Assessment (USUBJID · date) | Lesion-level components | Overall response (OVR) |
|---|---|---|
| 043-18101-74001-002 · 2019-06-13 (RSDY=30) | TRGRESP=PD · NTRGRESP=NON-CR/NON-PD · NEWLIND=Y | PD — OVRLRESP=PD / OVRESP=PD |
| 043-18101-74001-004 · 2019-11-05 | TRGRESP=PR · NTRGRESP=— · NEWLIND=N | Overall PR |
| 043-18101-74001-004 · 2019-12-03 | TRGRESP=PR · NTRGRESP=— · LESNEW=Yes | Overall PD — new lesion |
| 043-18101-74002-001 · 2019-12-27 | TRGRESP=SD · NTRGRESP=NON-CR/NON-PD · LESNEW=Yes | PD |
| 043-18101-74004-002 · 2020-02-25 | TRGRESP=PD · NTRGRESP=PD | PD |
One ADRS record per timepoint · ANL01FL='Y' marks it
Ordinal AVAL → best overall response (BOR) pooling
Step through actual rows from recist.csv and rs.csv to show how per-lesion components recompute the recorded overall response and become the analysis input.
Speaker notes
In this real-data walkthrough, raw RECIST 1.1 (Response Evaluation Criteria in Solid Tumors version 1.1) rows become recorded overall response, or OVR. For the demo subject on 2019-06-13 with RSDY=30, TRGRESP is progressive disease (PD), NTRGRESP is NON-CR/NON-PD, and NEWLIND is Y; the RS record shows OVRLRESP=PD and recist.csv agrees with OVRESP=PD. A second subject on 2019-11-05 has NEWLIND=N, target partial response (PR), and overall PR; on 2019-12-03 the same subject still has target PR but LESNEW=Yes, so overall response moves to PD. The same decision table gives PD on 2019-12-27 for stable disease (SD) plus non-CR/non-PD plus LESNEW=Yes, and PD on 2020-02-25 for PD plus PD. Each timepoint resolves to one ADaM (Analysis Data Model) Basic Data Structure (BDS) Response (ADRS) row, marked by ANL01FL='Y' before ordinal AVAL and BOR (Best Overall Response) pooling.
Hands-on: assign overall response per decision-table row
Hands-on interactive — if it does not load, open the paired article and try the exercise there.
Speaker notes
This exercise is hands-on, so open your browser and go to jaimeyan.com/learn, where the interactive runs on the website rather than in the video. You will practice applying the Response Evaluation Criteria in Solid Tumors version 1.1 decision table to the material recist.csv assessment rows, reading the target lesion response, the non-target lesion response, and the new lesion indicator, then predicting the overall response, including the lesson cases where a target partial response with a new lesion yields progressive disease and a target stable disease with a new lesion also yields progressive disease. Give it a try right after the video, and the immediate feedback will compare your prediction to the recorded overall response value for that row and explain which rule fired.
The Hard Parts: PD dates and the PDS → ADTTE hand-off
The Hard Parts: PD dates and the
PDS → ADTTE hand-off
PDS → ADTTE hand-off — one decision per subject, anchored on the SAP index date
• first confirmed PD (RECIST 1.1) — future uncensored event
• death without prior PD — future uncensored event
• otherwise censor at the last adequate assessment
Event source used by the ADTTE builder
• pd_event keeps the earliest confirmed PD per USUBJID (if first.usubjid, anl01fl='Y'), and death_event reads ADSL where dthfl='Y'
• merge → event_first = whichever of the two event dates came first
Assembly quartet from the snippet — per subject
• event → adt = evntdt · cnsr = 0 · evntdesc = 'Confirmed Progressive Disease or Death'
• no event → adt = coalesce(rfendt, trt01sdt) · cnsr = 1 · evntdesc = 'Censored at Last Adequate Assessment'
• tte = adt − startdt; a negative tte raises an error — never flows downstream
• QC habit: proc lifetest with time tte*cnsr(1); strata trt01a — fastest visual sanity check on ADTTE
Teach the decisions that change published PFS medians: selecting the PD date and turning the first PD, death without PD, or censoring decision into a clean hand-off to ADTTE.
Speaker notes
Now the hard part: progressive disease dates and PDS to ADTTE hand-off, PDS is Progressive Disease Status and ADTTE is Analysis Data Time-to-Event. PDS gives ADTTE one decision per subject, anchored on SAP index date: first confirmed progressive disease by Response Evaluation Criteria in Solid Tumors 1.1, death without prior progressive disease, or censoring at last adequate assessment. Event source: pd_event keeps earliest confirmed progressive disease per subject identifier where anl01fl equals 'Y', death_event reads ADSL where dthfl equals 'Y', merge creates event_first. Startdt is trt01sdt; event gives adt equal to evntdt, cnsr zero, evntdesc 'Confirmed Progressive Disease or Death'; otherwise adt uses coalesce of rfendt and trt01sdt, cnsr one, evntdesc 'Censored at Last Adequate Assessment'. Duration tte equals adt minus startdt; negative tte raises an error; for QC, run proc lifetest time tte*cnsr(1) strata trt01a.
Defect gallery and QC discipline
Defect Gallery & QC Discipline
RECIST 1.1 · SDTM / ADaM
BOR vs inconsistent visit windows
PR · confirmation window not met
PD · hidden in SUPP qualifier
RSEVAL drop · evaluator mix
PFS · death censored
None surfaces in structural validation.
Worst class: overall response contradicts its lesion inputs — TU / TR / RS logic.
QC: double programming · listings settle conflicts
Focus: BOR, PD date · response-date rows per subject
L2: ADRS parameter table = contract → define.xml
L3 volatile · as of 2026-09-01
Agent: hardcode window · drop RSEVAL · skip SUPP qualifiers
Diff mapping table vs SAP · hand-trace 3 subjects
Survey the defects that do not surface in structural validation, then show the QC habits that catch them, including the volatile agentic-workflow caveat.
Speaker notes
Here is the defect gallery: failures your Response Evaluation Criteria in Solid Tumours version 1.1 analysis never catches. First, Best Overall Response, or BOR, over inconsistent visit windows, and a confirmed Partial Response, or PR, with no confirmation window met. Then Progressive Disease, or PD, hidden in Supplemental Qualifiers, evaluator mixing from a dropped Response Evaluator filter, and death censored in Progression-Free Survival. None surfaces in structural validation; worst is an overall response contradicting its own lesion inputs, needing Tumor Identification, Tumor Results and Response logic. Quality Control is double programming; subject listings settle conflicts on BOR and PD date, plus response-date rows per subject. The analysis response, or ADRS, parameter table is the contract feeding define.xml; for the volatile agent layer as of 2026-09-01, diff the mapping table against the Statistical Analysis Plan, or SAP, and hand-trace three subjects.
Final knowledge check
1 A protocol uses Response Evaluation Criteria in Solid Tumors (RECIST 1.1) and requires confirmation of complete response (CR) or partial response (PR) at the next scheduled tumor assessment. A single hypothetical subject has post-baseline overall response categories in chronological order: stable disease (SD), PR, then progressive disease (PD), with no other assessments after PD. Which value should be derived as the best overall response (BOR) in the Analysis Data Model (ADaM) Basic Data Structure (BDS) efficacy data set ADRS?
2 An ADaM programmer is using the progression/death status (PDS) hand-off to create a time-to-event Analysis Data Model (ADTTE) data set for a progression-free survival (PFS) endpoint. Events are first RECIST 1.1 disease progression (PD) or death from any cause, whichever occurs first; a subject is censored only when no such event is observed. Which statements correctly describe construction of the ADTTE PFS record from PDS using the STARTDT/ADT/CNSR/EVNTDESC variables? Select all that apply. (select all that apply, then Check)
3 During QC after an ADaM delivery, a teaching extract shows one subject with two different progression dates: the ADRS BOR parameter has ADT 15MAR2022, while the ADTTE PFS record has ADT 08MAR2022. The Study Data Tabulation Model (SDTM) response domain RS contains a progression assessment dated 08MAR2022 from the investigator and another dated 15MAR2022 from an independent central radiology reviewer. The analysis specification says central review is the primary evaluator for all RECIST 1.1 response derivations and for the PDS-to-ADTTE hand-off. Identify the most likely derivation defect in the ADRS-to-PDS-to-ADTTE chain and the correct fix. Describe how CNSR and EVNTDESC should be coded after the correct event date is selected, and list at least two QC checks that would catch this defect. (reflect, then reveal)
Reveal analysis
Speaker notes
This is the final knowledge check for the Analysis Data Model (ADaM) response data set ADRS and Response Evaluation Criteria in Solid Tumors (RECIST 1.1) programming. Question one: under RECIST 1.1 with required confirmation of complete response (CR) or partial response (PR), a subject has stable disease (SD), then PR, then progressive disease (PD), with no later assessments. The correct answer is A, stable disease (SD), because the PR is not confirmed by a subsequent CR or PR before the first PD, and the best overall response (BOR) in the Basic Data Structure (BDS) efficacy data set ADRS is the best confirmed response before the first PD. Question two: using the progression/death status (PDS) hand-off to build a time-to-event Analysis Data Model (ADTTE) data set for progression-free survival (PFS), which statements correctly describe the STARTDT/ADT/CNSR/EVNTDESC construction? The correct answers are A, B, and C: STARTDT is the pre-specified time origin rather than an event date, a PD date before death gives ADT at the PD date with CNSR=0 and an event description for disease progression, and a death before PD gives ADT at the death date with CNSR=0 and an event description for death. Question three: in a quality control (QC) teaching extract, ADRS BOR has ADT 15MAR2022 while the ADTTE PFS record has ADT 08MAR2022, and the Study Data Tabulation Model (SDTM) response domain RS contains a progression assessment from the investigator dated 08MAR2022 and one from an independent central radiology reviewer dated 15MAR2022, with central review specified as the primary evaluator. The model answer is that the likely defect is evaluator mixing—ADRS BOR used the central-review evaluation while ADTTE PFS used the investigator review—so use the central-review progression date 15MAR2022, code CNSR=0 with an event description for disease progression, and run QC checks that compare evaluator source across ADRS, PDS, and ADTTE and that compare event dates across ADRS, PDS, and ADTTE.
Takeaways and next steps
Takeaways & Next Steps
1 · RECIST response: target + non-target + new-lesion lookup; pin version in metadata
2 · Read TU / TR / RS and SUPP qualifiers as one chain — PD-date movers hide in qualifiers
3 · BOR: SAP timepoints from first dose to first PD; confirmed CR/PR waits per SAP interval
4 · PDS → ADTTE: one decision per subject — first PD, death, or censor on the index date
5 · Next stop: ADTTE & survival consumes this PDS hand-off — paired article: “ADRS and RECIST: Programming Oncology Response Analyses”
Summarize the durable rules of ADRS programming and point learners back to the paired article and the ADTTE continuation.
Speaker notes
Takeaways: RECIST — Response Evaluation Criteria in Solid Tumors — response is a lookup over target, non-target, and new lesions; pin the version in metadata. Read Study Data Tabulation Model, or SDTM, domains — tumor identification, tumor response, response, and supplemental qualifiers — as one chain, because Progressive Disease date movers hide in qualifiers. Best Overall Response, or BOR, uses Statistical Analysis Plan timepoints from first dose to first Progressive Disease; confirmed Complete Response or Partial Response waits the confirmation interval. Progressive Disease Status, or PDS, hands the Time-to-Event Analysis Dataset, or ADTTE, one decision per subject — first Progressive Disease, death, or censoring — on the index date. Next: the ADTTE and survival lesson receives this PDS hand-off; pair with the source article.