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
bugfix - failure to update request_result_summary timestamp col on result_summary update causing premature locking of records; action logged in request history when request status set to complete by incomplete_requests.pl or M::R::RequestUpdate::update_request_status; adapted incomplete_requests.pl to include status complete requests with diagnosis awaiting final diagnosis/review; ScriptHelpers::do_request_history renamed to log_diagnosis_alert to avoid conflict with M::R::HistoryAction method of same name; nav bar loads HMRN link if user has either view_outreach_data or edit_outreach_data permissions; L::Role::DiagnosisConfirm::diagnosis_confirmation_required hash of lab_sections renamed from %map to %required for clarity
fixed inflate_mysql_date_to_datetime() to protect against invalid dates from pre-HILIS4 data; changed prognostic_indicator test script to manipulate dob instead of diagnosis date to provide better control of age; highlight invalid age in HMRN event data table
adapted xNA extraction worksheets to split xFU into xF & xU samples and adjust for number of blocks for xF, xU & xBL samples; xNA extration worksheets append empty rows to max 12; patched view_cron_log() regex to include hyphenated script names; DB::RequestExternalRef status field required larger varchar value
added process size logging facility to fastcgi process; authorised/incomplete records worklist displays outstanding lab tests; added cd SCRIPT_DIR to fcgi script so git version info loaded when restarted from outside HILIS4 dir
bugfixes: LL::Search doesn't have access to is_lab_staff() method of LIMS::Base so had to create own version; {QUERY_STRING} not passed in 'post' method in request form upload, so substituted CGI, needed 'tkn' param addition to FileUploader default.tt
changed update patient method to prevent modification of patient with an NHS number if single_record_only mode selected (nhs number is unique col and can't be shared with another patient profile); new register_edit.t tests
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
configured ability to expand panels to lab-tests, configurable by section through yml file + tests appended to results.t; new potential_trial_cases cron