RSS Git Download  Clone
Raw Blame History
package LIMS::Model::Test;

use strict;

use base 'LIMS::Model::Base';
use Data::Dumper;

#-------------------------------------------------------------------------------
sub get_all_diagnoses {
    my $self = shift;

    my %args = (
        sort_by => 'name',
        require_objects => 'diagnostic_category',
        limit => 5,
    );

    my $data = LIMS::DB::Diagnosis::Manager->get_diagnosiss(%args); # DEBUG $data;

    return $data;
}

# experimental method using DBIx::Simple - too slow with CONCAT in sql
sub get_request_and_patient_data_from_labno {
    my ($self, $labnos) = @_; # warn Dumper $labnos;
    
    my $dbix = $self->lims_dbix;
    
    my $sql = q!
        select r.id, p.last_name from requests r join patient_case pc on
        r.patient_case_id = pc.id join patients p on pc.patient_id = p.id
        where concat('H', r.request_number, '/', r.year - 2000) in (??)!;
        
    my $data = $dbix->query( $sql, @$labnos)->hashes; # warn Dumper $data;
    
    return $data;
}

sub db_read_timer {
    my $self = shift;
    my $cycles = shift || ''; # optional
    
    my $dbix = $self->lims_dbix;
    
    my $query = $dbix->query('select * from referrers');
    
    my $i = 0;
    ROW: while ( my $row = $query->hash ) {
        $i++; last ROW if $cycles && $i == $cycles;
    }
    return $i;
}

sub db_write_timer {
    my ($self, $cycles) = @_;
    
    my $dbix = $self->lims_dbix;
    
    $dbix->dbh->do(q!create table if not exists lims_test.timer( count int )! );
    
    my $i = 0;
    for ( 1 .. $cycles ) {
        $dbix->insert( 'lims_test.timer', { count => $i++} );
    }
    $dbix->dbh->do('drop table if exists lims_test.timer');
    return $i;
}

sub db_read_write_timer {
    my ($self, $cycles) = @_;
    
    my $dbix = $self->lims_dbix;
    
    $dbix->dbh->do(q!create table if not exists lims_test.timer like referrers! );

    my $sql = 'select * from referrers';
    $sql .= qq! limit $cycles! if $cycles;
    
    my $query = $dbix->query($sql);
    
    my $i = 0;
    
    for my $ref ( $query->hashes ) { # warn Dumper $ref;
        my %data = map {
            $_ => $ref->{$_};
        } grep $_ ne 'id', keys %$ref;
        $dbix->insert( 'lims_test.timer', \%data );
        $i++;
    }
    $dbix->dbh->do('drop table if exists lims_test.timer');
    return $i;
}

1;