+my %query;
+
+{
+ if ($saved_search->{'CurrentSearch'}->{'Object'}) {
+ foreach my $search_field (@{ $saved_search->{'SearchFields'} }) {
+ $query{$search_field} = $saved_search->{'CurrentSearch'}->{'Object'}->Content->{$search_field};
+ }
+ }
+
+ my $current = $session{'CurrentSearchHash'};
+
+ my @session_fields = qw(
+ Query
+ SavedChartSearchId
+ SavedSearchDescription
+ SavedSearchLoad
+ SavedSearchLoadButton
+ SavedSearchOwner
+ );
+
+ for(@session_fields) {
+ $query{$_} = $DECODED_ARGS->{$_} unless defined $query{$_};
+ $query{$_} = $current->{$_} unless defined $query{$_};
+ }
+
+ if ($DECODED_ARGS->{'SavedSearchLoadSubmit'}) {
+ $query{'SavedChartSearchId'} = $DECODED_ARGS->{'SavedSearchLoad'};
+ }
+
+ if ($DECODED_ARGS->{'SavedSearchSave'}) {
+ $query{'SavedChartSearchId'} = $saved_search->{'SearchId'};
+ }
+
+}
+
+$m->callback( ARGSRef => \%ARGS, QueryArgsRef => \%query );