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
moved draft report user table from hilis4.users to new hilis4.draft_report_users - automatically creates new entry in draft_report_users if not already present when draft report saved
bugfix - previous requests in screen, report, etc skipped any non-reported requests - fixed by making authorised_reports table a left join; fixed inability to delete trial & trial number in request edit - loads frozen data trial.id in absence of form input trial.id; 3411 tests pass
expanded cols on incomplete_tests worklist; bugfixes to worklists.t after recent change; added referral_source rel to get_incomplete_request_lab_tests() query
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()