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;