HTML
******************************************************************* * Client: PHARMA Private Limited. * Project: Protocol: 043-1-2025 * Program: SE.SAS * * Program Type: SDTM * * Purpose: To produce SDTM * Usage Notes: * * SASĀ® Version: 9.4 * Operating System: Windows 2010 Standard Edition. * * Author: shiva * Date Created: 18-MAR-2025 * Modification History: *******************************************************************/ OPTIONS NOFMTERR; LIBNAME RAW "G:\TA_ONCO_01_24122024\RAW DATASETS"; OPTION VALIDVARNAME=UPCASE; LIBNAME SDTM_US "G:\TA_ONCO_01_24122024\SDTM_US"; /*%LET KEEPVAR=*/ PROC DATASETS LIB=WORK KILL; RUN; QUIT; DATA SE1; SET RAW.SV; IF VISDAT NE .; IF VISNAME='Cycle 2 - Day 1 (1st infusion)'; CYCLE2= PUT (VISDAT,YYMMDD10.); STUDYID="101-18101"; DOMAIN='DM'; SITEID=SCAN (SUBNUM,1,"-"); SUBJID=SCAN (SUBNUM,2,"-"); USUBJID=CATX ("-",STUDYID,SITEID,SUBJID); KEEP USUBJID CYCLE2; RUN; PROC SORT;BY USUBJID ;RUN; DATA SE2; SET RAW.SV; IF VISDAT NE .; IF VISNAME='Follow-up - 30 Days After Last Dose'; STFUP= PUT (VISDAT,YYMMDD10.); STUDYID="101-18101"; DOMAIN='DM'; SITEID=SCAN (SUBNUM,1,"-"); SUBJID=SCAN (SUBNUM,2,"-"); USUBJID=CATX ("-",STUDYID,SITEID,SUBJID); KEEP USUBJID STFUP; RUN; PROC SORT;BY USUBJID ;RUN; DATA SE3; SET RAW.SV; IF VISDAT NE .; IF VISNAME='Cycle 3 - Day 1 (1st infusion)'; CYCLE3= PUT (VISDAT,YYMMDD10.); STUDYID="101-18101"; DOMAIN='DM'; SITEID=SCAN (SUBNUM,1,"-"); SUBJID=SCAN (SUBNUM,2,"-"); USUBJID=CATX ("-",STUDYID,SITEID,SUBJID); KEEP USUBJID CYCLE3; RUN; PROC SORT;BY USUBJID ;RUN; DATA SE4; LENGTH ELEMENT EPOCH ETCD $200.; MERGE SDTM_US.DM (DROP=DOMAIN) SE1 SE2 SE3; BY USUBJID; DOMAIN='SE'; IF RFICDTC NE '' THEN DO; ETCD='SCRN'; ELEMENT='Screening'; TAETORD=1; EPOCH='SCREENING'; SESTDTC=RFICDTC; IF RFXSTDTC NE '' THEN SEENDTC=RFXSTDTC; ELSE SEENDTC=RFPENDTC; OUTPUT; END; IF RFXSTDTC NE '' THEN DO; ETCD='CYCLE1'; ELEMENT='Cycle 1'; TAETORD=2; EPOCH='TREATMENT'; SESTDTC=RFXSTDTC; IF CYCLE2 NE '' THEN SEENDTC=CYCLE2; ELSE IF RFXENDTC NE '' THEN SEENDTC=RFXENDTC; ELSE IF STFUP NE '' THEN SEENDTC=STFUP; ELSE SEENDTC=RFPENDTC; OUTPUT; END; IF CYCLE2 NE '' THEN DO; ETCD='CYCLE2'; ELEMENT='Cycle 2'; TAETORD=3; EPOCH='TREATMENT'; SESTDTC=CYCLE2; IF CYCLE3 NE '' THEN SEENDTC=CYCLE3; ELSE IF RFXENDTC NE '' THEN SEENDTC=RFXENDTC; ELSE IF STFUP NE '' THEN SEENDTC=STFUP; ELSE SEENDTC=RFPENDTC; OUTPUT; END; IF CYCLE3 NE '' THEN DO; ETCD='CYCLE3'; ELEMENT='Cycle 3'; TAETORD=4; EPOCH='TREATMENT'; SESTDTC=CYCLE3; IF RFXENDTC NE '' THEN SEENDTC=RFXENDTC; ELSE IF STFUP NE '' THEN SEENDTC=STFUP; ELSE SEENDTC=RFPENDTC; OUTPUT; END; IF RFXENDTC NE '' THEN DO; ETCD='SFUP'; ELEMENT='Safety Follow-Up'; TAETORD=5; EPOCH='SAFETY FOLLOW-UP'; SESTDTC=RFXENDTC; IF STFUP NE '' THEN SEENDTC=STFUP; ELSE SEENDTC=RFPENDTC; OUTPUT; END; IF STFUP NE '' THEN DO; ETCD='LTFUP'; ELEMENT='Long-Term Follow-Up'; TAETORD=6; EPOCH='LONG-TERM FOLLOW-UP'; SESTDTC=STFUP; SEENDTC=RFPENDTC; OUTPUT; END; KEEP STUDYID DOMAIN USUBJID SESEQ ETCD ELEMENT TAETORD EPOCH SESTDTC SEENDTC; RUN; PROC SORT; BY STUDYID USUBJID TAETORD ETCD SESTDTC; RUN; DATA SE5; SET SE4; BY STUDYID USUBJID TAETORD ETCD SESTDTC; IF FIRST.USUBJID THEN SESEQ=1; ELSE SESEQ+1; RUN; /*ATTRIBUTES*/ LIBNAME SDTM_US "G:\TA_ONCO_01_24122024\SDTM_US"; DATA SDTM_US.SE (LABEL="Subject Elements"); RETAIN STUDYID DOMAIN USUBJID SESEQ ETCD ELEMENT TAETORD EPOCH SESTDTC SEENDTC; SET SE5; RUN;