SDTM SE (Subject Element ) Dataset Programming

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;






    
sascodingexpert@gmail.com

20+ clinical SAS Experience

Recent Posts

SAS Tip: Repeating AEBODSYS on New Page in PROC REPORT Output

ADAEDownload ADSLDownload HTML LIBNAME AD "G:\TA_ONCO_01_24122024\ADaM"; /*Macro for sorting purpose*/ %MACRO SORT(in= ,out= ,datacon= ,outcon=…

3 months ago

Q#5 Best Overall Response (BOR) , Objective Response Rate (ORR) ,95% Confidence Interval (CI) &P-value Oncology

Definition of Best Overall Response (BOR) Best Overall Response (BOR) is the best treatment response…

3 months ago

All Logs checking macro

HTML /* retrieve all the logs in the specified directory */ %macro checklogs(loc=, /* location…

3 months ago

Adverse Event ADaM [ADAE] programming SAS

AEDownload ADSLDownload FINAL ADAM ADAE SPECDownload HTML /******************************************************************* * Client: PHARMA Private Limited. * Project:…

4 months ago

Q#4 Please tell recent 5 studies titles, primary and secondary objectives and End points

1. Study Title: A Randomized Phase 3 Study of MRTX949 versus Docetaxel in Patients with…

4 months ago

Q#3 Please tell recent 5 studies titles, primary and secondary objectives.

1. A Randomized Phase 3 Study of MRTX949 versus Docetaxel in Patients with Previously Treated…

4 months ago