package LIMS::Controller::Admin::Lab::Test::ResultSummaryTests;
use Data::Dumper;
use LIMS::Local::Sugar;
use Moose;
BEGIN { extends 'LIMS::Base'; }
with (
'LIMS::Controller::Roles::Misc',
'LIMS::Controller::Roles::DataMap',
);
__PACKAGE__->meta->make_immutable(inline_constructor => 0);
__PACKAGE__->authz->authz_runmodes( ':all' => 'do_admin' );
# ------------------------------------------------------------------------------
startmode default ($errs) { # not using $errs
$self->_debug_path($self->get_current_runmode);
my $lab_sections = $self->model('LabSection')->get_lab_sections;
$self->tt_params( lab_sections => $lab_sections );
if ( my $summary_id = $self->query->param('results_summary_id') ) { # warn $summary_id;
{
my $summary = $self->model('Result')
->get_results_summary_option($summary_id);
$self->tt_params( results_summary => $summary->description );
}
{
my %data;
my $all_tests = $self->model('LabTest')->get_lab_tests();
for (@$all_tests) {
my $section = $_->lab_section->section_name;
push @{ $data{$section} }, $_->as_tree;
}
$self->tt_params( section_tests => \%data );
}
{ # get existing data:
my $map = $self->results_summary_lab_test_map(); # warn Dumper $map;
my $data = $map->{$summary_id};
$self->tt_params( result_summary_lab_tests => $data );
}
}
return $self->tt_process('admin/lab/test/resultsummarytests/default.tt');
}
# ------------------------------------------------------------------------------
# ajax function called from select menu:
runmode results_summaries {
$self->_debug_path($self->get_current_runmode);
my $results_summaries = [];
if ( my $section_id = $self->query->param('section_id') ) { warn $section_id;
$results_summaries = $self->model('Result')
->get_results_summary_options_for_section($section_id);
}
return $self->tt_process({ results_summaries => $results_summaries });
}
# ------------------------------------------------------------------------------
runmode update ($id) {
$self->_debug_path($self->get_current_runmode);
my @lab_test_id = $self->query->param('test_id');
my %data = (
summary_id => $id,
lab_test_id => \@lab_test_id,
); # warn Dumper \%data;
my $rtn = $self->model('LabTest')->update_results_summary_lab_tests(\%data);
my $url = '/admin/lab_test_result-summary-tests?results_summary_id=' . $id;
return $rtn
? $self->error($rtn)
: $self->redirect_after_edit_success($url);
}
1;