Professional Documents
Culture Documents
Study Number :
Study :
Program Name : DS
Purpose : Craeting Disposition Domain
Author : xxxxxxx
Date of Creation : DDMMM2024
Input Data :
Output : SDTM.DS
Assumptions : Taken from xxx
--------------------------------------------------------------------------
Modification History :
--------------------------------------------------------------------------
Modified By : xxxx
Modification Date :
Modification Description :
---------------------------------------------------------------------------*/
dm "log" clear;
options validvarname=upcase;
/* To bring Rawdatasets */
data ic2;
set ic1;
dsspid = catx("-",sitenumber,scrnid,subjid);
dscat = "PROTOCOL MILESTONE";
dsscat = "";
dsterm = "INFORMED CONSENT OBTAINED";
dsdecod = "INFORMED CONSENT OBTAINED";
run;
/* Death Records*/
data death2;
set death1;
dsspid = catx("-",sitenumber,scrnid,subjid);
/* Screening */
data scrfail1;
set scrfail_;
dsspid = catx("-",sitenumber,scrnid,subjid);
run;
/* Enrolled */
data enroll1;
set enroll_;
dsspid = catx("-",sitenumber,scrnid,subjid);
dsterm = "ENROLLED";
dsdecod = "ENROLLED";
dscat = "PROTOCOL MILESTONE";
dsscat = "ENROLLMENT";
data ds1;
length dsterm $200. dsscat $30. ;
set ic2 death2 scrfail1 enroll1;
run;
/* Getting DM Data */
data ds2;
merge ds1(in=a) dm1(in=b drop=siteid);
by usubjid;
if a;
rfstdtc_n = input(rfstdtc,yymmdd10.);
if dsstdtc ne "" then dsstdtc_n = input(dsstdtc,yymmdd10.);
dsdy = dsstdy;
run;
/* Deriving EPOCH */
data epoch;
set ds2;
data ds3;
set epoch;
/* SEQ creation */
data fin;
set ds3;
by usubjid dsstdtc dsdecod;
domain = "DS";
studyid = "GS-US-322-0206";
run;
data sdtm.ds(label="Disposition");
retain STUDYID DOMAIN USUBJID DSSEQ DSSPID DSTERM DSDECOD DSCAT DSSCAT EPOCH
DSDTC DSSTDTC DSDY DSSTDY;
keep STUDYID DOMAIN USUBJID DSSEQ DSSPID DSTERM DSDECOD DSCAT DSSCAT EPOCH
DSDTC DSSTDTC DSDY DSSTDY;
set fin;
run;
/* SUPPDS Creation */
data supp(rename=(S_PVERDT_=S_PVERDT));
set fin;
if S_PVERDT ne . then S_PVERDT_ = put(datepart(S_PVERDT),yymmdd10.);
keep studyid usubjid dsseq deathcau PREGS6624 ENROLNUM IETESTCD S_PVERDT_;
run;
proc sort data=supp out=supp_; by studyid usubjid dsseq; run;
rdomain = "DS";
idvar = "DSSEQ";
idvarval = strip(put(dsseq,best.));
qorig = "CRF page";
qeval = "";
run;
/* Final SUPPDM creation */
keep STUDYID RDOMAIN USUBJID IDVAR IDVARVAL QNAM QLABEL QVAL QORIG QEVAL;
set supp_fin;
run;