BookmarkSubscribeRSS Feed
manya92
Fluorite | Level 6

My output should look something like this

 ESRD Group
 Number of eventsPercentagesTotal Person yearsIncidence rate95% CI
Serious Infections      
Hospitalization required     
IV antibiotics required     
Types of Serious Infections     
Intestinal infectious diseases     
Zoonotic bacterial diseases     
Other bacterial diseases     
Human Immunodeficiency Virus     
Viral diseases accompanied by exanthema     
Arthropod-borne viral diseases     
Other diseases due to viruses & chlamydiae     
Rickettsioses & other arthropod-borne diseases     
Other spirochetal diseases     
Helminthiases       
Other infectious & parasitic diseases     
Late effects of infectious & parasitic diseases     
Opportunistic Infections     

 

This is my code

 

%macro incidence ;
	
	%do i = 1 %to 12 ;
	
		%let inf=%scan(int*zoo*othbact*hiv*vir*arth*chly*ricket*spiro*helminth*para*late, &i., *) ;
		
		/*intestinal infectious disease*/
		%let int=%str("001","002","003","004","005","006","007","008","009") ;
		
		/*zoonotic bacterial disease*/
		%let zoo=%str("020","021","022","023","024","025","026","027") ;
		
		/*other bacterial disease*/
		%let othbact=%str("030","031","032","033","034","035","036","037","038","039","040","041");
		
		/*hiv*/
		%let hiv=%str("042") ;
		
		/*viral diseases accompanied by exanthem*/
		%let vir=%str("050","051","052","053","054","055","056","057");
		
		/*arthropod-brone viral disease*/
		%let arth=%str("060","061","062","063","064","065","066");
		
		/*other diseases due to viruses and chlamydiae*/
		%let chly=%str("070","071","072","073","074","075","076","077","078","079");
		
		/*rickettsioses and otehr arthrpod-borne diseases*/
		%let ricket=%str("080","081","082","083","084","085","086","087","088");
		
		/*other spirochetal diseases*/
		%let spiro=%str("100","101","102","103","104");
	
		/*helminthiases*/
		%let helminth=%str("120","121","123","124","125","126","127","128","129");
		
		/*other infectious and parasitic diseases*/
		%let para=%str("130","131","132","133","134","135","136");
		
		/*late effects of infectious and parasitic diseases*/
		%let late=%str("137","138","139");
		
		
	/*FLAG PATIENT WITH SERIOUS INFECTIONS AFTER INDEX_DATE BUT BEFORE PERIOD_STOP*/;
	data _04_post_&inf. ;
		set derived._01_incidence;
		&inf. =1 ;
		where (code in:(&&&inf.)) and (index_date le svcdate le period_stop) ;
	run ;
	
	proc sort data = _04_post_&inf. nodupkey ;
		by enrolid svcdate ;
	run ;
	
	/*KEEP ONLY FIRST DIAGNOSTIC DATE*/
	data _04_post2_&inf.;
		set _04_post_&inf. ;
		by enrolid svcdate ;
		format first_svcdate_&inf. mmddyy10. ;
		if first.enrolid then first_svcdate_&inf. = svcdate;
	run ;
	
	proc sort data =_04_post2_&inf. nodupkey ;
		by enrolid svcdate ;
	run ;
	
	/*FLAG PATIENTS WITH SERIOUS INFECTIONS BEFORE THE INDEX_DATE */
	data _04_pre_&inf. ;
		set derived._01_incidence;
		pre_&inf. = 1 ;
		where (code in: (&&&inf.)) and (svcdate le index_date) ;
	run ;
	
	proc sort data  = _04_pre_&inf. nodupkey ;
		by enrolid svcdate ;
	run ;
	
	%end ;
	
	data _04_allevents ;
		merge _04_post2_int _04_post2_zoo _04_post2_othbact _04_post2_hiv _04_post2_vir _04_post2_arth 
		_04_post2_chly _04_post2_ricket _04_post2_spiro _04_post2_helminth _04_post2_para _04_post2_late
		_04_pre_int _04_pre_zoo _04_pre_othbact _04_pre_hiv _04_pre_vir _04_pre_arth  
		_04_pre_chly _04_pre_ricket _04_pre_spiro _04_pre_helminth _04_pre_para _04_pre_late 
		;
	by enrolid;
	run;
	
	/*left joining back to our cohort*/
	proc sql;
		create table _04_allevents2 as
		select distinct a.*
		from derived._01_incidence as a
		left join _04_allevents as b 
		on a.enrolid = b.enrolid ;
	quit ;
	
	
%mend incidence;
%incidence;
	

/*INCIDENCE RATE CALCULATION- INCIDENCE IS THE NUMBER OF NEW EVENTS OR NUMBER OF PATIENTS WHO HAD A SVCDATE FOR ANY SERIOUS INFECTION ON OR
AFTER THE INDEX_DATE DIVIDED BY THE NUMBER OF PERSON YEARS - WHICH IS PERIOD_STOP - SVCDATE / 365 DAYS FOR EACH PATIENT AT RISK 
(PATIENTS  AT RISK ARE ALL PATEINTS WHO HAD INCIDENCE OF A DISEASE AFTER THE INDEX_DATE UNTIL THEY GOT THE DISEASE*/

%macro inc_cal ;/*since we need to divide our results into specific infections we are making another macros to read al the codes
and then make seperate datasets of it accordingly*/

	%do i = 1 %to 12 ;
		
		%let inf = %scan(int*zoo*othbact*hiv*vir*arth*chly*ricket*spiro*helminth*para*late, &i., *) ;

		proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
			by enrolid ;
		run ;
		
		/*GETTING RID OF PATIENTS HAVING SVCDATE FOR INFECTIONS PRIOR TO THE INDEX DATE*/
		data _04_inc_cal1 ;
			set _04_inc_cal ;
			by enrolid ;
			if pre_&inf. =1 then delete ;
		run ;
		
		/*PERSON YEAR CALCULATION*/
			/*FINDING THE LAST DATE OF THE DATASET*/
				proc sql ;	
					create table test as 
					select max(period_stop) as date format mmddyy10.
					from dmk_scan.periods_cm_rx ;
				quit ;
		
		data _04_inc_cal2 ;
			set _04_inc_cal1 ;
			if &inf. =1 then py_&inf. = (min(period_stop, '30sep2017'D,first_svcdate_&inf.) - index_date +1)/365.25;
			else if &inf. = . then py_&inf. = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
			else if &inf. <0 then delete ;
		run ;
		
		proc sort data = _04_inc_cal2 ;
			by &inf. ;
		run ;
		
/*CREATING TABLE FOR INCIDENCE RATE CALCLUATION - CI, RATE CALCULATION , NO. OF NEW EVENTS, PY*/

	proc sql;
		create table _04_inc_table_&i. as
		select "&inf." as col
			, COUNT(enrolid) as N
			, SUM(&inf.) as events
			, SUM(py_&inf.) as PY
			, (SUM(&inf.)/SUM(py_&inf.))*100000 as IR
			, CINV(0.025,2*SUM(&inf.))/(2*SUM(py_&inf.))*100000 as Lower95
			, CINV(0.975,2*(SUM(&inf.)+1))/(2*SUM(py_&inf.))*100000 as Upper95
		from _04_inc_cal2 
		group by &inf. ;
	quit ;
	
	%end ;
	
	/*SET ALL THE DATASETS*/
	data derived._04_final_inc; 
		set _04_inc_table_1 - _04_inc_table_12 ;
	run ;
	
%mend inc_cal ;
%inc_cal;



	
	

and this is the result I am getting.

 

Obs col N events PY IR Lower95 Upper95123456789101112

int15282.44364.43...
zoo15282.44364.43...
oth15282.44364.43...
hiv15282.44364.43...
vir15282.44364.43...
art15282.44364.43...
chl15282.44364.43...
ric15282.44364.43...
spi15282.44364.43...
hel15282.44364.43...
par15282.44364.43...
lat15282.44364.43...

 

I cant see IR, or lower or upper CI. There are no errors or warnings in my code (just one warning about the length of a label). I don’t know how to get my output ?

 

