#!/usr/bin/env perl =begin ------------------------------------------------------------------------- unreported records > 14 calendar days after registration date =cut --------------------------------------------------------------------------- use strict; use warnings; use Getopt::Std; getopts('d:t'); # days, testing our($opt_d,$opt_t); # warn $opt_d; exit; # emails only 'service_email' addr in config my $JUST_TESTING = $opt_t || 0; # email to ra.jones only ################################################################################ my @recipients = qw( douglas bagguley raj ); my $duration = $opt_d || 14; # how many calendar days since registration ################################################################################ use lib '/home/raj/perl5/lib/perl5'; use Data::Printer; use FindBin qw($Bin); # warn $Bin; use lib $Bin . '/../../../lib'; use LIMS::Local::ScriptHelpers; # get tools from LIMS::Local::ScriptHelpers: my $tools = LIMS::Local::ScriptHelpers->new(); $tools->test_only($JUST_TESTING); my $sql_lib = $tools->sql_lib(); my $config = $tools->config(); my $dbix = $tools->dbix(); my @trial = my @non_trial = sprintf "%-10s %-7s %s / %s\n", qw(LabNo Days Location Presentation); my $query = $sql_lib->retr('unreported_requests'); my $result = $dbix->query($query); RESULT: while (my $ref = $result->hash) { # p $ref; next; # skip if le x days since report: next RESULT if $ref->{delta} <= $duration; # put labno in brackets if Outreach: $ref->{labno} = ( sprintf '[%s]', $ref->{labno} ) if $ref->{presentation} =~ /Outreach/; my @fields = qw( labno delta location presentation ); if ( $ref->{trial_case} ) { # boolean 1 or undef push @trial, sprintf "%-10s | %s | %s :: %s", @{$ref}{@fields}; } else { push @non_trial, sprintf "%-10s | %s | %s :: %s", @{$ref}{@fields}; } } # p @trial; p @non_trial; { my $subject = sprintf 'Non-trial requests >%s days unreported [%s]', $duration, scalar @non_trial; my %mail = ( config => $config, subject => $subject, message => join "\n", @non_trial, ); # p %mail; $tools->send_mail(\%mail, \@recipients); } { my $subject = sprintf 'Clinical trial requests >%s days unreported [%s]', $duration, scalar @trial; my %mail = ( config => $config, subject => $subject, message => join "\n", @trial, ); # p %mail; $tools->send_mail(\%mail, \@recipients); }