logic to determine whether to set request status to complete considers result summary datetime relative to authorisation datetime; replaced io unlink() with system unlink in render_pdf - was giving occasional errors; replaced M::Base::does_authorisation method with Moose attr to save repeat db queries; fixed oversight in _archive_report_details() causing history log to record amended specimen_date at every authorisation; gallium_data.pl checks for comment field to prevent fatal error; more report_status.t tests to test for status change on delayed result summary entry
fixed missing specimen error - caused by submission of 'BMAT.PB' - RDBO 0.80 truncated at 4chars; moved specimen split regex to Local::Utils & added validation of specimen length; fixed ErrorHandler error in assuming exists - didn't for devel server; added Sphinx search facility - switchable on/off via config; changed bcl1 to cyclinD1 in gallium trial data feed
MAJOR CHANGE: moved sql_lib() from M::Base to new M::Role::Query; moved all M::R::QueryFormatter methods into M::R::Query; removed sql_lib() from ScriptHelpers - using new M::Roles::Query method; removed lims_dbix() from M::Base - now loaded via M::Role::DBIxSimple on demand; moved get_sql_with_constraint() from M::R::DBIxSimple to M::R::Query; method gets dbh from lims_db not lims_dbix in M::LabSection::update_lab_sections() & M::Specimen::update_specimens(); added elements() to Local::QueryLibrary
refactored L::Utils::get_yaml to only require args needed for construction of path/to/yaml_dir/filename to remove duplication from components requiring a get_yaml_file() method (Controllers, Model & ScriptHelpers)
moved some LIMS::Base methods out to LIMS::Role::Base; new cron mail_reports.pl - shares some methods from LIMS; exempted http requests to Chart methods from authentication to allow mail_reports.pl script to generate charts
replaced several calls to L::Local::find_home() with call to config instance; removed call to L::Local::Debug from lims_config.pl, as debug() uses config instance, which uses lims_config.pl; model classes get config from config instance instead of constructor passing it in LIMS::model(); general tidy-up