Index: /branches/czw_branch/20110406/pstamp/scripts/detectability_respond.pl
===================================================================
--- /branches/czw_branch/20110406/pstamp/scripts/detectability_respond.pl	(revision 31216)
+++ /branches/czw_branch/20110406/pstamp/scripts/detectability_respond.pl	(revision 31217)
@@ -31,4 +31,7 @@
                        caturi
                        );
+use PS::IPP::Metadata::Config;
+use PS::IPP::Metadata::List qw( parse_md_list );
+
 use Astro::FITS::CFITSIO qw( :constants );
 Astro::FITS::CFITSIO::PerlyUnpacking(1);
@@ -89,4 +92,5 @@
 my $wisdom_file = "${workdir}/wisdom.dat";
 if ((-e $wisdom_file)&&!($ignore_wisdom)) {
+    
     print "Reading wisdom file $wisdom_file instead of parsing...\n";
     open(WISDOM,"$wisdom_file") or my_die("failed to open wisdom file $wisdom_file");
@@ -95,21 +99,26 @@
     my $wisdom = <WISDOM>;
     $/ = $terminator;
-    
-    # @query_list = parse_md_list( parse($wisdom));
-    while(<WISDOM>) {
-	chomp;
-	my ($fpa_id,@key_values) = split /\s+/;
-	my $index = $#{ $query{$fpa_id}{ROWNUM} } + 1;
-	while ($#key_values > -1) {
-	    my $key = shift(@key_values);
-	    my $val = shift(@key_values);
-	    # if we have wisdom, then we should have updated already.  If not, we'll bomb out later in the code.
-	    if ($key eq 'FAULT') {
-		$val = 0;
-	    }
-	    $query{$fpa_id}{$key}[$index] = $val;
-	}
-    }
-    close(WISDOM);
+    close(WISDOM);    
+
+    my $mdcParser = PS::IPP::Metadata::Config->new; 
+
+    my $queryData = $mdcParser->parse( $wisdom );
+    foreach my $entry (@{ $queryData }) {
+	if (@{ $entry }{name} eq 'DETECTABILITY_WISDOM') {
+	    my $fpa_id = "NO_ID";
+	    my @entryData = @{ ${ $entry }{value} };
+	    foreach my $dentry (@entryData) {
+		if (${ $dentry }{name} eq 'FPA_ID') {
+		    $fpa_id = ${ $dentry }{value};
+		    push @{ $query{$fpa_id}{${ $dentry }{name}} }, ${ $dentry }{value};
+		}
+		else {
+#		    print "$entry ${ $dentry }{name} $fpa_id ${ $dentry }{value}\n";
+		    push @{ $query{$fpa_id}{${ $dentry }{name}} }, ${ $dentry }{value};
+		}
+	    }
+	}
+    }
+
 } # End reading wisdom.
 else {
@@ -330,11 +339,18 @@
 my %processing_request;
 
+my @keylist = ('IMAGE_DB','QUERY_ID','FPA_ID','MJD-OBS','FILTER','OBSCODE','STAGE',
+	       'ROWNUM','RA1_DEG','DEC1_DEG','RA2_DEG','DEC2_DEG','MAG',
+	       'STAGE_ID','COMPONENT_ID','CLASS_ID','STATE','DATA_STATE','BURNTOOL_STATE','FAULT',
+	       'MAGICKED','NEED_MAGIC','BAD_COMPONENT',
+	       'IMAGE','MASK','WEIGHT','CATALOG','PSF');
+	       
+
 open(WISDOM,">$wisdom_file") or my_die("failed to open wisdom file $wisdom_file");
 print WISDOM "DETECTABILITY_WISDOM MULTI\n\n";
-foreach my $fpa_id (sort {$query{$a}{ROWNUM} <=> $query{$a}{ROWNUM} } (keys %query)) {
+foreach my $fpa_id (sort {$query{$a}{ROWNUM}[0] <=> $query{$b}{ROWNUM}[0] } (keys %query)) {
     for (my $i = 0; $i <= $#{ $query{$fpa_id}{ROWNUM} }; $i++) {
 	print WISDOM "DETECTABILITY_WISDOM METADATA\n";
 	printf(WISDOM "   %15s  %3s       %s\n","FPA_ID","STR",$fpa_id);
-	foreach my $key (keys %{ $query{$fpa_id} }) {
+	foreach my $key (@keylist) {
 	printf(WISDOM "   %15s  %3s       %s\n",$key,"STR",$query{$fpa_id}{$key}[$i]);
 	}
