ADaM All lessons Scene 1 / 11

ADaM · Interactive Lesson

ADRS & RECIST Programming

11 scenes· ~20 min· pairs with the article

Step through the scenes, pass the checkpoint quizzes, and try the hands-on exercises. Progress saves locally in this browser — no account, no tracking.

Scene index · 11 scenes
  1. ConceptOpening: when a correct table is clinically wrong
  2. ConceptRECIST 1.1 as a Decision Table
  3. ConceptThe TU → TR → RS → SUPP Traceability Chain
  4. ConceptADRS Parameters: One Decision at a Time
  5. CheckpointCheckpoint: response logic and the chain
  6. ConceptReal-data walkthrough: raw rows become OVR
  7. Hands-onHands-on: assign overall response per decision-table row
  8. ConceptThe Hard Parts: PD dates and the PDS → ADTTE hand-off
  9. ConceptDefect gallery and QC discipline
  10. CheckpointFinal knowledge check
  11. ConceptTakeaways and next steps
Concept1 / 11

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.

Concept2 / 11

RECIST 1.1 as a Decision Table

RECIST 1.1 as a Decision Table

Target lesionsNon-target lesionsNew lesionsOverall response
CRCRNoCR
CRnon-CR/non-PDNoPR
PRnon-CR/non-PDNoPR
SDnon-CR/non-PDNoSD
PDanyanyPD
anyPDanyPD
anyanyYesPD

• 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.

Concept3 / 11

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.

Concept4 / 11

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.

Checkpoint5 / 11

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.

Concept6 / 11

Real-data walkthrough: raw rows become OVR

Real-Data Walkthrough

Raw Rows → Recorded OVR

Assessment (USUBJID · date)Lesion-level componentsOverall response (OVR)
043-18101-74001-002 · 2019-06-13 (RSDY=30)TRGRESP=PD · NTRGRESP=NON-CR/NON-PD · NEWLIND=YPD — OVRLRESP=PD / OVRESP=PD
043-18101-74001-004 · 2019-11-05TRGRESP=PR · NTRGRESP=— · NEWLIND=NOverall PR
043-18101-74001-004 · 2019-12-03TRGRESP=PR · NTRGRESP=— · LESNEW=YesOverall PD — new lesion
043-18101-74002-001 · 2019-12-27TRGRESP=SD · NTRGRESP=NON-CR/NON-PD · LESNEW=YesPD
043-18101-74004-002 · 2020-02-25TRGRESP=PD · NTRGRESP=PDPD

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-on7 / 11

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.

Concept8 / 11

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.

Concept9 / 11

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.

Checkpoint10 / 11

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
The most likely defect is evaluator mixing or blended evaluator results: ADRS BOR used the central-review evaluation and ADTTE PFS used the investigator evaluation, or the derivation chose the earliest PD date across all evaluators even though central review was pre-specified as primary. The correct fix is to make the progression-date source identical across ADRS, PDS, and ADTTE. Because central review is primary, the PDS-to-ADTTE hand-off should use the central-review PD date, here 15MAR2022, provided the protocol's confirmation rules are met. In ADTTE, that event date should be used as ADT with CNSR=0 and EVNTDESC='Disease Progression'. If the subject had no PFS event, ADT should be the last adequate disease-assessment date with CNSR=1 and an appropriate censoring description such as 'Last adequate disease assessment'. QC checks should include comparing ADRS BOR-associated PD dates with PDS and ADTTE event dates, verifying the SDTM RS filter uses the correct evaluator, and listing any subject whose source progression dates differ by evaluator to prevent silent mixing.
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.

Concept11 / 11

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.

✓

Lesson complete

Nice work — every scene seen. Keep the momentum going.

← → Space to navigate · progress is saved locally in your browser

AI Tutor

Ask the tutor