* PROGRAM OVERVIEW **************************************************************************************************** * * PROGRAM: create_templatefiles.sas * Created (mm/dd/yyyy): 12/31/2020 * *-------------------------------------------------------------------------------------------------- * PURPOSE: The macro creates all files that reside in the templatefiles. These are example input files * that either represent report defaults or can be modified for inclusion in the reporting package * * Program inputs: * * Program outputs: The following template files are created: * -TableFile (one file is created per REPORTTTYPE) * -FigureFile (one file is created per REPORTTYPE) * -TableColumnsFile * * PARAMETERS: * * Programming Notes: * * *-------------------------------------------------------------------------------------------------- * CONTACT INFO: * Sentinel Coordinating Center * info@sentinelsystem.org * ***************************************************************************************************; /*Define libname for location of templatefiles folder*/ libname tempfl ""; %macro create_templatefiles(); ************************************* REPORTTYPE = T1 and T2L1 Files: - T1TableFile - T1FigureFile - T2L1TableFile - T2L1FigureFile *************************************; /*t1cida, t2cida, and t2concomitantuse tables*/ %let stratOneLevel = sex| agegroup| year| year month| year quarter| race| hispanic| zip3| state| zip_uncertain| cb_reg| hhs_reg; %let stratCovar = &stratOneLevel.| covar#; %let stratTwoLevel = sex agegroup| sex agegroup year| sex agegroup year month| sex agegroup year quarter| agegroup year| agegroup year month| agegroup year quarter| sex year| sex year month| sex year quarter| year month agegroup race| year quarter agegroup race| year month agegroup Hispanic| year quarter agegroup Hispanic| year month sex Hispanic| year quarter sex Hispanic| year month sex race| year quarter sex race| year month Hispanic race| year quarter Hispanic race| zip3 zip_uncertain| zip3 sex| zip3 sex zip_uncertain| zip3 agegroup| zip3 agegroup zip_uncertain| zip3 year| zip3 year zip_uncertain| zip3 race| zip3 race zip_uncertain| zip3 hispanic| zip3 hispanic zip_uncertain| state zip_uncertain| state sex| state sex zip_uncertain| state agegroup| state agegroup zip_uncertain| state year| state year zip_uncertain| state race| state race zip_uncertain| state hispanic| state hispanic zip_uncertain| zip_uncertain sex| zip_uncertain agegroup| zip_uncertain year| hhs_reg zip_uncertain| hhs_reg sex| hhs_reg sex zip_uncertain| hhs_reg agegroup| hhs_reg agegroup zip_uncertain| hhs_reg year| hhs_reg year zip_uncertain| hhs_reg race| hhs_reg race zip_uncertain| hhs_reg hispanic| hhs_reg hispanic zip_uncertain| cb_reg zip_uncertain| cb_reg sex| cb_reg sex zip_uncertain| cb_reg agegroup| cb_reg agegroup zip_uncertain| cb_reg year| cb_reg year zip_uncertain| cb_reg race| cb_reg race zip_uncertain| cb_reg hispanic| cb_reg hispanic zip_uncertain| race sex| race agegroup| race year| race year month| race year quarter| hispanic sex| hispanic agegroup| hispanic year| hispanic year month| hispanic year quarter| year agegroup race| year sex race| year agegroup hispanic| year sex hispanic| year race hispanic; %let stratcida = &stratCovar. | &stratTwoLevel.; %let stratnoCovar = &stratOneLevel. | &stratTwoLevel.; %macro createt1t2cidatemplates(name); data lookup_&name.; retain table dataset tablesub tablesubstrat levelnum levelid1 levelid2 levelid3 includeinreport categories; format table $5. dataset $15. tablesubstrat $25. tablesub $40. levelid1 levelid2 levelid3 $55. categories $100.; includeinreport = 'N'; categories = ''; call missing(levelid3); /*Table T1*/ dataset = "&name."; table = 'T1'; /*Overall table*/ tablesub = 'overall'; tablesubstrat = ''; levelnum =1; levelid1 = ''; levelid2 = ''; output; /*Stratified tables*/ %do i =1 %to %sysfunc(countw(&stratcida., %str(|))); %let sub = %scan(%str(&stratcida.), &i, '|'); tablesub = "&sub"; tablesubstrat = ''; levelnum =1; levelid1 = "&sub"; levelid2 = ''; output; %end; %do i =1 %to %sysfunc(countw(&stratnoCovar., %str(|))); %let sub = %scan(%str(&stratnoCovar.), &i, '|'); tablesub = "&sub covar#"; tablesubstrat = ''; levelnum =1; levelid1 = "&sub covar#"; levelid2 = ''; output; %end; run; %mend createt1t2cidatemplates; %createt1t2cidatemplates(t1cida); %createt1t2cidatemplates(t2cida); %createt1t2cidatemplates(t2conc); /*t1censor & t2censor Tables*/ %let stratacensor = | sex| agegroup| year; %macro templatecensortablefigures(type,dsn,numstart,num); data lookup_&dsn.; retain table dataset tablesub tablesubstrat levelnum levelid1 levelid2 levelid3 includeinreport categories censorreason; format table $5. dataset $15. tablesubstrat tablesub $25. levelid1 levelid2 levelid3 $55. categories $100. censorreason $85.; includeinreport = 'N'; categories = ''; call missing(levelid3, censorreason); %do t=1 %to 3; /*Table T&t.*/ dataset = "&dsn."; table = "T&t."; /*Overall table*/ tablesub = 'overall'; tablesubstrat = ''; levelnum =1; levelid1 = 'censdays_value_cat'; %if %eval(&t. ne 2) %then %do; levelid2 = 'censdays_value'; %end; %else %do; levelid2 = ''; %end; output; /*Stratified tables*/ %do i =1 %to 3; %let sub = %scan(%str(&stratacensor.), &i, '|'); tablesub = "&sub"; tablesubstrat = ''; levelnum =1; levelid1 = "&sub. censdays_value_cat"; levelid2 = ''; output; %end; %end; %do f=&numstart. %to &num.; /*Figure F&f.*/ dataset = "&dsn."; table = "F&f."; /*Overall table*/ tablesub = 'overall'; tablesubstrat = ''; levelnum =1; levelid1 = 'censdays_value'; levelid2 = ''; output; %end; run; %mend templatecensortablefigures; %templatecensortablefigures(1,t1censor,1,1); %templatecensortablefigures(2,t2followuptime,1,2); %templatecensortablefigures(2,t2censor,3,3); /*Multiple Events Tables*/ %let stratalist = sex| agegroup| year| year month| year quarter| race| hispanic| zip3| state| cb_reg| hhs_reg| adherence; data lookup_t2multevent; retain table dataset tablesub tablesubstrat levelnum levelid1 levelid2 levelid3 includeinreport categories; format table $5. dataset $15. tablesubstrat tablesub $25. levelid1 levelid2 levelid3 $55. categories $100.; includeinreport = 'N'; categories = ''; call missing(levelid3); /*Table T1*/ dataset = 't2multevent'; table = 'T1'; /*Overall table*/ tablesub = 'overall'; tablesubstrat = ''; levelnum =1; levelid1 = ''; levelid2 = ''; output; tablesub = 'overall'; tablesubstrat = 'followup_cat'; levelnum =1; levelid1 = 'followup_cat'; levelid2 = ''; output; tablesub = 'overall'; tablesubstrat = 'epi_count'; levelnum =1; levelid1 = 'epi_count'; levelid2 = ''; output; /*Stratified tables*/ %do i =1 %to %sysfunc(countw(&stratalist., %str(|))); %let sub = %scan(%str(&stratalist.), &i, '|'); tablesub = "&sub"; tablesubstrat = ''; levelnum =1; levelid1 = "&sub"; levelid2 = ''; output; tablesub = "&sub"; tablesubstrat = 'followup_cat'; levelnum =1; levelid1 = "&sub followup_cat"; levelid2 = ''; output; tablesub = "&sub"; tablesubstrat = 'epi_count'; levelnum =1; levelid1 = "&sub epi_count"; levelid2 = ''; output; %end; /*Table T2*/ table = 'T2'; /*Overall table*/ tablesub = 'overall'; tablesubstrat = ''; levelnum =1; levelid1 = ''; levelid2 = 'time_to_epi'; output; tablesub = 'overall'; tablesubstrat = 'followup_cat'; levelnum =1; levelid1 = 'followup_cat'; levelid2 = 'followup_cat time_to_epi'; output; tablesub = 'overall'; tablesubstrat = 'epi_count'; levelnum =1; levelid1 = 'epi_count'; levelid2 = 'epi_count time_to_epi'; output; tablesub = 'overall'; tablesubstrat = 'time_to_epi'; levelnum =1; levelid1 = 'time_to_epi'; levelid2 = 'time_to_epi'; output; tablesub = 'overall'; tablesubstrat = 'adherence'; levelnum =1; levelid1 = 'adherence'; levelid2 = 'adherence time_to_epi'; output; tablesub = 'overall'; tablesubstrat = 'adherence_#'; levelnum =1; levelid1 = 'adherence_#'; levelid2 = 'adherence_# time_to_epi'; output; /*Stratified tables*/ %do i =1 %to %sysfunc(countw(&stratalist., %str(|))) - 1; %let sub = %scan(%str(&stratalist.), &i, '|'); tablesub = "&sub"; tablesubstrat = ''; levelnum =1; levelid1 = "&sub."; levelid2 = "&sub. time_to_epi"; output; tablesub = "&sub."; tablesubstrat = 'followup_cat'; levelnum =1; levelid1 = "&sub. followup_cat"; levelid2 = "&sub. followup_cat time_to_epi"; output; tablesub = "&sub."; tablesubstrat = 'epi_count'; levelnum =1; levelid1 = "&sub. epi_count"; levelid2 = "&sub. epi_count time_to_epi"; output; tablesub = "&sub."; tablesubstrat = 'time_to_epi'; levelnum =1; levelid1 = "&sub. time_to_epi"; levelid2 = "&sub. time_to_epi"; output; tablesub = "&sub."; tablesubstrat = 'adherence'; levelnum =1; levelid1 = "&sub. adherence"; levelid2 = "&sub. adherence time_to_epi"; output; tablesub = "&sub."; tablesubstrat = "adherence_#"; levelnum =1; levelid1 = "&sub. adherence_#"; levelid2 = "&sub. adherence_# time_to_epi"; output; %end; /*Table T3*/ table = 'T3'; dataset = 't2epigap'; tablesub = 'overall'; tablesubstrat = ''; levelnum =1; levelid1 = 'epi_gap'; levelid2 = ''; output; /*Table T4*/ table = 'T4'; dataset = 't2epigap'; tablesub = 'overall'; tablesubstrat = ''; levelnum =1; levelid1 = 'epi_gap'; levelid2 = ''; output; run; /*Overlap Tables*/ %let stratalist = sex| agegroup| year| year month| year quarter| race| hispanic| zip3| state| cb_reg| hhs_reg; data lookup_t2overlap; retain table dataset tablesub tablesubstrat levelnum levelid1 levelid2 levelid3 includeinreport categories; format table $5. dataset $15. tablesubstrat tablesub $25. levelid1 levelid2 levelid3 $55. categories $100.; includeinreport = 'N'; categories = ''; call missing(levelid3); /*Table T1*/ dataset = 't2overlap'; table = 'T1'; /*Overall table*/ tablesub = 'overall'; tablesubstrat = ''; levelnum =1; levelid1 = ''; levelid2 = ''; output; tablesub = 'overall'; tablesubstrat = 'followup_cat'; levelnum =1; levelid1 = 'followup_cat'; levelid2 = ''; output; tablesub = 'overall'; tablesubstrat = 'total_days_overlap'; levelnum =1; levelid1 = 'total_days_overlap'; levelid2 = ''; output; tablesub = 'overall'; tablesubstrat = 'adherence'; levelnum =1; levelid1 = 'adherence'; levelid2 = ''; output; tablesub = 'overall'; tablesubstrat = 'adherence_#'; levelnum =1; levelid1 = 'adherence_#'; levelid2 = ''; output; /*Stratified tables*/ %do i =1 %to %sysfunc(countw(&stratalist., %str(|))); %let sub = %scan(%str(&stratalist.), &i, '|'); tablesub = "&sub"; tablesubstrat = ''; levelnum =1; levelid1 = "&sub"; levelid2 = ''; output; tablesub = "&sub"; tablesubstrat = 'followup_cat'; levelnum =1; levelid1 = "&sub followup_cat"; levelid2 = ''; output; tablesub = "&sub"; tablesubstrat = 'total_days_overlap'; levelnum =1; levelid1 = "&sub total_days_overlap"; levelid2 = ''; output; tablesub = "&sub"; tablesubstrat = 'adherence'; levelnum =1; levelid1 = "&sub adherence"; levelid2 = ''; output; tablesub = "&sub"; tablesubstrat = 'adherence_#'; levelnum =1; levelid1 = "&sub adherence_#"; levelid2 = ''; output; %end; run; /*Table T2*/ data lookup_t2overlap; set lookup_t2overlap lookup_t2overlap(in=b); if b then table = 'T2'; run; /*Output T1 and T2L1 files*/ /*t1tablefile*/ data tempfl.t1tablefile; set lookup_t1cida lookup_t1censor(drop=tablesubstrat where=(substr(table,1,1)='T')); run; /*t1figurefile*/ data tempfl.t1figurefile; set lookup_t1censor(drop=tablesubstrat where=(substr(table,1,1)='F')); rename tablesub=figuresub; rename table=figure; xmin = .; xmax = .; xtick = .; ymin = .; ymax = .; ytick = .; includeatrisktable = 'N'; format censordisplay $50.; censordisplay = ''; drop categories censorreason; run; /*t2l1tablefile*/ data tempfl.t2l1tablefile; set lookup_t2cida lookup_t2followuptime(where=(substr(table,1,1)='T')) lookup_t2censor(where=(substr(table,1,1)='T')) lookup_t2conc lookup_t2multevent lookup_t2overlap; run; /*t2l1figurefile*/ data tempfl.t2l1figurefile; set lookup_t2followuptime(drop=tablesubstrat where=(substr(table,1,1)='F')) lookup_t2censor(drop=tablesubstrat where=(substr(table,1,1)='F')); rename tablesub=figuresub; rename table=figure; xmin = .; xmax = .; xtick = .; ymin = .; ymax = .; ytick = .; includeatrisktable = 'N'; format censordisplay $50.; censordisplay = ''; drop categories censorreason; run; ************************************* REPORTTYPE = T2L2 file: - T2L2FigureFile *************************************; data tempfl.t2l2figurefile; retain figure dataset figuresub levelnum levelid1 levelid2 levelid3 includeinreport; format figure $5. dataset $15. figuresub $25. levelid1 levelid2 levelid3 $55.; call missing(dataset, levelid1, levelid2, levelid3); levelnum = 0; includeinreport = 'N'; xmin = .; xmax = .; xtick = .; ymin = .; ymax = .; ytick = .; includeatrisktable = 'N'; format censordisplay $50.; censordisplay = ''; /*PS Histograms*/ figure = 'F1'; figuresub = 'overall'; output; /*Forest Plots*/ figure = 'F2'; figuresub = 'overall'; output; /*Unadjusted KM Curve*/ figure = 'F3'; figuresub = 'overall'; output; /*Conditional KM Curve*/ figure = 'F4'; figuresub = 'overall'; output; /*Unconditional KM Curve*/ figure = 'F5'; figuresub = 'overall'; output; run; ************************************* REPORTTYPE = T4L2 file: - T4L2FigureFile *************************************; data tempfl.t4l2figurefile; retain figure dataset figuresub levelnum levelid1 levelid2 levelid3 includeinreport; format figure $5. dataset $15. figuresub $25. levelid1 levelid2 levelid3 $55.; call missing(dataset, levelid1, levelid2, levelid3); levelnum = 0; includeinreport = 'N'; /*note - not relevant for T4L2 figures*/ xmin = .; xmax = .; xtick = .; ymin = .; ymax = .; ytick = .; includeatrisktable = 'N'; format censordisplay $50.; censordisplay = ''; /*PS Histograms*/ figure = 'F1'; figuresub = 'overall'; output; /*Forest Plots*/ figure = 'F2'; figuresub = 'overall'; output; run; ************************************* REPORTTYPE = T4L1 file: - T4L1TableFile *************************************; %let stratLevel = overall; %let stratlevels = %sysfunc(countw(&stratLevel.,'|')); data tempfl.t4l1tablefile; retain table dataset tablesub tablesubstrat levelnum levelid1 levelid2 levelid3 includeinreport categories; format table $5. dataset $15. tablesubstrat $25. tablesub $40. levelid1 levelid2 levelid3 $55. categories $100.; includeinreport = 'N'; categories = ''; call missing(levelid2); call missing(levelid3); dataset = "t4preg"; %do p = 1 %to 4; %do s = 1 %to &stratlevels.; table = "T&p"; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = ""; levelid2 = "moiname"; %end; %else %do; levelid1 = ""; levelid2 = "moiname %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; %end; tablesubstrat = 't4preg'; output; tablesubstrat = 't4nopreg'; output; %end; %end; %do sp = 5 %to 6; levelnum =1; dataset = "t4preggestwk"; table = "T&sp."; tablesub = "overall"; levelid1 = "moiname"; levelid2 = ""; tablesubstrat = 't4preggestwk'; output; tablesubstrat = 't4nopreggestwk'; output; %end; run; ************************************* REPORTTYPE = T5 files: - T5TableFile - T5FigureFile *************************************; %let stratLevel = overall|sex|agegroup|year|year month|year quarter|race|hispanic|sex agegroup|sex race|sex hispanic|agegroup race|agegroup hispanic; %let stratfirst = overall|sex|agegroup|race|hispanic; %let stratlevels = %sysfunc(countw(&stratLevel.,'|')); %let stratflevels = %sysfunc(countw(&stratfirst.,'|')); data lookup_t5tablefigurefile; retain table dataset tablesub tablesubstrat levelnum levelid1 levelid2 levelid3 includeinreport categories; format table $5. dataset $15. tablesubstrat $25. tablesub $40. levelid1 levelid2 levelid3 $55. categories $100. censorreason $85.; includeinreport = 'N'; categories = ''; call missing(levelid3, tablesubstrat, censorreason); dataset = "t5disp"; %do t = 1 %to 2; %do s = 1 %to &stratlevels.; %if %eval(&s.<=3) | %eval(&s.>=7) %then %do; table = "T&t."; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = ""; levelid2 = "daysupp"; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "daysupp %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; %end; output; %end; %end; %end; dataset = "t5episdur"; %do t = 3 %to 4; %do s = 1 %to &stratlevels.; table = "T&t."; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = ""; levelid2 = "cumepisodelength"; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "cumepisodelength %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; %end; output; %end; %end; %do t = 5 %to 6; %do s = 1 %to &stratlevels.; table = "T&t."; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = ""; levelid2 = "episodelength"; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "episodelength %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; %end; output; %end; %end; %do t = 7 %to 10; %do s = 1 %to &stratlevels.; table = "T&t."; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = "episodenum"; levelid2 = "episodenum episodelength"; %end; %else %do; levelid1 = "episodenum %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "episodenum episodelength %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; %end; output; %end; %end; dataset = "t5gaps"; %do s = 1 %to &stratlevels.; table = "T11"; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = "gapnum"; levelid2 = "gapnum gaplength"; %end; %else %do; levelid1 = "gapnum %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "gapnum gaplength %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; %end; output; %end; %do t = 12 %to 13; %do s = 1 %to &stratlevels.; table = "T&t."; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = "gapnum"; levelid2 = "gapnum gaplength"; %end; %else %do; levelid1 = "gapnum %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "gapnum gaplength %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; %end; output; %end; %end; dataset = "t5censor"; table = "T14"; tablesub= "overall"; levelnum =1; levelid1 = "episodenum"; levelid2 = ""; output; dataset = "t5censor"; table = "T15"; tablesub= "overall"; levelnum =1; levelid1 = "episodenum episodelength"; levelid2 = ""; output; dataset = "t5censor"; table = "T16"; tablesub= "overall"; levelnum =1; levelid1 = ""; levelid2 = ""; output; dataset = "t5censor"; table = "T17"; tablesub= "overall"; levelnum =2; levelid1 = ""; levelid2 = "episodelength"; output; /*Dose tables*/ dataset = "t5disp"; %do s = 1 %to &stratlevels.; %if %eval(&s.<=3) | %eval(&s.>=7) %then %do; table = "T18"; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = ""; levelid2 = "cfdd_output_cat"; levelid3 = "cfdd"; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "cfdd_output_cat %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid3 = ""; %end; output; %end; %end; dataset = "t5dose"; %do s = 1 %to &stratlevels.; table = "T19"; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = ""; levelid2 = "afdd_output_cat"; levelid3 = "afdd"; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "afdd_output_cat %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid3 = ""; %end; output; %end; %do s = 1 %to &stratlevels.; table = "T20"; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = "episodenum"; levelid2 = "afdd_output_cat episodenum"; levelid3 = "afdd episodenum"; %end; %else %do; levelid1 = "episodenum %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "afdd_output_cat episodenum %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid3 = ""; %end; output; %end; %do s = 1 %to &stratlevels.; table = "T21"; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = ""; levelid2 = "cumdose_output_cat"; levelid3 = "cumdose"; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "cumdose_output_cat %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid3 = ""; %end; output; %end; %do s = 1 %to &stratlevels.; table = "T22"; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = "episodenum"; levelid2 = "cumdose_output_cat episodenum"; levelid3 = "cumdose episodenum"; %end; %else %do; levelid1 = "episodenum %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "cumdose_output_cat episodenum %sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid3 = ""; %end; output; %end; dataset = "t5first"; %do f = 1 %to 3; %do s = 1 %to &stratflevels.; table = "F&f."; tablesub= "%sysfunc(left(%scan(%str(&stratfirst.), &s, '|')))"; levelnum =1; %if %sysfunc(left(%scan(%str(&stratfirst.), &s, '|'))) = overall %then %do; levelid1 = "mntsfromstart"; levelid2 = ""; %end; %else %do; levelid1 = "mntsfromstart %sysfunc(left(%scan(%str(&stratfirst.), &s, '|')))"; levelid2 = ""; %end; output; %end; %end; dataset = "t5censor"; %do f = 4 %to 5; table = "F&f."; tablesub= "overall"; levelnum =1; levelid1 = "episodenum episodelength"; levelid2 = ""; output; %end; run; /*Output T5 files*/ /*t5tablefile*/ data tempfl.t5tablefile; set lookup_t5tablefigurefile(where=(substr(table,1,1)='T')); run; /*t5figurefile*/ data tempfl.t5figurefile; set lookup_t5tablefigurefile(where=(substr(table,1,1)='F')); drop tablesubstrat; rename tablesub=figuresub; rename table=figure; xmin = .; xmax = .; xtick = .; ymin = .; ymax = .; ytick = .; includeatrisktable = 'N'; format censordisplay $50.; censordisplay = ''; drop categories censorreason; run; ************************************* REPORTTYPE = T6 files: - T6TableFile - T6FigureFile *************************************; %let stratLevel = overall|sex|agegroup|race|hispanic|sex agegroup|sex race|sex hispanic|agegroup race|agegroup hispanic; %let stratfirst = overall|sex|agegroup|race|hispanic; %let stratlevels = %sysfunc(countw(&stratLevel.,'|')); %let stratflevels = %sysfunc(countw(&stratfirst.,'|')); data lookup_t6tablefigurefile; retain table dataset tablesub tablesubstrat levelnum levelid1 levelid2 levelid3 includeinreport categories; format table $5. dataset $15. tablesubstrat $25. tablesub $40. levelid1 levelid2 levelid3 $55. categories $100. censorreason $125.; includeinreport = 'N'; categories = ''; call missing(tablesubstrat, censorreason); dataset = "t6counts"; %do t = 1 %to 2; %do s = 1 %to &stratlevels.; table = "T&t."; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =3; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = ""; levelid2 = "year"; levelid3 = "month year"; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) year"; levelid3 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) month year"; %end; output; %end; %end; dataset = "t6trend"; table = "T3"; %do s = 1 %to &stratlevels.; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = "year"; levelid2 = "month year"; levelid3 = ""; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) year"; levelid2 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) month year"; levelid3 = ""; %end; output; %end; dataset = "t6counts"; table = "T4"; %do s = 1 %to &stratlevels.; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =3; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = ""; levelid2 = "year"; levelid3 = "month year"; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) year"; levelid3 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) month year"; %end; output; %end; dataset = "t6disp"; table = "T5"; %do s = 1 %to &stratlevels.; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =1; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = "daysupp"; levelid2 = ""; levelid3 = ""; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) daysupp"; levelid2 = ""; levelid3 = ""; %end; output; %end; dataset = "t6episdur"; table = "T6"; %do s = 1 %to &stratlevels.; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =1; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = "cumepisodelength"; levelid2 = ""; levelid3 = ""; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) cumepisodelength"; levelid2 = ""; levelid3 = ""; %end; output; %end; dataset = "t6uptake"; table = "T7"; %do s = 1 %to &stratlevels.; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =1; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = "uptakedays"; levelid2 = ""; levelid3 = ""; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) uptakedays"; levelid2 = ""; levelid3 = ""; %end; output; %end; dataset = "t6censor"; table = "T8"; tablesub= "overall"; levelnum =1; levelid1 = "episodelength"; levelid2 = ""; output; dataset = "t6plota"; table = "T9"; tablesub= "overall"; levelnum =1; levelid1 = "ttswitch"; levelid2 = ""; output; dataset = "t6plotb"; table = "T10"; tablesub= "overall"; levelnum =1; levelid1 = "ttswitch"; levelid2 = ""; output; dataset = "T6switchepisdur"; table = "T11"; %do s = 1 %to &stratlevels.; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =1; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = "episodelength"; levelid2 = ""; levelid3 = ""; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) episodelength"; levelid2 = ""; levelid3 = ""; %end; output; %end; %do t = 12 %to 15; %if %eval(&t.=12) | %eval(&t.=14) %then %do; dataset = "t6plota"; %end; %if %eval(&t.=13) | %eval(&t.=15) %then %do; dataset = "t6plotb"; %end; %do s = 1 %to &stratlevels.; table = "T&t."; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =2; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = ""; levelid2 = "ttswitch"; levelid3 = ""; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) ttswitch"; levelid3 = ""; %end; output; %end; %end; dataset = "t6counts"; %do f = 1 %to 3; %do s = 1 %to &stratlevels.; table = "F&f."; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =3; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = ""; levelid2 = "year"; levelid3 = "month year"; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelid2 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) year"; levelid3 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) month year"; %end; output; %end; %end; %do f = 4 %to 9; %if %eval(&f.=4) | %eval(&f.=6) | %eval(&f.=8) %then %do; dataset = "t6plota"; %end; %if %eval(&f.=5) | %eval(&f.=7) | %eval(&f.=9) %then %do; dataset = "t6plotb"; %end; table = "F&f."; tablesub= "overall"; levelnum =1; levelid1 = "ttswitch"; levelid2 = ""; levelid3 = ""; output; %end; run; /*Output T6 files*/ /*t6tablefile*/ data tempfl.t6tablefile; set lookup_t6tablefigurefile(where=(substr(table,1,1)='T')); run; /*t6figurefile*/ data tempfl.t6figurefile; set lookup_t6tablefigurefile(where=(substr(table,1,1)='F')); drop tablesubstrat; rename tablesub=figuresub; rename table=figure; xmin = .; xmax = .; xtick = .; ymin = .; ymax = .; ytick = .; includeatrisktable = 'N'; format censordisplay $50.; censordisplay = ''; drop categories censorreason; run; ************************************* REPORTTYPE = ITS files: - ITSTableFile - ITSFigureFile *************************************; %let stratLevel = overall|sex|agegroup|race|hispanic; %let stratlevels = %sysfunc(countw(&stratLevel.,'|')); %let intervallist = year|month year|quarter year; data lookup_its_tablefigurefile; retain table dataset tablesub tablesubstrat levelnum levelid1 levelid2 levelid3 includeinreport categories; format table $5. dataset $15. tablesubstrat $25. tablesub $40. levelid1 levelid2 levelid3 $55. categories $100.; includeinreport = 'N'; categories = ''; call missing(tablesubstrat); dataset = "t2its"; %do t = 1 %to 2; %do int = 1 %to 3; %do s = 1 %to &stratlevels.; table = "T&t."; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =1; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = "%sysfunc(left(%scan(%str(&intervallist.), &int, '|')))"; levelid2 = ""; levelid3 = ""; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) %sysfunc(left(%scan(%str(&intervallist.), &int, '|')))"; levelid2 = ""; levelid3 = ""; %end; output; %end; %end; %end; dataset = "t2itsprev"; %do t = 1 %to 2; %do int = 1 %to 3; %do s = 1 %to &stratlevels.; table = "T&t."; tablesub= "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|')))"; levelnum =1; %if %sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) = overall %then %do; levelid1 = "%sysfunc(left(%scan(%str(&intervallist.), &int, '|')))"; levelid2 = ""; levelid3 = ""; %end; %else %do; levelid1 = "%sysfunc(left(%scan(%str(&stratLevel.), &s, '|'))) %sysfunc(left(%scan(%str(&intervallist.), &int, '|')))"; levelid2 = ""; levelid3 = ""; %end; output; %end; %end; %end; run; /*Output ITS files*/ /*ITStablefile*/ data tempfl.ITStablefile; set lookup_its_tablefigurefile(where=(substr(table,1,1)='T')); run; /*ITSfigurefile*/ data tempfl.ITSfigurefile; set lookup_its_tablefigurefile(where=(table='T1')); table = 'F1'; drop tablesubstrat; rename tablesub=figuresub; rename table=figure; xmin = .; xmax = .; xtick = .; ymin = .; ymax = .; ytick = .; includeatrisktable = 'N'; format censordisplay $50.; censordisplay = ''; drop categories; run; /*Clean up*/ proc datasets nowarn noprint; delete lookup:; quit; %macro create_t1t2_tablecolumns(); ************************************* TableColumnsFile for T1 and T2L1: - T1cida - T2cida - T2conc *************************************; data tablecolumnsfile; attrib Table length = $10 format = $10. IncludeinReport length = $1 format = $1. Column length = $50 format = $50. Order length = 3 format = 3. ColumnLabel length = $100 format = $100. ColumnFormat length = $10 format = $10. CIrate length = $1 format = $1. ColumnWidth length = 8 DefOrder length = 3 format = 3.; Table = "t1cida"; Column = "Npts"; ColumnLabel = "Number of Patients"; ColumnFormat = "comma14.0"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "Y"; Order = 1; DefOrder = 1; output; Table = "t2cida"; output; Table = "t2conc"; ColumnLabel = "Number of Patients with a Concomitant Episode"; output; Table = "t1cida"; Column = "Episodes"; ColumnLabel = "Number of Index Dates"; ColumnFormat = "comma14.0"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "Y"; Order = 2; DefOrder = 2; output; Table = "t2cida"; ColumnLabel = "Number of Exposure Episodes"; output; Table = "t2conc"; ColumnLabel = "Number of Concomitant Episodes"; output; Table = "t1cida"; Column = "DenNumPts"; ColumnLabel = "Number of Eligible Members"; ColumnFormat = "comma14.0"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "Y"; Order = 3; DefOrder = 7; output; Table = "t2cida"; Order = 19; DefOrder = 11; output; Table = "t1cida"; Column = "DenNumMemDays"; ColumnLabel = "Total Eligible Member-Days"; ColumnFormat = "comma14.0"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "Y"; Order = 4; DefOrder = 8; output; Table = "t2cida"; Order = 21; DefOrder = 12; output; Table = "t1cida"; Column = "DenNumMemDays/365.25"; ColumnLabel = "Total Eligible Member-Years"; ColumnFormat = "comma13.1"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "Y"; Order = 5; DefOrder = 9; output; Table = "t2cida"; Order = 20; DefOrder = 13; output; Table = "t1cida"; Column = "(Npts/DenNumPts)*X"; ColumnLabel = "Number of Patients per X Eligible Members"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "N"; IncludeinReport = "N"; Order = 6; DefOrder = .; output; Table = "t2cida"; Order = 22; output; Table = "t1cida"; Column = "(npts/dennumpts)*X"; ColumnLabel = "Number of Patients per X Eligible Members (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "P"; IncludeinReport = "N"; Order = 7; DefOrder = .; output; Table = "t1cida"; Column = "npts/dennumpts"; ColumnLabel = "Number of Patients per Eligible Member (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "P"; IncludeinReport = "N"; Order = 8; DefOrder = .; output; Table = "t1cida"; Column = "npts/dennummemdays"; ColumnLabel = "Number of Patients per Eligible Member-Day (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "R"; IncludeinReport = "N"; Order = 9; DefOrder = .; output; Table = "t1cida"; Column = "npts/(dennummemdays/365.25)"; ColumnLabel = "Number of Patients per Eligible Member-Year (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "R"; IncludeinReport = "N"; Order = 10; DefOrder = .; output; Table = "t1cida"; Column = "(npts/dennummemdays)*X"; ColumnLabel = "Number of Patients per X Eligible Member-Days (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "R"; IncludeinReport = "N"; Order = 11; DefOrder = .; output; Table = "t1cida"; Column = "(npts/(dennummemdays/365.25))*X"; ColumnLabel = "Number of Patients per X Eligible Member-Years (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "R"; IncludeinReport = "N"; Order = 12; DefOrder = .; output; Table = "t1cida"; Column = "AdjustedCodeCount"; ColumnLabel = "Number of Index Date Defining-Dispensings (Adjusted for Same-Day Dispensings)"; ColumnFormat = "comma14.0"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "Y"; Order = 13; DefOrder = 3; output; Table = "t2cida"; ColumnLabel = "Number of Exposure Episode Defining-Dispensings (Adjusted for Same-Day Dispensings)"; Order = 24; output; Table = "t2conc"; Order = 19; output; Table = "t1cida"; Column = "RawCodeCount"; ColumnLabel = "Number of Index Date Defining-Dispensings (Not Adjusted for Same-Day Dispensings)"; ColumnFormat = "comma14.0"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "Y"; Order = 14; DefOrder = 4; output; Table = "t2cida"; ColumnLabel = "Number of Exposure Episode Defining-Dispensings (Not Adjusted for Same-Day Dispensings)"; Order = 26; output; Table = "t2conc"; Order = 21; output; Table = "t1cida"; Column = "AdjustedCodeCount/Npts"; ColumnLabel = "Number of Index Date Defining-Dispensings per Patient (Adjusted for Same-Day Dispensings)"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 15; DefOrder = .; output; Table = "t2cida"; ColumnLabel = "Number of Exposure Episode Defining-Dispensings per Patient (Adjusted for Same-Day Dispensings)"; Order = 25; output; Table = "t2conc"; Order = 20; output; Table = "t1cida"; Column = "RawCodeCount/Npts"; ColumnLabel = "Number of Index Date Defining-Dispensings per Patient (Not Adjusted for Same-Day Dispensings)"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 16; DefOrder = .; output; Table = "t2cida"; ColumnLabel = "Number of Exposure Episode Defining-Dispensings per Patient (Not Adjusted for Same-Day Dispensings)"; Order = 27; output; Table = "t2conc"; Order = 22; output; Table = "t1cida"; Column = "DaySupp"; ColumnLabel = "Total Days Supply in Index Date Defining-Records"; ColumnFormat = "comma14.0"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "Y"; Order = 17; DefOrder = 5; output; Table = "t2cida"; ColumnLabel = "Total Days Supply During Exposure Episodes"; Order = 28; output; Table = "t2conc"; ColumnLabel = "Total Days Supply During Concomitant Episodes"; Order = 23; output; Table = "t1cida"; Column = "DaySupp/Npts"; ColumnLabel = "Mean Days Supply per Patient"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 18; DefOrder = .; output; Table = "t2cida"; Order = 29; output; Table = "t2conc"; Order = 24; output; Table = "t1cida"; Column = "DaySupp/Episodes"; ColumnLabel = "Mean Days Supply per Index Date"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 19; DefOrder = .; output; Table = "t2cida"; ColumnLabel = "Mean Days Supply per Exposure Episode"; Order = 30; output; Table = "t2conc"; ColumnLabel = "Mean Days Supply per Concomitant Episode"; Order = 25; output; Table = "t1cida"; Column = "DaySupp/AdjustedCodeCount"; ColumnLabel = "Mean Days Supply per Index Date Defining-Record (Adjusted for Same-Day Dispensings)"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 20; DefOrder = .; output; Table = "t2cida"; ColumnLabel = "Mean Days Supply per Exposure Episode (Adjusted for Same-Day Records)"; Order = 31; output; Table = "t2conc"; ColumnLabel = "Mean Days Supply per Concomitant Episode (Adjusted for Same-Day Records)"; Order = 26; output; Table = "t1cida"; Column = "DaySupp/RawCodeCount"; ColumnLabel = "Mean Days Supply per Index Date Defining-Record (Not Adjusted for Same-Day Dispensings)"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 21; DefOrder = .; output; Table = "t2cida"; ColumnLabel = "Mean Days Supply per Exposure Episode (Not Adjusted for Same-Day Records)"; Order = 32; output; Table = "t2conc"; ColumnLabel = "Mean Days Supply per Concomitant Episode (Not Adjusted for Same-Day Records)"; Order = 27; output; Table = "t1cida"; Column = "AmtSupp"; ColumnLabel = "Total Amount Supplied in Index Date Defining-Records"; ColumnFormat = "comma14.0"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "Y"; Order = 22; DefOrder = 6; output; Table = "t2cida"; ColumnLabel = "Total Amount Supplied During Exposure Episodes"; Order = 33; output; Table = "t2conc"; ColumnLabel = "Total Amount Supplied During Concomitant Episodes"; Order = 28; output; Table = "t1cida"; Column = "AmtSupp/Npts"; ColumnLabel = "Mean Amount Supplied per Patient"; ColumnFormat = "comma13.2"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "N"; Order = 23; DefOrder = .; output; Table = "t2cida"; Order = 34; output; Table = "t2conc"; Order = 29; output; Table = "t1cida"; Column = "AmtSupp/Episodes"; ColumnLabel = "Mean Amount Supplied per Index Date"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 24; DefOrder = .; output; Table = "t2cida"; ColumnLabel = "Mean Amount Supplied per Exposure Episode"; Order = 35; output; Table = "t2conc"; ColumnLabel = "Mean Amount Supplied per Concomitant Episode"; Order = 30; output; Table = "t1cida"; Column = "AmtSupp/AdjustedCodeCount"; ColumnLabel = "Mean Amount Supplied per Index Date Defining-Record (Adjusted for Same-Day Dispensings)"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 25; DefOrder = .; output; Table = "t2cida"; ColumnLabel = "Mean Amount Supplied per Exposure Episode (Adjusted for Same-Day Records)"; Order = 36; output; Table = "t2conc"; ColumnLabel = "Mean Amount Supplied per Concomitant Episode (Adjusted for Same-Day Records)"; Order = 31; output; Table = "t1cida"; Column = "AmtSupp/RawCodeCount"; ColumnLabel = "Mean Amount Supplied per Index Date Defining-Record (Not Adjusted for Same-Day Dispensings)"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 26; DefOrder = .; output; Table = "t2cida"; ColumnLabel = "Mean Amount Supplied per Exposure Episode (Not Adjusted for Same-Day Records)"; Order = 37; output; Table = "t2conc"; ColumnLabel = "Mean Amount Supplied per Concomitant Episode (Not Adjusted for Same-Day Records)"; Order = 32; output; Table = "t1cida"; Column = "timetocensor/365.25"; ColumnLabel = "Total Observable Years"; ColumnFormat = "comma13.1"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "N"; Order = 27; DefOrder = .; output; Table = "t2cida"; Order = 38; output; Table = "t1cida"; Column = "timetocensor"; ColumnLabel = "Total Observable Days"; ColumnFormat = "comma13.0"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 28; DefOrder = .; output; Table = "t2cida"; Order = 39; output; Table = "t2cida"; Column = "All_Events"; ColumnLabel = "Total Number of Events"; ColumnFormat = "comma14.0"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "Y"; Order = 3; DefOrder = 8; output; Table = "t2conc"; output; Table = "t2cida"; Column = "Eps_wEvents"; ColumnLabel = "Number of Exposure Episodes with an Event"; ColumnFormat = "comma14.0"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "Y"; Order = 4; DefOrder = 7; output; Table = "t2conc"; ColumnLabel = "Number of Concomitant Episodes with an Event"; output; Table = "t2cida"; Column = "Eps_wEvents/Npts"; ColumnLabel = "Proportion of Patients with an Event"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 5; DefOrder = .; output; Table = "t2conc"; output; Table = "t2cida"; Column = "Eps_wEvents/Episodes"; ColumnLabel = "Proportion of Exposure Episodes with an Event"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 6; DefOrder = .; output; Table = "t2conc"; ColumnLabel = "Proportion of Concomitant Episodes with an Event"; output; Table = "t2cida"; Column = "eps_wevents/episodes"; ColumnLabel = "Proportion of Exposure Episodes with an Event (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "P"; IncludeinReport = "N"; Order = 7; DefOrder = .; output; Table = "t2conc"; ColumnLabel = "Proportion of Concomitant Episodes with an Event (95% Confidence Interval)"; output; Table = "t2cida"; Column = "(eps_wevents/episodes)*X"; ColumnLabel = "Number of Exposure Episodes with an Event per X Exposure Episodes (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "P"; IncludeinReport = "N"; Order = 8; DefOrder = .; output; Table = "t2conc"; ColumnLabel = "Number of Concomitant Episodes with an Event per X Concomitant Episodes (95% Confidence Interval)"; output; Table = "t2cida"; Column = "followuptime/365.25"; ColumnLabel = "Total Years at Risk"; ColumnFormat = "comma13.1"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "Y"; Order = 9; DefOrder = 10; output; Table = "t2conc"; output; Table = "t2cida"; Column = "followuptime"; ColumnLabel = "Total Days at Risk"; ColumnFormat = "comma14.0"; ColumnWidth = .82; CIrate = "N"; IncludeinReport = "Y"; Order = 10; DefOrder = 9; output; Table = "t2conc"; output; Table = "t2cida"; Column = "Eps_wEvents/(followuptime/365.25)"; ColumnLabel = "Number of Exposure Episodes with an Event per Patient-Year at Risk"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 11; DefOrder = .; output; Table = "t2conc"; ColumnLabel = "Event Rate per Patient-Year at Risk"; output; Table = "t2cida"; Column = "eps_wevents/(followuptime/365.25)"; ColumnLabel = "Event Rate per Patient-Year at Risk (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "R"; IncludeinReport = "N"; Order = 12; DefOrder = .; output; Table = "t2conc"; output; Table = "t2cida"; Column = "(Eps_wEvents/(followuptime/365.25))*X"; ColumnLabel = "Event Rate per X Patient-Years at Risk"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 13; DefOrder = .; output; Table = "t2conc"; output; Table = "t2cida"; Column = "(eps_wevents/(followuptime/365.25))*X"; ColumnLabel = "Event Rate per X Patient-Years at Risk (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "R"; IncludeinReport = "N"; Order = 14; DefOrder = .; output; Table = "t2conc"; output; Table = "t2cida"; Column = "eps_wevents/(followuptime/30.35)"; ColumnLabel = "Event Rate per Patient-Month at Risk (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "R"; IncludeinReport = "N"; Order = 15; DefOrder = .; output; Table = "t2conc"; output; Table = "t2cida"; Column = "(eps_wevents/(followuptime/30.35))*X"; ColumnLabel = "Event Rate per X Patient-Months at Risk (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "R"; IncludeinReport = "N"; Order = 16; DefOrder = .; output; Table = "t2conc"; output; Table = "t2cida"; Column = "eps_wevents/followuptime"; ColumnLabel = "Event Rate per Patient-Day at Risk (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "R"; IncludeinReport = "N"; Order = 17; DefOrder = .; output; Table = "t2conc"; output; Table = "t2cida"; Column = "(eps_wevents/followuptime)*X"; ColumnLabel = "Event Rate per X Patient-Days at Risk (95% Confidence Interval)"; ColumnFormat = "comma13.2"; ColumnWidth = 1.5; CIrate = "R"; IncludeinReport = "N"; Order = 18; DefOrder = .; output; Table = "t2conc"; output; Table = "t2cida"; Column = "(Eps_wEvents/DenNumPts)*X"; ColumnLabel = "Number of Exposure Episodes with an Event per X Eligible Member-Years"; ColumnFormat = "comma13.2"; ColumnWidth = .72; CIrate = "N"; IncludeinReport = "N"; Order = 23; DefOrder = .; output; run; proc sort data = tablecolumnsfile ; by table deforder; run; /* Re-assign order for default table */ data tempfl.t1t2_tablecolumnsfile_default (drop = deforder); set tablecolumnsfile (where = (includeinreport = "Y")); order=deforder; run; proc sort data = tablecolumnsfile; by table order; run; /* Assign includeinreport to N for all variables on the tablecolumnsfile_all dataset */ data tempfl.t1t2_tablecolumnsfile_all; set tablecolumnsfile (drop=deforder); includeinreport = "N"; run; %mend create_t1t2_tablecolumns; %create_t1t2_tablecolumns(); %macro create_t4_tablecolumns(); ************************************* TableColumnsFile for T4 *************************************; data tempfl.t4_tablecolumnsfile_default; attrib Table length = $10 format = $10. Column length = $50 format = $50. Order length = 3 format = 3. ColumnLabel length = $100 format = $100. IncludeinReport length = $1 format = $1. ColumnFormat length = $10 format = $10. ColumnWidth length = 8; table = "T1"; Column = "usepre"; ColumnLabel = "Use in the Pre-Pregnancy Period"; ColumnFormat = "comma14.0"; order = 1; IncludeinReport = "Y"; columnwidth=.9; output; table = "T1"; Column = "usepre/episodes"; ColumnLabel = "Use in the Pre-Pregnancy Period"; ColumnFormat = "percent8.1"; order = 2; IncludeinReport = "Y"; columnwidth=.7; output; table = "T1"; Column = "anyt"; ColumnLabel = "Use During Any Trimester"; ColumnFormat = "comma14.0"; order = 3; IncludeinReport = "Y"; columnwidth=.9; output; table = "T1"; Column = "anyt/episodes"; ColumnLabel = "Use During Any Trimester"; ColumnFormat = "percent8.1"; order = 4; IncludeinReport = "Y"; columnwidth=.7; output; table = "T1"; Column = "anyt1"; ColumnLabel = "Use in First Trimester"; ColumnFormat = "comma14.0"; order = 5; IncludeinReport = "Y"; columnwidth=.9; output; table = "T1"; Column = "anyt1/episodes"; ColumnLabel = "Use in First Trimester"; ColumnFormat = "percent8.1"; order = 6; IncludeinReport = "Y"; columnwidth=.7; output; table = "T1"; Column = "anyt2"; ColumnLabel = "Use in Second Trimester"; ColumnFormat = "comma14.0"; order = 7; IncludeinReport = "Y"; columnwidth=.9; output; table = "T1"; Column = "anyt2/episodes_2trim"; ColumnLabel = "Use in Second Trimester"; ColumnFormat = "percent8.1"; order = 8; IncludeinReport = "Y"; columnwidth=.7; output; table = "T1"; Column = "anyt3"; ColumnLabel = "Use in Third Trimester"; ColumnFormat = "comma14.0"; order = 9; IncludeinReport = "Y"; columnwidth=.9; output; table = "T1"; Column = "anyt3/episodes_3trim"; ColumnLabel = "Use in Third Trimester"; ColumnFormat = "percent8.1"; order = 10; IncludeinReport = "Y"; columnwidth=.7; output; table = "T1"; Column = "allt"; ColumnLabel = "Use in All Trimesters"; ColumnFormat = "comma14.0"; order = 11; IncludeinReport = "Y"; columnwidth=.9; output; table = "T1"; Column = "allt/episodes_3trim"; ColumnLabel = "Use in All Trimesters"; ColumnFormat = "percent8.1"; order = 12; IncludeinReport = "Y"; columnwidth=.7; output; table = "T1"; Column = "onlyt1"; ColumnLabel = "Use Only During First Trimester"; ColumnFormat = "comma14.0"; order = 13; IncludeinReport = "Y"; columnwidth=.9; output; table = "T1"; Column = "onlyt1/episodes"; ColumnLabel = "Use Only During First Trimester"; ColumnFormat = "percent8.1"; order = 14; IncludeinReport = "Y"; columnwidth=.7; output; table = "T1"; Column = "onlyt2"; ColumnLabel = "Use Only During Second Trimester"; ColumnFormat = "comma14.0"; order = 15; IncludeinReport = "Y"; columnwidth=.9; output; table = "T1"; Column = "onlyt2/episodes_2trim"; ColumnLabel = "Use Only During Second Trimester"; ColumnFormat = "percent8.1"; order = 16; IncludeinReport = "Y"; columnwidth=.7; output; table = "T1"; Column = "onlyt3"; ColumnLabel = "Use Only During Third Trimester"; ColumnFormat = "comma14.0"; order = 17; IncludeinReport = "Y"; columnwidth=.9; output; table = "T1"; Column = "onlyt3/episodes_3trim"; ColumnLabel = "Use Only During Third Trimester"; ColumnFormat = "percent8.1"; order = 18; IncludeinReport = "Y"; columnwidth=.7; output; table = "T2"; Column = "sumusepre"; ColumnLabel = "Exposure Episodes in the Pre-Pregnancy Period"; ColumnFormat = "comma14.0"; order = 19; IncludeinReport = "Y"; columnwidth=.9; output; table = "T2"; Column = "sumanyt"; ColumnLabel = "Exposure Episodes During Any Trimester"; ColumnFormat = "comma14.0"; order = 20; IncludeinReport = "Y"; columnwidth=.9; output; table = "T2"; Column = "sumanyt1"; ColumnLabel = "Exposure Episodes in First Trimester"; ColumnFormat = "comma14.0"; order = 21; IncludeinReport = "Y"; columnwidth=.9; output; table = "T2"; Column = "sumanyt2"; ColumnLabel = "Exposure Episodes in Second Trimester"; ColumnFormat = "comma14.0"; order = 22; IncludeinReport = "Y"; columnwidth=.9; output; table = "T2"; Column = "sumanyt3"; ColumnLabel = "Exposure Episodes in Third Trimester"; ColumnFormat = "comma14.0"; order = 23; IncludeinReport = "Y"; columnwidth=.9; output; table = "T2"; Column = "sumallt"; ColumnLabel = "Exposure Episodes in All Trimesters"; ColumnFormat = "comma14.0"; order = 24; IncludeinReport = "Y"; columnwidth=.9; output; table = "T2"; Column = "sumonlyt1"; ColumnLabel = "Exposure Episodes Only During First Trimester"; ColumnFormat = "comma14.0"; order = 25; IncludeinReport = "Y"; columnwidth=.9; output; table = "T2"; Column = "sumonlyt2"; ColumnLabel = "Exposure Episodes Only During Second Trimester"; ColumnFormat = "comma14.0"; order = 26; IncludeinReport = "Y"; columnwidth=.9; output; table = "T2"; Column = "sumonlyt3"; ColumnLabel = "Exposure Episodes Only During Third Trimester"; ColumnFormat = "comma14.0"; order = 27; IncludeinReport = "Y"; columnwidth=.9; output; table = "T3"; Column = "sumrawcntpre"; ColumnLabel = "Codes in the Pre-Pregnancy Period"; ColumnFormat = "comma14.0"; order = 28; IncludeinReport = "Y"; columnwidth=.9; output; table = "T3"; Column = "sumrawcntanyt"; ColumnLabel = "Codes During Any Trimester"; ColumnFormat = "comma14.0"; order = 29; IncludeinReport = "Y"; columnwidth=.9; output; table = "T3"; Column = "sumrawcntanyt1"; ColumnLabel = "Codes in First Trimester"; ColumnFormat = "comma14.0"; order = 30; IncludeinReport = "Y"; columnwidth=.9; output; table = "T3"; Column = "sumrawcntanyt2"; ColumnLabel = "Codes in Second Trimester"; ColumnFormat = "comma14.0"; order = 31; IncludeinReport = "Y"; columnwidth=.9; output; table = "T3"; Column = "sumrawcntanyt3"; ColumnLabel = "Codes in Third Trimester"; ColumnFormat = "comma14.0"; order = 32; IncludeinReport = "Y"; columnwidth=.9; output; table = "T3"; Column = "sumrawcntallt"; ColumnLabel = "Codes in All Trimesters"; ColumnFormat = "comma14.0"; order = 33; IncludeinReport = "Y"; columnwidth=.9; output; table = "T3"; Column = "sumrawcntonlyt1"; ColumnLabel = "Codes Only During First Trimester"; ColumnFormat = "comma14.0"; order = 34; IncludeinReport = "Y"; columnwidth=.9; output; table = "T3"; Column = "sumrawcntonlyt2"; ColumnLabel = "Codes Only During Second Trimester"; ColumnFormat = "comma14.0"; order = 35; IncludeinReport = "Y"; columnwidth=.9; output; table = "T3"; Column = "sumrawcntonlyt3"; ColumnLabel = "Codes Only During Third Trimester"; ColumnFormat = "comma14.0"; order = 36; IncludeinReport = "Y"; columnwidth=.9; output; table = "T4"; Column = "sumadjcntpre"; ColumnLabel = "Codes in the Pre-Pregnancy Period"; ColumnFormat = "comma14.0"; order = 37; IncludeinReport = "Y"; columnwidth=.9; output; table = "T4"; Column = "sumadjcntanyt"; ColumnLabel = "Codes During Any Trimester"; ColumnFormat = "comma14.0"; order = 38; IncludeinReport = "Y"; columnwidth=.9; output; table = "T4"; Column = "sumadjcntanyt1"; ColumnLabel = "Codes in First Trimester"; ColumnFormat = "comma14.0"; order = 39; IncludeinReport = "Y"; columnwidth=.9; output; table = "T4"; Column = "sumadjcntanyt2"; ColumnLabel = "Codes in Second Trimester"; ColumnFormat = "comma14.0"; order = 40; IncludeinReport = "Y"; columnwidth=.9; output; table = "T4"; Column = "sumadjcntanyt3"; ColumnLabel = "Codes in Third Trimester"; ColumnFormat = "comma14.0"; order = 41; IncludeinReport = "Y"; columnwidth=.9; output; table = "T4"; Column = "sumadjcntallt"; ColumnLabel = "Codes in All Trimesters"; ColumnFormat = "comma14.0"; order = 42; IncludeinReport = "Y"; columnwidth=.9; output; table = "T4"; Column = "sumadjcntonlyt1"; ColumnLabel = "Codes Only During First Trimester"; ColumnFormat = "comma14.0"; order = 43; IncludeinReport = "Y"; columnwidth=.9; output; table = "T4"; Column = "sumadjcntonlyt2"; ColumnLabel = "Codes Only During Second Trimester"; ColumnFormat = "comma14.0"; order = 44; IncludeinReport = "Y"; columnwidth=.9; output; table = "T4"; Column = "sumadjcntonlyt3"; ColumnLabel = "Codes Only During Third Trimester"; ColumnFormat = "comma14.0"; order = 45; IncludeinReport = "Y"; columnwidth=.9; output; table = "T5"; Column = "moipregepisodes_overlap"; ColumnLabel = "Gestational Week"; ColumnFormat = "comma14.0"; order = 1; IncludeinReport = "Y"; columnwidth=.9; output; table = "T5"; Column = "moipregepisodes_overlap/pregepisodes"; ColumnLabel = "Gestational Week"; ColumnFormat = "percent8.1"; order = 2; IncludeinReport = "Y"; columnwidth=.7; output; table = "T6"; Column = "moiepisodes_overlap"; ColumnLabel = "Gestational Week"; ColumnFormat = "comma14.0"; order = 3; IncludeinReport = "Y"; columnwidth=.9; output; run; %mend create_t4_tablecolumns; %create_t4_tablecolumns(); %mend; %create_templatefiles();