moved user messages user list from 1-stage to 2-stage select menu; reverted sysmex.pl to barcode lab-numbers; bugfix: report page highlighting 'unknown patient details' expecting hash key 'previous_cases', was changed to 'previous_requests' long ago
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
first draft of dashboard view; first draft of quick search but not able to share find_requests() with main search as we need 'AND' not 'OR' logic; combined _process_tests_complete() logic with _get_request_status_query_args() for tests_completed; moved jquery version from 1.4.2 to 1.8.2; moved devel server to port 8000
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()
spell-check changes: add-new-word function now puts terms in temp file for assessment by admin before importing into site-specific personal dictionary; rebuilt en-medical.rws (extra-dict) from edited contents of old personal dict (.aspell.en.pws) - moved all acronyms/abbreviations into new personal dict (.aspell.leeds.pws); LIMS::_create_user_profile() adds users 'centre' param to session user_profile; adapted spellchecker.pl to work with new dictionary format
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