this is my log

 98         %macro incidence ;
 99         
 100        %do i = 1 %to 12 ;
 101        
 102        %let inf=%scan(int*zoo*othbact*hiv*vir*arth*chly*ricket*spiro*helminth*para*late, &i., *) ;
 103        
 104        /*intestinal infectious disease*/
 105        %let int=%str("001","002","003","004","005","006","007","008","009") ;
 106        
 107        /*zoonotic bacterial disease*/
 108        %let zoo=%str("020","021","022","023","024","025","026","027") ;
 109        
 110        /*other bacterial disease*/
 111        %let othbact=%str("030","031","032","033","034","035","036","037","038","039","040","041");
 112        
 113        /*hiv*/
 114        %let hiv=%str("042") ;
 115        
 116        /*viral diseases accompanied by exanthem*/
 117        %let vir=%str("050","051","052","053","054","055","056","057");
 118        
 119        /*arthropod-brone viral disease*/
 120        %let arth=%str("060","061","062","063","064","065","066");
 121        
 122        /*other diseases due to viruses and chlamydiae*/
 123        %let chly=%str("070","071","072","073","074","075","076","077","078","079");
 124        
 125        /*rickettsioses and otehr arthrpod-borne diseases*/
 126        %let ricket=%str("080","081","082","083","084","085","086","087","088");
 127        
 128        /*other spirochetal diseases*/
 129        %let spiro=%str("100","101","102","103","104");
 130        
 131        /*helminthiases*/
 132        %let helminth=%str("120","121","123","124","125","126","127","128","129");
 133        
 134        /*other infectious and parasitic diseases*/
 135        %let para=%str("130","131","132","133","134","135","136");
 136        
 137        /*late effects of infectious and parasitic diseases*/
 138        %let late=%str("137","138","139");
 139        
 140        
 141        /*FLAG PATIENT WITH SERIOUS INFECTIONS AFTER INDEX_DATE BUT BEFORE PERIOD_STOP*/;
 142        data _04_post_&inf.  ;
 143        set derived._01_incidence;
 144        &inf. =1 ;
 145        where (code in:(&&&inf.)) and (index_date le svcdate le period_stop) ;
 146        run ;
 147        
 148        proc sort data = _04_post_&inf. nodupkey ;
 149        by enrolid svcdate ;
 150        run ;
 151        
 152        /*KEEP ONLY FIRST DIAGNOSTIC DATE*/
 153        data _04_post2_&inf.;
 154        set _04_post_&inf. ;
 155        by enrolid svcdate ;
 156        format first_svcdate_&inf. mmddyy10. ;
 157        if first.enrolid then first_svcdate_&inf. = svcdate;
 158        run ;
 159        
 160        proc sort data =_04_post2_&inf. nodupkey ;
 161        by enrolid svcdate ;
 162        run ;
 163        
 164        /*FLAG PATIENTS WITH SERIOUS INFECTIONS BEFORE THE INDEX_DATE */
 165        data _04_&inf._pre ;
 166        set derived._01_incidence;
 167         &inf._pre = 1 ;
 168         where (code in: (&&&inf.)) and (svcdate le index_date) ;
 169        run ;
 170        
 171        proc sort data  = _04_pre_&inf. nodupkey ;
 172        by enrolid svcdate ;
 173        run ;
 174        
 175        %end ;
 176        
 177        data _04_allevents ;
 178        merge _04_post2_int _04_post2_zoo _04_post2_othbact _04_post2_hiv _04_post2_vir _04_post2_arth
 179        _04_post2_chly _04_post2_ricket _04_post2_spiro _04_post2_helminth _04_post2_para _04_post2_late
 180        _04_int_pre _04_zoo_pre _04_othbact_pre _04_hiv_pre _04_vir_pre _04_arth_pre
 181        _04_chly_pre _04_ricket_pre _04_spiro_pre _04_helminth_pre _04_para_pre _04_late_pre
 182        ;
 183        by enrolid;
 184        run;
 185        
 186        /*left joining back to our cohort*/
 187        proc sql;
 188        create table _04_allevents2 as
 189        select distinct a.*
 190        from derived._01_incidence as a
 191        left join _04_allevents as b
 192        on a.enrolid = b.enrolid ;
 193        quit ;
 194        
 195        
 196        %mend incidence;
 197        %incidence;
 MLOGIC(INCIDENCE):  Beginning execution.
 MLOGIC(INCIDENCE):  %DO loop beginning; index variable I; start value is 1; stop value is 12; by value is 1.  
 MLOGIC(INCIDENCE):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 1
 MLOGIC(INCIDENCE):  %LET (variable name is INT)
 MLOGIC(INCIDENCE):  %LET (variable name is ZOO)
 MLOGIC(INCIDENCE):  %LET (variable name is OTHBACT)
 MLOGIC(INCIDENCE):  %LET (variable name is HIV)
 MLOGIC(INCIDENCE):  %LET (variable name is VIR)
 MLOGIC(INCIDENCE):  %LET (variable name is ARTH)
 MLOGIC(INCIDENCE):  %LET (variable name is CHLY)
 MLOGIC(INCIDENCE):  %LET (variable name is RICKET)
 MLOGIC(INCIDENCE):  %LET (variable name is SPIRO)
 MLOGIC(INCIDENCE):  %LET (variable name is HELMINTH)
 MLOGIC(INCIDENCE):  %LET (variable name is PARA)
 MLOGIC(INCIDENCE):  %LET (variable name is LATE)
 MPRINT(INCIDENCE):   ;
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INCIDENCE):   data _04_post_int ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INCIDENCE):   int =1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INT resolves to "001","002","003","004","005","006","007","008","009"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in:("001","002","003","004","005","006","007","008","009")) and (index_date le svcdate le 
 period_stop) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 3039 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('001', '002', '003', '004', '005', '006', '007', '008', '009') and (index_date<=svcdate) and 
       (svcdate<=period_stop);
 NOTE: The data set WORK._04_POST_INT has 3039 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.03 seconds
       cpu time            0.03 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INCIDENCE):   proc sort data = _04_post_int nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 3039 observations read from the data set WORK._04_POST_INT.
 NOTE: 114 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST_INT has 2925 observations and 7 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INCIDENCE):   data _04_post2_int;
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INCIDENCE):   set _04_post_int ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INCIDENCE):   format first_svcdate_int mmddyy10. ;
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INCIDENCE):   if first.enrolid then first_svcdate_int = svcdate;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 2925 observations read from the data set WORK._04_POST_INT.
 NOTE: The data set WORK._04_POST2_INT has 2925 observations and 8 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INCIDENCE):   proc sort data =_04_post2_int nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 2925 observations read from the data set WORK._04_POST2_INT.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST2_INT has 2925 observations and 8 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INCIDENCE):   data _04_int_pre ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INCIDENCE):   int_pre = 1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INT resolves to "001","002","003","004","005","006","007","008","009"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in: ("001","002","003","004","005","006","007","008","009")) and (svcdate le index_date) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 143 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('001', '002', '003', '004', '005', '006', '007', '008', '009') and (svcdate<=index_date);
 NOTE: The data set WORK._04_INT_PRE has 143 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.04 seconds
       cpu time            0.04 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INCIDENCE):   proc sort data = _04_pre_int nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is already sorted, no sorting done.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 MLOGIC(INCIDENCE):  %DO loop index variable I is now 2; loop will iterate again.
 MLOGIC(INCIDENCE):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 2
 MLOGIC(INCIDENCE):  %LET (variable name is INT)
 MLOGIC(INCIDENCE):  %LET (variable name is ZOO)
 MLOGIC(INCIDENCE):  %LET (variable name is OTHBACT)
 MLOGIC(INCIDENCE):  %LET (variable name is HIV)
 MLOGIC(INCIDENCE):  %LET (variable name is VIR)
 MLOGIC(INCIDENCE):  %LET (variable name is ARTH)
 MLOGIC(INCIDENCE):  %LET (variable name is CHLY)
 MLOGIC(INCIDENCE):  %LET (variable name is RICKET)
 MLOGIC(INCIDENCE):  %LET (variable name is SPIRO)
 MLOGIC(INCIDENCE):  %LET (variable name is HELMINTH)
 MLOGIC(INCIDENCE):  %LET (variable name is PARA)
 MLOGIC(INCIDENCE):  %LET (variable name is LATE)
 MPRINT(INCIDENCE):   ;
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INCIDENCE):   data _04_post_zoo ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INCIDENCE):   zoo =1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable ZOO resolves to "020","021","022","023","024","025","026","027"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in:("020","021","022","023","024","025","026","027")) and (index_date le svcdate le period_stop) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 12 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('020', '021', '022', '023', '024', '025', '026', '027') and (index_date<=svcdate) and (svcdate<=period_stop);
 NOTE: The data set WORK._04_POST_ZOO has 12 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.03 seconds
       cpu time            0.03 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INCIDENCE):   proc sort data = _04_post_zoo nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 12 observations read from the data set WORK._04_POST_ZOO.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST_ZOO has 12 observations and 7 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INCIDENCE):   data _04_post2_zoo;
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INCIDENCE):   set _04_post_zoo ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INCIDENCE):   format first_svcdate_zoo mmddyy10. ;
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INCIDENCE):   if first.enrolid then first_svcdate_zoo = svcdate;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 12 observations read from the data set WORK._04_POST_ZOO.
 NOTE: The data set WORK._04_POST2_ZOO has 12 observations and 8 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INCIDENCE):   proc sort data =_04_post2_zoo nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 12 observations read from the data set WORK._04_POST2_ZOO.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST2_ZOO has 12 observations and 8 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INCIDENCE):   data _04_zoo_pre ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INCIDENCE):   zoo_pre = 1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable ZOO resolves to "020","021","022","023","024","025","026","027"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in: ("020","021","022","023","024","025","026","027")) and (svcdate le index_date) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 0 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('020', '021', '022', '023', '024', '025', '026', '027') and (svcdate<=index_date);
 NOTE: The data set WORK._04_ZOO_PRE has 0 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.04 seconds
       cpu time            0.04 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INCIDENCE):   proc sort data = _04_pre_zoo nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is already sorted, no sorting done.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INCIDENCE):  %DO loop index variable I is now 3; loop will iterate again.
 MLOGIC(INCIDENCE):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 3
 MLOGIC(INCIDENCE):  %LET (variable name is INT)
 MLOGIC(INCIDENCE):  %LET (variable name is ZOO)
 MLOGIC(INCIDENCE):  %LET (variable name is OTHBACT)
 MLOGIC(INCIDENCE):  %LET (variable name is HIV)
 MLOGIC(INCIDENCE):  %LET (variable name is VIR)
 MLOGIC(INCIDENCE):  %LET (variable name is ARTH)
 MLOGIC(INCIDENCE):  %LET (variable name is CHLY)
 MLOGIC(INCIDENCE):  %LET (variable name is RICKET)
 MLOGIC(INCIDENCE):  %LET (variable name is SPIRO)
 MLOGIC(INCIDENCE):  %LET (variable name is HELMINTH)
 MLOGIC(INCIDENCE):  %LET (variable name is PARA)
 MLOGIC(INCIDENCE):  %LET (variable name is LATE)
 MPRINT(INCIDENCE):   ;
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INCIDENCE):   data _04_post_othbact ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INCIDENCE):   othbact =1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable OTHBACT resolves to "030","031","032","033","034","035","036","037","038","039","040","041"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in:("030","031","032","033","034","035","036","037","038","039","040","041")) and (index_date le 
 svcdate le period_stop) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 25816 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('030', '031', '032', '033', '034', '035', '036', '037', '038', '039', '040', '041') and (index_date<=svcdate) 
       and (svcdate<=period_stop);
 NOTE: The data set WORK._04_POST_OTHBACT has 25816 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.05 seconds
       cpu time            0.05 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INCIDENCE):   proc sort data = _04_post_othbact nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 25816 observations read from the data set WORK._04_POST_OTHBACT.
 NOTE: 2594 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST_OTHBACT has 23222 observations and 7 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.01 seconds
       cpu time            0.03 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INCIDENCE):   data _04_post2_othbact;
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INCIDENCE):   set _04_post_othbact ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INCIDENCE):   format first_svcdate_othbact mmddyy10. ;
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INCIDENCE):   if first.enrolid then first_svcdate_othbact = svcdate;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 23222 observations read from the data set WORK._04_POST_OTHBACT.
 NOTE: The data set WORK._04_POST2_OTHBACT has 23222 observations and 8 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INCIDENCE):   proc sort data =_04_post2_othbact nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 23222 observations read from the data set WORK._04_POST2_OTHBACT.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST2_OTHBACT has 23222 observations and 8 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.02 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INCIDENCE):   data _04_othbact_pre ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INCIDENCE):   othbact_pre = 1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable OTHBACT resolves to "030","031","032","033","034","035","036","037","038","039","040","041"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in: ("030","031","032","033","034","035","036","037","038","039","040","041")) and (svcdate le 
 index_date) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 666 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('030', '031', '032', '033', '034', '035', '036', '037', '038', '039', '040', '041') and (svcdate<=index_date);
 NOTE: The data set WORK._04_OTHBACT_PRE has 666 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.03 seconds
       cpu time            0.04 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INCIDENCE):   proc sort data = _04_pre_othbact nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is already sorted, no sorting done.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INCIDENCE):  %DO loop index variable I is now 4; loop will iterate again.
 MLOGIC(INCIDENCE):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 4
 MLOGIC(INCIDENCE):  %LET (variable name is INT)
 MLOGIC(INCIDENCE):  %LET (variable name is ZOO)
 MLOGIC(INCIDENCE):  %LET (variable name is OTHBACT)
 MLOGIC(INCIDENCE):  %LET (variable name is HIV)
 MLOGIC(INCIDENCE):  %LET (variable name is VIR)
 MLOGIC(INCIDENCE):  %LET (variable name is ARTH)
 MLOGIC(INCIDENCE):  %LET (variable name is CHLY)
 MLOGIC(INCIDENCE):  %LET (variable name is RICKET)
 MLOGIC(INCIDENCE):  %LET (variable name is SPIRO)
 MLOGIC(INCIDENCE):  %LET (variable name is HELMINTH)
 MLOGIC(INCIDENCE):  %LET (variable name is PARA)
 MLOGIC(INCIDENCE):  %LET (variable name is LATE)
 MPRINT(INCIDENCE):   ;
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INCIDENCE):   data _04_post_hiv ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INCIDENCE):   hiv =1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable HIV resolves to "042"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in:("042")) and (index_date le svcdate le period_stop) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 0 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('042') and (index_date<=svcdate) and (svcdate<=period_stop);
 NOTE: The data set WORK._04_POST_HIV has 0 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.03 seconds
       cpu time            0.04 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INCIDENCE):   proc sort data = _04_post_hiv nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is empty.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST_HIV has 0 observations and 7 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INCIDENCE):   data _04_post2_hiv;
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INCIDENCE):   set _04_post_hiv ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INCIDENCE):   format first_svcdate_hiv mmddyy10. ;
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INCIDENCE):   if first.enrolid then first_svcdate_hiv = svcdate;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 0 observations read from the data set WORK._04_POST_HIV.
 NOTE: The data set WORK._04_POST2_HIV has 0 observations and 8 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INCIDENCE):   proc sort data =_04_post2_hiv nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is empty.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST2_HIV has 0 observations and 8 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INCIDENCE):   data _04_hiv_pre ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INCIDENCE):   hiv_pre = 1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable HIV resolves to "042"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in: ("042")) and (svcdate le index_date) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 0 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('042') and (svcdate<=index_date);
 NOTE: The data set WORK._04_HIV_PRE has 0 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.02 seconds
       cpu time            0.02 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INCIDENCE):   proc sort data = _04_pre_hiv nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is already sorted, no sorting done.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INCIDENCE):  %DO loop index variable I is now 5; loop will iterate again.
 MLOGIC(INCIDENCE):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 5
 MLOGIC(INCIDENCE):  %LET (variable name is INT)
 MLOGIC(INCIDENCE):  %LET (variable name is ZOO)
 MLOGIC(INCIDENCE):  %LET (variable name is OTHBACT)
 MLOGIC(INCIDENCE):  %LET (variable name is HIV)
 MLOGIC(INCIDENCE):  %LET (variable name is VIR)
 MLOGIC(INCIDENCE):  %LET (variable name is ARTH)
 MLOGIC(INCIDENCE):  %LET (variable name is CHLY)
 MLOGIC(INCIDENCE):  %LET (variable name is RICKET)
 MLOGIC(INCIDENCE):  %LET (variable name is SPIRO)
 MLOGIC(INCIDENCE):  %LET (variable name is HELMINTH)
 MLOGIC(INCIDENCE):  %LET (variable name is PARA)
 MLOGIC(INCIDENCE):  %LET (variable name is LATE)
 MPRINT(INCIDENCE):   ;
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INCIDENCE):   data _04_post_vir ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INCIDENCE):   vir =1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable VIR resolves to "050","051","052","053","054","055","056","057"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in:("050","051","052","053","054","055","056","057")) and (index_date le svcdate le period_stop) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 740 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('050', '051', '052', '053', '054', '055', '056', '057') and (index_date<=svcdate) and (svcdate<=period_stop);
 NOTE: The data set WORK._04_POST_VIR has 740 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.02 seconds
       cpu time            0.02 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INCIDENCE):   proc sort data = _04_post_vir nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 740 observations read from the data set WORK._04_POST_VIR.
 NOTE: 38 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST_VIR has 702 observations and 7 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INCIDENCE):   data _04_post2_vir;
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INCIDENCE):   set _04_post_vir ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INCIDENCE):   format first_svcdate_vir mmddyy10. ;
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INCIDENCE):   if first.enrolid then first_svcdate_vir = svcdate;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 702 observations read from the data set WORK._04_POST_VIR.
 NOTE: The data set WORK._04_POST2_VIR has 702 observations and 8 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INCIDENCE):   proc sort data =_04_post2_vir nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 702 observations read from the data set WORK._04_POST2_VIR.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST2_VIR has 702 observations and 8 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INCIDENCE):   data _04_vir_pre ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INCIDENCE):   vir_pre = 1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable VIR resolves to "050","051","052","053","054","055","056","057"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in: ("050","051","052","053","054","055","056","057")) and (svcdate le index_date) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 44 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('050', '051', '052', '053', '054', '055', '056', '057') and (svcdate<=index_date);
 NOTE: The data set WORK._04_VIR_PRE has 44 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.03 seconds
       cpu time            0.03 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INCIDENCE):   proc sort data = _04_pre_vir nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is already sorted, no sorting done.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INCIDENCE):  %DO loop index variable I is now 6; loop will iterate again.
 MLOGIC(INCIDENCE):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 6
 MLOGIC(INCIDENCE):  %LET (variable name is INT)
 MLOGIC(INCIDENCE):  %LET (variable name is ZOO)
 MLOGIC(INCIDENCE):  %LET (variable name is OTHBACT)
 MLOGIC(INCIDENCE):  %LET (variable name is HIV)
 MLOGIC(INCIDENCE):  %LET (variable name is VIR)
 MLOGIC(INCIDENCE):  %LET (variable name is ARTH)
 MLOGIC(INCIDENCE):  %LET (variable name is CHLY)
 MLOGIC(INCIDENCE):  %LET (variable name is RICKET)
 MLOGIC(INCIDENCE):  %LET (variable name is SPIRO)
 MLOGIC(INCIDENCE):  %LET (variable name is HELMINTH)
 MLOGIC(INCIDENCE):  %LET (variable name is PARA)
 MLOGIC(INCIDENCE):  %LET (variable name is LATE)
 MPRINT(INCIDENCE):   ;
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INCIDENCE):   data _04_post_arth ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INCIDENCE):   arth =1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable ARTH resolves to "060","061","062","063","064","065","066"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in:("060","061","062","063","064","065","066")) and (index_date le svcdate le period_stop) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 11 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('060', '061', '062', '063', '064', '065', '066') and (index_date<=svcdate) and (svcdate<=period_stop);
 NOTE: The data set WORK._04_POST_ARTH has 11 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.02 seconds
       cpu time            0.02 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INCIDENCE):   proc sort data = _04_post_arth nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 11 observations read from the data set WORK._04_POST_ARTH.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST_ARTH has 11 observations and 7 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INCIDENCE):   data _04_post2_arth;
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INCIDENCE):   set _04_post_arth ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INCIDENCE):   format first_svcdate_arth mmddyy10. ;
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INCIDENCE):   if first.enrolid then first_svcdate_arth = svcdate;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 11 observations read from the data set WORK._04_POST_ARTH.
 NOTE: The data set WORK._04_POST2_ARTH has 11 observations and 8 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INCIDENCE):   proc sort data =_04_post2_arth nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 11 observations read from the data set WORK._04_POST2_ARTH.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST2_ARTH has 11 observations and 8 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INCIDENCE):   data _04_arth_pre ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INCIDENCE):   arth_pre = 1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable ARTH resolves to "060","061","062","063","064","065","066"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in: ("060","061","062","063","064","065","066")) and (svcdate le index_date) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 0 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('060', '061', '062', '063', '064', '065', '066') and (svcdate<=index_date);
 NOTE: The data set WORK._04_ARTH_PRE has 0 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.02 seconds
       cpu time            0.03 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INCIDENCE):   proc sort data = _04_pre_arth nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is already sorted, no sorting done.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INCIDENCE):  %DO loop index variable I is now 7; loop will iterate again.
 MLOGIC(INCIDENCE):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 7
 MLOGIC(INCIDENCE):  %LET (variable name is INT)
 MLOGIC(INCIDENCE):  %LET (variable name is ZOO)
 MLOGIC(INCIDENCE):  %LET (variable name is OTHBACT)
 MLOGIC(INCIDENCE):  %LET (variable name is HIV)
 MLOGIC(INCIDENCE):  %LET (variable name is VIR)
 MLOGIC(INCIDENCE):  %LET (variable name is ARTH)
 MLOGIC(INCIDENCE):  %LET (variable name is CHLY)
 MLOGIC(INCIDENCE):  %LET (variable name is RICKET)
 MLOGIC(INCIDENCE):  %LET (variable name is SPIRO)
 MLOGIC(INCIDENCE):  %LET (variable name is HELMINTH)
 MLOGIC(INCIDENCE):  %LET (variable name is PARA)
 MLOGIC(INCIDENCE):  %LET (variable name is LATE)
 MPRINT(INCIDENCE):   ;
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INCIDENCE):   data _04_post_chly ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INCIDENCE):   chly =1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable CHLY resolves to "070","071","072","073","074","075","076","077","078","079"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in:("070","071","072","073","074","075","076","077","078","079")) and (index_date le svcdate le 
 period_stop) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 17955 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('070', '071', '072', '073', '074', '075', '076', '077', '078', '079') and (index_date<=svcdate) and 
       (svcdate<=period_stop);
 NOTE: The data set WORK._04_POST_CHLY has 17955 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.03 seconds
       cpu time            0.03 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INCIDENCE):   proc sort data = _04_post_chly nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 17955 observations read from the data set WORK._04_POST_CHLY.
 NOTE: 480 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST_CHLY has 17475 observations and 7 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INCIDENCE):   data _04_post2_chly;
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INCIDENCE):   set _04_post_chly ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INCIDENCE):   format first_svcdate_chly mmddyy10. ;
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INCIDENCE):   if first.enrolid then first_svcdate_chly = svcdate;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 17475 observations read from the data set WORK._04_POST_CHLY.
 NOTE: The data set WORK._04_POST2_CHLY has 17475 observations and 8 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INCIDENCE):   proc sort data =_04_post2_chly nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 17475 observations read from the data set WORK._04_POST2_CHLY.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST2_CHLY has 17475 observations and 8 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INCIDENCE):   data _04_chly_pre ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INCIDENCE):   chly_pre = 1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable CHLY resolves to "070","071","072","073","074","075","076","077","078","079"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in: ("070","071","072","073","074","075","076","077","078","079")) and (svcdate le index_date) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 573 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('070', '071', '072', '073', '074', '075', '076', '077', '078', '079') and (svcdate<=index_date);
 NOTE: The data set WORK._04_CHLY_PRE has 573 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.02 seconds
       cpu time            0.03 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INCIDENCE):   proc sort data = _04_pre_chly nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is already sorted, no sorting done.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INCIDENCE):  %DO loop index variable I is now 8; loop will iterate again.
 MLOGIC(INCIDENCE):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 8
 MLOGIC(INCIDENCE):  %LET (variable name is INT)
 MLOGIC(INCIDENCE):  %LET (variable name is ZOO)
 MLOGIC(INCIDENCE):  %LET (variable name is OTHBACT)
 MLOGIC(INCIDENCE):  %LET (variable name is HIV)
 MLOGIC(INCIDENCE):  %LET (variable name is VIR)
 MLOGIC(INCIDENCE):  %LET (variable name is ARTH)
 MLOGIC(INCIDENCE):  %LET (variable name is CHLY)
 MLOGIC(INCIDENCE):  %LET (variable name is RICKET)
 MLOGIC(INCIDENCE):  %LET (variable name is SPIRO)
 MLOGIC(INCIDENCE):  %LET (variable name is HELMINTH)
 MLOGIC(INCIDENCE):  %LET (variable name is PARA)
 MLOGIC(INCIDENCE):  %LET (variable name is LATE)
 MPRINT(INCIDENCE):   ;
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INCIDENCE):   data _04_post_ricket ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INCIDENCE):   ricket =1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable RICKET resolves to "080","081","082","083","084","085","086","087","088"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in:("080","081","082","083","084","085","086","087","088")) and (index_date le svcdate le 
 period_stop) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 40 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('080', '081', '082', '083', '084', '085', '086', '087', '088') and (index_date<=svcdate) and 
       (svcdate<=period_stop);
 NOTE: The data set WORK._04_POST_RICKET has 40 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.03 seconds
       cpu time            0.04 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INCIDENCE):   proc sort data = _04_post_ricket nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 40 observations read from the data set WORK._04_POST_RICKET.
 NOTE: 1 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST_RICKET has 39 observations and 7 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INCIDENCE):   data _04_post2_ricket;
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INCIDENCE):   set _04_post_ricket ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INCIDENCE):   format first_svcdate_ricket mmddyy10. ;
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INCIDENCE):   if first.enrolid then first_svcdate_ricket = svcdate;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 39 observations read from the data set WORK._04_POST_RICKET.
 NOTE: The data set WORK._04_POST2_RICKET has 39 observations and 8 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INCIDENCE):   proc sort data =_04_post2_ricket nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 39 observations read from the data set WORK._04_POST2_RICKET.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST2_RICKET has 39 observations and 8 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INCIDENCE):   data _04_ricket_pre ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INCIDENCE):   ricket_pre = 1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable RICKET resolves to "080","081","082","083","084","085","086","087","088"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in: ("080","081","082","083","084","085","086","087","088")) and (svcdate le index_date) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 7 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('080', '081', '082', '083', '084', '085', '086', '087', '088') and (svcdate<=index_date);
 NOTE: The data set WORK._04_RICKET_PRE has 7 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.02 seconds
       cpu time            0.03 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INCIDENCE):   proc sort data = _04_pre_ricket nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is already sorted, no sorting done.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INCIDENCE):  %DO loop index variable I is now 9; loop will iterate again.
 MLOGIC(INCIDENCE):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 9
 MLOGIC(INCIDENCE):  %LET (variable name is INT)
 MLOGIC(INCIDENCE):  %LET (variable name is ZOO)
 MLOGIC(INCIDENCE):  %LET (variable name is OTHBACT)
 MLOGIC(INCIDENCE):  %LET (variable name is HIV)
 MLOGIC(INCIDENCE):  %LET (variable name is VIR)
 MLOGIC(INCIDENCE):  %LET (variable name is ARTH)
 MLOGIC(INCIDENCE):  %LET (variable name is CHLY)
 MLOGIC(INCIDENCE):  %LET (variable name is RICKET)
 MLOGIC(INCIDENCE):  %LET (variable name is SPIRO)
 MLOGIC(INCIDENCE):  %LET (variable name is HELMINTH)
 MLOGIC(INCIDENCE):  %LET (variable name is PARA)
 MLOGIC(INCIDENCE):  %LET (variable name is LATE)
 MPRINT(INCIDENCE):   ;
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INCIDENCE):   data _04_post_spiro ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INCIDENCE):   spiro =1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable SPIRO resolves to "100","101","102","103","104"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in:("100","101","102","103","104")) and (index_date le svcdate le period_stop) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 9 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('100', '101', '102', '103', '104') and (index_date<=svcdate) and (svcdate<=period_stop);
 NOTE: The data set WORK._04_POST_SPIRO has 9 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INCIDENCE):   proc sort data = _04_post_spiro nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 9 observations read from the data set WORK._04_POST_SPIRO.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST_SPIRO has 9 observations and 7 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INCIDENCE):   data _04_post2_spiro;
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INCIDENCE):   set _04_post_spiro ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INCIDENCE):   format first_svcdate_spiro mmddyy10. ;
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INCIDENCE):   if first.enrolid then first_svcdate_spiro = svcdate;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 9 observations read from the data set WORK._04_POST_SPIRO.
 NOTE: The data set WORK._04_POST2_SPIRO has 9 observations and 8 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INCIDENCE):   proc sort data =_04_post2_spiro nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 9 observations read from the data set WORK._04_POST2_SPIRO.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST2_SPIRO has 9 observations and 8 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INCIDENCE):   data _04_spiro_pre ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INCIDENCE):   spiro_pre = 1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable SPIRO resolves to "100","101","102","103","104"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in: ("100","101","102","103","104")) and (svcdate le index_date) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 0 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('100', '101', '102', '103', '104') and (svcdate<=index_date);
 NOTE: The data set WORK._04_SPIRO_PRE has 0 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.03 seconds
       cpu time            0.04 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INCIDENCE):   proc sort data = _04_pre_spiro nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is already sorted, no sorting done.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INCIDENCE):  %DO loop index variable I is now 10; loop will iterate again.
 MLOGIC(INCIDENCE):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 10
 MLOGIC(INCIDENCE):  %LET (variable name is INT)
 MLOGIC(INCIDENCE):  %LET (variable name is ZOO)
 MLOGIC(INCIDENCE):  %LET (variable name is OTHBACT)
 MLOGIC(INCIDENCE):  %LET (variable name is HIV)
 MLOGIC(INCIDENCE):  %LET (variable name is VIR)
 MLOGIC(INCIDENCE):  %LET (variable name is ARTH)
 MLOGIC(INCIDENCE):  %LET (variable name is CHLY)
 MLOGIC(INCIDENCE):  %LET (variable name is RICKET)
 MLOGIC(INCIDENCE):  %LET (variable name is SPIRO)
 MLOGIC(INCIDENCE):  %LET (variable name is HELMINTH)
 MLOGIC(INCIDENCE):  %LET (variable name is PARA)
 MLOGIC(INCIDENCE):  %LET (variable name is LATE)
 MPRINT(INCIDENCE):   ;
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INCIDENCE):   data _04_post_helminth ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INCIDENCE):   helminth =1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable HELMINTH resolves to "120","121","123","124","125","126","127","128","129"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in:("120","121","123","124","125","126","127","128","129")) and (index_date le svcdate le 
 period_stop) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 16 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('120', '121', '123', '124', '125', '126', '127', '128', '129') and (index_date<=svcdate) and 
       (svcdate<=period_stop);
 NOTE: The data set WORK._04_POST_HELMINTH has 16 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.02 seconds
       cpu time            0.02 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INCIDENCE):   proc sort data = _04_post_helminth nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 16 observations read from the data set WORK._04_POST_HELMINTH.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST_HELMINTH has 16 observations and 7 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INCIDENCE):   data _04_post2_helminth;
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INCIDENCE):   set _04_post_helminth ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INCIDENCE):   format first_svcdate_helminth mmddyy10. ;
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INCIDENCE):   if first.enrolid then first_svcdate_helminth = svcdate;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 16 observations read from the data set WORK._04_POST_HELMINTH.
 NOTE: The data set WORK._04_POST2_HELMINTH has 16 observations and 8 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INCIDENCE):   proc sort data =_04_post2_helminth nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 16 observations read from the data set WORK._04_POST2_HELMINTH.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST2_HELMINTH has 16 observations and 8 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INCIDENCE):   data _04_helminth_pre ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INCIDENCE):   helminth_pre = 1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable HELMINTH resolves to "120","121","123","124","125","126","127","128","129"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in: ("120","121","123","124","125","126","127","128","129")) and (svcdate le index_date) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 3 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('120', '121', '123', '124', '125', '126', '127', '128', '129') and (svcdate<=index_date);
 NOTE: The data set WORK._04_HELMINTH_PRE has 3 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.03 seconds
       cpu time            0.03 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INCIDENCE):   proc sort data = _04_pre_helminth nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is already sorted, no sorting done.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INCIDENCE):  %DO loop index variable I is now 11; loop will iterate again.
 MLOGIC(INCIDENCE):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 11
 MLOGIC(INCIDENCE):  %LET (variable name is INT)
 MLOGIC(INCIDENCE):  %LET (variable name is ZOO)
 MLOGIC(INCIDENCE):  %LET (variable name is OTHBACT)
 MLOGIC(INCIDENCE):  %LET (variable name is HIV)
 MLOGIC(INCIDENCE):  %LET (variable name is VIR)
 MLOGIC(INCIDENCE):  %LET (variable name is ARTH)
 MLOGIC(INCIDENCE):  %LET (variable name is CHLY)
 MLOGIC(INCIDENCE):  %LET (variable name is RICKET)
 MLOGIC(INCIDENCE):  %LET (variable name is SPIRO)
 MLOGIC(INCIDENCE):  %LET (variable name is HELMINTH)
 MLOGIC(INCIDENCE):  %LET (variable name is PARA)
 MLOGIC(INCIDENCE):  %LET (variable name is LATE)
 MPRINT(INCIDENCE):   ;
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INCIDENCE):   data _04_post_para ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INCIDENCE):   para =1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable PARA resolves to "130","131","132","133","134","135","136"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in:("130","131","132","133","134","135","136")) and (index_date le svcdate le period_stop) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 2582 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('130', '131', '132', '133', '134', '135', '136') and (index_date<=svcdate) and (svcdate<=period_stop);
 NOTE: The data set WORK._04_POST_PARA has 2582 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.02 seconds
       cpu time            0.03 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INCIDENCE):   proc sort data = _04_post_para nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 2582 observations read from the data set WORK._04_POST_PARA.
 NOTE: 2 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST_PARA has 2580 observations and 7 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INCIDENCE):   data _04_post2_para;
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INCIDENCE):   set _04_post_para ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INCIDENCE):   format first_svcdate_para mmddyy10. ;
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INCIDENCE):   if first.enrolid then first_svcdate_para = svcdate;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 2580 observations read from the data set WORK._04_POST_PARA.
 NOTE: The data set WORK._04_POST2_PARA has 2580 observations and 8 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INCIDENCE):   proc sort data =_04_post2_para nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 2580 observations read from the data set WORK._04_POST2_PARA.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST2_PARA has 2580 observations and 8 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INCIDENCE):   data _04_para_pre ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INCIDENCE):   para_pre = 1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable PARA resolves to "130","131","132","133","134","135","136"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in: ("130","131","132","133","134","135","136")) and (svcdate le index_date) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 116 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('130', '131', '132', '133', '134', '135', '136') and (svcdate<=index_date);
 NOTE: The data set WORK._04_PARA_PRE has 116 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.03 seconds
       cpu time            0.03 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INCIDENCE):   proc sort data = _04_pre_para nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is already sorted, no sorting done.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INCIDENCE):  %DO loop index variable I is now 12; loop will iterate again.
 MLOGIC(INCIDENCE):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 12
 MLOGIC(INCIDENCE):  %LET (variable name is INT)
 MLOGIC(INCIDENCE):  %LET (variable name is ZOO)
 MLOGIC(INCIDENCE):  %LET (variable name is OTHBACT)
 MLOGIC(INCIDENCE):  %LET (variable name is HIV)
 MLOGIC(INCIDENCE):  %LET (variable name is VIR)
 MLOGIC(INCIDENCE):  %LET (variable name is ARTH)
 MLOGIC(INCIDENCE):  %LET (variable name is CHLY)
 MLOGIC(INCIDENCE):  %LET (variable name is RICKET)
 MLOGIC(INCIDENCE):  %LET (variable name is SPIRO)
 MLOGIC(INCIDENCE):  %LET (variable name is HELMINTH)
 MLOGIC(INCIDENCE):  %LET (variable name is PARA)
 MLOGIC(INCIDENCE):  %LET (variable name is LATE)
 MPRINT(INCIDENCE):   ;
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INCIDENCE):   data _04_post_late ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INCIDENCE):   late =1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable LATE resolves to "137","138","139"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in:("137","138","139")) and (index_date le svcdate le period_stop) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 33 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('137', '138', '139') and (index_date<=svcdate) and (svcdate<=period_stop);
 NOTE: The data set WORK._04_POST_LATE has 33 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.02 seconds
       cpu time            0.02 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INCIDENCE):   proc sort data = _04_post_late nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 33 observations read from the data set WORK._04_POST_LATE.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST_LATE has 33 observations and 7 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INCIDENCE):   data _04_post2_late;
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INCIDENCE):   set _04_post_late ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INCIDENCE):   format first_svcdate_late mmddyy10. ;
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INCIDENCE):   if first.enrolid then first_svcdate_late = svcdate;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 33 observations read from the data set WORK._04_POST_LATE.
 NOTE: The data set WORK._04_POST2_LATE has 33 observations and 8 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INCIDENCE):   proc sort data =_04_post2_late nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 33 observations read from the data set WORK._04_POST2_LATE.
 NOTE: 0 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_POST2_LATE has 33 observations and 8 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INCIDENCE):   data _04_late_pre ;
 MPRINT(INCIDENCE):   set derived._01_incidence;
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INCIDENCE):   late_pre = 1 ;
 SYMBOLGEN:  && resolves to &.
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable LATE resolves to "137","138","139"
 SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
 MPRINT(INCIDENCE):   where (code in: ("137","138","139")) and (svcdate le index_date) ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: There were 2 observations read from the data set DERIVED._01_INCIDENCE.
       WHERE code in: ('137', '138', '139') and (svcdate<=index_date);
 NOTE: The data set WORK._04_LATE_PRE has 2 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.02 seconds
       cpu time            0.02 seconds
       
 
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INCIDENCE):   proc sort data = _04_pre_late nodupkey ;
 MPRINT(INCIDENCE):   by enrolid svcdate ;
 MPRINT(INCIDENCE):   run ;
 
 NOTE: Input data set is already sorted, no sorting done.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INCIDENCE):  %DO loop index variable I is now 13; loop will not iterate again.
 MPRINT(INCIDENCE):   data _04_allevents ;
 MPRINT(INCIDENCE):   merge _04_post2_int _04_post2_zoo _04_post2_othbact _04_post2_hiv _04_post2_vir _04_post2_arth _04_post2_chly 
 _04_post2_ricket _04_post2_spiro _04_post2_helminth _04_post2_para _04_post2_late _04_int_pre _04_zoo_pre _04_othbact_pre 
 _04_hiv_pre _04_vir_pre _04_arth_pre _04_chly_pre _04_ricket_pre _04_spiro_pre _04_helminth_pre _04_para_pre _04_late_pre ;
 MPRINT(INCIDENCE):   by enrolid;
 MPRINT(INCIDENCE):   run;
 
 NOTE: MERGE statement has more than one data set with repeats of BY values.
 NOTE: There were 2925 observations read from the data set WORK._04_POST2_INT.
 NOTE: There were 12 observations read from the data set WORK._04_POST2_ZOO.
 NOTE: There were 23222 observations read from the data set WORK._04_POST2_OTHBACT.
 NOTE: There were 0 observations read from the data set WORK._04_POST2_HIV.
 NOTE: There were 702 observations read from the data set WORK._04_POST2_VIR.
 NOTE: There were 11 observations read from the data set WORK._04_POST2_ARTH.
 NOTE: There were 17475 observations read from the data set WORK._04_POST2_CHLY.
 NOTE: There were 39 observations read from the data set WORK._04_POST2_RICKET.
 NOTE: There were 9 observations read from the data set WORK._04_POST2_SPIRO.
 NOTE: There were 16 observations read from the data set WORK._04_POST2_HELMINTH.
 NOTE: There were 2580 observations read from the data set WORK._04_POST2_PARA.
 NOTE: There were 33 observations read from the data set WORK._04_POST2_LATE.
 NOTE: There were 143 observations read from the data set WORK._04_INT_PRE.
 NOTE: There were 0 observations read from the data set WORK._04_ZOO_PRE.
 NOTE: There were 666 observations read from the data set WORK._04_OTHBACT_PRE.
 NOTE: There were 0 observations read from the data set WORK._04_HIV_PRE.
 NOTE: There were 44 observations read from the data set WORK._04_VIR_PRE.
 NOTE: There were 0 observations read from the data set WORK._04_ARTH_PRE.
 NOTE: There were 573 observations read from the data set WORK._04_CHLY_PRE.
 NOTE: There were 7 observations read from the data set WORK._04_RICKET_PRE.
 NOTE: There were 0 observations read from the data set WORK._04_SPIRO_PRE.
 NOTE: There were 3 observations read from the data set WORK._04_HELMINTH_PRE.
 NOTE: There were 116 observations read from the data set WORK._04_PARA_PRE.
 NOTE: There were 2 observations read from the data set WORK._04_LATE_PRE.
 NOTE: The data set WORK._04_ALLEVENTS has 40987 observations and 42 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.08 seconds
       cpu time            0.07 seconds
       
 
 MPRINT(INCIDENCE):   proc sql;
 MPRINT(INCIDENCE):   create table _04_allevents2 as select distinct a.* from derived._01_incidence as a left join _04_allevents as 
 b on a.enrolid = b.enrolid ;
 NOTE: Table WORK._04_ALLEVENTS2 created, with 195101 rows and 6 columns.
 
 MPRINT(INCIDENCE):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           2.31 seconds
       cpu time            4.32 seconds
       
 
 MLOGIC(INCIDENCE):  Ending execution.
 198        
 199        
 200        /*INCIDENCE RATE CALCULATION- INCIDENCE IS THE NUMBER OF NEW EVENTS OR NUMBER OF PATIENTS WHO HAD A SVCDATE FOR ANY
 200      ! SERIOUS INFECTION ON OR
 201        AFTER THE INDEX_DATE DIVIDED BY THE NUMBER OF PERSON YEARS - WHICH IS PERIOD_STOP - SVCDATE / 365 DAYS FOR EACH PATIENT
 201      ! AT RISK
 202        (PATIENTS  AT RISK ARE ALL PATEINTS WHO HAD INCIDENCE OF A DISEASE AFTER THE INDEX_DATE UNTIL THEY GOT THE DISEASE*/
 203        
 204        %macro inc_cal ;/*since we need to divide our results into specific infections we are making another macros to read al
 204      ! the codes
 205        and then make seperate datasets of it accordingly*/
 206        
 207        %do i = 1 %to 12 ;
 208        
 209        %let inf = %scan(int*zoo*othbact*hiv*vir*arth*chly*ricket*spiro*helminth*para*late, &i., *) ;
 210        
 211        proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
 212        by enrolid ;
 213        run ;
 214        
 215        /*GETTING RID OF PATIENTS HAVING SVCDATE FOR INFECTIONS PRIOR TO THE INDEX DATE*/
 216        data _04_inc_cal1 ;
 217        set _04_inc_cal ;
 218        by enrolid ;
 219        if &inf._pre =1 then delete ;
 220        run ;
 221        
 222        /*PERSON YEAR CALCULATION*/
 223        /*FINDING THE LAST DATE OF THE DATASET*/
 224        proc sql ;
 225        create table test as
 226        select max(period_stop) as date format mmddyy10.
 227        from dmk_scan.periods_cm_rx ;
 228        quit ;
 229        
 230        data _04_inc_cal2 ;
 231        set _04_inc_cal1 ;
 232        if &inf. =1 then py_&inf. = (min(period_stop, '30sep2017'D,first_svcdate_&inf.) - index_date +1)/365.25;
 233        else if &inf. = . then py_&inf. = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
 234        else if &inf. <0 then delete ;
 235        run ;
 236        
 237        proc sort data = _04_inc_cal2 ;
 238        by &inf. ;
 239        run ;
 240        
 241        /*CREATING TABLE FOR INCIDENCE RATE CALCLUATION - CI, RATE CALCULATION , NO. OF NEW EVENTS, PY*/
 242        
 243        proc sql;
 244        create table _04_inc_table_&i. as
 245        select "&inf." as col
 246        , COUNT(enrolid) as N
 247        , SUM(&inf.) as events
 248        , SUM(py_&inf.) as PY
 249        , (SUM(&inf.)/SUM(py_&inf.))*100000 as IR
 250        , CINV(0.025,2*SUM(&inf.))/(2*SUM(py_&inf.))*100000 as Lower95
 251        , CINV(0.975,2*(SUM(&inf.)+1))/(2*SUM(py_&inf.))*100000 as Upper95
 252        from _04_inc_cal2
 253        group by &inf. ;
 254        quit ;
 255        
 256        %end ;
 257        
 258        /*SET ALL THE DATASETS*/
 259        data derived._04_final_inc;
 260        set _04_inc_table_1 - _04_inc_table_12 ;
 261        run ;
 262        
 263        %mend inc_cal ;
 264        %inc_cal;
 MLOGIC(INC_CAL):  Beginning execution.
 MLOGIC(INC_CAL):  %DO loop beginning; index variable I; start value is 1; stop value is 12; by value is 1.  
 MLOGIC(INC_CAL):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 1
 MPRINT(INC_CAL):   proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
 MPRINT(INC_CAL):   by enrolid ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 195101 observations read from the data set WORK._04_ALLEVENTS2.
 NOTE: 179819 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_INC_CAL has 15282 observations and 6 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.07 seconds
       cpu time            0.07 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal1 ;
 MPRINT(INC_CAL):   set _04_inc_cal ;
 MPRINT(INC_CAL):   by enrolid ;
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INC_CAL):   if int_pre =1 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable int_pre is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL.
 NOTE: The data set WORK._04_INC_CAL1 has 15282 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sql ;
 MPRINT(INC_CAL):   create table test as select max(period_stop) as date format mmddyy10. from dmk_scan.periods_cm_rx ;
 NOTE: Data file DMK_SCAN.PERIODS_CM_RX.DATA is in a format that is native to another host, or the file encoding does not match the 
       session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce 
       performance.
 NOTE: Table WORK.TEST created, with 1 rows and 1 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           8.46 seconds
       cpu time            8.46 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal2 ;
 MPRINT(INC_CAL):   set _04_inc_cal1 ;
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INC_CAL):   if int =1 then py_int = (min(period_stop, '30sep2017'D,first_svcdate_int) - index_date +1)/365.25;
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INC_CAL):   else if int = . then py_int = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INC_CAL):   else if int <0 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable int is uninitialized.
 NOTE: Variable first_svcdate_int is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL1.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sort data = _04_inc_cal2 ;
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INC_CAL):   by int ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL2.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sql;
 SYMBOLGEN:  Macro variable I resolves to 1
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INF resolves to int
 SYMBOLGEN:  Macro variable INF resolves to int
 MPRINT(INC_CAL):   create table _04_inc_table_1 as select "int" as col , COUNT(enrolid) as N , SUM(int) as events , SUM(py_int) as 
 PY , (SUM(int)/SUM(py_int))*100000 as IR , CINV(0.025,2*SUM(int))/(2*SUM(py_int))*100000 as Lower95 , 
 CINV(0.975,2*(SUM(int)+1))/(2*SUM(py_int))*100000 as Upper95 from _04_inc_cal2 group by int ;
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Table WORK._04_INC_TABLE_1 created, with 1 rows and 7 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           0.00 seconds
       cpu time            0.02 seconds
       
 
 MLOGIC(INC_CAL):  %DO loop index variable I is now 2; loop will iterate again.
 MLOGIC(INC_CAL):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 2
 MPRINT(INC_CAL):   proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
 MPRINT(INC_CAL):   by enrolid ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 195101 observations read from the data set WORK._04_ALLEVENTS2.
 NOTE: 179819 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_INC_CAL has 15282 observations and 6 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.08 seconds
       cpu time            0.08 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal1 ;
 MPRINT(INC_CAL):   set _04_inc_cal ;
 MPRINT(INC_CAL):   by enrolid ;
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INC_CAL):   if zoo_pre =1 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable zoo_pre is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL.
 NOTE: The data set WORK._04_INC_CAL1 has 15282 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sql ;
 MPRINT(INC_CAL):   create table test as select max(period_stop) as date format mmddyy10. from dmk_scan.periods_cm_rx ;
 NOTE: Data file DMK_SCAN.PERIODS_CM_RX.DATA is in a format that is native to another host, or the file encoding does not match the 
       session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce 
       performance.
 NOTE: Table WORK.TEST created, with 1 rows and 1 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           7.29 seconds
       cpu time            7.29 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal2 ;
 MPRINT(INC_CAL):   set _04_inc_cal1 ;
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INC_CAL):   if zoo =1 then py_zoo = (min(period_stop, '30sep2017'D,first_svcdate_zoo) - index_date +1)/365.25;
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INC_CAL):   else if zoo = . then py_zoo = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INC_CAL):   else if zoo <0 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable zoo is uninitialized.
 NOTE: Variable first_svcdate_zoo is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL1.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sort data = _04_inc_cal2 ;
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INC_CAL):   by zoo ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL2.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sql;
 SYMBOLGEN:  Macro variable I resolves to 2
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable INF resolves to zoo
 SYMBOLGEN:  Macro variable INF resolves to zoo
 MPRINT(INC_CAL):   create table _04_inc_table_2 as select "zoo" as col , COUNT(enrolid) as N , SUM(zoo) as events , SUM(py_zoo) as 
 PY , (SUM(zoo)/SUM(py_zoo))*100000 as IR , CINV(0.025,2*SUM(zoo))/(2*SUM(py_zoo))*100000 as Lower95 , 
 CINV(0.975,2*(SUM(zoo)+1))/(2*SUM(py_zoo))*100000 as Upper95 from _04_inc_cal2 group by zoo ;
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Table WORK._04_INC_TABLE_2 created, with 1 rows and 7 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INC_CAL):  %DO loop index variable I is now 3; loop will iterate again.
 MLOGIC(INC_CAL):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 3
 MPRINT(INC_CAL):   proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
 MPRINT(INC_CAL):   by enrolid ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 195101 observations read from the data set WORK._04_ALLEVENTS2.
 NOTE: 179819 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_INC_CAL has 15282 observations and 6 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.05 seconds
       cpu time            0.06 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal1 ;
 MPRINT(INC_CAL):   set _04_inc_cal ;
 MPRINT(INC_CAL):   by enrolid ;
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INC_CAL):   if othbact_pre =1 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable othbact_pre is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL.
 NOTE: The data set WORK._04_INC_CAL1 has 15282 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MPRINT(INC_CAL):   proc sql ;
 MPRINT(INC_CAL):   create table test as select max(period_stop) as date format mmddyy10. from dmk_scan.periods_cm_rx ;
 NOTE: Data file DMK_SCAN.PERIODS_CM_RX.DATA is in a format that is native to another host, or the file encoding does not match the 
       session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce 
       performance.
 NOTE: Table WORK.TEST created, with 1 rows and 1 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           7.93 seconds
       cpu time            7.94 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal2 ;
 MPRINT(INC_CAL):   set _04_inc_cal1 ;
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INC_CAL):   if othbact =1 then py_othbact = (min(period_stop, '30sep2017'D,first_svcdate_othbact) - index_date +1)/365.25;
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INC_CAL):   else if othbact = . then py_othbact = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INC_CAL):   else if othbact <0 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable othbact is uninitialized.
 NOTE: Variable first_svcdate_othbact is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL1.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sort data = _04_inc_cal2 ;
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INC_CAL):   by othbact ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL2.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sql;
 SYMBOLGEN:  Macro variable I resolves to 3
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable INF resolves to othbact
 SYMBOLGEN:  Macro variable INF resolves to othbact
 MPRINT(INC_CAL):   create table _04_inc_table_3 as select "othbact" as col , COUNT(enrolid) as N , SUM(othbact) as events , 
 SUM(py_othbact) as PY , (SUM(othbact)/SUM(py_othbact))*100000 as IR , CINV(0.025,2*SUM(othbact))/(2*SUM(py_othbact))*100000 as 
 Lower95 , CINV(0.975,2*(SUM(othbact)+1))/(2*SUM(py_othbact))*100000 as Upper95 from _04_inc_cal2 group by othbact ;
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Table WORK._04_INC_TABLE_3 created, with 1 rows and 7 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MLOGIC(INC_CAL):  %DO loop index variable I is now 4; loop will iterate again.
 MLOGIC(INC_CAL):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 4
 MPRINT(INC_CAL):   proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
 MPRINT(INC_CAL):   by enrolid ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 195101 observations read from the data set WORK._04_ALLEVENTS2.
 NOTE: 179819 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_INC_CAL has 15282 observations and 6 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.07 seconds
       cpu time            0.06 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal1 ;
 MPRINT(INC_CAL):   set _04_inc_cal ;
 MPRINT(INC_CAL):   by enrolid ;
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INC_CAL):   if hiv_pre =1 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable hiv_pre is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL.
 NOTE: The data set WORK._04_INC_CAL1 has 15282 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sql ;
 MPRINT(INC_CAL):   create table test as select max(period_stop) as date format mmddyy10. from dmk_scan.periods_cm_rx ;
 NOTE: Data file DMK_SCAN.PERIODS_CM_RX.DATA is in a format that is native to another host, or the file encoding does not match the 
       session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce 
       performance.
 NOTE: Table WORK.TEST created, with 1 rows and 1 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           7.27 seconds
       cpu time            7.28 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal2 ;
 MPRINT(INC_CAL):   set _04_inc_cal1 ;
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INC_CAL):   if hiv =1 then py_hiv = (min(period_stop, '30sep2017'D,first_svcdate_hiv) - index_date +1)/365.25;
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INC_CAL):   else if hiv = . then py_hiv = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INC_CAL):   else if hiv <0 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable hiv is uninitialized.
 NOTE: Variable first_svcdate_hiv is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL1.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sort data = _04_inc_cal2 ;
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INC_CAL):   by hiv ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL2.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sql;
 SYMBOLGEN:  Macro variable I resolves to 4
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable INF resolves to hiv
 SYMBOLGEN:  Macro variable INF resolves to hiv
 MPRINT(INC_CAL):   create table _04_inc_table_4 as select "hiv" as col , COUNT(enrolid) as N , SUM(hiv) as events , SUM(py_hiv) as 
 PY , (SUM(hiv)/SUM(py_hiv))*100000 as IR , CINV(0.025,2*SUM(hiv))/(2*SUM(py_hiv))*100000 as Lower95 , 
 CINV(0.975,2*(SUM(hiv)+1))/(2*SUM(py_hiv))*100000 as Upper95 from _04_inc_cal2 group by hiv ;
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Table WORK._04_INC_TABLE_4 created, with 1 rows and 7 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MLOGIC(INC_CAL):  %DO loop index variable I is now 5; loop will iterate again.
 MLOGIC(INC_CAL):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 5
 MPRINT(INC_CAL):   proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
 MPRINT(INC_CAL):   by enrolid ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 195101 observations read from the data set WORK._04_ALLEVENTS2.
 NOTE: 179819 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_INC_CAL has 15282 observations and 6 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.07 seconds
       cpu time            0.07 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal1 ;
 MPRINT(INC_CAL):   set _04_inc_cal ;
 MPRINT(INC_CAL):   by enrolid ;
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INC_CAL):   if vir_pre =1 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable vir_pre is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL.
 NOTE: The data set WORK._04_INC_CAL1 has 15282 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sql ;
 MPRINT(INC_CAL):   create table test as select max(period_stop) as date format mmddyy10. from dmk_scan.periods_cm_rx ;
 NOTE: Data file DMK_SCAN.PERIODS_CM_RX.DATA is in a format that is native to another host, or the file encoding does not match the 
       session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce 
       performance.
 NOTE: Table WORK.TEST created, with 1 rows and 1 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           7.35 seconds
       cpu time            7.35 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal2 ;
 MPRINT(INC_CAL):   set _04_inc_cal1 ;
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INC_CAL):   if vir =1 then py_vir = (min(period_stop, '30sep2017'D,first_svcdate_vir) - index_date +1)/365.25;
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INC_CAL):   else if vir = . then py_vir = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INC_CAL):   else if vir <0 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable vir is uninitialized.
 NOTE: Variable first_svcdate_vir is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL1.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sort data = _04_inc_cal2 ;
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INC_CAL):   by vir ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL2.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sql;
 SYMBOLGEN:  Macro variable I resolves to 5
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable INF resolves to vir
 SYMBOLGEN:  Macro variable INF resolves to vir
 MPRINT(INC_CAL):   create table _04_inc_table_5 as select "vir" as col , COUNT(enrolid) as N , SUM(vir) as events , SUM(py_vir) as 
 PY , (SUM(vir)/SUM(py_vir))*100000 as IR , CINV(0.025,2*SUM(vir))/(2*SUM(py_vir))*100000 as Lower95 , 
 CINV(0.975,2*(SUM(vir)+1))/(2*SUM(py_vir))*100000 as Upper95 from _04_inc_cal2 group by vir ;
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Table WORK._04_INC_TABLE_5 created, with 1 rows and 7 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MLOGIC(INC_CAL):  %DO loop index variable I is now 6; loop will iterate again.
 MLOGIC(INC_CAL):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 6
 MPRINT(INC_CAL):   proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
 MPRINT(INC_CAL):   by enrolid ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 195101 observations read from the data set WORK._04_ALLEVENTS2.
 NOTE: 179819 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_INC_CAL has 15282 observations and 6 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.08 seconds
       cpu time            0.08 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal1 ;
 MPRINT(INC_CAL):   set _04_inc_cal ;
 MPRINT(INC_CAL):   by enrolid ;
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INC_CAL):   if arth_pre =1 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable arth_pre is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL.
 NOTE: The data set WORK._04_INC_CAL1 has 15282 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sql ;
 MPRINT(INC_CAL):   create table test as select max(period_stop) as date format mmddyy10. from dmk_scan.periods_cm_rx ;
 NOTE: Data file DMK_SCAN.PERIODS_CM_RX.DATA is in a format that is native to another host, or the file encoding does not match the 
       session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce 
       performance.
 NOTE: Table WORK.TEST created, with 1 rows and 1 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           7.34 seconds
       cpu time            7.35 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal2 ;
 MPRINT(INC_CAL):   set _04_inc_cal1 ;
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INC_CAL):   if arth =1 then py_arth = (min(period_stop, '30sep2017'D,first_svcdate_arth) - index_date +1)/365.25;
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INC_CAL):   else if arth = . then py_arth = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INC_CAL):   else if arth <0 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable arth is uninitialized.
 NOTE: Variable first_svcdate_arth is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL1.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sort data = _04_inc_cal2 ;
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INC_CAL):   by arth ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL2.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sql;
 SYMBOLGEN:  Macro variable I resolves to 6
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable INF resolves to arth
 SYMBOLGEN:  Macro variable INF resolves to arth
 MPRINT(INC_CAL):   create table _04_inc_table_6 as select "arth" as col , COUNT(enrolid) as N , SUM(arth) as events , SUM(py_arth) 
 as PY , (SUM(arth)/SUM(py_arth))*100000 as IR , CINV(0.025,2*SUM(arth))/(2*SUM(py_arth))*100000 as Lower95 , 
 CINV(0.975,2*(SUM(arth)+1))/(2*SUM(py_arth))*100000 as Upper95 from _04_inc_cal2 group by arth ;
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Table WORK._04_INC_TABLE_6 created, with 1 rows and 7 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MLOGIC(INC_CAL):  %DO loop index variable I is now 7; loop will iterate again.
 MLOGIC(INC_CAL):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 7
 MPRINT(INC_CAL):   proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
 MPRINT(INC_CAL):   by enrolid ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 195101 observations read from the data set WORK._04_ALLEVENTS2.
 NOTE: 179819 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_INC_CAL has 15282 observations and 6 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.08 seconds
       cpu time            0.08 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal1 ;
 MPRINT(INC_CAL):   set _04_inc_cal ;
 MPRINT(INC_CAL):   by enrolid ;
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INC_CAL):   if chly_pre =1 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable chly_pre is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL.
 NOTE: The data set WORK._04_INC_CAL1 has 15282 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sql ;
 MPRINT(INC_CAL):   create table test as select max(period_stop) as date format mmddyy10. from dmk_scan.periods_cm_rx ;
 NOTE: Data file DMK_SCAN.PERIODS_CM_RX.DATA is in a format that is native to another host, or the file encoding does not match the 
       session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce 
       performance.
 NOTE: Table WORK.TEST created, with 1 rows and 1 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           8.11 seconds
       cpu time            8.12 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal2 ;
 MPRINT(INC_CAL):   set _04_inc_cal1 ;
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INC_CAL):   if chly =1 then py_chly = (min(period_stop, '30sep2017'D,first_svcdate_chly) - index_date +1)/365.25;
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INC_CAL):   else if chly = . then py_chly = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INC_CAL):   else if chly <0 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable chly is uninitialized.
 NOTE: Variable first_svcdate_chly is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL1.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sort data = _04_inc_cal2 ;
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INC_CAL):   by chly ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL2.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sql;
 SYMBOLGEN:  Macro variable I resolves to 7
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable INF resolves to chly
 SYMBOLGEN:  Macro variable INF resolves to chly
 MPRINT(INC_CAL):   create table _04_inc_table_7 as select "chly" as col , COUNT(enrolid) as N , SUM(chly) as events , SUM(py_chly) 
 as PY , (SUM(chly)/SUM(py_chly))*100000 as IR , CINV(0.025,2*SUM(chly))/(2*SUM(py_chly))*100000 as Lower95 , 
 CINV(0.975,2*(SUM(chly)+1))/(2*SUM(py_chly))*100000 as Upper95 from _04_inc_cal2 group by chly ;
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Table WORK._04_INC_TABLE_7 created, with 1 rows and 7 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MLOGIC(INC_CAL):  %DO loop index variable I is now 8; loop will iterate again.
 MLOGIC(INC_CAL):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 8
 MPRINT(INC_CAL):   proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
 MPRINT(INC_CAL):   by enrolid ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 195101 observations read from the data set WORK._04_ALLEVENTS2.
 NOTE: 179819 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_INC_CAL has 15282 observations and 6 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.10 seconds
       cpu time            0.10 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal1 ;
 MPRINT(INC_CAL):   set _04_inc_cal ;
 MPRINT(INC_CAL):   by enrolid ;
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INC_CAL):   if ricket_pre =1 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable ricket_pre is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL.
 NOTE: The data set WORK._04_INC_CAL1 has 15282 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sql ;
 MPRINT(INC_CAL):   create table test as select max(period_stop) as date format mmddyy10. from dmk_scan.periods_cm_rx ;
 NOTE: Data file DMK_SCAN.PERIODS_CM_RX.DATA is in a format that is native to another host, or the file encoding does not match the 
       session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce 
       performance.
 NOTE: Table WORK.TEST created, with 1 rows and 1 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           9.04 seconds
       cpu time            9.04 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal2 ;
 MPRINT(INC_CAL):   set _04_inc_cal1 ;
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INC_CAL):   if ricket =1 then py_ricket = (min(period_stop, '30sep2017'D,first_svcdate_ricket) - index_date +1)/365.25;
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INC_CAL):   else if ricket = . then py_ricket = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INC_CAL):   else if ricket <0 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable ricket is uninitialized.
 NOTE: Variable first_svcdate_ricket is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL1.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sort data = _04_inc_cal2 ;
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INC_CAL):   by ricket ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL2.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sql;
 SYMBOLGEN:  Macro variable I resolves to 8
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable INF resolves to ricket
 SYMBOLGEN:  Macro variable INF resolves to ricket
 MPRINT(INC_CAL):   create table _04_inc_table_8 as select "ricket" as col , COUNT(enrolid) as N , SUM(ricket) as events , 
 SUM(py_ricket) as PY , (SUM(ricket)/SUM(py_ricket))*100000 as IR , CINV(0.025,2*SUM(ricket))/(2*SUM(py_ricket))*100000 as Lower95 , 
 CINV(0.975,2*(SUM(ricket)+1))/(2*SUM(py_ricket))*100000 as Upper95 from _04_inc_cal2 group by ricket ;
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Table WORK._04_INC_TABLE_8 created, with 1 rows and 7 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INC_CAL):  %DO loop index variable I is now 9; loop will iterate again.
 MLOGIC(INC_CAL):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 9
 MPRINT(INC_CAL):   proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
 MPRINT(INC_CAL):   by enrolid ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 195101 observations read from the data set WORK._04_ALLEVENTS2.
 NOTE: 179819 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_INC_CAL has 15282 observations and 6 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.05 seconds
       cpu time            0.04 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal1 ;
 MPRINT(INC_CAL):   set _04_inc_cal ;
 MPRINT(INC_CAL):   by enrolid ;
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INC_CAL):   if spiro_pre =1 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable spiro_pre is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL.
 NOTE: The data set WORK._04_INC_CAL1 has 15282 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sql ;
 MPRINT(INC_CAL):   create table test as select max(period_stop) as date format mmddyy10. from dmk_scan.periods_cm_rx ;
 NOTE: Data file DMK_SCAN.PERIODS_CM_RX.DATA is in a format that is native to another host, or the file encoding does not match the 
       session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce 
       performance.
 NOTE: Table WORK.TEST created, with 1 rows and 1 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           7.26 seconds
       cpu time            7.26 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal2 ;
 MPRINT(INC_CAL):   set _04_inc_cal1 ;
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INC_CAL):   if spiro =1 then py_spiro = (min(period_stop, '30sep2017'D,first_svcdate_spiro) - index_date +1)/365.25;
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INC_CAL):   else if spiro = . then py_spiro = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INC_CAL):   else if spiro <0 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable spiro is uninitialized.
 NOTE: Variable first_svcdate_spiro is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL1.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sort data = _04_inc_cal2 ;
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INC_CAL):   by spiro ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL2.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MPRINT(INC_CAL):   proc sql;
 SYMBOLGEN:  Macro variable I resolves to 9
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable INF resolves to spiro
 SYMBOLGEN:  Macro variable INF resolves to spiro
 MPRINT(INC_CAL):   create table _04_inc_table_9 as select "spiro" as col , COUNT(enrolid) as N , SUM(spiro) as events , 
 SUM(py_spiro) as PY , (SUM(spiro)/SUM(py_spiro))*100000 as IR , CINV(0.025,2*SUM(spiro))/(2*SUM(py_spiro))*100000 as Lower95 , 
 CINV(0.975,2*(SUM(spiro)+1))/(2*SUM(py_spiro))*100000 as Upper95 from _04_inc_cal2 group by spiro ;
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Table WORK._04_INC_TABLE_9 created, with 1 rows and 7 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MLOGIC(INC_CAL):  %DO loop index variable I is now 10; loop will iterate again.
 MLOGIC(INC_CAL):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 10
 MPRINT(INC_CAL):   proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
 MPRINT(INC_CAL):   by enrolid ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 195101 observations read from the data set WORK._04_ALLEVENTS2.
 NOTE: 179819 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_INC_CAL has 15282 observations and 6 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.07 seconds
       cpu time            0.08 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal1 ;
 MPRINT(INC_CAL):   set _04_inc_cal ;
 MPRINT(INC_CAL):   by enrolid ;
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INC_CAL):   if helminth_pre =1 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable helminth_pre is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL.
 NOTE: The data set WORK._04_INC_CAL1 has 15282 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sql ;
 MPRINT(INC_CAL):   create table test as select max(period_stop) as date format mmddyy10. from dmk_scan.periods_cm_rx ;
 NOTE: Data file DMK_SCAN.PERIODS_CM_RX.DATA is in a format that is native to another host, or the file encoding does not match the 
       session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce 
       performance.
 NOTE: Table WORK.TEST created, with 1 rows and 1 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           7.32 seconds
       cpu time            7.34 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal2 ;
 MPRINT(INC_CAL):   set _04_inc_cal1 ;
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INC_CAL):   if helminth =1 then py_helminth = (min(period_stop, '30sep2017'D,first_svcdate_helminth) - index_date +1)/365.25;
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INC_CAL):   else if helminth = . then py_helminth = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INC_CAL):   else if helminth <0 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable helminth is uninitialized.
 NOTE: Variable first_svcdate_helminth is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL1.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sort data = _04_inc_cal2 ;
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INC_CAL):   by helminth ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL2.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sql;
 SYMBOLGEN:  Macro variable I resolves to 10
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable INF resolves to helminth
 SYMBOLGEN:  Macro variable INF resolves to helminth
 MPRINT(INC_CAL):   create table _04_inc_table_10 as select "helminth" as col , COUNT(enrolid) as N , SUM(helminth) as events , 
 SUM(py_helminth) as PY , (SUM(helminth)/SUM(py_helminth))*100000 as IR , CINV(0.025,2*SUM(helminth))/(2*SUM(py_helminth))*100000 as 
 Lower95 , CINV(0.975,2*(SUM(helminth)+1))/(2*SUM(py_helminth))*100000 as Upper95 from _04_inc_cal2 group by helminth ;
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Table WORK._04_INC_TABLE_10 created, with 1 rows and 7 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           0.00 seconds
       cpu time            0.00 seconds
       
 
 MLOGIC(INC_CAL):  %DO loop index variable I is now 11; loop will iterate again.
 MLOGIC(INC_CAL):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 11
 MPRINT(INC_CAL):   proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
 MPRINT(INC_CAL):   by enrolid ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 195101 observations read from the data set WORK._04_ALLEVENTS2.
 NOTE: 179819 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_INC_CAL has 15282 observations and 6 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.09 seconds
       cpu time            0.10 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal1 ;
 MPRINT(INC_CAL):   set _04_inc_cal ;
 MPRINT(INC_CAL):   by enrolid ;
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INC_CAL):   if para_pre =1 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable para_pre is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL.
 NOTE: The data set WORK._04_INC_CAL1 has 15282 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sql ;
 MPRINT(INC_CAL):   create table test as select max(period_stop) as date format mmddyy10. from dmk_scan.periods_cm_rx ;
 NOTE: Data file DMK_SCAN.PERIODS_CM_RX.DATA is in a format that is native to another host, or the file encoding does not match the 
       session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce 
       performance.
 NOTE: Table WORK.TEST created, with 1 rows and 1 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           7.89 seconds
       cpu time            7.90 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal2 ;
 MPRINT(INC_CAL):   set _04_inc_cal1 ;
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INC_CAL):   if para =1 then py_para = (min(period_stop, '30sep2017'D,first_svcdate_para) - index_date +1)/365.25;
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INC_CAL):   else if para = . then py_para = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INC_CAL):   else if para <0 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable para is uninitialized.
 NOTE: Variable first_svcdate_para is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL1.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sort data = _04_inc_cal2 ;
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INC_CAL):   by para ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL2.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.01 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sql;
 SYMBOLGEN:  Macro variable I resolves to 11
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable INF resolves to para
 SYMBOLGEN:  Macro variable INF resolves to para
 MPRINT(INC_CAL):   create table _04_inc_table_11 as select "para" as col , COUNT(enrolid) as N , SUM(para) as events , SUM(py_para) 
 as PY , (SUM(para)/SUM(py_para))*100000 as IR , CINV(0.025,2*SUM(para))/(2*SUM(py_para))*100000 as Lower95 , 
 CINV(0.975,2*(SUM(para)+1))/(2*SUM(py_para))*100000 as Upper95 from _04_inc_cal2 group by para ;
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Table WORK._04_INC_TABLE_11 created, with 1 rows and 7 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 MLOGIC(INC_CAL):  %DO loop index variable I is now 12; loop will iterate again.
 MLOGIC(INC_CAL):  %LET (variable name is INF)
 SYMBOLGEN:  Macro variable I resolves to 12
 MPRINT(INC_CAL):   proc sort data =_04_allevents2 out= _04_inc_cal nodupkey ;
 MPRINT(INC_CAL):   by enrolid ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 195101 observations read from the data set WORK._04_ALLEVENTS2.
 NOTE: 179819 observations with duplicate key values were deleted.
 NOTE: The data set WORK._04_INC_CAL has 15282 observations and 6 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.09 seconds
       cpu time            0.10 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal1 ;
 MPRINT(INC_CAL):   set _04_inc_cal ;
 MPRINT(INC_CAL):   by enrolid ;
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INC_CAL):   if late_pre =1 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable late_pre is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL.
 NOTE: The data set WORK._04_INC_CAL1 has 15282 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sql ;
 MPRINT(INC_CAL):   create table test as select max(period_stop) as date format mmddyy10. from dmk_scan.periods_cm_rx ;
 NOTE: Data file DMK_SCAN.PERIODS_CM_RX.DATA is in a format that is native to another host, or the file encoding does not match the 
       session encoding. Cross Environment Data Access will be used, which might require additional CPU resources and might reduce 
       performance.
 NOTE: Table WORK.TEST created, with 1 rows and 1 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           8.40 seconds
       cpu time            8.39 seconds
       
 
 MPRINT(INC_CAL):   data _04_inc_cal2 ;
 MPRINT(INC_CAL):   set _04_inc_cal1 ;
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INC_CAL):   if late =1 then py_late = (min(period_stop, '30sep2017'D,first_svcdate_late) - index_date +1)/365.25;
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INC_CAL):   else if late = . then py_late = (min(period_stop, '30sep2017'D) - index_date +1)/365.25 ;
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INC_CAL):   else if late <0 then delete ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: Variable late is uninitialized.
 NOTE: Variable first_svcdate_late is uninitialized.
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL1.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 MPRINT(INC_CAL):   proc sort data = _04_inc_cal2 ;
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INC_CAL):   by late ;
 MPRINT(INC_CAL):   run ;
 
 NOTE: There were 15282 observations read from the data set WORK._04_INC_CAL2.
 NOTE: The data set WORK._04_INC_CAL2 has 15282 observations and 10 variables.
 NOTE: PROCEDURE SORT used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 MPRINT(INC_CAL):   proc sql;
 SYMBOLGEN:  Macro variable I resolves to 12
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable INF resolves to late
 SYMBOLGEN:  Macro variable INF resolves to late
 MPRINT(INC_CAL):   create table _04_inc_table_12 as select "late" as col , COUNT(enrolid) as N , SUM(late) as events , SUM(py_late) 
 as PY , (SUM(late)/SUM(py_late))*100000 as IR , CINV(0.025,2*SUM(late))/(2*SUM(py_late))*100000 as Lower95 , 
 CINV(0.975,2*(SUM(late)+1))/(2*SUM(py_late))*100000 as Upper95 from _04_inc_cal2 group by late ;
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 NOTE: Table WORK._04_INC_TABLE_12 created, with 1 rows and 7 columns.
 
 MPRINT(INC_CAL):   quit ;
 NOTE: PROCEDURE SQL used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds
       
 
 MLOGIC(INC_CAL):  %DO loop index variable I is now 13; loop will not iterate again.
 MPRINT(INC_CAL):   data derived._04_final_inc;
 MPRINT(INC_CAL):   set _04_inc_table_1 - _04_inc_table_12 ;
 MPRINT(INC_CAL):   run ;
 
 WARNING: Multiple lengths were specified for the variable col by input data set(s). This can cause truncation of data.
 NOTE: There were 1 observations read from the data set WORK._04_INC_TABLE_1.
 NOTE: There were 1 observations read from the data set WORK._04_INC_TABLE_2.
 NOTE: There were 1 observations read from the data set WORK._04_INC_TABLE_3.
 NOTE: There were 1 observations read from the data set WORK._04_INC_TABLE_4.
 NOTE: There were 1 observations read from the data set WORK._04_INC_TABLE_5.
 NOTE: There were 1 observations read from the data set WORK._04_INC_TABLE_6.
 NOTE: There were 1 observations read from the data set WORK._04_INC_TABLE_7.
 NOTE: There were 1 observations read from the data set WORK._04_INC_TABLE_8.
 NOTE: There were 1 observations read from the data set WORK._04_INC_TABLE_9.
 NOTE: There were 1 observations read from the data set WORK._04_INC_TABLE_10.
 NOTE: There were 1 observations read from the data set WORK._04_INC_TABLE_11.
 NOTE: There were 1 observations read from the data set WORK._04_INC_TABLE_12.
 NOTE: The data set DERIVED._04_FINAL_INC has 12 observations and 7 variables.
 NOTE: DATA statement used (Total process time):
       real time           0.01 seconds
       cpu time            0.02 seconds
       
 
 MLOGIC(INC_CAL):  Ending execution.
 265        
 266        ods csv file  = "/data1/projects/yellow/YVM0002aq/output/incidence_table.csv" ;
 NOTE: Writing CSV Body file: /data1/projects/yellow/YVM0002aq/output/incidence_table.csv
 267        
 268        
 268      !  proc print data =derived._04_final_inc ;
 269        run ;
 
 NOTE: There were 12 observations read from the data set DERIVED._04_FINAL_INC.
 NOTE: PROCEDURE PRINT used (Total process time):
       real time           0.07 seconds
       cpu time            0.07 seconds
       
 
 270        
 271        ods csv close ;
 272        
 273        
 274        
 275        
 276        
 277        
 278        OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
 SYMBOLGEN:  Macro variable GRAPHTERM resolves to GOPTIONS NOACCESSIBLE;
 291        

 

