ADaM Day 1
In clinical trials, ADSL(Subject-Level Analysis Dataset) is the foundation of all ADaM analysis dataset, it is one record per subjects; it captures subjects’ population flag 🚩, treatment-related info, vital sign info♂, baseline disease info, and other info respect to different study designs.

realworkhard / Pixabay
General Steps:
- Import any Disease related document in excel or csv format,
ex: Lines of Antilymphoma Therapy
2. Demographic Dataset (raw.dm)
Ex. studyid , subjid , siteid, age=(infcdt-birth+1)/365.25 , sex, race, agegrp
3. Treatment Discontinuation from ECRF page & Study Discontinuation
data ds; set ds:: where pagename="Treatment Disposition"; if statusn=1 then status1="Completed"; if statusn=2 then status2="Discontinued"; dsreas= strip(dsterm); keep pt dsdt dstreas dstreasn ; run;
4. Death Info
data death; set raw.dth; if dsdt>.; dthreas=strip(dscause); keep pt dthdt dthreas ptnm; run;
5. Exposure of Study Treatment
treatment start/end date, cycle length info, treatment group
proc sql noprint; create table ex as select unique pt, min(exstdt) as trsdt format=date9. label="First Dose Date", max(exendt) as tredt format=date9. label="Last Dos Date" from raw.ex where exdose > . group by pt order by pt; quit;
6. Chemistry Lab test results.
data chem; set raw.chem; run; baseline creatinine, LDH
7. Disease Stage History: Initial Diagnosis, Enrollment
xSTIN: stage at Initial Diagnosis Value : I, II, III, IV , unknown xSTEN: Stage at Enrollment Value : I, II, III, IV, *note: xSTEN there is no-unknown
8. Prior Radiation
data rad; set raw.prt; by pt prtstdtf repeatsn; if first.prtstdtf; run;
9. Prior Systemic Therapy Lines
data pline; set raw.psata; keep patstdt patendt patseqn(prior therapy/reginmen number); run; data nsys; retain nsystem 0; set pline; by pt patseqn; if first.pt then nsystem = 1; else nsystem+1; if last.pt; drop patseqn; run;
10. Other prior anti-cancer therapy
proc sort data= raw.psata out=pr1(keep=pt genrnm repeatsn); by pt genrnm repeatsn; where pagename="Other Prior Anti-Cancer Therapies for this Disease"; run;
11. Baseline Chemo Lab Result
Ex: (LDH, Creatine )
*LDH example; data lab2; length bldhg $30 bldhgrp $30 ; set lab2; by pt lbdt; if last.pt; if 53 <= labval <= 234 then do; bldhg = "Normal"; end; else if labval > 234 then do; bldhg = "> Upper limit of normal (ULN)"; end; run;
12. Reproductive Status
proc sort data=raw.pt out=pt2(keep= pt child); where CHILD ne ''; by pt; run; data dm; merge dm(in=a) pt2(in=b); by pt; run; data dm; set dm; if sex="F" and child="Yes" then repro="Y"; if sex="F" and child="No" then repro="N"; drop child; run;
13. VS: Height, Weight, BSA, BMI
proc sort data=raw.vs1 out=vsn(keep=ht wt pt vsdt) nodupkey; by pt descending vsdt; run; data vs_new1; merge vsn(in=a) ex(keep=pt tr01sdt); by pt; if . < vtdt <= tr01sdt; run; data vs_new2; set vs_new1; by pt vtdt; if last.pt; bsa= sqrt((bheight*bweight)/3600); bmi= bweight/((bheight*0.01)**2); run;
14. ECG, ECOG Performance Status at Enrollment (Screening)
ECG.EGINTP where visit=1 S_QS2.SQSRES2 where visit=1 (VISNAME='Screening (Day -28 to -1)')
15. Refractory and Relapse
Refractory: does not respond to treatment
Relapse: despite the best care and significant progress made in treatment, cancer comes back
16. Miscellaneous :
Prior stem Cell Therapy, Other prior anti-cancer therapy, Bone Marrow, X-Sympton at Screening, Eligibility (raw.elig, eligyn=”yes”), Follow up (raw.fugate, entfuv=”yes”)
17, Population Flag.
Safety Flag, ITT Population Flag, Efficacy Evaluable Flag
note: each study has different rules of derivations.
Final ADSL Dataset Wrap up:
data adsl; format trtedt date9.; merge dm(in=dm) ex(in=ex death rand(in=rand) nhl enroll vs nhlhis creat ecog ecg elig(in=elig) crcl fu spd nprit ivr lab2 hema2 BSYMPT bc(in=bc) ; by pt; if dm; rename cycdrug1=ncyclen cycdrug2=ncycrit last1=LCYCLEN last2=LCYCRIT ; label SEXN = "Gender" agegrp1N = "Age group (N) <x vs >=x" RACEGR1N = "Race"; run;
Dummy ADSL Dataset with Label
Note: since every study design is different, there is no one-fits-all formula for creating ADSL dataset. I hope these descriptions provide a general idea of ADSL dataset ☺.
Thanks Moe and Xueying explain the Refractory and Relapse concept to me!