Question: so it was like this: elsif ($priority_name eq 'Scheduled') { my $date = $order->{startTime} =~ /^(d{4}-d{2}-d{2})/; push @{ $scheduled{$date} }, $order; } my %grouped_orders; my
so it was like this: elsif ($priority_name eq 'Scheduled') { my $date = $order->{startTime} =~ /^(\d{4}-\d{2}-\d{2})/; push @{ $scheduled{$date} }, $order; } my %grouped_orders; my @sorted_keys = sort keys %scheduled; foreach my $key (@sorted_keys) { my @orders = @{ $scheduled{$key} }; # Filter and sort orders without procedureStageName by startTime my @scheduled_time_orders = sort { $a->{startTime} cmp $b->{startTime} || _SortOrderTiebreak({ FIRSTORDER => $a, SECONDORDER => $b }) } grep { !defined $_->{ascMarOrderDetails}->{procedureStageName} || $_->{ascMarOrderDetails}->{procedureStageName} eq '' && $_->{startDateTimePrecision} eq 'TIME' } @orders; # Filter orders with procedureStageName my @scheduled_place_orders = grep { defined $_->{ascMarOrderDetails}->{procedureStageName} && $_->{ascMarOrderDetails}->{procedureStageName} ne '' } @orders; $grouped_orders{$key} = { time_orders => \@scheduled_time_orders, place_orders => \@scheduled_place_orders, }; } my @scheduled_orders; foreach my $date (sort keys %grouped_orders) { my $time_orders = $grouped_orders{$date}->{time_orders}; my $place_orders = $grouped_orders{$date}->{place_orders}; push @scheduled_orders, @$time_orders; if (@$place_orders) { my $sorted_orders = _SortProcedureStageOrders({ ORDERS => $place_orders }); push @scheduled_orders, @$sorted_orders; }} return [ @stat, @now, @scheduled_orders ]
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
