package LIMS::Controller::Roles::Dashboard; use Moose::Role; has dashboard_data => ( is => 'ro', isa => 'HashRef', traits => ['Hash'], default => sub { {} }, handles => { set_dashboard_data => 'set' }, ); sub dashboard_view { my $self = shift; { # urgent my %args = ( status_query => 'urgent' ); my $n = $self->model('WorkList')->request_status_count(\%args); $self->set_dashboard_data( urgent => $n ); } { # unscreened my %args = ( status_query => 'unscreened' ); my $n = $self->model('WorkList')->request_status_count(\%args); $self->set_dashboard_data( unscreened => $n ); } { # unreported my %args = ( status_query => 'unreported', duration => $self->cfg('settings')->{unreported_duration}, ); # warn Dumper \%args; my $n = $self->model('WorkList')->request_status_count(\%args); $self->set_dashboard_data( unreported => $n ); } { # unreported, tests_completed my %args = ( status_query => 'tests_completed' ); my $n = $self->model('WorkList')->request_status_count(\%args); $self->set_dashboard_data( tests_completed => $n ); } { # unauthorised my %args = ( status_query => 'unauthorised' ); my $n = $self->model('WorkList')->request_status_count(\%args); $self->set_dashboard_data( unauthorised => $n ); } { # authorised incomplete my %args = ( status_query => 'incomplete' ); my $n = $self->model('WorkList')->request_status_count(\%args); $self->set_dashboard_data( incomplete => $n ); } { # incomplete lab-tests: my $data = $self->model('LabTest')->get_incomplete_lab_tests(); $self->set_dashboard_data( incomplete_section_tests => $data ); } } 1;