* new test file for storage racks data (transfer last part of storage.t) * fix tt error due to addition of undef value (data.failed) * fix incorrect 'well_max' value in _test_data hashref
moved storage vial deletion validation to DFV method and added 'reason for deletion' form field; added centre id to mail_reports.pl cron log entry; ppm_and_results.pl uses IPC::System::Simple to capture more explicit tar error (was returning 'cannot stat file' msg without script name & location info); added inadequate unfixed specimen to weekly notifications
fixed error in import_xtr_96_data.tt handling of data.failed var - returned 0 but true value for size(); var was also a HoH not hash; ensured genomics_xml.pl app_version always returned 4-digit value; improved wording of screen update history entry; more explicit message from ftp put() error
bugfix - updating diagnosis when auto-requesting new tests requires reversion of request status from complete; import_xtr_96_data.tt tidy for consistency
moved xtr_96 dummy data to Roles::Storage; adapted xtr-96 functions to handle 24, 48 or 96 well racks - controller supplies dimensions toi .tt to draw table; changed configurdation for ftp_file() method to use cwd if supplied and ability to override binary mode; syncona-14mg script logs datetime; new genomics xsd after field changes; disabled some labels in genomics cancer blood SLF
new storage location for storage racks; removed 'definitive report available online' statement from outreach reports; amended outreach_patients view for PatientAccess patient index
put delete_image() unlink inside eval to catch "can't find class method 'unlink'" error; new storage module functions; validation function to substitute spaces in application_form.cgi