Changeset 24444 in main


Ignore:
Timestamp:
01/10/22 16:22:47 (4 months ago)
Author:
LoisHaggard_STG
Message:

NM EPHT Backend qModules30 - update to ed folder

Location:
adopters/nm/trunk/src/main/backend_qModules/3.0/_EPHT/ed
Files:
4 added
11 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • adopters/nm/trunk/src/main/backend_qModules/3.0/_EPHT/ed/CountDayMaxNM.def

    r20797 r24444  
     1#CountDayMaxNM.def
    12f label Count
    23f type special
    34#########################################
    45--------BoNdArY--------
    5 1 script
    6 OPTIONS MPRINT MLOGIC SYMBOLGEN;
     61 script NODATE PAGESIZE=4000 NODATE PAGESIZE=4000;
    77OPTION SPOOL;
    88
    9     /*    year removed from steps and month removed from second step  */
    10        
    119         Proc sort data=tmp;
    1210           by date;
     
    1513           by date;
    1614                  var x;
    17                   Class month %cross1%
     15                  Class month  %cross1%
    1816                ?cross2? %cross2% ;
    19                   ;             
     17                  ;
    2018                  output out=day  sum=daily;
    2119
     
    2826                  Class %cross1%
    2927                ?cross2? %cross2% ;
    30                   ;             
     28                  ;
    3129                  output out=tmp 
    3230                         max=Number;
    33            Run;
    34        
     31           Run;
     32         proc sort data=tmp out=sorted;
     33           by month %cross1%
     34                  ?cross2? %cross2%
     35                  ;
     36           run;
    3537         proc print;
    36                   title "data tmp - Daily Maximum";
     38                  Title1 '/*******************************/';
     39                  title2 '1. tmp - Daily maximum by month  ';
     40                  Title3 '/*******************************/';
     41                  title "";
    3742           run;
    3843
    39  
    4044/*The Count measure does not need the population
    4145  dataset. The following code, through the end of
    4246  the macro, is used to compute the RSE for the
    4347  data stability indicator.                     */
    44  
    45 %let popflag=0;
     48
     49data frame;
     50 set df_%cross1%%cross2%;
     51proc sort data=frame;
     52  by %cross1%
     53         ?cross2? %cross2%
     54         ;
     55proc print data=frame noobs;
     56         Title1 '/*******************************/';
     57         title2 '2.         Data Frame            ';
     58         Title3 '/*******************************/';
     59  run;
     60
     61data  tmp;
     62merge frame sorted;
     63   by %cross1%
     64          ?cross2? %cross2%
     65          ;
     66   run;
     67proc  print data=tmp noobs;
     68          title2 'Merged Frame & Numerator Dataset ';
     69   run;
     70
     71
    4672%let flag=0;
    47 %let pflag=0;
    4873?popcross1? %let flag=1;
    49 ?popcross1? %let pflag=1;
    5074?popcross2? %let flag=1;
    51 ?popcross2? %let pflag=2;
    5275?popcross1? ?popcross2? %let flag=2;
    5376
    5477%macro popcross;
    5578
    56 %if &flag=0 %then %do;
    57   proc summary data=poptmp;
    58     var popcount;
    59     output out=pop sum=popnum;
    60   run;
    61   proc sql;
    62     create table rate as
    63     select tmp.*, pop.*
    64     from tmp, pop
    65   quit;
    66 %end;
    67 
    68 %if &flag=1 %then %do;
    69   proc summary data=poptmp;
    70     var popcount;
    71     class %popcross1% %popcross2%;
    72     output out=pop sum=popnum;
    73         proc print data=pop;  title2 'POP';
    74   run;
    75         proc sql;
    76             create table rate as
    77             select tmp.*, pop.*,
    78             coalesce
    79             ?popcross1? (tmp.%cross1%, pop.%popcross1%)
    80             ?popcross2? (tmp.%cross2%, pop.%popcross2%)
    81             from pop full join tmp
    82             on
    83             ?popcross1? tmp.%cross1%=pop.%popcross1%;
    84             ?popcross2? tmp.%cross2%=pop.%popcross2%; 
    85         quit;
    86     data rate;
    87      set rate;
    88          %let popflag=1;
    89     run;
    90 %end;
    91 
    92 %if &flag=2 %then %do;
    93   proc summary data=poptmp;
    94     var popcount;
    95     class %popcross1% %popcross2%  ;
    96     output out=pop sum=popnum;
    97         proc print data=pop;  title2 'POP';
    98   run;
    99         proc sql;
    100             create table rate as
    101             select tmp.*, pop.*,
    102             coalesce (tmp.%cross1%, pop.%popcross1%),
    103             coalesce (tmp.%cross2%, pop.%popcross2%)
    104             from pop full join tmp
    105             on
    106 
    107             tmp.%cross1%=pop.%popcross1% and
    108             tmp.%cross2%=pop.%popcross2%; 
    109         quit;
    110     data  rate;
    111       set rate;
    112           %let popflag=2;
    113     run;
    114 %end;
    115 
     79        %if &flag=0 %then %do;
     80
     81                proc summary data=poptmp;
     82                         var popcount;
     83                         output out=pop(drop=_TYPE_ _FREQ_)
     84                                        sum=popnum;
     85                  run;
     86                proc sql;
     87                         create table rate as
     88                         select tmp.*, pop.*
     89                         from tmp, pop
     90                quit;
     91   %end;
     92
     93        %if &flag=1 %then %do;
     94                proc summary data=poptmp;
     95                         var popcount;
     96                         class %popcross1% %popcross2%;
     97                         output out=pop  (drop=_TYPE_ _FREQ_)
     98                                        sum=popnum;
     99
     100                proc sql;
     101                         create table rate as
     102                         select tmp.*, pop.*
     103                         from tmp left join pop
     104                         on
     105                        ?popcross1? tmp.%cross1%=pop.%popcross1%;
     106                        ?popcross2? tmp.%cross2%=pop.%popcross2%;
     107                quit;
     108        %end;
     109
     110        %if &flag=2 %then %do;
     111                proc summary data=poptmp;
     112                         var popcount;
     113                         class %popcross1% %popcross2%  ;
     114                         output out=pop (drop=_TYPE_ _FREQ_)
     115                         sum=popnum;
     116
     117                proc sql;
     118                         create table rate as
     119                         select tmp.*, pop.*
     120                         from tmp left join pop
     121                         on
     122                         tmp.%cross1%=pop.%popcross1% and
     123                         tmp.%cross2%=pop.%popcross2%; 
     124                quit;
     125        %end;
    116126%mend;
    117 
    118127%popcross;
    119128
    120129
    121 proc print data=rate; title2 'RATE';
    122 
    123 %macro criscros;
    124        %if &popflag = 1 and &pflag = 1 %then %do;
    125                %cross1% = _TEMA001;
    126            %end;
    127            %else
    128        %if &popflag = 1 and &pflag = 2 %then %do;
    129                %cross2% = _TEMA001;
    130            %end;   
    131 %mend  criscros;
    132 
    133 %macro crostwo;
    134        %if &popflag = 2 %then %do;
    135                %cross1% = _TEMA001;
    136                %cross2% = _TEMA002;
    137            %end;
    138 %mend  crostwo;
    139 
    140 data tmp;
     130* Create the output variables for the IBIS xml/map file.;
     131
     132proc print data=rate;
     133         Title1 '/*******************************/';
     134         title2 '2.    RATE DATA for STABILITY    ';
     135
     136data  tmp;
    141137  set rate;
    142138
    143       %criscros;
    144           %crostwo;
    145 
    146   if number=. then n=0; else n=number;
    147   rate=n/popnum;
    148   rateper=rate*100000;
    149   stderr=sqrt(rate*(1-rate)/popnum)*100000;
    150   t1=(rateper-(1.96*stderr));
    151   if (t1<0) then t1=0;
    152   LL=put(t1, 8.2);
    153   UL=put((rateper+(1.96*stderr)), 8.2);
    154   LL=compress(LL);
    155   UL=compress(UL);
    156   CI=LL || ' - ' || UL;
    157 
    158 
    159 /*************************************************/
    160 /* Statictical Stability Indicator               */
    161 /* based on the relative standard error (RSE, or */
    162 /* coefficient of variance). Redflag values are  */
    163 /* converted to images or special characters in  */
    164 /* XSLT files (xslt\html\query\module\result\    */
    165 /* ResultPage.xslt and Values.xslt               */
    166 /*************************************************/
    167 
    168   rse=(stderr/rateper);
    169   if rse>.3 then redflag=1; *statistical stability – 1 red flag;
    170   if rse>.5 then redflag=2; *statistical stability - 2 red flags;
    171   if stderr=. then redflag=2; *no variance, n=1;
    172 keep %cross1% %cross2% n popnum rate rateper LL UL rse redflag;
    173 proc print data=tmp; title2 'TMP AGAIN';
     139          if number=. then n=0; else n=number;
     140          rate=n/popnum;
     141          rateper=rate*100000;
     142          stderr=sqrt(rate*(1-rate)/popnum)*100000;
     143 
     144          if n > 0 then do;
     145                 stderr=sqrt(rate*(1-rate)/popnum)*100000;
     146          end;
     147          if n = 0 then do;
     148                 stderr=sqrt((3/popnum)*(1-(3/popnum))/popnum)*100000;
     149          end;
     150
     151          t1=(rateper-(1.96*stderr));
     152          if (t1<0) then t1=0;
     153          LL=put(t1, 8.2);
     154          UL=put((rateper+(1.96*stderr)), 8.2);
     155          UL=compress(UL);
     156          LL=compress(LL);
     157
     158/*******************************************************/
     159/*       Statictical Stability Indicator Redflag       */
     160/* Based on the relative standard error (RSE), redflag */
     161/* values are converted to special characters in       */
     162/* IBIS-View application XSLT files                    */
     163/* xslt\html\query\module\result\ ResultPage.xslt and  */
     164/* Values.xslt                                         */
     165/*******************************************************/
     166
     167          if n > 0 then do;
     168                 rse=(stderr/rateper);
     169                 if rse>.3 then redflag=put('Unstable', $12.);
     170                 if rse>.5 then redflag=put('VeryUnstable', $12.);
     171                 if stderr=. then redflag=put('Unstable', $12.);
     172          end;
     173                 if n <= 0 then redflag=put('Unstable', $12.);
    174174run;
     175
     176/*******************************************************/
     177/*       New Mexico Small Numbers Rule                 */
     178/*******************************************************/
     179
     180data  tmp;
     181 set  tmp;
     182          if ((0<n<4) and (popnum<5000)) then do;
     183                 n = .A;
     184                 rate = .A;
     185                 LL = put('**', 8.0);
     186                 UL = put('**', 8.0);
     187
     188                 redflag = put('Suppressed', $12.);
     189                end;
     190
     191          if popnum=. then redflag=put('', $12.);
     192   run;
     193
     194proc print data=tmp; title2 ''; run;
     195         Title1 '/************************************************/';
     196         title2 '2. Final RATE DATA for STABILITY to IBIS View app ';
    175197
    176198/**********************************************/
     
    191213
    192214--------BoNdArY--------
    193 f out_variable XMLNumAsthma
     215f out_variable XMLNum
    194216#################################################
    195217# definition for output file
    196 f xml_out_map_file XMLNumAsthma.map
     218f xml_out_map_file XMLNum.map
    197219--------BoNdArY--------
    198220f out_detail lbl_not_used__see_xml_out_map_file
  • adopters/nm/trunk/src/main/backend_qModules/3.0/_EPHT/ed/CountDayMeanNM.def

    r20797 r24444  
     1#CountDayMeanNM.def
    12f label Count
    23f type special
    34#########################################
    45--------BoNdArY--------
    5 1 script
    6 OPTIONS MPRINT MLOGIC SYMBOLGEN;
     61 script NODATE PAGESIZE=4000 NODATE PAGESIZE=4000;
    77OPTION SPOOL;
    88
     
    1010           by date;
    1111
    12          proc means data=tmp noprint;
     12         proc means data=tmp noprint nway;
    1313           by date;
    1414
    1515                  var x;
    16                   Class month %cross1%
     16                  Class month  %cross1%
    1717                ?cross2? %cross2% ;
    18                   ;             
     18                  ;
    1919                  output out=day  sum=daily;
    20  
    21          proc print;
    22                   title "data tmp - date summary";
    23                                                                                        
     20
    2421         Proc sort data=day;
    25            by month;
     22           by %cross1%
     23                  ?cross2? %cross2%
     24                  ;
    2625
    2726         proc means data=day sum nway;
     
    3029                  var daily;
    3130                  Class %cross1%
    32                 ?cross2? %cross2% ;
    33                   ;             
    34                   output out=tmp 
     31                                ?cross2? %cross2%
     32                                ;
     33                  output out=tmp
    3534                         mean=Number;
    3635           Run;
    3736           
     37         proc sort data=tmp out=sorted;
     38           by month %cross1%
     39                  ?cross2? %cross2%
     40                  ;
     41           run;
    3842         proc print;
    39                   title "data tmp - Daily mean by month";
     43                  Title1 '/*******************************/';
     44                  title2 '1.   tmp - Daily mean by month   ';
     45                  Title3 '/*******************************/';
    4046           run;
    4147
    42  
    4348/*The Count measure does not need the population
    4449  dataset. The following code, through the end of
    4550  the macro, is used to compute the RSE for the
    4651  data stability indicator.                     */
    47  
    48 %let popflag=0;
     52 
     53data frame;
     54 set df_%cross1%%cross2%;
     55proc sort data=frame;
     56  by %cross1%
     57         ?cross2? %cross2%
     58         ;
     59proc print data=frame noobs;
     60         Title1 '/*******************************/';
     61         title2 '2.         Data Frame            ';
     62         Title3 '/*******************************/';
     63  run;
     64
     65data  tmp;
     66merge frame sorted;
     67   by %cross1%
     68          ?cross2? %cross2%
     69          ;
     70   run;
     71proc  print data=tmp noobs;
     72          title2 'Merged Frame & Numerator Dataset ';
     73   run;
     74
     75
    4976%let flag=0;
    50 %let pflag=0;
    5177?popcross1? %let flag=1;
    52 ?popcross1? %let pflag=1;
    5378?popcross2? %let flag=1;
    54 ?popcross2? %let pflag=2;
    5579?popcross1? ?popcross2? %let flag=2;
    5680
    5781%macro popcross;
    5882
    59 %if &flag=0 %then %do;
    60   proc summary data=poptmp;
    61     var popcount;
    62     output out=pop sum=popnum;
    63   run;
    64   proc sql;
    65     create table rate as
    66     select tmp.*, pop.*
    67     from tmp, pop
    68   quit;
    69 %end;
    70 
    71 %if &flag=1 %then %do;
    72   proc summary data=poptmp;
    73     var popcount;
    74     class %popcross1% %popcross2%;
    75     output out=pop sum=popnum;
    76         proc print data=pop;  title2 'POP';
    77   run;
    78         proc sql;
    79             create table rate as
    80             select tmp.*, pop.*,
    81             coalesce
    82             ?popcross1? (tmp.%cross1%, pop.%popcross1%)
    83             ?popcross2? (tmp.%cross2%, pop.%popcross2%)
    84             from pop full join tmp
    85             on
    86             ?popcross1? tmp.%cross1%=pop.%popcross1%;
    87             ?popcross2? tmp.%cross2%=pop.%popcross2%; 
    88         quit;
    89     data rate;
    90      set rate;
    91          %let popflag=1;
    92     run;
    93 %end;
    94 
    95 %if &flag=2 %then %do;
    96   proc summary data=poptmp;
    97     var popcount;
    98     class %popcross1% %popcross2%  ;
    99     output out=pop sum=popnum;
    100         proc print data=pop;  title2 'POP';
    101   run;
    102         proc sql;
    103             create table rate as
    104             select tmp.*, pop.*,
    105             coalesce (tmp.%cross1%, pop.%popcross1%),
    106             coalesce (tmp.%cross2%, pop.%popcross2%)
    107             from pop full join tmp
    108             on
    109 
    110             tmp.%cross1%=pop.%popcross1% and
    111             tmp.%cross2%=pop.%popcross2%; 
    112         quit;
    113     data  rate;
    114       set rate;
    115           %let popflag=2;
    116     run;
    117 %end;
    118 
     83        %if &flag=0 %then %do;
     84                proc summary data=poptmp;
     85                         var popcount;
     86                         output out=pop(drop=_TYPE_ _FREQ_)
     87                                        sum=popnum;
     88                  run;
     89                proc sql;
     90                         create table rate as
     91                         select tmp.*, pop.*
     92                         from tmp, pop
     93   %end;
     94
     95        %if &flag=1 %then %do;
     96                proc summary data=poptmp;
     97                         var popcount;
     98                         class %popcross1% %popcross2%;
     99                         output out=pop  (drop=_TYPE_ _FREQ_)
     100                                        sum=popnum;
     101
     102                proc sql;
     103                         create table rate as
     104                         select tmp.*, pop.*
     105                         from tmp left join pop
     106                         on
     107                        ?popcross1? tmp.%cross1%=pop.%popcross1%;
     108                        ?popcross2? tmp.%cross2%=pop.%popcross2%;
     109        %end;
     110
     111        %if &flag=2 %then %do;
     112                proc summary data=poptmp;
     113                         var popcount;
     114                         class %popcross1% %popcross2%  ;
     115                         output out=pop (drop=_TYPE_ _FREQ_)
     116                         sum=popnum;
     117
     118                proc sql;
     119                         create table rate as
     120                         select tmp.*, pop.*
     121                         from tmp left join pop
     122                         on
     123                         tmp.%cross1%=pop.%popcross1% and
     124                         tmp.%cross2%=pop.%popcross2%; 
     125                quit;
     126        %end;
    119127%mend;
    120 
    121128%popcross;
    122129
    123 
    124 proc print data=rate; title2 'RATE';
    125 
    126 %macro criscros;
    127        %if &popflag = 1 and &pflag = 1 %then %do;
    128                %cross1% = _TEMA001;
    129            %end;
    130            %else
    131        %if &popflag = 1 and &pflag = 2 %then %do;
    132                %cross2% = _TEMA001;
    133            %end;   
    134 %mend  criscros;
    135 
    136 %macro crostwo;
    137        %if &popflag = 2 %then %do;
    138                %cross1% = _TEMA001;
    139                %cross2% = _TEMA002;
    140            %end;
    141 %mend  crostwo;
    142 
    143 data tmp;
     130* Create the output variables for the IBIS xml/map file.;
     131
     132proc print data=rate;
     133         Title1 '/*******************************/';
     134         title2 '2.    RATE DATA for STABILITY    ';
     135
     136data  tmp;
    144137  set rate;
    145 
    146       %criscros;
    147           %crostwo;
    148 
    149   if number=. then n=0; else n=number;
    150   rate=n/popnum;
    151   rateper=rate*100000;
    152   stderr=sqrt(rate*(1-rate)/popnum)*100000;
    153   t1=(rateper-(1.96*stderr));
    154   if (t1<0) then t1=0;
    155   LL=put(t1, 8.2);
    156   UL=put((rateper+(1.96*stderr)), 8.2);
    157   LL=compress(LL);
    158   UL=compress(UL);
    159   CI=LL || ' - ' || UL;
    160 
    161 
    162 /*************************************************/
    163 /* Statictical Stability Indicator               */
    164 /* based on the relative standard error (RSE, or */
    165 /* coefficient of variance). Redflag values are  */
    166 /* converted to images or special characters in  */
    167 /* XSLT files (xslt\html\query\module\result\    */
    168 /* ResultPage.xslt and Values.xslt               */
    169 /*************************************************/
    170 
    171   rse=(stderr/rateper);
    172   if rse>.3 then redflag=1; *statistical stability – 1 red flag;
    173   if rse>.5 then redflag=2; *statistical stability - 2 red flags;
    174   if stderr=. then redflag=2; *no variance, n=1;
    175 keep %cross1% %cross2% n popnum rate rateper LL UL rse redflag;
    176 proc print data=tmp; title2 'TMP AGAIN';
     138          if number=. then n=0; else n=number;
     139          rate=n/popnum;
     140          rateper=rate*100000;
     141          stderr=sqrt(rate*(1-rate)/popnum)*100000;
     142 
     143          if n > 0 then do;
     144                 stderr=sqrt(rate*(1-rate)/popnum)*100000;
     145          end;
     146          if n = 0 then do;
     147                 stderr=sqrt((3/popnum)*(1-(3/popnum))/popnum)*100000;
     148          end;
     149
     150          t1=(rateper-(1.96*stderr));
     151          if (t1<0) then t1=0;
     152          LL=put(t1, 8.2);
     153          UL=put((rateper+(1.96*stderr)), 8.2);
     154          UL=compress(UL);
     155          LL=compress(LL);
     156
     157/*******************************************************/
     158/*       Statictical Stability Indicator Redflag       */
     159/* Based on the relative standard error (RSE), redflag */
     160/* values are converted to special characters in       */
     161/* IBIS-View application XSLT files                    */
     162/* xslt\html\query\module\result\ ResultPage.xslt and  */
     163/* Values.xslt                                         */
     164/*******************************************************/
     165
     166          if n > 0 then do;
     167                 rse=(stderr/rateper);
     168                 if rse>.3 then redflag=put('Unstable', $12.);
     169                 if rse>.5 then redflag=put('VeryUnstable', $12.);
     170                 if stderr=. then redflag=put('Unstable', $12.);
     171          end;
     172                 if n <= 0 then redflag=put('Unstable', $12.);
    177173run;
     174
     175/*******************************************************/
     176/*       New Mexico Small Numbers Rule                 */
     177/*******************************************************/
     178
     179data  tmp;
     180 set  tmp;
     181          if ((0<n<4) and (popnum<5000)) then do;
     182                 n = .A;
     183                 rate = .A;
     184                 LL = put('**', 8.0);
     185                 UL = put('**', 8.0);
     186
     187                 redflag = put('Suppressed', $12.);
     188                end;
     189               
     190          if popnum=. then redflag=put('', $12.);
     191   run;
     192
     193proc print data=tmp; title2 ''; run;
     194         Title1 '/************************************************/';
     195         title2 '2. Final RATE DATA for STABILITY to IBIS View app ';
    178196
    179197/**********************************************/
     
    194212
    195213--------BoNdArY--------
    196 f out_variable NumAsthma
     214f out_variable Num
    197215#################################################
    198216# definition for output file
    199 f xml_out_map_file XMLNumAsthma.map
     217f xml_out_map_file XMLNum.map
    200218--------BoNdArY--------
    201219f out_detail lbl_not_used__see_xml_out_map_file
  • adopters/nm/trunk/src/main/backend_qModules/3.0/_EPHT/ed/CountDayMinNM.def

    r20797 r24444  
     1#CountDayMaxNM.def                                 
    12f label Count
    23f type special
    34#########################################
    45--------BoNdArY--------
    5 1 script
    6 OPTIONS MPRINT MLOGIC SYMBOLGEN;
     61 script NODATE PAGESIZE=4000 NODATE PAGESIZE=4000;
    77OPTION SPOOL;
    88
     9    /*    year removed from steps and month removed from second step  */
     10       
    911         Proc sort data=tmp;
    1012           by date;
    1113
    12 
    1314         proc means data=tmp nway noprint;
    1415           by date;
    15 
    16 
    1716                  var x;
    18                   Class month %cross1%
     17                  Class month  %cross1%
    1918                ?cross2? %cross2% ;
    2019                  ;
     
    2423           by month;
    2524
    26          proc means data=day sum nway Noprint;
     25         proc means data=day nway Noprint;
     26         * by month;
    2727                  var daily;
    2828                  Class %cross1%
    29                 ?cross2? %cross2%
     29                ?cross2? %cross2% ;
    3030                  ;
    31                   output out=tmp 
     31                  output out=tmp
    3232                         min=Number;
    33            Run;
    34 
     33           Run;
     34         proc sort data=tmp out=sorted;
     35           by month %cross1%
     36                  ?cross2? %cross2%
     37                  ;
     38           run;
    3539         proc print;
    36                   title "data tmp - Daily Minimum";
     40                  Title1 '/*******************************/';
     41                  title2 '1. tmp - Daily maximum by month  ';
     42                  Title3 '/*******************************/';
     43                  title "";
    3744           run;
    38  
     45
    3946/*The Count measure does not need the population
    4047  dataset. The following code, through the end of
    4148  the macro, is used to compute the RSE for the
    4249  data stability indicator.                     */
    43  
    44 %let popflag=0;
     50
     51data frame;
     52 set df_%cross1%%cross2%;
     53proc sort data=frame;
     54  by %cross1%
     55         ?cross2? %cross2%
     56         ;
     57proc print data=frame noobs;
     58         Title1 '/*******************************/';
     59         title2 '2.         Data Frame            ';
     60         Title3 '/*******************************/';
     61  run;
     62
     63data  tmp;
     64merge frame sorted;
     65   by %cross1%
     66          ?cross2? %cross2%
     67          ;
     68   run;
     69proc  print data=tmp noobs;
     70          title2 'Merged Frame & Numerator Dataset ';
     71   run;
     72
     73
    4574%let flag=0;
    46 %let pflag=0;
    4775?popcross1? %let flag=1;
    48 ?popcross1? %let pflag=1;
    4976?popcross2? %let flag=1;
    50 ?popcross2? %let pflag=2;
    5177?popcross1? ?popcross2? %let flag=2;
    5278
    5379%macro popcross;
    5480
    55 %if &flag=0 %then %do;
    56   proc summary data=poptmp;
    57     var popcount;
    58     output out=pop sum=popnum;
    59   run;
    60   proc sql;
    61     create table rate as
    62     select tmp.*, pop.*
    63     from tmp, pop
    64   quit;
    65 %end;
    66 
    67 %if &flag=1 %then %do;
    68   proc summary data=poptmp;
    69     var popcount;
    70     class %popcross1% %popcross2%;
    71     output out=pop sum=popnum;
    72         proc print data=pop;  title2 'POP';
    73   run;
    74         proc sql;
    75             create table rate as
    76             select tmp.*, pop.*,
    77             coalesce
    78             ?popcross1? (tmp.%cross1%, pop.%popcross1%)
    79             ?popcross2? (tmp.%cross2%, pop.%popcross2%)
    80             from pop full join tmp
    81             on
    82             ?popcross1? tmp.%cross1%=pop.%popcross1%;
    83             ?popcross2? tmp.%cross2%=pop.%popcross2%; 
    84         quit;
    85     data rate;
    86      set rate;
    87          %let popflag=1;
    88     run;
    89 %end;
    90 
    91 %if &flag=2 %then %do;
    92   proc summary data=poptmp;
    93     var popcount;
    94     class %popcross1% %popcross2%  ;
    95     output out=pop sum=popnum;
    96         proc print data=pop;  title2 'POP';
    97   run;
    98         proc sql;
    99             create table rate as
    100             select tmp.*, pop.*,
    101             coalesce (tmp.%cross1%, pop.%popcross1%),
    102             coalesce (tmp.%cross2%, pop.%popcross2%)
    103             from pop full join tmp
    104             on
    105 
    106             tmp.%cross1%=pop.%popcross1% and
    107             tmp.%cross2%=pop.%popcross2%; 
    108         quit;
    109     data  rate;
    110       set rate;
    111           %let popflag=2;
    112     run;
    113 %end;
    114 
     81        %if &flag=0 %then %do;
     82
     83                proc summary data=poptmp;
     84                         var popcount;
     85                                 
     86                         output out=pop(drop=_TYPE_ _FREQ_)
     87                                        sum=popnum;
     88                  run;
     89                proc sql;
     90                         create table rate as
     91                         select tmp.*, pop.*
     92                         from tmp, pop
     93                quit;
     94   %end;
     95
     96        %if &flag=1 %then %do;
     97                proc summary data=poptmp;
     98                         var popcount;
     99                         class %popcross1% %popcross2%;
     100                         output out=pop  (drop=_TYPE_ _FREQ_)
     101                                        sum=popnum;
     102
     103                proc sql;
     104                         create table rate as
     105                         select tmp.*, pop.*
     106                         from tmp left join pop
     107                         on
     108                        ?popcross1? tmp.%cross1%=pop.%popcross1%;
     109                        ?popcross2? tmp.%cross2%=pop.%popcross2%;
     110                quit;
     111        %end;
     112
     113        %if &flag=2 %then %do;
     114                proc summary data=poptmp;
     115                         var popcount;
     116                         class %popcross1% %popcross2%  ;
     117                         output out=pop (drop=_TYPE_ _FREQ_)
     118                         sum=popnum;
     119
     120                proc sql;
     121                         create table rate as
     122                         select tmp.*, pop.*
     123                         from tmp left join pop
     124                         on
     125                         tmp.%cross1%=pop.%popcross1% and
     126                         tmp.%cross2%=pop.%popcross2%; 
     127                quit;
     128        %end;
    115129%mend;
    116 
    117130%popcross;
    118131
    119132
    120 proc print data=rate; title2 'RATE';
    121 
    122 %macro criscros;
    123        %if &popflag = 1 and &pflag = 1 %then %do;
    124                %cross1% = _TEMA001;
    125            %end;
    126            %else
    127        %if &popflag = 1 and &pflag = 2 %then %do;
    128                %cross2% = _TEMA001;
    129            %end;   
    130 %mend  criscros;
    131 
    132 %macro crostwo;
    133        %if &popflag = 2 %then %do;
    134                %cross1% = _TEMA001;
    135                %cross2% = _TEMA002;
    136            %end;
    137 %mend  crostwo;
    138 
    139 data tmp;
     133* Create the output variables for the IBIS xml/map file.;
     134
     135proc print data=rate;
     136         Title1 '/*******************************/';
     137         title2 '2.    RATE DATA for STABILITY    ';
     138
     139data  tmp;
    140140  set rate;
    141141
    142       %criscros;
    143           %crostwo;
    144 
    145   if number=. then n=0; else n=number;
    146   rate=n/popnum;
    147   rateper=rate*100000;
    148   stderr=sqrt(rate*(1-rate)/popnum)*100000;
    149   t1=(rateper-(1.96*stderr));
    150   if (t1<0) then t1=0;
    151   LL=put(t1, 8.2);
    152   UL=put((rateper+(1.96*stderr)), 8.2);
    153   LL=compress(LL);
    154   UL=compress(UL);
    155   CI=LL || ' - ' || UL;
    156 
    157 
    158 /*************************************************/
    159 /* Statictical Stability Indicator               */
    160 /* based on the relative standard error (RSE, or */
    161 /* coefficient of variance). Redflag values are  */
    162 /* converted to images or special characters in  */
    163 /* XSLT files (xslt\html\query\module\result\    */
    164 /* ResultPage.xslt and Values.xslt               */
    165 /*************************************************/
    166 
    167   rse=(stderr/rateper);
    168   if rse>.3 then redflag=1; *statistical stability – 1 red flag;
    169   if rse>.5 then redflag=2; *statistical stability - 2 red flags;
    170   if stderr=. then redflag=2; *no variance, n=1;
    171 keep %cross1% %cross2% n popnum rate rateper LL UL rse redflag;
    172 proc print data=tmp; title2 'TMP AGAIN';
     142          if number=. then n=0; else n=number;
     143          rate=n/popnum;
     144          rateper=rate*100000;
     145          stderr=sqrt(rate*(1-rate)/popnum)*100000;
     146 
     147          if n > 0 then do;
     148                 stderr=sqrt(rate*(1-rate)/popnum)*100000;
     149          end;
     150          if n = 0 then do;
     151                 stderr=sqrt((3/popnum)*(1-(3/popnum))/popnum)*100000;
     152          end;
     153
     154          t1=(rateper-(1.96*stderr));
     155          if (t1<0) then t1=0;
     156          LL=put(t1, 8.2);
     157          UL=put((rateper+(1.96*stderr)), 8.2);
     158          UL=compress(UL);
     159          LL=compress(LL);
     160
     161/*******************************************************/
     162/*       Statictical Stability Indicator Redflag       */
     163/* Based on the relative standard error (RSE), redflag */
     164/* values are converted to special characters in       */
     165/* IBIS-View application XSLT files                    */
     166/* xslt\html\query\module\result\ ResultPage.xslt and  */
     167/* Values.xslt                                         */
     168/*******************************************************/
     169
     170          if n > 0 then do;
     171                 rse=(stderr/rateper);
     172                 if rse>.3 then redflag=put('Unstable', $12.);
     173                 if rse>.5 then redflag=put('VeryUnstable', $12.);
     174                 if stderr=. then redflag=put('Unstable', $12.);
     175          end;
     176                 if n <= 0 then redflag=put('Unstable', $12.);
    173177run;
     178
     179/*******************************************************/
     180/*       New Mexico Small Numbers Rule                 */
     181/*******************************************************/
     182
     183data  tmp;
     184 set  tmp;
     185          if ((0<n<4) and (popnum<5000)) then do;
     186                 n = .A;
     187                 rate = .A;
     188                 LL = put('**', 8.0);
     189                 UL = put('**', 8.0);
     190
     191                 redflag = put('Suppressed', $12.);
     192                end;
     193               
     194          if popnum=. then redflag=put('', $12.);
     195   run;
     196
     197proc print data=tmp; title2 ''; run;
     198         Title1 '/************************************************/';
     199         title2 '2. Final RATE DATA for STABILITY to IBIS View app ';
    174200
    175201/**********************************************/
     
    190216
    191217--------BoNdArY--------
    192 f out_variable NumAsthma
     218f out_variable XMLNum
    193219#################################################
    194220# definition for output file
    195 f xml_out_map_file XMLNumAsthma.map
     221f xml_out_map_file XMLNum.map
    196222--------BoNdArY--------
    197223f out_detail lbl_not_used__see_xml_out_map_file
  • adopters/nm/trunk/src/main/backend_qModules/3.0/_EPHT/ed/NM_Count.def

    r24369 r24444  
    1 #NM_Count Asthma.def
     1#NM_Count.def
    22#f label Count
    33f type special
     
    1414         output out=tmp (drop=_TYPE_ _FREQ_)
    1515                sum=number;
     16                       
    1617proc sort data=tmp out=sorted;
    1718         by %cross1%
     
    3738         ;
    3839proc print data=frame noobs;
    39          title2 '2. ';
    40          title2 '           Data Frame            ';
     40         title2 '2.         Data Frame            ';
    4141  run;
    4242
     
    8080                         output out=pop  (drop=_TYPE_ _FREQ_)
    8181                                        sum=popnum;
     82                                                 
     83                                                                                         
     84                                                                                         
    8285
    8386                proc sql;
     
    104107                         on
    105108                         tmp.%cross1%=pop.%popcross1% and
    106                          tmp.%cross2%=pop.%popcross2%; 
     109                         tmp.%cross2%=pop.%popcross2%;
    107110                quit;
    108111        %end;
     
    163166          if ((0<n<4) and (popnum<5000)) then do;
    164167                 n = .A;
    165                  rate = .A;
     168                 rateper = .A;
    166169                 LL = put('**', 8.0);
    167170                 UL = put('**', 8.0);
     
    169172                 redflag = put('Suppressed', $12.);
    170173                end;
    171                 if popcount=. then redflag=put('', $12.);
    172           end;
     174               
     175          if popnum=. then redflag=put('', $12.);
     176   run;
    173177
    174178proc print data=tmp; title2 'Final --  to IBIS View app'; run;
  • adopters/nm/trunk/src/main/backend_qModules/3.0/_EPHT/ed/NM_CrudeRate100K.def

    r24369 r24444  
    1 #NM_RateCrude10K.def
     1#NM_RateCrude100K.def
    22f type special
    33#########################################
  • adopters/nm/trunk/src/main/backend_qModules/3.0/_EPHT/ed/NM_RateAA10K.def

    r24369 r24444  
    108108 * cross1 and cross2 totals to -1.                               ;
    109109 ****************************************************************;
    110         data poptmp; format &STDVAR %popcross1% %popcross2% 8.; set poptmp; run; 
     110        data poptmp; format &STDVAR %popcross1% %popcross2% 8.;
     111         set poptmp; run; 
    111112        proc summary data=poptmp;
    112                 var popcount;
    113                 class &STDVAR.  %popcross1% %popcross2%;
    114                 output out=pop (drop=_TYPE_ _FREQ_) sum=popcount;
    115         run;
     113                 var popcount;
     114                 class &STDVAR.  %popcross1% %popcross2%;
     115                 output out=pop (drop=_TYPE_ _FREQ_) sum=popcount;
     116        run;
     117       
    116118        data pop;
    117                 set pop;
    118                 drop _TYPE_ _FREQ_;
    119                 proc print data=pop noobs; 
     119         set pop;
     120        proc print data=pop noobs; 
    120121                   title2 '3. POP - denominator dataset';
    121122        run;
  • adopters/nm/trunk/src/main/backend_qModules/3.0/_EPHT/ed/NM_RateAA10K_GE25.def

    r24369 r24444  
    2525 ****************************************************************;
    2626        proc summary data=tmp;
    27                 var x; 
     27                var x;
    2828                class &STDVAR. %cross1%
    2929                ?cross2? %cross2%
     
    117117                 var popcount;
    118118                 class &STDVAR.  %popcross1% %popcross2%;
    119                  output out=pop (drop=_TYPE_ _FREQ_)  sum=popcount;
     119                 output out=pop (drop=_TYPE_ _FREQ_)
     120                 sum=popcount;
    120121        run;
    121122        data pop;
    122                 set pop;
    123                 drop _TYPE_ _FREQ_;
    124                 proc print data=pop noobs; 
    125                    title2 '3. POP - denominator dataset';
     123                 set pop;
     124        proc print data=pop noobs; 
     125                 title2 '3. POP - denominator dataset';
    126126        run;
    127127
     
    219219                 sum(ratewgt rate_var count popcount)=aarate aarate_var count popcount;
    220220       
    221         run;
    222 
     221         run;
    223222        proc sort data=aarate; by %cross1% %cross2%; run;
    224223
  • adopters/nm/trunk/src/main/backend_qModules/3.0/_EPHT/ed/XMLRate100KNDLCLUCL.map

    r24328 r24444  
    1 1 MEASURE RateAAED100K
     11 MEASURE RateAA100K
    222 ANCILLARY_VALUE Numerator
    333 ANCILLARY_VALUE Denominator
  • adopters/nm/trunk/src/main/backend_qModules/3.0/_EPHT/ed/XMLRate10KNDLCLUCL.map

    r24328 r24444  
    1 1 MEASURE RateED10K
     11 MEASURE Rate10K
    222 ANCILLARY_VALUE Numerator
    333 ANCILLARY_VALUE Denominator
Note: See TracChangeset for help on using the changeset viewer.