RSS Git Download  Clone
Raw Blame History
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;