为了账号安全,请及时绑定邮箱和手机立即绑定

从头开始写 ADaM- ADSL

标签:
大数据

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:

  1. 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;
  1. 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

adsl.PNG

adsl1.PNG

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!

Happy Practicing! 😎

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消