4 REPLIES 4
PaigeMiller
Diamond | Level 26
NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
NOTE: Invalid (or missing) arguments to the CINV function have caused the function to return a missing value.
 

Since we don't really know what the values of the variable INT are, you need to look at the data set used here (named _04_inc_cal2) and find values the produce invalid arguments to the CINV function. One (or more) of the values of INT produces a second argument that is either missing or less than 0. You do the digging, because you have the data.

--
Paige Miller
ballardw
Super User

Time to provide:

1) a small example data set, small enough you can calculate the results by hand, probably only involving one or two of those groups of code values. Probably 4 or 5 values for codes from each of two groups should be sufficient.

2) what you expect for the result given that example input step.

Best would be to provide the data as data step.

The values need not be any sensitive or restricted values but should be similar to actual data (not all 1 or 0 for instance) AND sufficient to actually generate the desired

 

I suspect your unfamiliarity with SAS has brought you to this sort macro approach in general. I suspect there is absolutely no need for any macro code at all. A common symptom of this is breaking your data into actual sub-data sets when that is not likely to be actually needed in any way, shape of from. Another symptom is invariant macro lists such as your &int and &zoo lists of code values.

 

For instance your example output table shows a column "percentages". What is this a percentage of? What should the numerator and denominator be?

What variable to you have that hold any information about "person years"? What unit is it in?

