Merge branch 'master' of git://github.com/openemr/openemr
[openemr.git] / library / globals.inc.php
blob4f91c3ffc4625c234bbb06c2083ec3b45dac0ad2
1 <?php
2 // Copyright (C) 2010 Rod Roark <rod@sunsetsystems.com>
3 //
4 // This program is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU General Public License
6 // as published by the Free Software Foundation; either version 2
7 // of the License, or (at your option) any later version.
9 // $GLOBALS['print_command'] is the
10 // Print command for spooling to printers, used by statements.inc.php
11 // This is the command to be used for printing (without the filename).
12 // The word following "-P" should be the name of your printer. This
13 // example is designed for 8.5x11-inch paper with 1-inch margins,
14 // 10 CPI, 6 LPI, 65 columns, 54 lines per page.
16 // IF lpr services are installed on Windows this setting will be similar
17 // Otherwise configure it as needed (print /d:PRN) might be an option for Windows parallel printers
19 // Current supported languages: // Allow capture of term for translation:
20 // Arabic // xl('Arabic')
21 // Armenian // xl('Armenian')
22 // Bahasa Indonesia // xl('Bahasa Indonesia')
23 // Chinese (Simplified) // xl('Chinese (Simplified)')
24 // Chinese (Traditional) // xl('Chinese (Traditional)')
25 // Danish // xl('Danish')
26 // Dutch // xl('Dutch')
27 // English (Indian) // xl('English (Indian)')
28 // English (Standard) // xl('English (Standard)')
29 // French // xl('French')
30 // German // xl('German')
31 // Greek // xl('Greek')
32 // Hebrew // xl('Hebrew')
33 // Norwegian // xl('Norwegian')
34 // Portuguese (Brazilian) // xl('Portuguese (Brazilian)')
35 // Portuguese (European) // xl('Portuguese (European)')
36 // Russian // xl('Russian')
37 // Slovak // xl('Slovak')
38 // Spanish // xl('Spanish')
39 // Swedish // xl('Swedish')
40 // Turkish // xl('Turkish')
42 // OS-dependent stuff.
43 if (stristr(PHP_OS, 'WIN')) {
44 // MS Windows
45 $mysql_bin_dir = 'C:/xampp/mysql/bin';
46 $perl_bin_dir = 'C:/xampp/perl/bin';
47 $temporary_files_dir = 'C:/windows/temp';
48 $backup_log_dir = 'C:/windows/temp';
50 else {
51 // Everything else
52 $mysql_bin_dir = '/usr/bin';
53 $perl_bin_dir = '/usr/bin';
54 $temporary_files_dir = '/tmp';
55 $backup_log_dir = '/tmp';
58 // Language constant declarations:
59 // xl('Appearance')
60 // xl('Locale')
61 // xl('Features')
62 // xl('Calendar')
63 // xl('Security')
64 // xl('Notifications')
65 // xl('Miscellaneous')
67 $GLOBALS_METADATA = array(
69 // Appearance Tab
71 'Appearance' => array(
73 'concurrent_layout' => array(
74 xl('Layout Style'), // descriptive name
75 array(
76 '0' => 'Old style layout with no left menu',
77 '1' => 'Navigation menu consists of pairs of radio buttons',
78 '2' => 'Navigation menu is a tree view',
80 '2', // default = tree menu
81 xl('Type of screen layout')
84 'css_header' => array(
85 xl('Theme'),
86 'css',
87 'style_default.css',
88 xl('Pick a CSS theme.')
91 'gbl_nav_area_width' => array(
92 xl('Navigation Area Width'),
93 'num',
94 '130',
95 xl('Width in pixels of the left navigation frame.')
98 'openemr_name' => array(
99 xl('Application Title'),
100 'text',
101 'OpenEMR',
102 xl('Application name for login page and main window title.')
105 'full_new_patient_form' => array(
106 xl('New Patient Form'),
107 array(
108 '0' => xl('Old-style static form without search or duplication check'),
109 '1' => xl('All demographics fields, with search and duplication check'),
110 '2' => xl('Mandatory or specified fields only, search and dup check'),
111 '3' => xl('Mandatory or specified fields only, dup check, no search'),
113 '1', // default
114 xl('Style of form used for adding new patients')
117 'patient_search_results_style' => array(
118 xl('Patient Search Results Style'),
119 array(
120 '0' => xl('Encounter statistics'),
121 '1' => xl('Mandatory and specified fields'),
123 '0', // default
124 xl('Type of columns displayed for patient search results')
127 'simplified_demographics' => array(
128 xl('Simplified Demographics'),
129 'bool', // data type
130 '0', // default = false
131 xl('Omit insurance and some other things from the demographics form')
134 'simplified_prescriptions' => array(
135 xl('Simplified Prescriptions'),
136 'bool', // data type
137 '0', // default = false
138 xl('Omit form, route and interval which then become part of dosage')
141 'simplified_copay' => array(
142 xl('Simplified Co-Pay'),
143 'bool', // data type
144 '0', // default = false
145 xl('Omit method of payment from the co-pay panel')
148 'use_charges_panel' => array(
149 xl('Use Charges Panel'),
150 'bool', // data type
151 '0', // default = false
152 xl('Enables the old Charges panel for entering billing codes and payments. Not recommended, use the Fee Sheet instead.')
155 'online_support_link' => array(
156 xl('Online Support Link'),
157 'text', // data type
158 'http://sourceforge.net/projects/openemr/support',
159 xl('URL for OpenEMR support.')
164 // Locale Tab
166 'Locale' => array(
168 'language_default' => array(
169 xl('Default Language'),
170 'lang', // data type
171 'English (Standard)', // default = english
172 xl('Default language if no other is allowed or chosen.')
175 'language_menu_showall' => array(
176 xl('All Languages Allowed'),
177 'bool', // data type
178 '1', // default = true
179 xl('Allow all available languages as choices on menu at login.')
182 'language_menu_other' => array(
183 xl('Allowed Languages'),
184 'm_lang', // data type
185 '', // default = none
186 xl('Select which languages, if any, may be chosen at login. (only pertinent if above All Languages Allowed is turned off)')
189 'translate_layout' => array(
190 xl('Translate Layouts'),
191 'bool', // data type
192 '1', // default = true
193 xl('Is text from form layouts to be translated?')
196 'translate_lists' => array(
197 xl('Translate Lists'),
198 'bool', // data type
199 '1', // default = true
200 xl('Is text from lists to be translated?')
203 'translate_gacl_groups' => array(
204 xl('Translate Access Control Groups'),
205 'bool', // data type
206 '1', // default = true
207 xl('Are access control group names to be translated?')
210 'translate_form_titles' => array(
211 xl('Translate Patient Note Titles'),
212 'bool', // data type
213 '1', // default = true
214 xl('Are patient note titles to be translated?')
217 'translate_document_categories' => array(
218 xl('Translate Document Categories'),
219 'bool', // data type
220 '1', // default = true
221 xl('Are document category names to be translated?')
224 'translate_appt_categories' => array(
225 xl('Translate Appointment Categories'),
226 'bool', // data type
227 '1', // default = true
228 xl('Are appointment category names to be translated?')
231 'units_of_measurement' => array(
232 xl('Units for Visit Forms'),
233 array(
234 '1' => xl('Show both US and metric (main unit is US)'),
235 '2' => xl('Show both US and metric (main unit is metric)'),
236 '3' => xl('Show US only'),
237 '4' => xl('Show metric only'),
239 '1', // default = Both/US
240 xl('Applies to the Vitals form and Growth Chart')
243 'disable_deprecated_metrics_form' => array(
244 xl('Disable Old Metric Vitals Form'),
245 'bool', // data type
246 '1', // default = true
247 xl('This was the older metric-only Vitals form, now deprecated.')
250 'phone_country_code' => array(
251 xl('Telephone Country Code'),
252 'num',
253 '1', // default = North America
254 xl('1 = North America. See http://www.wtng.info/ for a list of other country codes.')
257 'date_display_format' => array(
258 xl('Date Display Format'),
259 array(
260 '0' => xl('YYYY-MM-DD'),
261 '1' => xl('MM/DD/YYYY'),
262 '2' => xl('DD/MM/YYYY'),
264 '0',
265 xl('Format used to display most dates.')
268 'currency_decimals' => array(
269 xl('Currency Decimal Places'),
270 array(
271 '0' => xl('0'),
272 '1' => xl('1'),
273 '2' => xl('2'),
275 '2',
276 xl('Number of digits after decimal point for currency, usually 0 or 2.')
279 'currency_dec_point' => array(
280 xl('Currency Decimal Point Symbol'),
281 array(
282 '.' => xl('Period'),
283 ',' => xl('Comma'),
285 '.',
286 xl('Symbol used as the decimal point for currency. Not used if Decimal Places is 0.')
289 'currency_thousands_sep' => array(
290 xl('Currency Thousands Separator'),
291 array(
292 ',' => xl('Comma'),
293 '.' => xl('Period'),
294 ' ' => xl('Space'),
295 '' => xl('None'),
297 ',',
298 xl('Symbol used to separate thousands for currency.')
301 'gbl_currency_symbol' => array(
302 xl('Currency Designator'),
303 'text', // data type
304 '$', // default
305 xl('Code or symbol to indicate currency') . '. ' . xl('Examples') .
306 ': USD GBP EUR $ £ €'
311 // Features Tab
313 'Features' => array(
315 'specific_application' => array(
316 xl('Specific Application'),
317 array(
318 '0' => xl('None'),
319 '1' => xl('Athletic team'),
320 '2' => xl('IPPF'),
321 '3' => xl('Weight loss clinic'),
323 '0', // default
324 xl('Indicator for specialized usage')
327 'inhouse_pharmacy' => array(
328 xl('Drugs and Products'),
329 array(
330 '0' => xl('Do not inventory and sell any products'),
331 '1' => xl('Inventory and sell drugs only'),
332 '2' => xl('Inventory and sell both drugs and non-drug products'),
333 '3' => xl('Products but no prescription drugs and no templates'),
335 '0', // default
336 xl('Option to support inventory and sales of products')
339 'disable_chart_tracker' => array(
340 xl('Disable Chart Tracker'),
341 'bool', // data type
342 '0', // default = false
343 xl('Removes the Chart Tracker feature')
346 'disable_phpmyadmin_link' => array(
347 xl('Disable phpMyAdmin'),
348 'bool', // data type
349 '0', // default = false
350 xl('Removes support for phpMyAdmin')
353 'disable_immunizations' => array(
354 xl('Disable Immunizations'),
355 'bool', // data type
356 '0', // default = false
357 xl('Removes support for immunizations')
360 'disable_prescriptions' => array(
361 xl('Disable Prescriptions'),
362 'bool', // data type
363 '0', // default = false
364 xl('Removes support for prescriptions')
367 'omit_employers' => array(
368 xl('Omit Employers'),
369 'bool', // data type
370 '0', // default = false
371 xl('Omit employer information in patient demographics')
374 'select_multi_providers' => array(
375 xl('Support Multi-Provider Events'),
376 'bool', // data type
377 '0', // default = false
378 xl('Support calendar events that apply to multiple providers')
381 'disable_non_default_groups' => array(
382 xl('Disable User Groups'),
383 'bool', // data type
384 '1', // default = true
385 xl('Normally this should be checked. Not related to access control.')
388 'ignore_pnotes_authorization' => array(
389 xl('Skip Authorization of Patient Notes'),
390 'bool', // data type
391 '1', // default = true
392 xl('Do not require patient notes to be authorized')
395 'support_encounter_claims' => array(
396 xl('Allow Encounter Claims'),
397 'bool', // data type
398 '0', // default = false
399 xl('Allow creation of claims containing diagnoses but not procedures or charges. Most clinics do not want this.')
402 'advance_directives_warning' => array(
403 xl('Advance Directives Warning'),
404 'bool', // data type
405 '0', // default = false
406 xl('Display advance directives in the demographics page.')
409 'configuration_import_export' => array(
410 xl('Configuration Export/Import'),
411 'bool', // data type
412 '0', // default = false
413 xl('Support export/import of configuration data via the Backup page.')
416 'restrict_user_facility' => array(
417 xl('Restrict Users to Facilities'),
418 'bool', // data type
419 '0', // default
420 xl('Restrict non-authorized users to the Schedule Facilities set in User admin.')
423 'set_facility_cookie' => array(
424 xl('Remember Selected Facility'),
425 'bool', // data type
426 '0', // default
427 xl('Set a facility cookie to remember the selected facility between logins.')
430 'discount_by_money' => array(
431 xl('Discounts as Monetary Amounts'),
432 'bool', // data type
433 '1', // default = true
434 xl('Discounts at checkout time are entered as money amounts, as opposed to percentage.')
437 'gbl_mask_patient_id' => array(
438 xl('Mask for Patient IDs'),
439 'text', // data type
440 '', // default
441 xl('Specifies formatting for the external patient ID. # = digit, * = any character. Empty if not used.')
444 'gbl_mask_invoice_number' => array(
445 xl('Mask for Invoice Numbers'),
446 'text', // data type
447 '', // default
448 xl('Specifies formatting for invoice reference numbers. # = digit, * = any character. Empty if not used.')
451 'gbl_mask_product_id' => array(
452 xl('Mask for Product IDs'),
453 'text', // data type
454 '', // default
455 xl('Specifies formatting for product NDC fields. # = digit, * = any character. Empty if not used.')
460 // Calendar Tab
462 'Calendar' => array(
464 'disable_calendar' => array(
465 xl('Disable Calendar'),
466 'bool', // data type
467 '0', // default
468 xl('Do not display the calendar.')
471 'schedule_start' => array(
472 xl('Calendar Starting Hour'),
473 'hour',
474 '8', // default
475 xl('Beginning hour of day for calendar events.')
478 'schedule_end' => array(
479 xl('Calendar Ending Hour'),
480 'hour',
481 '17', // default
482 xl('Ending hour of day for calendar events.')
485 'calendar_interval' => array(
486 xl('Calendar Interval'),
487 array(
488 '5' => '5',
489 '10' => '10',
490 '15' => '15',
491 '20' => '20',
492 '30' => '30',
493 '60' => '60',
495 '15', // default
496 xl('The time granularity of the calendar and the smallest interval in minutes for an appointment slot.')
499 'calendar_appt_style' => array(
500 xl('Appointment Display Style'),
501 array(
502 '1' => 'Last name',
503 '2' => 'Last name, first name',
504 '3' => 'Last name, first name (title)',
505 '4' => 'Last name, first name (title: description)',
507 '2', // default
508 xl('This determines how appointments display on the calendar.')
511 'docs_see_entire_calendar' => array(
512 xl('Providers See Entire Calendar'),
513 'bool', // data type
514 '0', // default
515 xl('Check this if you want providers to see all appointments by default and not just their own.')
518 'auto_create_new_encounters' => array(
519 xl('Auto-Create New Encounters'),
520 'bool', // data type
521 '1', // default
522 xl('Automatically create a new encounter when appointment status is set to "@" (arrived).')
527 // Security Tab
529 'Security' => array(
531 'timeout' => array(
532 xl('Idle Session Timeout Seconds'),
533 'num', // data type
534 '7200', // default
535 xl('Maximum idle time in seconds before logout. Default is 7200 (2 hours).')
538 'secure_password' => array(
539 xl('Require Strong Passwords'),
540 'bool', // data type
541 '0', // default
542 xl('Strong password means at least 8 characters, and at least three of: a number, a lowercase letter, an uppercase letter, a special character.')
545 'password_history' => array(
546 xl('Require Unique Passwords'),
547 'bool', // data type
548 '0', // default
549 xl('Means none of last three passwords are allowed when changing a password.')
552 'password_expiration_days' => array(
553 xl('Default Password Expiration Days'),
554 'num', // data type
555 '0', // default
556 xl('Default password expiration period in days. 0 means this feature is disabled.')
559 'password_grace_time' => array(
560 xl('Password Expiration Grace Period'),
561 'num', // data type
562 '0', // default
563 xl('Period in days where a user may login with an expired password.')
566 'is_client_ssl_enabled' => array(
567 xl('Enable Client SSL'),
568 'bool', // data type
569 '0', // default
570 xl('Enable client SSL certificate authentication.')
573 'certificate_authority_crt' => array(
574 xl('Path to CA Certificate File'),
575 'text', // data type
576 '', // default
577 xl('Set this to the full absolute path. For creating client SSL certificates for HTTPS.')
580 'certificate_authority_key' => array(
581 xl('Path to CA Key File'),
582 'text', // data type
583 '', // default
584 xl('Set this to the full absolute path. For creating client SSL certificates for HTTPS.')
587 'client_certificate_valid_in_days' => array(
588 xl('Client Certificate Expiration Days'),
589 'num', // data type
590 '365', // default
591 xl('Number of days that the client certificate is valid.')
594 'Emergency_Login_email_id' => array(
595 xl('Emergency Login Email Address'),
596 'text', // data type
597 '', // default
598 xl('Email address, if any, to receive emergency login user activation messages.')
603 // Notifications Tab
605 'Notifications' => array(
607 'practice_return_email_path' => array(
608 xl('Notification Email Address'),
609 'text', // data type
610 '', // default
611 xl('Email address, if any, to receive administrative notifications.')
614 'EMAIL_METHOD' => array(
615 xl('Email Transport Method'),
616 array(
617 'PHPMAIL' => 'PHPMAIL',
618 'SENDMAIL' => 'SENDMAIL',
619 'SMTP' => 'SMTP',
621 'SMTP', // default
622 xl('Method for sending outgoing email.')
625 'SMTP_HOST' => array(
626 xl('SMTP Server Hostname'),
627 'text', // data type
628 'localhost', // default
629 xl('If SMTP is used, the server`s hostname or IP address.')
632 'SMTP_PORT' => array(
633 xl('SMTP Server Port Number'),
634 'num', // data type
635 '25', // default
636 xl('If SMTP is used, the server`s TCP port number (usually 25).')
639 'SMTP_USER' => array(
640 xl('SMTP User for Authentication'),
641 'text', // data type
642 '', // default
643 xl('Must be empty if SMTP authentication is not used.')
646 'SMTP_PASS' => array(
647 xl('SMTP Password for Authentication'),
648 'text', // data type
649 '', // default
650 xl('Must be empty if SMTP authentication is not used.')
653 'EMAIL_NOTIFICATION_HOUR' => array(
654 xl('Email Notification Hours'),
655 'num', // data type
656 '50', // default
657 xl('Number of hours in advance to send email notifications.')
660 'SMS_NOTIFICATION_HOUR' => array(
661 xl('SMS Notification Hours'),
662 'num', // data type
663 '50', // default
664 xl('Number of hours in advance to send SMS notifications.')
667 'SMS_GATEWAY_USENAME' => array(
668 xl('SMS Gateway Username'),
669 'text', // data type
670 '', // default
671 xl('Username for SMS Gateway.')
674 'SMS_GATEWAY_PASSWORD' => array(
675 xl('SMS Gateway Password'),
676 'text', // data type
677 '', // default
678 xl('Password for SMS Gateway.')
681 'SMS_GATEWAY_APIKEY' => array(
682 xl('SMS Gateway API Key'),
683 'text', // data type
684 '', // default
685 xl('API key for SMS Gateway.')
690 // Miscellaneous Tab
692 'Miscellaneous' => array(
694 'mysql_bin_dir' => array(
695 xl('Path to MySQL Binaries'),
696 'text', // data type
697 $mysql_bin_dir, // default
698 xl('Full path to directory containing MySQL executables.')
701 'perl_bin_dir' => array(
702 xl('Path to Perl Binaries'),
703 'text', // data type
704 $perl_bin_dir, // default
705 xl('Full path to directory containing Perl executables.')
708 'temporary_files_dir' => array(
709 xl('Path to Temporary Files'),
710 'text', // data type
711 $temporary_files_dir, // default
712 xl('Full path to directory used for temporary files.')
715 'backup_log_dir' => array(
716 xl('Path for Event Log Backup'),
717 'text', // data type
718 $backup_log_dir, // default
719 xl('Full path to directory for event log backup.')
722 'state_data_type' => array(
723 xl('State Data Type'),
724 array(
725 '2' => xl('Text field'),
726 '1' => xl('Single-selection list'),
727 '26' => xl('Single-selection list with ability to add to the list'),
729 '26', // default
730 xl('Field type to use for employer or subscriber state in demographics.')
733 'country_data_type' => array(
734 xl('Country Data Type'),
735 array(
736 '2' => xl('Text field'),
737 '1' => xl('Single-selection list'),
738 '26' => xl('Single-selection list with ability to add to the list'),
740 '26', // default
741 xl('Field type to use for employer or subscriber country in demographics.')
744 'print_command' => array(
745 xl('Print Command'),
746 'text', // data type
747 'lpr -P HPLaserjet6P -o cpi=10 -o lpi=6 -o page-left=72 -o page-top=72',
748 xl('Shell command for printing from the server.')
751 'default_chief_complaint' => array(
752 xl('Default Reason for Visit'),
753 'text', // data type
755 xl('You may put text here as the default complaint in the New Patient Encounter form.')
758 'default_new_encounter_form' => array(
759 xl('Default Encounter Form ID'),
760 'text', // data type
762 xl('To automatically open the specified form. Some sports teams use football_injury_audit here.')
765 'patient_id_category_name' => array(
766 xl('Patient ID Category Name'),
767 'text', // data type
768 'Patient ID card', // default
769 xl('Optional category name of a document to link to from the patient summary page. Lets you click on a patient name to see their ID card.')
772 'MedicareReferrerIsRenderer' => array(
773 xl('Medicare Referrer Is Renderer'),
774 'bool', // data type
775 '0', // default = true
776 xl('For Medicare only, forces the referring provider to be the same as the rendering provider.')