**************************************************************************************************** * PROGRAM OVERVIEW **************************************************************************************************** * * PROGRAM: t5tables_driver.sas * Created (mm/dd/yyyy): 08/06/2021 * *-------------------------------------------------------------------------------------------------- * PURPOSE: The driver macro produces tables for a Type 5 report * * Program inputs: * * Program outputs: * * PARAMETERS: * * Programming Notes: * * *-------------------------------------------------------------------------------------------------- * CONTACT INFO: * Sentinel Coordinating Center * info@sentinelsystem.org * ***************************************************************************************************; %macro t5tables_driver(); %put =====> MACRO CALLED: t5tables_driver ; *** Distribution of days supplied per dispensing (using AdjustedCodeCount) ***; %if %sysfunc(prxmatch(m/T1\b|T2\b/i,&tablelist.)) > 0 %then %do; %t5tables_createdata(dataset=agg_t5disp, whereclause= 1, catvar=daysupp, countvar=adjustedcodecount, cattableid=T1, disttableid=T2, catvarsort=, createfootnote=N); %end; *** Distribution of total episode duration ***; %if %sysfunc(prxmatch(m/T3\b|T4\b/i,&tablelist.)) > 0 %then %do; %t5tables_createdata(dataset=agg_t5episdur, whereclause= 1, catvar=cumepisodelength, countvar=npts, cattableid=T3, disttableid=T4, catvarsort=, createfootnote=N); %end; *** Distribution of episode duration ***; %if %sysfunc(prxmatch(m/T5\b|T6\b/i,&tablelist.)) > 0 %then %do; %t5tables_createdata(dataset=agg_t5episdur, whereclause= 1, catvar=episodelength, countvar=episodes, cattableid=T5, disttableid=T6, catvarsort=, createfootnote=N); %end; %if %sysfunc(prxmatch(m/T7\b|T8\b/i,&tablelist.)) > 0 %then %do; %t5tables_createdata(dataset=agg_t5episdur, whereclause=(episodenum <=1), catvar=episodelength, countvar=episodes, cattableid=T7, disttableid=T8, catvarsort=, createfootnote=N); %end; %if %sysfunc(prxmatch(m/T9\b|T10\b/i,&tablelist.)) > 0 %then %do; %t5tables_createdata(dataset=agg_t5episdur, whereclause=(episodenum >=2), catvar=episodelength, countvar=episodes, cattableid=T9, disttableid=T10, catvarsort=, createfootnote=N); %end; *********************; *** Gap analysis ****; *********************; %if %sysfunc(prxmatch(m/T11\b/i,&tablelist.)) > 0 %then %do; %t5tables_createdata(dataset=agg_t5gaps, whereclause=1, catvar=gaplength, countvar=episodes, cattableid=, disttableid=T11, catvarsort=, createfootnote=N); %end; %if %sysfunc(prxmatch(m/T12\b/i,&tablelist.)) > 0 %then %do; %t5tables_createdata(dataset=agg_t5gaps, whereclause=(gapnum <=1), catvar=gaplength, countvar=episodes, cattableid=, disttableid=T12, catvarsort=, createfootnote=N); %end; %if %sysfunc(prxmatch(m/T13\b/i,&tablelist.)) > 0 %then %do; %t5tables_createdata(dataset=agg_t5gaps, whereclause=(gapnum >=2), catvar=gaplength, countvar=episodes, cattableid=, disttableid=T13, catvarsort=, createfootnote=N); %end; *********************; *** Dose analysis ***; *********************; /*current filled daily dose*/ %if %sysfunc(prxmatch(m/T18\b/i,&tablelist.)) > 0 %then %do; %t5tables_createdata(dataset=agg_t5disp, whereclause=1, catvar=cfdd_output_cat, countvar=adjustedcodecount, cattableid=T18, disttableid=, catvarsort=cfdd_output_cat_sort, createfootnote=Y, dosevar=cfdd, totalcountdosevar=adjustedcodecount); %end; /*average filled daily dose*/ %if %sysfunc(prxmatch(m/T19\b/i,&tablelist.)) > 0 %then %do; %t5tables_createdata(dataset=agg_t5dose, whereclause=1, catvar=afdd_output_cat, countvar=episodes, cattableid=T19, disttableid=, catvarsort=afdd_output_cat_sort, createfootnote=Y, dosevar=afdd, totalcountdosevar=episodes); %end; %if %sysfunc(prxmatch(m/T20\b/i,&tablelist.)) > 0 %then %do; %t5tables_createdata(dataset=agg_t5dose, whereclause=(episodenum=1), catvar=afdd_output_cat, countvar=npts, cattableid=T20, disttableid=, catvarsort=afdd_output_cat_sort, createfootnote=Y, dosevar=afdd, totalcountdosevar=episodes); %end; /*cumulative dose*/ %if %sysfunc(prxmatch(m/T21\b/i,&tablelist.)) > 0 %then %do; %t5tables_createdata(dataset=agg_t5dose, whereclause=1, catvar=cumdose_output_cat, countvar=npts, cattableid=T21, disttableid=, catvarsort=cumdose_output_cat_sort, createfootnote=Y, dosevar=cumdose, totalcountdosevar=episodes); %end; %if %sysfunc(prxmatch(m/T22\b/i,&tablelist.)) > 0 %then %do; %t5tables_createdata(dataset=agg_t5dose, whereclause=(episodenum=1), catvar=cumdose_output_cat, countvar=npts, cattableid=T22, disttableid=, catvarsort=cumdose_output_cat_sort, createfootnote=Y, dosevar=cumdose, totalcountdosevar=episodes); %end; %put =====> END MACRO: t5tables_driver ; %mend t5tables_driver;