Index: trunk/ippScripts/scripts/chip_imfile.pl
===================================================================
--- trunk/ippScripts/scripts/chip_imfile.pl	(revision 14093)
+++ trunk/ippScripts/scripts/chip_imfile.pl	(revision 14115)
@@ -68,19 +68,20 @@
    [   
        #          PPSTATS KEYWORD         STATISTIC          CHIPTOOL FLAG
-       { name => "ROBUST_MEDIAN",  type => "mean",  flag => "-bg" },
-       { name => "ROBUST_MEDIAN",  type => "stdev", flag => "-bg_mean_stdev" },
-       { name => "ROBUST_STDEV",   type => "rms",   flag => "-bg_stdev" },
-       { name => "FRINGE_0",       type => "rms",   flag => "-fringe_0" },
-       { name => "FRINGE_RESID_0", type => "rms",   flag => "-fringe_1" },
-       { name => "FRINGE_ERR_0",   type => "rms",   flag => "-fringe_2" },
-       { name => "OVER_VAL",       type => "mean",  flag => "-bias" },
-       { name => "FWHM",           type => "mean",  flag => "-fwhm" },
-       { name => "APMIFIT",        type => "mean",  flag => "-ap_resid" },
-       { name => "DAPMIFIT",       type => "rms",   flag => "-ap_resid_stdev" },
-       { name => "CERROR",         type => "rms",   flag => "-sigma_ra" },
-       { name => "CERROR",         type => "rms",   flag => "-sigma_dec" },
-       { name => "NSTARS",         type => "sum",   flag => "-n_stars" },
-       { name => "NASTRO",         type => "sum",   flag => "-n_astrom" },
+       { name => "ROBUST_MEDIAN",  type => "mean",  flag => "-bg",             dtype => "float" },
+       { name => "ROBUST_MEDIAN",  type => "stdev", flag => "-bg_mean_stdev",  dtype => "float" },
+       { name => "ROBUST_STDEV",   type => "rms",   flag => "-bg_stdev",       dtype => "float" },
+       { name => "FRINGE_0",       type => "rms",   flag => "-fringe_0",       dtype => "float" },
+       { name => "FRINGE_RESID_0", type => "rms",   flag => "-fringe_1",       dtype => "float" },
+       { name => "FRINGE_ERR_0",   type => "rms",   flag => "-fringe_2",       dtype => "float" },
+       { name => "OVER_VAL",       type => "mean",  flag => "-bias", 	       dtype => "float" },
+       { name => "FWHM",           type => "mean",  flag => "-fwhm", 	       dtype => "float" },
+       { name => "APMIFIT",        type => "mean",  flag => "-ap_resid",       dtype => "float" },
+       { name => "DAPMIFIT",       type => "rms",   flag => "-ap_resid_stdev", dtype => "float" },
+       { name => "CERROR",         type => "rms",   flag => "-sigma_ra",       dtype => "float" },
+       { name => "CERROR",         type => "rms",   flag => "-sigma_dec",      dtype => "float" },
+       { name => "NSTARS",         type => "sum",   flag => "-n_stars",        dtype => "int"   },
+       { name => "NASTRO",         type => "sum",   flag => "-n_astrom",       dtype => "int"   },
    ];
+my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser
 
 # Look for programs we need
@@ -140,5 +141,4 @@
 
     # extract the stats from the metadata
-    my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser
     unless ($stats->parse($metadata)) {
 	&my_die("Unable to find all values in statistics output.\n", $chip_id, $class_id, $PS_EXIT_PROG_ERROR);
@@ -154,11 +154,5 @@
 $command .= " -path_base $outputRoot";
 $command .= " -dbname $dbname" if defined $dbname;
-
-# add in the elements from the selected stats above
-foreach my $entry (@$STATS) {
-    my $value = $entry->{value};
-    my $flag = $entry->{flag};
-    $command .= " $flag $value";
-}
+$command .= $stats->cmdflags();
 
 # Add the processed file to the database
