major bug fix two - web root path
[openemr.git] / library / globals.inc.php
blob8b40dd11c08ab39ce7dcd0f144c71b40163283fb
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 $GLOBALS_METADATA = array(
58 // Appearance Tab
60 xl('Appearance') => array(
62 'concurrent_layout' => array(
63 xl('Layout Style'), // descriptive name
64 array(
65 '0' => 'Old style layout with no left menu',
66 '1' => 'Navigation menu consists of pairs of radio buttons',
67 '2' => 'Navigation menu is a tree view',
69 '2', // default = tree menu
70 xl('Type of screen layout')
73 'css_header' => array(
74 xl('Theme'),
75 'css',
76 'style_sky_blue.css',
77 xl('Pick a CSS theme.')
80 'openemr_name' => array(
81 xl('Application Title'),
82 'text',
83 'OpenEMR',
84 xl('Application name for login page and main window title.')
87 'full_new_patient_form' => array(
88 xl('New Patient Form'),
89 array(
90 '0' => xl('Old-style static form without search or duplication check'),
91 '1' => xl('All demographics fields, with search and duplication check'),
92 '2' => xl('Mandatory or specified fields only, search and dup check'),
93 '3' => xl('Mandatory or specified fields only, dup check, no search'),
95 '1', // default
96 xl('Style of form used for adding new patients')
99 'patient_search_results_style' => array(
100 xl('Patient Search Results Style'),
101 array(
102 '0' => xl('Encounter statistics'),
103 '1' => xl('Mandatory and specified fields'),
105 '0', // default
106 xl('Type of columns displayed for patient search results')
109 'simplified_demographics' => array(
110 xl('Simplified Demographics'),
111 'bool', // data type
112 '0', // default = false
113 xl('Omit insurance and some other things from the demographics form')
116 'simplified_prescriptions' => array(
117 xl('Simplified Prescriptions'),
118 'bool', // data type
119 '0', // default = false
120 xl('Omit form, route and interval which then become part of dosage')
123 'simplified_copay' => array(
124 xl('Simplified Co-Pay'),
125 'bool', // data type
126 '0', // default = false
127 xl('Omit method of payment from the co-pay panel')
130 'use_charges_panel' => array(
131 xl('Use Charges Panel'),
132 'bool', // data type
133 '0', // default = false
134 xl('Enables the old Charges panel for entering billing codes and payments. Not recommended, use the Fee Sheet instead.')
137 'online_support_link' => array(
138 xl('Online Support Link'),
139 'text', // data type
140 'http://sourceforge.net/projects/openemr/support',
141 xl('URL for OpenEMR support.')
146 // Locale Tab
148 xl('Locale') => array(
150 'language_default' => array(
151 xl('Default Language'),
152 'lang', // data type
153 'English (Standard)', // default = english
154 xl('Default language if no other is allowed or chosen.')
157 'language_menu_showall' => array(
158 xl('All Languages Allowed'),
159 'bool', // data type
160 '1', // default = true
161 xl('Allow all available languages as choices on menu at login.')
164 'language_menu_other' => array(
165 xl('Allowed Languages'),
166 'm_lang', // data type
167 '', // default = none
168 xl('Select which languages, if any, may be chosen at login. (only pertinent if above All Languages Allowed is turned off)')
171 'translate_layout' => array(
172 xl('Translate Layouts'),
173 'bool', // data type
174 '1', // default = true
175 xl('Is text from form layouts to be translated?')
178 'translate_lists' => array(
179 xl('Translate Lists'),
180 'bool', // data type
181 '1', // default = true
182 xl('Is text from lists to be translated?')
185 'translate_gacl_groups' => array(
186 xl('Translate Access Control Groups'),
187 'bool', // data type
188 '1', // default = true
189 xl('Are access control group names to be translated?')
192 'translate_form_titles' => array(
193 xl('Translate Patient Note Titles'),
194 'bool', // data type
195 '1', // default = true
196 xl('Are patient note titles to be translated?')
199 'translate_document_categories' => array(
200 xl('Translate Document Categories'),
201 'bool', // data type
202 '1', // default = true
203 xl('Are document category names to be translated?')
206 'translate_appt_categories' => array(
207 xl('Translate Appointment Categories'),
208 'bool', // data type
209 '1', // default = true
210 xl('Are appointment category names to be translated?')
213 'units_of_measurement' => array(
214 xl('Units for Visit Forms'),
215 array(
216 '1' => xl('Show both US and metric (main unit is US)'),
217 '2' => xl('Show both US and metric (main unit is metric)'),
218 '3' => xl('Show US only'),
219 '4' => xl('Show metric only'),
221 '1', // default = Both/US
222 xl('Applies to the Vitals form and Growth Chart')
225 'disable_deprecated_metrics_form' => array(
226 xl('Disable Old Metric Vitals Form'),
227 'bool', // data type
228 '1', // default = true
229 xl('This was the older metric-only Vitals form, now deprecated.')
232 'phone_country_code' => array(
233 xl('Telephone Country Code'),
234 'num',
235 '1', // default = North America
236 xl('1 = North America. See http://www.wtng.info/ for a list of other country codes.')
239 'currency_decimals' => array(
240 xl('Currency Decimal Places'),
241 array(
242 '0' => xl('0'),
243 '1' => xl('1'),
244 '2' => xl('2'),
246 '2',
247 xl('Number of digits after decimal point for currency, usually 0 or 2.')
250 'currency_dec_point' => array(
251 xl('Currency Decimal Point Symbol'),
252 array(
253 '.' => xl('Period'),
254 ',' => xl('Comma'),
256 '.',
257 xl('Symbol used as the decimal point for currency. Not used if Decimal Places is 0.')
260 'currency_thousands_sep' => array(
261 xl('Currency Thousands Separator'),
262 array(
263 ',' => xl('Comma'),
264 '.' => xl('Period'),
265 ' ' => xl('Space'),
266 '' => xl('None'),
268 ',',
269 xl('Symbol used to separate thousands for currency.')
274 // Features Tab
276 xl('Features') => array(
278 'specific_application' => array(
279 xl('Specific Application'),
280 array(
281 '0' => xl('None'),
282 '1' => xl('Athletic team'),
283 '2' => xl('IPPF'),
284 '3' => xl('Weight loss clinic'),
286 '0', // default
287 xl('Indicator for specialized usage')
290 'inhouse_pharmacy' => array(
291 xl('Drugs and Products'),
292 array(
293 '0' => xl('Do not inventory and sell any products'),
294 '1' => xl('Inventory and sell drugs only'),
295 '2' => xl('Inventory and sell both drugs and non-drug products'),
296 '3' => xl('Products but no prescription drugs and no templates'),
298 '0', // default
299 xl('Option to support inventory and sales of products')
302 'disable_chart_tracker' => array(
303 xl('Disable Chart Tracker'),
304 'bool', // data type
305 '0', // default = false
306 xl('Removes the Chart Tracker feature')
309 'disable_immunizations' => array(
310 xl('Disable Immunizations'),
311 'bool', // data type
312 '0', // default = false
313 xl('Removes support for immunizations')
316 'disable_prescriptions' => array(
317 xl('Disable Prescriptions'),
318 'bool', // data type
319 '0', // default = false
320 xl('Removes support for prescriptions')
323 'omit_employers' => array(
324 xl('Omit Employers'),
325 'bool', // data type
326 '0', // default = false
327 xl('Omit employer information in patient demographics')
330 'select_multi_providers' => array(
331 xl('Support Multi-Provider Events'),
332 'bool', // data type
333 '0', // default = false
334 xl('Support calendar events that apply to multiple providers')
337 'disable_non_default_groups' => array(
338 xl('Disable User Groups'),
339 'bool', // data type
340 '1', // default = true
341 xl('Normally this should be checked. Not related to access control.')
344 'ignore_pnotes_authorization' => array(
345 xl('Skip Authorization of Patient Notes'),
346 'bool', // data type
347 '1', // default = true
348 xl('Do not require patient notes to be authorized')
351 'support_encounter_claims' => array(
352 xl('Allow Encounter Claims'),
353 'bool', // data type
354 '0', // default = false
355 xl('Allow creation of claims containing diagnoses but not procedures or charges. Most clinics do not want this.')
358 'advance_directives_warning' => array(
359 xl('Advance Directives Warning'),
360 'bool', // data type
361 '0', // default = false
362 xl('Display advance directives in the demographics page.')
365 'configuration_import_export' => array(
366 xl('Configuration Export/Import'),
367 'bool', // data type
368 '0', // default = false
369 xl('Support export/import of configuration data via the Backup page.')
372 'restrict_user_facility' => array(
373 xl('Restrict Users to Facilities'),
374 'bool', // data type
375 '0', // default
376 xl('Restrict non-authorized users to the Schedule Facilities set in User admin.')
379 'set_facility_cookie' => array(
380 xl('Remember Selected Facility'),
381 'bool', // data type
382 '0', // default
383 xl('Set a facility cookie to remember the selected facility between logins.')
388 // Calendar Tab
390 xl('Calendar') => array(
392 'disable_calendar' => array(
393 xl('Disable Calendar'),
394 'bool', // data type
395 '0', // default
396 xl('Do not display the calendar.')
399 'schedule_start' => array(
400 xl('Calendar Starting Hour'),
401 'hour',
402 '8', // default
403 xl('Beginning hour of day for calendar events.')
406 'schedule_end' => array(
407 xl('Calendar Ending Hour'),
408 'hour',
409 '17', // default
410 xl('Ending hour of day for calendar events.')
413 'calendar_interval' => array(
414 xl('Calendar Interval'),
415 array(
416 '5' => '5',
417 '10' => '10',
418 '15' => '15',
419 '20' => '20',
420 '30' => '30',
421 '60' => '60',
423 '15', // default
424 xl('The time granularity of the calendar and the smallest interval in minutes for an appointment slot.')
427 'calendar_appt_style' => array(
428 xl('Appointment Display Style'),
429 array(
430 '1' => 'Last name',
431 '2' => 'Last name, first name',
432 '3' => 'Last name, first name (title)',
433 '4' => 'Last name, first name (title: description)',
435 '2', // default
436 xl('This determines how appointments display on the calendar.')
439 'docs_see_entire_calendar' => array(
440 xl('Providers See Entire Calendar'),
441 'bool', // data type
442 '0', // default
443 xl('Check this if you want providers to see all appointments by default and not just their own.')
446 'auto_create_new_encounters' => array(
447 xl('Auto-Create New Encounters'),
448 'bool', // data type
449 '1', // default
450 xl('Automatically create a new encounter when appointment status is set to "@" (arrived).')
455 // Security Tab
457 xl('Security') => array(
459 'timeout' => array(
460 xl('Idle Session Timeout Seconds'),
461 'num', // data type
462 '7200', // default
463 xl('Maximum idle time in seconds before logout. Default is 7200 (2 hours).')
466 'secure_password' => array(
467 xl('Require Strong Passwords'),
468 'bool', // data type
469 '0', // default
470 xl('Strong password means at least 8 characters, and at least three of: a number, a lowercase letter, an uppercase letter, a special character.')
473 'password_history' => array(
474 xl('Require Unique Passwords'),
475 'bool', // data type
476 '0', // default
477 xl('Means none of last three passwords are allowed when changing a password.')
480 'password_expiration_days' => array(
481 xl('Default Password Expiration Days'),
482 'num', // data type
483 '0', // default
484 xl('Default password expiration period in days. 0 means this feature is disabled.')
487 'password_grace_time' => array(
488 xl('Password Expiration Grace Period'),
489 'num', // data type
490 '0', // default
491 xl('Period in days where a user may login with an expired password.')
494 'is_client_ssl_enabled' => array(
495 xl('Enable Client SSL'),
496 'bool', // data type
497 '0', // default
498 xl('Enable client SSL certificate authentication.')
501 'certificate_authority_crt' => array(
502 xl('Path to CA Certificate File'),
503 'text', // data type
504 '', // default
505 xl('Set this to the full absolute path. For creating client SSL certificates for HTTPS.')
508 'certificate_authority_key' => array(
509 xl('Path to CA Key File'),
510 'text', // data type
511 '', // default
512 xl('Set this to the full absolute path. For creating client SSL certificates for HTTPS.')
515 'client_certificate_valid_in_days' => array(
516 xl('Client Certificate Expiration Days'),
517 'num', // data type
518 '365', // default
519 xl('Number of days that the client certificate is valid.')
522 'Emergency_Login_email_id' => array(
523 xl('Emergency Login Email Address'),
524 'text', // data type
525 '', // default
526 xl('Email address, if any, to receive emergency login user activation messages.')
531 // Notifications Tab
533 xl('Notifications') => array(
535 'practice_return_email_path' => array(
536 xl('Notification Email Address'),
537 'text', // data type
538 '', // default
539 xl('Email address, if any, to receive administrative notifications.')
542 'EMAIL_METHOD' => array(
543 xl('Email Transport Method'),
544 array(
545 'PHPMAIL' => 'PHPMAIL',
546 'SENDMAIL' => 'SENDMAIL',
547 'SMTP' => 'SMTP',
549 'SMTP', // default
550 xl('Method for sending outgoing email.')
553 'SMTP_HOST' => array(
554 xl('SMTP Server Hostname'),
555 'text', // data type
556 'localhost', // default
557 xl('If SMTP is used, the server`s hostname or IP address.')
560 'SMTP_PORT' => array(
561 xl('SMTP Server Port Number'),
562 'num', // data type
563 '25', // default
564 xl('If SMTP is used, the server`s TCP port number (usually 25).')
567 'SMTP_USER' => array(
568 xl('SMTP User for Authentication'),
569 'text', // data type
570 '', // default
571 xl('Must be empty if SMTP authentication is not used.')
574 'SMTP_PASS' => array(
575 xl('SMTP Password for Authentication'),
576 'text', // data type
577 '', // default
578 xl('Must be empty if SMTP authentication is not used.')
581 'EMAIL_NOTIFICATION_HOUR' => array(
582 xl('EMAIL Notification Hours'),
583 'num', // data type
584 '50', // default
585 xl('Number of hours in advance to send email notifications.')
588 'SMS_NOTIFICATION_HOUR' => array(
589 xl('SMS Notification Hours'),
590 'num', // data type
591 '50', // default
592 xl('Number of hours in advance to send SMS notifications.')
595 'SMS_GATEWAY_USENAME' => array(
596 xl('SMS Gateway Username'),
597 'text', // data type
598 '', // default
599 xl('Username for SMS Gateway.')
602 'SMS_GATEWAY_PASSWORD' => array(
603 xl('SMS Gateway Password'),
604 'text', // data type
605 '', // default
606 xl('Password for SMS Gateway.')
609 'SMS_GATEWAY_APIKEY' => array(
610 xl('SMS Gateway API Key'),
611 'text', // data type
612 '', // default
613 xl('API key for SMS Gateway.')
618 // Miscellaneous Tab
620 xl('Miscellaneous') => array(
622 'mysql_bin_dir' => array(
623 xl('Path to MySQL Binaries'),
624 'text', // data type
625 $mysql_bin_dir, // default
626 xl('Full path to directory containing MySQL executables.')
629 'perl_bin_dir' => array(
630 xl('Path to Perl Binaries'),
631 'text', // data type
632 $perl_bin_dir, // default
633 xl('Full path to directory containing Perl executables.')
636 'temporary_files_dir' => array(
637 xl('Path to Temporary Files'),
638 'text', // data type
639 $temporary_files_dir, // default
640 xl('Full path to directory used for temporary files.')
643 'backup_log_dir' => array(
644 xl('Path for Event Log Backup'),
645 'text', // data type
646 $backup_log_dir, // default
647 xl('Full path to directory for event log backup.')
650 'state_data_type' => array(
651 xl('State Data Type'),
652 array(
653 '2' => xl('Text field'),
654 '1' => xl('Single-selection list'),
655 '26' => xl('Single-selection list with ability to add to the list'),
657 '26', // default
658 xl('Field type to use for employer or subscriber state in demographics.')
661 'country_data_type' => array(
662 xl('Country Data Type'),
663 array(
664 '2' => xl('Text field'),
665 '1' => xl('Single-selection list'),
666 '26' => xl('Single-selection list with ability to add to the list'),
668 '26', // default
669 xl('Field type to use for employer or subscriber country in demographics.')
672 'print_command' => array(
673 xl('Print Command'),
674 'text', // data type
675 'lpr -P HPLaserjet6P -o cpi=10 -o lpi=6 -o page-left=72 -o page-top=72',
676 xl('Shell command for printing from the server.')
679 'default_chief_complaint' => array(
680 xl('Default Reason for Visit'),
681 'text', // data type
683 xl('You may put text here as the default complaint in the New Patient Encounter form.')
686 'default_new_encounter_form' => array(
687 xl('Default Encounter Form ID'),
688 'text', // data type
690 xl('To automatically open the specified form. Some sports teams use football_injury_audit here.')
693 'patient_id_category_name' => array(
694 xl('Patient ID Category Name'),
695 'text', // data type
696 'Patient ID card', // default
697 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.')
700 'MedicareReferrerIsRenderer' => array(
701 xl('Medicare Referrer Is Renderer'),
702 'bool', // data type
703 '0', // default = true
704 xl('For Medicare only, forces the referring provider to be the same as the rendering provider.')
707 'discount_by_money' => array(
708 xl('Discounts as Monetary Amounts'),
709 'bool', // data type
710 '1', // default = true
711 xl('Discounts at checkout time are entered as money amounts, as opposed to percentage.')