package LIMS::Model::Outreach;
use Moose;
with (
'LIMS::Model::Roles::DBIxSimple',
);
extends 'LIMS::Model::Base';
use namespace::clean -except => 'meta';
__PACKAGE__->meta->make_immutable;
use Data::Dumper;
sub get_all_data {
my ($self, $request_id) = @_; # warn $request_id;
my $dbix = $self->lims_dbix;
my %h = (
lab_results => {},
defaults_and_ranges => {},
);
{ # lab_results:
my $sql = $self->sql_lib->retr('outreach_lab_results');
my $query = $dbix->query($sql, $request_id);
my %results = ();
while ( my $vals = $query->hash ) {
my $result = $vals->{result};
my $param = $vals->{param_name};
my $dept = $vals->{description};
$results{$dept}{$param} = $result;
}
$h{lab_results} = \%results;
}
{ # departments (haem, immunology, biochem, etc)
my $sql = $self->sql_lib->retr('outreach_lab_params');
my $query = $dbix->query($sql);
my %params = ();
while (my $vars = $query->hash) {
my $dept = $vars->{description};
my $param = $vars->{param_name};
push @{ $params{$dept} }, $param;
}
$h{departments} = \%params;
}
{ # defaults & ranges:
my $sql = $self->sql_lib->retr('outreach_defaults_and_ranges');
my $data = $dbix->query($sql)->map_hashes('param_name');
$h{defaults_and_ranges} = $data;
}
return \%h;
}
sub get_diagnosis_ids {
my $self = shift;
my $dbix = $self->lims_dbix;
my $ids = $dbix->query('select diagnosis_id from outreach.diagnoses')->flat;
return $ids;
}
1;