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;