Fix CRLF
[openemr.git] / library / globals.inc.php
blob3901e70afd0ac68bc3d4614817dc8e34457358bf
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 // Dutch // xl('Dutch')
26 // English (Indian) // xl('English (Indian)')
27 // English (Standard) // xl('English (Standard)')
28 // French // xl('French')
29 // German // xl('German')
30 // Greek // xl('Greek')
31 // Hebrew // xl('Hebrew')
32 // Norwegian // xl('Norwegian')
33 // Portuguese (Brazilian) // xl('Portuguese (Brazilian)')
34 // Portuguese (European) // xl('Portuguese (European)')
35 // Russian // xl('Russian')
36 // Slovak // xl('Slovak')
37 // Spanish // xl('Spanish')
38 // Swedish // xl('Swedish')
40 // OS-dependent stuff.
41 if (stristr(PHP_OS, 'WIN')) {
42 // MS Windows
43 $mysql_bin_dir = 'C:/xampp/mysql/bin';
44 $perl_bin_dir = 'C:/xampp/perl/bin';
45 $temporary_files_dir = 'C:/windows/temp';
46 $backup_log_dir = 'C:/windows/temp';
48 else {
49 // Everything else
50 $mysql_bin_dir = '/usr/bin';
51 $perl_bin_dir = '/usr/bin';
52 $temporary_files_dir = '/tmp';
53 $backup_log_dir = '/tmp';
56 // Language constant declarations:
57 // xl('Appearance')
58 // xl('Locale')
59 // xl('Features')
60 // xl('Calendar')
61 // xl('Security')
62 // xl('Notifications')
63 // xl('Miscellaneous')
65 $GLOBALS_METADATA = array(
67 // Appearance Tab
69 'Appearance' => array(
71 'concurrent_layout' => array(
72 xl('Layout Style'), // descriptive name
73 array(
74 '0' => 'Old style layout with no left menu',
75 '1' => 'Navigation menu consists of pairs of radio buttons',
76 '2' => 'Navigation menu is a tree view',
78 '2', // default = tree menu
79 xl('Type of screen layout')
82 'css_header' => array(
83 xl('Theme'),
84 'css',
85 'style_sky_blue.css',
86 xl('Pick a CSS theme.')
89 'gbl_nav_area_width' => array(
90 xl('Navigation Area Width'),
91 'num',
92 '130',
93 xl('Width in pixels of the left navigation frame.')
96 'openemr_name' => array(
97 xl('Application Title'),
98 'text',
99 'OpenEMR',
100 xl('Application name for login page and main window title.')
103 'full_new_patient_form' => array(
104 xl('New Patient Form'),
105 array(
106 '0' => xl('Old-style static form without search or duplication check'),
107 '1' => xl('All demographics fields, with search and duplication check'),
108 '2' => xl('Mandatory or specified fields only, search and dup check'),
109 '3' => xl('Mandatory or specified fields only, dup check, no search'),
111 '1', // default
112 xl('Style of form used for adding new patients')
115 'patient_search_results_style' => array(
116 xl('Patient Search Results Style'),
117 array(
118 '0' => xl('Encounter statistics'),
119 '1' => xl('Mandatory and specified fields'),
121 '0', // default
122 xl('Type of columns displayed for patient search results')
125 'simplified_demographics' => array(
126 xl('Simplified Demographics'),
127 'bool', // data type
128 '0', // default = false
129 xl('Omit insurance and some other things from the demographics form')
132 'simplified_prescriptions' => array(
133 xl('Simplified Prescriptions'),
134 'bool', // data type
135 '0', // default = false
136 xl('Omit form, route and interval which then become part of dosage')
139 'simplified_copay' => array(
140 xl('Simplified Co-Pay'),
141 'bool', // data type
142 '0', // default = false
143 xl('Omit method of payment from the co-pay panel')
146 'use_charges_panel' => array(
147 xl('Use Charges Panel'),
148 'bool', // data type
149 '0', // default = false
150 xl('Enables the old Charges panel for entering billing codes and payments. Not recommended, use the Fee Sheet instead.')
153 'online_support_link' => array(
154 xl('Online Support Link'),
155 'text', // data type
156 'http://sourceforge.net/projects/openemr/support',
157 xl('URL for OpenEMR support.')
162 // Locale Tab
164 'Locale' => array(
166 'language_default' => array(
167 xl('Default Language'),
168 'lang', // data type
169 'English (Standard)', // default = english
170 xl('Default language if no other is allowed or chosen.')
173 'language_menu_showall' => array(
174 xl('All Languages Allowed'),
175 'bool', // data type
176 '1', // default = true
177 xl('Allow all available languages as choices on menu at login.')
180 'language_menu_other' => array(
181 xl('Allowed Languages'),
182 'm_lang', // data type
183 '', // default = none
184 xl('Select which languages, if any, may be chosen at login. (only pertinent if above All Languages Allowed is turned off)')
187 'translate_layout' => array(
188 xl('Translate Layouts'),
189 'bool', // data type
190 '1', // default = true
191 xl('Is text from form layouts to be translated?')
194 'translate_lists' => array(
195 xl('Translate Lists'),
196 'bool', // data type
197 '1', // default = true
198 xl('Is text from lists to be translated?')
201 'translate_gacl_groups' => array(
202 xl('Translate Access Control Groups'),
203 'bool', // data type
204 '1', // default = true
205 xl('Are access control group names to be translated?')
208 'translate_form_titles' => array(
209 xl('Translate Patient Note Titles'),
210 'bool', // data type
211 '1', // default = true
212 xl('Are patient note titles to be translated?')
215 'translate_document_categories' => array(
216 xl('Translate Document Categories'),
217 'bool', // data type
218 '1', // default = true
219 xl('Are document category names to be translated?')
222 'translate_appt_categories' => array(
223 xl('Translate Appointment Categories'),
224 'bool', // data type
225 '1', // default = true
226 xl('Are appointment category names to be translated?')
229 'units_of_measurement' => array(
230 xl('Units for Visit Forms'),
231 array(
232 '1' => xl('Show both US and metric (main unit is US)'),
233 '2' => xl('Show both US and metric (main unit is metric)'),
234 '3' => xl('Show US only'),
235 '4' => xl('Show metric only'),
237 '1', // default = Both/US
238 xl('Applies to the Vitals form and Growth Chart')
241 'disable_deprecated_metrics_form' => array(
242 xl('Disable Old Metric Vitals Form'),
243 'bool', // data type
244 '1', // default = true
245 xl('This was the older metric-only Vitals form, now deprecated.')
248 'phone_country_code' => array(
249 xl('Telephone Country Code'),
250 'num',
251 '1', // default = North America
252 xl('1 = North America. See http://www.wtng.info/ for a list of other country codes.')
255 'date_display_format' => array(
256 xl('Date Display Format'),
257 array(
258 '0' => xl('YYYY-MM-DD'),
259 '1' => xl('MM/DD/YYYY'),
260 '2' => xl('DD/MM/YYYY'),
262 '0',
263 xl('Format used to display most dates.')
266 'currency_decimals' => array(
267 xl('Currency Decimal Places'),
268 array(
269 '0' => xl('0'),
270 '1' => xl('1'),
271 '2' => xl('2'),
273 '2',
274 xl('Number of digits after decimal point for currency, usually 0 or 2.')
277 'currency_dec_point' => array(
278 xl('Currency Decimal Point Symbol'),
279 array(
280 '.' => xl('Period'),
281 ',' => xl('Comma'),
283 '.',
284 xl('Symbol used as the decimal point for currency. Not used if Decimal Places is 0.')
287 'currency_thousands_sep' => array(
288 xl('Currency Thousands Separator'),
289 array(
290 ',' => xl('Comma'),
291 '.' => xl('Period'),
292 ' ' => xl('Space'),
293 '' => xl('None'),
295 ',',
296 xl('Symbol used to separate thousands for currency.')
299 'gbl_currency_symbol' => array(
300 xl('Currency Designator'),
301 'text', // data type
302 '$', // default
303 xl('Code or symbol to indicate currency') . '. ' . xl('Examples') .
304 ': USD GBP EUR $ £ €'
309 // Features Tab
311 'Features' => array(
313 'specific_application' => array(
314 xl('Specific Application'),
315 array(
316 '0' => xl('None'),
317 '1' => xl('Athletic team'),
318 '2' => xl('IPPF'),
319 '3' => xl('Weight loss clinic'),
321 '0', // default
322 xl('Indicator for specialized usage')
325 'inhouse_pharmacy' => array(
326 xl('Drugs and Products'),
327 array(
328 '0' => xl('Do not inventory and sell any products'),
329 '1' => xl('Inventory and sell drugs only'),
330 '2' => xl('Inventory and sell both drugs and non-drug products'),
331 '3' => xl('Products but no prescription drugs and no templates'),
333 '0', // default
334 xl('Option to support inventory and sales of products')
337 'disable_chart_tracker' => array(
338 xl('Disable Chart Tracker'),
339 'bool', // data type
340 '0', // default = false
341 xl('Removes the Chart Tracker feature')
344 'disable_phpmyadmin_link' => array(
345 xl('Disable phpMyAdmin'),
346 'bool', // data type
347 '0', // default = false
348 xl('Removes support for phpMyAdmin')
351 'disable_immunizations' => array(
352 xl('Disable Immunizations'),
353 'bool', // data type
354 '0', // default = false
355 xl('Removes support for immunizations')
358 'disable_prescriptions' => array(
359 xl('Disable Prescriptions'),
360 'bool', // data type
361 '0', // default = false
362 xl('Removes support for prescriptions')
365 'omit_employers' => array(
366 xl('Omit Employers'),
367 'bool', // data type
368 '0', // default = false
369 xl('Omit employer information in patient demographics')
372 'select_multi_providers' => array(
373 xl('Support Multi-Provider Events'),
374 'bool', // data type
375 '0', // default = false
376 xl('Support calendar events that apply to multiple providers')
379 'disable_non_default_groups' => array(
380 xl('Disable User Groups'),
381 'bool', // data type
382 '1', // default = true
383 xl('Normally this should be checked. Not related to access control.')
386 'ignore_pnotes_authorization' => array(
387 xl('Skip Authorization of Patient Notes'),
388 'bool', // data type
389 '1', // default = true
390 xl('Do not require patient notes to be authorized')
393 'support_encounter_claims' => array(
394 xl('Allow Encounter Claims'),
395 'bool', // data type
396 '0', // default = false
397 xl('Allow creation of claims containing diagnoses but not procedures or charges. Most clinics do not want this.')
400 'advance_directives_warning' => array(
401 xl('Advance Directives Warning'),
402 'bool', // data type
403 '0', // default = false
404 xl('Display advance directives in the demographics page.')
407 'configuration_import_export' => array(
408 xl('Configuration Export/Import'),
409 'bool', // data type
410 '0', // default = false
411 xl('Support export/import of configuration data via the Backup page.')
414 'restrict_user_facility' => array(
415 xl('Restrict Users to Facilities'),
416 'bool', // data type
417 '0', // default
418 xl('Restrict non-authorized users to the Schedule Facilities set in User admin.')
421 'set_facility_cookie' => array(
422 xl('Remember Selected Facility'),
423 'bool', // data type
424 '0', // default
425 xl('Set a facility cookie to remember the selected facility between logins.')
428 'gbl_mask_patient_id' => array(
429 xl('Mask for Patient IDs'),
430 'text', // data type
431 '', // default
432 xl('Specifies formatting for the external patient ID. # = digit, * = any character. Empty if not used.')
435 'gbl_mask_invoice_number' => array(
436 xl('Mask for Invoice Numbers'),
437 'text', // data type
438 '', // default
439 xl('Specifies formatting for invoice reference numbers. # = digit, * = any character. Empty if not used.')
442 'gbl_mask_product_id' => array(
443 xl('Mask for Product IDs'),
444 'text', // data type
445 '', // default
446 xl('Specifies formatting for product NDC fields. # = digit, * = any character. Empty if not used.')
451 // Calendar Tab
453 'Calendar' => array(
455 'disable_calendar' => array(
456 xl('Disable Calendar'),
457 'bool', // data type
458 '0', // default
459 xl('Do not display the calendar.')
462 'schedule_start' => array(
463 xl('Calendar Starting Hour'),
464 'hour',
465 '8', // default
466 xl('Beginning hour of day for calendar events.')
469 'schedule_end' => array(
470 xl('Calendar Ending Hour'),
471 'hour',
472 '17', // default
473 xl('Ending hour of day for calendar events.')
476 'calendar_interval' => array(
477 xl('Calendar Interval'),
478 array(
479 '5' => '5',
480 '10' => '10',
481 '15' => '15',
482 '20' => '20',
483 '30' => '30',
484 '60' => '60',
486 '15', // default
487 xl('The time granularity of the calendar and the smallest interval in minutes for an appointment slot.')
490 'calendar_appt_style' => array(
491 xl('Appointment Display Style'),
492 array(
493 '1' => 'Last name',
494 '2' => 'Last name, first name',
495 '3' => 'Last name, first name (title)',
496 '4' => 'Last name, first name (title: description)',
498 '2', // default
499 xl('This determines how appointments display on the calendar.')
502 'docs_see_entire_calendar' => array(
503 xl('Providers See Entire Calendar'),
504 'bool', // data type
505 '0', // default
506 xl('Check this if you want providers to see all appointments by default and not just their own.')
509 'auto_create_new_encounters' => array(
510 xl('Auto-Create New Encounters'),
511 'bool', // data type
512 '1', // default
513 xl('Automatically create a new encounter when appointment status is set to "@" (arrived).')
518 // Security Tab
520 'Security' => array(
522 'timeout' => array(
523 xl('Idle Session Timeout Seconds'),
524 'num', // data type
525 '7200', // default
526 xl('Maximum idle time in seconds before logout. Default is 7200 (2 hours).')
529 'secure_password' => array(
530 xl('Require Strong Passwords'),
531 'bool', // data type
532 '0', // default
533 xl('Strong password means at least 8 characters, and at least three of: a number, a lowercase letter, an uppercase letter, a special character.')
536 'password_history' => array(
537 xl('Require Unique Passwords'),
538 'bool', // data type
539 '0', // default
540 xl('Means none of last three passwords are allowed when changing a password.')
543 'password_expiration_days' => array(
544 xl('Default Password Expiration Days'),
545 'num', // data type
546 '0', // default
547 xl('Default password expiration period in days. 0 means this feature is disabled.')
550 'password_grace_time' => array(
551 xl('Password Expiration Grace Period'),
552 'num', // data type
553 '0', // default
554 xl('Period in days where a user may login with an expired password.')
557 'is_client_ssl_enabled' => array(
558 xl('Enable Client SSL'),
559 'bool', // data type
560 '0', // default
561 xl('Enable client SSL certificate authentication.')
564 'certificate_authority_crt' => array(
565 xl('Path to CA Certificate File'),
566 'text', // data type
567 '', // default
568 xl('Set this to the full absolute path. For creating client SSL certificates for HTTPS.')
571 'certificate_authority_key' => array(
572 xl('Path to CA Key File'),
573 'text', // data type
574 '', // default
575 xl('Set this to the full absolute path. For creating client SSL certificates for HTTPS.')
578 'client_certificate_valid_in_days' => array(
579 xl('Client Certificate Expiration Days'),
580 'num', // data type
581 '365', // default
582 xl('Number of days that the client certificate is valid.')
585 'Emergency_Login_email_id' => array(
586 xl('Emergency Login Email Address'),
587 'text', // data type
588 '', // default
589 xl('Email address, if any, to receive emergency login user activation messages.')
594 // Notifications Tab
596 'Notifications' => array(
598 'practice_return_email_path' => array(
599 xl('Notification Email Address'),
600 'text', // data type
601 '', // default
602 xl('Email address, if any, to receive administrative notifications.')
605 'EMAIL_METHOD' => array(
606 xl('Email Transport Method'),
607 array(
608 'PHPMAIL' => 'PHPMAIL',
609 'SENDMAIL' => 'SENDMAIL',
610 'SMTP' => 'SMTP',
612 'SMTP', // default
613 xl('Method for sending outgoing email.')
616 'SMTP_HOST' => array(
617 xl('SMTP Server Hostname'),
618 'text', // data type
619 'localhost', // default
620 xl('If SMTP is used, the server`s hostname or IP address.')
623 'SMTP_PORT' => array(
624 xl('SMTP Server Port Number'),
625 'num', // data type
626 '25', // default
627 xl('If SMTP is used, the server`s TCP port number (usually 25).')
630 'SMTP_USER' => array(
631 xl('SMTP User for Authentication'),
632 'text', // data type
633 '', // default
634 xl('Must be empty if SMTP authentication is not used.')
637 'SMTP_PASS' => array(
638 xl('SMTP Password for Authentication'),
639 'text', // data type
640 '', // default
641 xl('Must be empty if SMTP authentication is not used.')
644 'EMAIL_NOTIFICATION_HOUR' => array(
645 xl('Email Notification Hours'),
646 'num', // data type
647 '50', // default
648 xl('Number of hours in advance to send email notifications.')
651 'SMS_NOTIFICATION_HOUR' => array(
652 xl('SMS Notification Hours'),
653 'num', // data type
654 '50', // default
655 xl('Number of hours in advance to send SMS notifications.')
658 'SMS_GATEWAY_USENAME' => array(
659 xl('SMS Gateway Username'),
660 'text', // data type
661 '', // default
662 xl('Username for SMS Gateway.')
665 'SMS_GATEWAY_PASSWORD' => array(
666 xl('SMS Gateway Password'),
667 'text', // data type
668 '', // default
669 xl('Password for SMS Gateway.')
672 'SMS_GATEWAY_APIKEY' => array(
673 xl('SMS Gateway API Key'),
674 'text', // data type
675 '', // default
676 xl('API key for SMS Gateway.')
681 // Miscellaneous Tab
683 'Miscellaneous' => array(
685 'mysql_bin_dir' => array(
686 xl('Path to MySQL Binaries'),
687 'text', // data type
688 $mysql_bin_dir, // default
689 xl('Full path to directory containing MySQL executables.')
692 'perl_bin_dir' => array(
693 xl('Path to Perl Binaries'),
694 'text', // data type
695 $perl_bin_dir, // default
696 xl('Full path to directory containing Perl executables.')
699 'temporary_files_dir' => array(
700 xl('Path to Temporary Files'),
701 'text', // data type
702 $temporary_files_dir, // default
703 xl('Full path to directory used for temporary files.')
706 'backup_log_dir' => array(
707 xl('Path for Event Log Backup'),
708 'text', // data type
709 $backup_log_dir, // default
710 xl('Full path to directory for event log backup.')
713 'state_data_type' => array(
714 xl('State Data Type'),
715 array(
716 '2' => xl('Text field'),
717 '1' => xl('Single-selection list'),
718 '26' => xl('Single-selection list with ability to add to the list'),
720 '26', // default
721 xl('Field type to use for employer or subscriber state in demographics.')
724 'country_data_type' => array(
725 xl('Country Data Type'),
726 array(
727 '2' => xl('Text field'),
728 '1' => xl('Single-selection list'),
729 '26' => xl('Single-selection list with ability to add to the list'),
731 '26', // default
732 xl('Field type to use for employer or subscriber country in demographics.')
735 'print_command' => array(
736 xl('Print Command'),
737 'text', // data type
738 'lpr -P HPLaserjet6P -o cpi=10 -o lpi=6 -o page-left=72 -o page-top=72',
739 xl('Shell command for printing from the server.')
742 'default_chief_complaint' => array(
743 xl('Default Reason for Visit'),
744 'text', // data type
746 xl('You may put text here as the default complaint in the New Patient Encounter form.')
749 'default_new_encounter_form' => array(
750 xl('Default Encounter Form ID'),
751 'text', // data type
753 xl('To automatically open the specified form. Some sports teams use football_injury_audit here.')
756 'patient_id_category_name' => array(
757 xl('Patient ID Category Name'),
758 'text', // data type
759 'Patient ID card', // default
760 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.')
763 'MedicareReferrerIsRenderer' => array(
764 xl('Medicare Referrer Is Renderer'),
765 'bool', // data type
766 '0', // default = true
767 xl('For Medicare only, forces the referring provider to be the same as the rendering provider.')
770 'discount_by_money' => array(
771 xl('Discounts as Monetary Amounts'),
772 'bool', // data type
773 '1', // default = true
774 xl('Discounts at checkout time are entered as money amounts, as opposed to percentage.')