bugfix - flash messages set in C::L::Labels don't appear in tt * fixed by handing calling object (C::L::Worklist) to C::L::Labels for setting flash messages on * factored CAP::MessageStack rendering block into its own snippet tt for calling independently from site/status.tt * bugfix to 2 test scripts
plasma storage labels supply trial number in place of patient name; fixed error generated when supplying empty #labels option; provided '0' for number of labels to allow valid input for skipping label printing for individual requests
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
modified previous change to enable user with secure address to email - given lowest priority over contacts.lib entry and generic email address (as used by UCLH)
fixed RDBO error msg if sample_linkage_form select submitted empty; put xml validation into genomics_xml.pl with admin notification of failure; added validation tests to genomics.t
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()