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
adapted label print function to handle RNA extraction and plasma storage; patched storage model method to suppress undefined value warnings for Genomics non-xna samples
new storage location for storage racks; removed 'definitive report available online' statement from outreach reports; amended outreach_patients view for PatientAccess patient index
added storage module logging; new storage.t; adapted vialId validation to recognise 10-digit ids in addition to leading 2 alphabetical chars; bugfix to storage edit function - requied to capture vialId as well as request_id for validation failure return to edit(); added new fields to DNA extraction worksheet
added url_base to cgiapp_prerun(), refactored multiple calls to ->query to ; added part_number to storage module; restored 10-digit storage vialId + validation; bugfix to update_storage_vial(), failed validation due to duplicate vialId and old update method didn't do changes_only; added online request form link to guest user hello page; moved token generation from Resources menu() to Role::Resources::create_form_tokens() for sharing between menu() & hello()
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