Changeset 21815 in main


Ignore:
Timestamp:
10/16/20 18:00:29 (10 days ago)
Author:
Paul Leo
Message:

Hawaii IBIS v2.3 YTS back-end .def and .sas programs
Correcting most, if not all issues with rounding and cell suppression.
Made sure that .cfg file lines were width of 78 chars or less
Still have questions though:
1) need to verify cell suppression rules
2) need to verify Statistical Stability output rules, and possibly the data_notes section describing the Statistical Stability output rules.

Location:
adopters/hi/branches/2.3/src/main/backend_qModules/yts
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • adopters/hi/branches/2.3/src/main/backend_qModules/yts/RateCrude.def

    r14505 r21815  
    55f type special_survey
    66f include SurveyCrudeRate.sas
    7 #f no_total true
     7f no_total true
    88#########################################
    99--------BoNdArY--------
     
    1111OPTIONS nocenter linesize=180;
    1212 %include %include%;
    13  %crudrt (%spvar1%, Weight);
     13 %crudrt(%spvar1%,Weight);
     14 
    1415--------BoNdArY--------
    1516f out_variable percent
     
    2223  lower 7.4
    2324  upper 7.4
    24   sum2 15.0
     25  finalsum 15.0
    2526  wgtsum2 15.0
    2627  redflag 14.0
     
    3132lower
    3233upper
    33 sum2
     34finalsum
    3435wgtsum2
    3536--------BoNdArY--------
  • adopters/hi/branches/2.3/src/main/backend_qModules/yts/RateCrudeNoVarLevel.def

    r14468 r21815  
    1212OPTIONS nocenter linesize=180;
    1313 %include %include%;
    14  %crudrt(%spvar1%, Weight);
     14 %crudrt(%spvar1%,Weight);
    1515 
    1616--------BoNdArY--------
     
    2424  lower 7.4
    2525  upper 7.4
    26   sum 15.0
     26  finalsum 15.0
    2727  wgtsum 15.0
    2828  redflag 14.0
     
    3333lower
    3434upper
    35 sum
     35finalsum
    3636wgtsum
    3737--------BoNdArY--------
  • adopters/hi/branches/2.3/src/main/backend_qModules/yts/SurveyCrudeRate.sas

    r14504 r21815  
    1313**********************************************************************;
    1414
    15 OPTIONS MPRINT MLOGIC MLOGICNEST SYMBOLGEN SPOOL SOURCE2 SUMSIZE=138M PAGESIZE=4000;
    16 
    17 **********************************************************************************************;
    18 * CODE FOR ADJUSTING FOR MULTIPLE YEARS. ONLY NEEDED IF PRESENTING POPULATION COUNT ESTIMATES.;
    19 * If cross1 and cross2 are not equal to year, then Weight is divided by the number of years  ;
    20 * the user selects                                                                            ;
    21 **********************************************************************************************;
    22 
     15OPTIONS MPRINT MLOGIC MLOGICNEST SYMBOLGEN SPOOL SOURCE2 SUMSIZE=138M PAGESIZE=4000 LINESIZE=MAX;
     16
     17************************************************************************************************;
     18* CODE FOR ADJUSTING FOR MULTIPLE YEARS. ONLY NEEDED IF PRESENTING POPULATION COUNT ESTIMATES  *;
     19* If cross1 and cross2 are not equal to year, then Weight is divided by the number of years    *;
     20* the user selects                                                                             *;
     21************************************************************************************************;
    2322/* proc print data=tmp (obs=10); run; */
     23
    2424proc freq data=tmp;
    2525   tables year / out=yrfreq noprint;
     
    3838data yrnum; set yrnum;
    3939        if year=.;
    40         keep nyears;
     40        keep year nyears;
    4141           proc print data=yrnum;
    4242        title1 ' '; title2 'yrnum only .';
     
    5353            title1 ' '; title2 'tmpyrwgt';
    5454          run;
    55    
    56  data tmp;
     55
     56data tmp;
    5757     set tmpyrwgt;
    5858/*       if upcase (%cross1%) ^='YEAR'
     
    6161     Weight=Weight/nyears;*/
    6262   run;
    63 
    64 proc print data=tmp (obs=10);
     63   
     64/*proc print data=tmp (obs=10);
    6565        title1 ' '; title2 'checktmp .'; run;
    66 
     66*/
     67 
    6768%macro crudrt(varname,weight,FocusLevel);
    6869?cross1? proc surveymeans data=tmp nobs sum mean stderr;
     
    100101********* tmp1: Grab stats for dimension totals *****************;
    101102*********(NOT SURE WE NEED THIS FOR CRUDE RATES)*****************;
     103*****************************************************************;
    102104proc print data=stats; title1 ' '; title2 'stats';
    103105
     
    110112  proc print;
    111113        title1 '===================================================================';
    112         title2 'tmp1: Grab percentage for HI overall';
     114        title2 'tmp1: Grab percentage for Hawaii overall';
    113115run;
    114116
     
    122124  &varname.=input(VarLevel, $54.);
    123125  drop LowerCLMean UpperCLMean VarLevel DomainLabel VarLabel VarName StdDev;
    124 /* this is not evaluating correctly 9/16/2016
    125  %if '%cross1%' != 'year' %then %do;
    126         if year_sflag<=0 then delete;
     126/* this code has never worked, originally there was a ! (logical OR) operator instead of the ^=
     127so the test was never true, fixed code to make test work, but that actually broke the output
     128since it has never worked, am commenting it out 
     129  %if %UPCASE(%cross1%) ^= YEAR %then %do;
     130    if year_sflag<=0  then delete;
    127131  %end;
    128132*/
     
    130134run;
    131135
    132 **********************************************************;
    133 ********** tmp3: Grab sample size (denominator) **********;
    134 **********************************************************;
     136****************************************************************;
     137********** tmp3: Grab sample size (denominator) ****************;
     138*** N (sas var), ouput in domain dataset by proc surveymeans ***;
     139*** is number of records with valid data for varname          **;
     140****************************************************************;
    135141proc summary data=tmp2;
    136142  var N;
     
    142148  proc sort data=SampleN; by %cross1%
    143149  ?cross2? %cross2%
    144   ;
     150  ;                     * sum(N)=, sum the values of N across all combinations of cross1, cross2 and varname;
     151                        *         gets subtotals by each class var, and a grand total across all values of all class variables;
    145152  proc print; title2 'sampleN - (Unweighted number of folks who answered either y or n) Number of Records for cell suppression';
    146153  run;
     
    149156  set sampleN;
    150157  if &varname. ='';
    151   sampleN=N;
     158    sampleN=N;
    152159  /*vtypetst=vtype(%cross1%);*/
    153160  drop  _TYPE_ _FREQ_ ;
     
    168175data tmp4;
    169176  set tmp2 tmp1;
    170   f=log(mean)-log(1-mean); 
    171   s=stderr/(mean*(1-mean));
    172   Lf=f-1.96*s; 
    173   Uf=f+1.96*s; 
    174   percent=mean*100;
    175   lower=(exp(Lf)/(1+exp(Lf)))*100;   
    176   upper=(exp(Uf)/(1+exp(Uf)))*100;
     177        if mean >0 then do;
     178                f=log(mean)-log(1-mean); 
     179                s=stderr/(mean*(1-mean));
     180                Lf=f-1.96*s; 
     181                Uf=f+1.96*s; 
     182                percent=mean*100;
     183          lower=(exp(Lf)/(1+exp(Lf)))*100;   
     184          upper=(exp(Uf)/(1+exp(Uf)))*100;
     185  end;
    177186  drop f s Lf Uf VarName;
    178187  proc sort data=tmp4; by %cross1%
     
    185194********* tmp5: Add sample size field to every record ************;
    186195********* this is only for cell suppression           ************;
     196******  N in output is unweighted numerator               ********;
     197****  Samplen in output is the unweighted denominator        *****;
    187198******************************************************************;
    188199
     
    192203  ?cross2? %cross2%
    193204  ;
    194   proc print; title2 'tmp5: Add sample size field to every record';
    195 run;
    196 
    197 *****************************************************************;
    198 ********** tmp6: Add wgtsum field to every record ************;
    199 ***********Used by Hawaii, they want pop num, not samplen********;
    200 *****************************************************************;
     205  proc print; title2 'tmp5: Add sample size (Samplen) field to every record';
     206run;
     207
     208******************************************************************;
     209********** tmp6: Add wgtsum field to every record ****************;
     210***********Used by Hawaii, they want estimated number in *********;
     211***   pop having that category/repsonse, not unweighted samplen **;
     212******************************************************************;
    201213proc summary data=tmp5;
    202   var Sum;
     214  var sum;
    203215  class %cross1%
    204216  ?cross2? %cross2%
    205217  &varname.
    206218  ;
    207   output out=weightedN sum(Sum)=wgtsum;
    208   proc sort data=weightedN; by %cross1%
    209   ?cross2? %cross2%
    210   ;
    211   proc print; title2 'weightedN - estimated population category in that category or response';
     219  output out=wgtsum sum(sum)=wgtsum;
     220  proc sort data=wgtsum; by %cross1%
     221  ?cross2? %cross2%
     222  ;
     223  proc print; title2 'wgtsum - estimated population category in that category or response';
    212224  run;
    213   data wgtsum;
    214         set weightedN;
    215         if &varname ='';
    216   proc print; title2 'wgtsum: Total rows of weighted N - estimated number in that category or response';
     225  data wgtdata;
     226        set wgtsum;
     227         if &varname ='';
     228  proc print; title2 'wgtdata: Total rows of wgtsum dataset - estimated number in that category or response';
    217229        run;
    218230       
     
    222234        ;
    223235        run;
    224   proc sort data=wgtsum;
     236  proc sort data=wgtdata;
    225237        by %cross1%
    226238        ?cross2? %cross2%
     
    228240        run;
    229241
    230 data tmp6; *Add weightedN (wgtsum) field to each record;
    231   merge wgtsum tmp5 ;
     242data tmp6; *Add wgtsum field (pop estimates) to each record by merging wgtdata and tmp5;
     243  merge wgtdata tmp5 ;
    232244  by %cross1%
    233245  ?cross2? %cross2%
    234246  ;
    235247  drop _TYPE_ _FREQ_ ;
    236   proc print; title2 'tmp6: Add weighted sample (wgtsum) field to every record';
     248  proc print; title2 'tmp6: Add wgtsum field (pop estimates) to each record by merging wgtdata and tmp5';
    237249run;
    238250
     
    268280 
    269281  redflag=put('Stable', $14.);
    270   if rse>.3 then redflag=put('Unstable', $14.);
    271   if rse>.5 then redflag=put('Very Unstable', $14.);
    272   if SampleN in (0 1) then redflag=put('No Variance', $14.);
     282 /**********************************************************************************************************
     283  * Not sure we are using this, just commenting out, and keeping it here;
     284  *   If we do use this we will have to change logic way below where we Convert values for cell suppression;
     285  *if rse>.3 then redflag=put('Unstable', $14.);
     286  *if rse>.5 then redflag=put('Very Unstable', $14.);
     287  ***********************************************************************************************************/
     288  /* may want to comment this out at some future date */
     289  if mean in (0 1) then redflag=put('No Variance', $14.);
    273290
    274291  if trow1=1 then sum2=sum/nyears; else sum2=sum;
     
    285302  %avgann;
    286303       
    287   /* Since these are esimates HI wants to round to 100's and sum is weighted count of each response */
    288    sum2=ROUND(sum2,100);
    289   /* original wgtsum=ROUND(wgtsum,100); */
    290   /* prevents wgtsum from being 0, we'll round up */
    291   If 0<wgtsum2<50 then wgtsum2=50;
    292          else if wgtsum2 >= 50 then
    293                 wgtsum2=ROUND(wgtsum2,100);
    294  
     304  /* Since these are esimates HI wants to round to 100's and sum2 is weighted count of each response (numerator) */
     305   finalsum=ROUND(sum2,100);
     306   
     307   /* Read emails around 3/18/2019 from Katherine
     308        Katherine want this to be if weighted count is less than 50 show 50, because even if no one
     309        responded yes to th e particular indicator question, that does not mean no one in population, just sample
     310   */
     311   if sum2<50 then finalsum=50;
     312
     313   wgtsum2=ROUND(wgtsum2,100);
     314
    295315  proc sort data=tmp7; by %cross1%
    296316  ?cross2? %cross2%
     
    299319  run;
    300320
    301 proc print data=tmp7; title2 'tmp7: Calc RSE, Add redflag to dataset, Set total rows to ., round num and denom';
     321proc print data=tmp7; title2 'tmp7: Compute RSE, Add redflag to dataset, delete Unknowns, Set total rows to ., remove other total rows, round num and denom';
    302322run;
    303323
     
    308328  set tmp7;
    309329  if &varname = ('%spvar2%'); /*This is the value for the indicator dimension passed in by the URL.;*/
    310   if (SampleN<35) then do;      /* Hawaii cell supression Rule */
    311 
     330  if (SampleN<100) then do;       /* Hawaii cell supression Rule  SampleN (unweighted number of folks who answered either y or n)*/
     331        percent = .A;   * percent who answered yes or no;
     332        lower = .A;             * lower confidence interval;
     333        upper = .A;             * upper confidence interval;
     334        finalsum = .A;  * pop estimated weighted numerator;
     335        wgtsum2 = .A;   * pop estimated weighted denominator;
    312336        percent = .A;
    313337        lower = .A;
     
    317341        redflag=put('Not Reportable', $14.);
    318342  end;
     343 
     344  if (County_N=1) AND(SampleN=0) then delete;  /* Handles the case for Hawaii County not having data for year 2011 */
     345
    319346
    320347  proc print data=tmp; title2 'final tmp: Convert values for cell suppression';
  • adopters/hi/branches/2.3/src/main/backend_qModules/yts/SurveyCrudeRateNoVarLevel.sas

    r14507 r21815  
    77* than 2 response categories. The varname passed in becomes            ;
    88* becomes &varname analyzed by proc surveymeans                        ;
     9*                                                                      ;
    910* Missing set to . for all indicator and dimension vars                ;
    1011*                                                                      ;
    1112***********************************************************************;
    1213
    13 OPTIONS MPRINT MLOGIC MLOGICNEST SYMBOLGEN SPOOL SOURCE2 SUMSIZE=138M PAGESIZE=4000;
    14 
    15 ***************************************************************************************************;
    16 * CODE FOR ADJUSTING FOR MULTIPLE YEARS. ONLY NEEDED IF PRESENTING POPULATION COUNT ESTIMATES.     ;
    17 * If cross1 and cross2 are not equal to year, then Weight is divided by the number of years        ;
    18 * the user selects                                                                                 ;
    19 ***************************************************************************************************;
    20  
    21  /* proc print data=tmp (obs=10); run; */
     14OPTIONS MPRINT MLOGIC MLOGICNEST SYMBOLGEN SPOOL SOURCE2 SUMSIZE=138M PAGESIZE=4000 LINESIZE=MAX;
     15
     16**********************************************************************************************;
     17* CODE FOR ADJUSTING FOR MULTIPLE YEARS. ONLY NEEDED IF PRESENTING POPULATION COUNT ESTIMATES.;
     18* If cross1 and cross2 are not equal to year, then Weight is divided by the number of years   ;
     19* the user selects                                                                            ;
     20**********************************************************************************************;
     21 
     22/* proc print data=tmp (obs=10); run; */
     23
    2224proc freq data=tmp;
    2325   tables year / out=yrfreq noprint;
     
    4850                from tmp, yrnum
    4951        quit;
     52        /*
    5053      proc print data=tmpyrwgt (obs=10);
    5154        title1 ' '; title2 'tmpyrwgt';
     55    */   
    5256           run;
    53    
     57
    5458 data tmp;
    5559     set tmpyrwgt;
     
    5963     Weight=Weight/nyears;*/
    6064   run;
    61    
     65/*   
    6266proc print data=tmp (obs=10);
    6367        title1 ' '; title2 'checktmp .'; run;
     68*/
    6469 
    6570%macro crudrt(varname,weight);
     
    7782?cross1?        domain=domain ;
    7883?cross1?   weight &weight. ;
     84?cross1?   proc print data=stats; title1 ' '; title2 'stats';
    7985?cross1? run;
    8086
     
    8288********* tmp1: Grab stats for dimension totals *****************;
    8389*********(NOT SURE WE NEED THIS FOR CRUDE RATES)*****************;
     90*****************************************************************;
    8491proc print data=stats; title1 ' '; title2 'stats';
    8592
     
    8996  trow1 = 1;
    9097  ?cross2? trow2 = 1;
    91   drop VarName VarLabel StdDev;
     98  drop VarLevel VarName VarLabel StdDev;
    9299  proc print;
    93100        title1 '===================================================================';
    94         title2 'tmp1: Grab percentage for HI overall';
     101        title2 'tmp1: Grab percentage for Hawaii overall';
    95102run;
    96103
     
    103110  set domain;
    104111  &varname.=input(VarLevel, $62.);
    105   drop LowerCLMean UpperCLMean DomainLabel VarLabel VarName StdDev;
    106 
    107   %if '%cross1%' != 'Year' %then %do;
    108         if year_sflag<=0 then delete;
     112  drop LowerCLMean UpperCLMean VarLevel DomainLabel VarLabel VarName StdDev;
     113/* this code has never worked, originally there was a ! (logical OR) operator instead of the ^=
     114so the test was never true, fixed code to make test work, but that actually broke the output
     115since it has never worked, am commenting it out 
     116  %if %UPCASE(%cross1%) ^= YEAR %then %do;
     117    if year_sflag<=0  then delete;
    109118  %end;
    110 
     119*/
    111120  proc print; title2 'tmp2: Grab %, SE, codes for indicator variable';
    112121run;
    113122
    114 **********************************************************;
    115 ********** tmp3: Grab sample size (denominator) **********;
    116 **********************************************************;
     123****************************************************************;
     124********** tmp3: Grab sample size (denominator) ****************;
     125*** N (sas var), ouput in domain dataset by proc surveymeans ***;
     126*** is number of records with valid data for varname          **;
     127****************************************************************;
    117128proc summary data=tmp2;
    118129  var N;
     
    124135  proc sort data=SampleN; by %cross1%
    125136  ?cross2? %cross2%
    126   ;
    127   proc print; title2 'sampleN - Number of Records for cell suppression';
     137  ;                     * sum(N)=, sum the values of N across all combinations of cross1, cross2 and varname;
     138                        *         gets subtotals by each class var, and a grand total across all values of all class variables;
     139  proc print; title2 'sampleN - (Unweighted number of folks who answered either y or n) Number of Records for cell suppression';
    128140  run;
    129141data tmp3;
    130142  format trow1 trow2 1.0;
    131143  set sampleN;
    132     if &varname. =''; 
    133   sampleN=N;
     144  if &varname. ='';
     145    sampleN=N;
    134146  /*vtypetst=vtype(%cross1%);*/
    135147  drop  _TYPE_ _FREQ_ ;
     
    154166data tmp4;
    155167  set tmp2 tmp1;
    156   f=log(mean)-log(1-mean); 
    157   s=stderr/(mean*(1-mean));
    158   Lf=f-1.96*s; 
    159   Uf=f+1.96*s; 
    160   percent=mean*100;
    161   lower=(exp(Lf)/(1+exp(Lf)))*100;   
    162   upper=(exp(Uf)/(1+exp(Uf)))*100;
     168        if mean >0 then do;
     169                f=log(mean)-log(1-mean); 
     170                s=stderr/(mean*(1-mean));
     171                Lf=f-1.96*s; 
     172                Uf=f+1.96*s; 
     173                percent=mean*100;
     174          lower=(exp(Lf)/(1+exp(Lf)))*100;   
     175          upper=(exp(Uf)/(1+exp(Uf)))*100;
     176  end;
    163177  drop f s Lf Uf VarName;
    164178  proc sort data=tmp4; by %cross1%
     
    171185********* tmp5: Add sample size field to every record ************;
    172186********* this is only for cell suppression           ************;
     187******  N in output is unweighted numerator               ********;
     188****  Samplen in output is the unweighted denominator        *****;
    173189******************************************************************;
    174190
     
    177193  by %cross1%
    178194  ;
    179   proc print; title2 'tmp5: Add SampleN to every record';
    180 run;
    181 
    182 *****************************************************************;
    183 ********** tmp6: Add wgtsum field to every record ************;
    184 ***********Used by Hawaii, they want pop num, not samplen********;
    185 *****************************************************************;
     195  proc print; title2 'tmp5: Add sample size (Samplen) field to every record';
     196run;
     197
     198******************************************************************;
     199********** tmp6: Add wgtsum field to every record ****************;
     200***********Used by Hawaii, they want estimated number in *********;
     201***   pop having that category/repsonse, not unweighted samplen **;
     202******************************************************************;
    186203proc summary data=tmp5;
    187204  var sum;
     
    193210  proc sort data=wgtsum; by %cross1%
    194211  ;
    195   proc print; title2 'wgtsum';
     212  proc print; title2 'wgtsum - estimated population category in that category or response';
    196213  run;
    197214  data wgtdata;
    198215        set wgtsum;
    199216         if &varname ='';
    200   proc print; title2 'wgtdata: Total rows of sum';
     217  proc print; title2 'wgtdata: Total rows of wgtsum dataset - estimated number in that category or response';
    201218        run;
    202219       
     
    211228        run;
    212229
    213 data tmp6; *Add wgtsum field to each record;
     230data tmp6; *Add wgtsum field (pop estimates) to each record by merging wgtdata and tmp5;
    214231  merge wgtdata tmp5 ;
    215232  by %cross1%
    216233  ;
    217234  drop _TYPE_ _FREQ_ ;
    218   proc print; title2 'tmp6: Add wgtsum field to every record';
     235  proc print; title2 'tmp6: Add wgtsum field (pop estimates) to each record by merging wgtdata and tmp5';
    219236run;
    220237
     
    255272  if 0<mean<.50 then RSE=(StdErr/mean);
    256273  if .50<=mean<1 then RSE=(StdErr/(1-mean));
    257 
     274 
    258275  redflag=put('Stable', $14.);
    259   if rse>.3 then redflag=put('Unstable', $14.);
    260   if rse>.5 then redflag=put('Very Unstable', $14.);
    261   if sum=1 then redflag=put('No Variance', $14.); 
     276 /**********************************************************************************************************
     277  * Not sure we are using this, just commenting out, and keeping it here;
     278  *   If we do use this we will have to change logic way below where we Convert values for cell suppression;
     279  *if rse>.3 then redflag=put('Unstable', $14.);
     280  *if rse>.5 then redflag=put('Very Unstable', $14.);
     281  ***********************************************************************************************************/
     282  /* may want to comment this out at some future date */
     283  if mean in (0 1) then redflag=put('No Variance', $14.);
    262284
    263285  if trow1=1 and trow2=1 then delete; /* get rid of total */
     286
     287  /* Since these are esimates HI wants to round to 100's and sum is weighted numerator */
    264288 
    265   /* Since these are esimates HI wants to round to 100's and sum is numerator */
    266    sum=ROUND(sum,100);
    267   If 0<wgtsum<50 then wgtsum=50;
    268         else if wgtsum >= 50 then
    269         wgtsum=ROUND(wgtsum,100);
    270 
    271   proc sort data=tmp7; by %cross1% &varname.
     289   finalsum=ROUND(sum,100);
     290   
     291   /* had this as  If 0<sum<50 then finalsum=50;, but in reading emails from around 3/18/2019
     292    Katherine want this to be if weighted count is less than 50 show 50, because even if no one
     293        responded yes to th e particular indicator question, that does not mean no one in population, just sample
     294  */
     295    If sum<50 then finalsum=50;
     296   
     297  wgtsum=ROUND(wgtsum,100);
     298
     299 
     300  proc sort data=tmp7; by %cross1%
     301  ?cross2? %cross2%
     302  &varname.
    272303  ;
    273304  run;
     
    282313  set tmp7;
    283314 
    284   if (SampleN<35) then do;      /* Hawaii cell supression Rule */
    285         percent = .A;
    286         lower = .A;
    287         upper = .A;
    288         sum = .A;
    289         wgtsum = .A;
     315  if (SampleN<100) then do;     /* Hawaii cell supression Rule */
     316
     317        percent = .A;   * percent who answered yes or no;
     318        lower = .A;             * lower confidence interval;
     319        upper = .A;             * upper confidence interval;
     320        finalsum = .A;  * pop estimated weighted numerator;
     321        wgtsum = .A;    * pop estimated weighted denominator;
    290322        redflag=put('Not Reportable', $14.);
    291323  end;
  • adopters/hi/branches/2.3/src/main/backend_qModules/yts/_YTS15.cfg

    r15633 r21815  
    1 #==============================================================================
     1#===========================================================================
    22# IBIS-Q Configuration File
    33#
    44# Modifications:
    55# Date       By         Description
    6 # ----------  ---------  ------------------------------------------------------
     6# ----------  ---------  ---------------------------------------------------
    77# 07/11/2017  Lois       Initial YTS setup
    8 #==============================================================================
     8#===========================================================================
    99#value name_path value_path
    1010d homepath C:\ibisq\qModules\yts\
Note: See TracChangeset for help on using the changeset viewer.