What is your definition of "incidence rate" numerator and denominator in terms of the data varaibles.

And you show a 95% Ci. Interval for what? Number of events, percentages, person years or incidence rate?

 

Reeza
Super User
Are you allowed to modify the structure of this macro? If so, I would suggest a redesign to make it clearer which parameters are used each run and to not create so many data sets that are hanging around. I would recommend calculating it for one scenario correctly, wrapping that in a macro call with multiple parameters and then using CALL EXECUTE to call the macro. One of the many benefits of this approach is that it's infinitely easier to debug than a macro that loops like this.
PaigeMiller
Diamond | Level 26

@Reeza wrote:
Are you allowed to modify the structure of this macro? If so, I would suggest a redesign to make it clearer which parameters are used each run and to not create so many data sets that are hanging around. I would recommend calculating it for one scenario correctly, wrapping that in a macro call with multiple parameters and then using CALL EXECUTE to call the macro. One of the many benefits of this approach is that it's infinitely easier to debug than a macro that loops like this.

I would not use a macro at all. There is no reason for all of this looping through conditions 1 to 12 to obtain data sets for each and then an analysis on each. If you have one large data set, and analysis with BY variables ought to be superior to this and less time to code and easier to debug.

 

Which I said in the previous thread from this poster.

--
Paige Miller

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 16. Read more here about why you should contribute and what is in it for you!

Submit your idea!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 4 replies
  • 1399 views
  • 0 likes
  • 4 in conversation