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()
applied same server-side validation to storage vialId as already done by ajax, factored out common regex to LLU; moved M::Ajax::check_storage_vialId() to M::Validation::has_storage_vialId(); applied check that patient entry exists to C::Patient::_check_nhs_number_usage() for PID change, but not implemented as creation of new patient works OK; alphabetically sorted lims_messages.pl dfv section
added function to highlight if patient has previous request for clinical trial if not currently a clinical trial request; loop counter on request history
bugfix to allow ajax lookup for diagnostic term to use parentheses; turnaround chart function captues vars as hash not hashref to avoid changing self_url(); turnaround data filename for xl attachment reflects specimen type
added ability to retrieve inactive legacy diagnosis to autosuggest diagnoses; changed DB::Diagnosis::Manager method name from 'diagnosiss'; patched national_code_unknown.pl cron to report 'no unknown codes' instead of blank message