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.
[caption id="attachment_2024" align="alignnone" width="750"]realworkhard / Pixabay[/caption]
General Steps:
-
Import any Disease related document in excel or csv format,
ex: Lines of Antilymphoma Therapy2. Demographic Dataset (raw.dm)
Ex. studyid , subjid , siteid, age=(infcdt-birth+1)/365.25 , sex, race, agegrp3. 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;
- 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
*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-Symptom 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!