#!/usr/bin/perl # called as $self->messages('foo')->{bar} return { msg => { # used in templates & test suite to flag general validation failure: dfv_errors => 'Error - form validation failed:', # used by templates to indicate validation failure on multiple fields: require_one => 'require at least one of the empty fields highlighted', # used by templates to indicate failure to supply confirmation: confirm_change => 'require confirmation of change', #------------------------------------------------------------------------------- # messages used by LIMS::Validate & Controller::Ajax to flag specific validation # failures - displayed in template using format specified in dfv_defaults.msgs.format # in config: dfv_msgs => { alphanumeric => 'only alpha-numeric characters [a-z & 0-9] allowed', centurian => 'date is >100 years ago !!', date_order => 'check chronological order', invalid_date => 'invalid date', invalid_datetime => 'invalid datetime', invalid_domain => 'invalid email address (domain not allowed)', invalid_entry => 'invalid', # used by Ajax controller only invalid_length => 'invalid length', invalid_format => 'invalid format', future_date => 'invalid - date is in future', lims_service => 'registration for service invalid', need_block_ref => 'requires external reference entry', need_integer => 'invalid format - numbers only required', need_decimal => 'invalid format - require decimal number', no_spaces => 'invalid format - no spaces allowed', not_unique => 'entry already exists', numbers_only => 'numeric format [0-9] required', referrer_code => 'require C, D, E or CS, followed by 5-7 numbers', report_confirm => 'require reason for change', single_word => 'require single word, or words separated by underscore(s)', too_high => 'exceeds maximum value', too_long => 'invalid format - too many characters', username => 'invalid format - only [A-Z] or hyphen allowed', year_digits => 'require 4-digit year', vial_mismatch => 'scanned barcode does not match vial selected for deletion', duplicate_diagnosis => 'secondary diagnosis matches primary diagnosis', }, # messages used by FormValidator::Simple only: form_validator => { user => { pwds => { DUPLICATION => 'your new password fields did not match, please try again', }, old_password => { LENGTH => 'old password - length should be minimum 5 chars', NOT_BLANK => 'old password - cannot be blank', }, new_password => { LENGTH => 'new password - length should be minimum 5 chars', NOT_BLANK => 'new password - cannot be blank', }, new_password_confirm => { LENGTH => 'confirm new password - length should be minimum 5 chars', NOT_BLANK => 'confirm new password - cannot be blank', }, }, patient_data => { }, settings => { admin_contact => { NOT_BLANK => 'admin contact - cannot be blank', EMAIL_LOOSE => 'does not appear to be valid e-mail address', }, admin_timeout => { NOT_BLANK => 'admin timeout field - cannot be blank', INT => 'must be valid integer (0 to disable)', }, default_user_timeout => { NOT_BLANK => 'guest user timeout field - cannot be blank', INT => 'must be valid integer (0 to disable)', }, }, }, # messages used by controllers via stash/flash/error/die: # $self->messages('foo')->{bar} #------------------------------------------------------------------------------- # general success messages for record update/create/edit/delete: action => { create_success => 'new record created successfully', edit_success => 'record updated successfully', edit_successes => 'records updated successfully', delete_success => 'record deleted successfully', }, # admin/config messages: admin => { no_sections => 'no lab sections defined yet - please enter at least one before assigning lab tests', no_screens => 'no screening terms defined yet - please enter at least one before assigning lab tests', no_tests => 'no lab tests defined yet - please enter at least one before assigning screen tests', no_groups => 'no user groups defined yet - please enter at least one before assigning group functions', no_functions => 'no user functions defined yet - please enter at least one before assigning group functions', no_diagnostic_categories => 'no diagnostic categories defined yet - please enter at least one before defining diagnoses', no_request_audit_categories => 'no request audit categories defined yet - please enter at least one before defining options', settings => { update_successful => 'application settings change successful', require_restart => 'you will need to re-start the application server for changes to take effect', }, data_file => { prefix_error => 'file address needs to be complete - did you forget http(s):// ?', url_error => 'file address empty or file type incorrect (ie zip or csv)', not_csv => 'zip file did not contain a csv file', unrecognised => 'zip contents or uploaded filename "%s" is not a recognised filename', update_success => 'new data file upload successful', update_failed => 'data file upload and/or data file update failed', }, error_code => { not_unique => 'error code %s already exists', config_update => 'error codes updated successfully', }, clinician => { not_unique => 'combination of clinician code & location already exists', name_mismatch => 'surname mis-match with existing record for %s [%s]', create_success => 'new clinician entry successful', edit_success => 'referrer details updated successfully', failure => 'failed to create new clinician', }, user => { edit_success => 'user details updated successfully', create_success => 'new user created successfully', }, status_option => { position_not_unique => "duplicate entry in 'order' column", }, screen_term => { not_unique => 'combination of description and category must be unique', }, referral_source => { outreach => 'check post-code area in blood_tube.yml config file if adding new Outreach practice', }, }, ajax => { storage_vial_id => { duplicate => 'invalid ID (duplicate)', # too_long => 'invalid (too long)', # using partnum now so: length => 'invalid length (require 10 chars)', empty => 'required field', }, }, demographics => { pas_insufficient_info => 'Insufficient information to perform PAS search', pas_no_matches => 'No PAS matches', pas_verified => 'Patient demographics verified', pas_timeout => 'PAS server timeout - please try again', pas_insufficient_vars => 'Require at least 2 fields to perform PAS search', pds_timeout => 'PDS timeout - please try again', pds_no_xml => 'No xml data structure passed', pds_no_match => 'No Match', pds_insufficient_vars => 'Required fields not supplied', }, file_upload => { unsuitable_filetype => 'file is not a zip or xls file', bcr_abl => { poor_quality => { summary => 'ABL copy number < 10000', result => 'unsuitable for RQ-PCR analysis, ABL copy number < 10000', }, }, chimerism => { file_number => 'upload dir does not contain expected number of files', }, reserved_chars => 'replacement of reserved characters in filename', }, group_functions => { empty_functions_list => 'all functions have been cleared', }, login => { enter_details => 'Please enter your login details:', password_reset_id => 'password reset function requires a user id', already_logged_in => q!You are already logged in as '%s'!, login_failed => 'Username and/or password not recognised', logged_out => q!You have now logged out. For security reasons, please remember to close your browser.!, # can't - session deleted so it's lost email_not_found => 'Sorry, e-mail address not recognised', session_id_not_found => 'error recovering your data, please login manually', missing_attribute => 'missing "%s" attribute in configuration settings', }, outreach => { alternate => 'both address and post-code required for alternate address section', missing_dates => 'have either missing or invalid dates', questionnaire_success => 'questionnaire data entered successfully', data_import_success => 'data import successful', }, patient => { merge => { not_flagged => q!either no records were selected from col. A (from), or >1 record was selected in col. B (to)!, too_many => 'too many records found (%s) - you might want to refine your search', merge_success => 'patients merged successfully' }, biohazard => '**** patient has other known biohazard sample record(s) ****', }, registration => { empty_submission => 'Please enter something to search for and try again.', duplicate_request => 'Patient already has one request and duplicate entries are blocked', invalid_select => 'Sorry, your selection was invalid. I\'ve no idea why. Please try again.', confirmation_required => 'Confimation required before records can be updated', form_validated => 'Patient details validated, OK to submit', no_records_found => 'Found 0 records matching %s', no_request_form_id => 'Request form ID not found. Please check and resubmit.', cannot_delete_case => 'Patient case belongs to 1 or more requests - cannot be deleted', cannot_delete_patient => 'Patient has other requests - cannot be deleted', }, request_edit => { edit_failed => 'record not updated - perhaps there were no changes?', nhs_conflict => 'cannot do single record change with an NHS number', edit_success => '%s record(s) updated successfully', no_patient => 'patient record does not exist - cannot change details', unlock_success => 'record unlocked', delete_success => 'record deleted', }, results => { update_success => 'results data update successful', no_data_file => 'appear to have no valid data file in directory', no_userid => 'unrecognised username in data file', xs_data_files => 'appear to have more than one data file in directory', empty_data => 'cannot extract data from data file', empty_acquired => "cannot parse 'date acquired' val from data file", empty_result => 'cannot extract flow data result from data file', filename_error => "internal 'filename' field doesn't match data file name", surname_error => "internal 'surname' field doesn't match patient surname", dob_error => "internal 'dob' field doesn't match patient dob", invalid_date => 'invalid date field format or values out of range', data_matches => 'datafile details checked OK', missing_dob => 'd.o.b field missing', missing_name => 'surname field missing', no_lab_test => 'required lab-test has not been requested', missing_filename => 'filename field missing', no_test_results => 'no data for selected section', }, report => { revision_missing => 'revision data is required if diagnosis is changed', not_screened => 'cannot report an unscreened record', not_reported => 'cannot authorise an unreported record', no_self_auth => 'authorisation by original reporter not permitted', no_diag_change => 'diagnosis "revision" entry submitted without ' . 'a primary diagnosis change', no_auth_diagnosis => 'failed to log authorisation audit - don\'t know why', no_secure_email => 'registered contact address not permitted to send', email_success => 'mail server reports message was sent to %s successfully', email_failure => 'mail server reports "%s"', no_report_history => 'no entry found in report history table', invalid_domain => 'invalid email address (domain not allowed)', }, search => { empty_submission => 'Please enter something to search for and try again.', no_records_found => 'No matching requests were found', too_many_records => 'Found too many requests to display (%s), please refine search and try again', }, screen => { empty_screen_list => 'all tests have been cleared', }, storage => { no_plate_data => 'plate reader did not return any data, check scanner settings', no_plate_id => 'plate reader did not return plate ID, check scanner settings', void_success => 'successfully decoupled all vials from plate ID %s', # vial_mismatch => 'scanned barcode does not match vial selected for deletion', # moved to dfv_msgs delete_success => 'vial deleted successfully', }, user => { pwd_incorrect => 'password incorrect, please try again', msg_deleted => 'message delete success', msg_sent => 'new message delivered OK', update_email => q!you have no registered email address, please update in 'Resources / change registered email address'!, old_pwd_mismatch => 'old password incorrect, please try again', new_pwd_mismatch => 'your new password fields did not match, please try again', pwd_change_success => 'password change successful, please re-login:', }, worklist => { no_tests_for_status => 'no outstanding tests with status = %s', no_outstanding_tests => 'no outstanding tests for %s section', no_outstanding_requests => 'no outstanding requests', no_lab_test_ids => 'no lab tests data received', no_request_ids => 'no records selected for update', no_print_ids => 'no records selected for printing', update_success => 'records updated successfully', update_failure => 'no records were updated', update_fails => 'record update failed, probably already deleted', print_labels_ok => 'printer reports labels printed successfully', print_labels_none => 'selected samples are not of an appropriate ' . 'sample type to print through this worklist', dako_link_ok => 'data file(s) transferred successfully', no_data_submitted => 'no data submitted', no_ref_supplied => 'no reference value was supplied', slf_no_request_ids => 'ERROR: no records selected. Please close this' . ' tab and try again', no_selection => 'no records selected', no_labels_selected => 'no labels selected for printing', no_plasma_label_data => '#labels empty for one or more rows', no_templates_installed => 'no FISH templates are installed in the' . ' fish/templates/ directory', too_many_rows => 'search found too many rows (%s) to display - ' . ' lab-tests will require manual sign-off', }, #------------------------------------------------------------------------------- _not_currently_used => { invalid_form => 'Validation error', missing_data => 'missing data - must complete all sections', no_history => 'Request does not appear to have any previous history', # also used for no id submitted duplicate_lab_number => 'lab number already used', duplicate_nhs_number => 'NHS number already used', search_again => 'Found %s records, please refine search', }, }, }