Integrate adodb binding functionality to allow sql queries with binding to prevent...
[openemr.git] / library / globals.inc.php
blob582a79cb46048310648a1d39573d9755216999b0
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')
41 // OS-dependent stuff.
42 if (stristr(PHP_OS, 'WIN')) {
43 // MS Windows
44 $mysql_bin_dir = 'C:/xampp/mysql/bin';
45 $perl_bin_dir = 'C:/xampp/perl/bin';
46 $temporary_files_dir = 'C:/windows/temp';
47 $backup_log_dir = 'C:/windows/temp';
49 else {
50 // Everything else
51 $mysql_bin_dir = '/usr/bin';
52 $perl_bin_dir = '/usr/bin';
53 $temporary_files_dir = '/tmp';
54 $backup_log_dir = '/tmp';
57 // Language constant declarations:
58 // xl('Appearance')
59 // xl('Locale')
60 // xl('Features')
61 // xl('Calendar')
62 // xl('Security')
63 // xl('Notifications')
64 // xl('Miscellaneous')
66 $GLOBALS_METADATA = array(
68 // Appearance Tab
70 'Appearance' => array(
72 'concurrent_layout' => array(
73 xl('Layout Style'), // descriptive name
74 array(
75 '0' => 'Old style layout with no left menu',
76 '1' => 'Navigation menu consists of pairs of radio buttons',
77 '2' => 'Navigation menu is a tree view',
79 '2', // default = tree menu
80 xl('Type of screen layout')
83 'css_header' => array(
84 xl('Theme'),
85 'css',
86 'style_sky_blue.css',
87 xl('Pick a CSS theme.')
90 'gbl_nav_area_width' => array(
91 xl('Navigation Area Width'),
92 'num',
93 '130',
94 xl('Width in pixels of the left navigation frame.')
97 'openemr_name' => array(
98 xl('Application Title'),
99 'text',
100 'OpenEMR',
101 xl('Application name for login page and main window title.')
104 'full_new_patient_form' => array(
105 xl('New Patient Form'),
106 array(
107 '0' => xl('Old-style static form without search or duplication check'),
108 '1' => xl('All demographics fields, with search and duplication check'),
109 '2' => xl('Mandatory or specified fields only, search and dup check'),
110 '3' => xl('Mandatory or specified fields only, dup check, no search'),
112 '1', // default
113 xl('Style of form used for adding new patients')
116 'patient_search_results_style' => array(
117 xl('Patient Search Results Style'),
118 array(
119 '0' => xl('Encounter statistics'),
120 '1' => xl('Mandatory and specified fields'),
122 '0', // default
123 xl('Type of columns displayed for patient search results')
126 'simplified_demographics' => array(
127 xl('Simplified Demographics'),
128 'bool', // data type
129 '0', // default = false
130 xl('Omit insurance and some other things from the demographics form')
133 'simplified_prescriptions' => array(
134 xl('Simplified Prescriptions'),
135 'bool', // data type
136 '0', // default = false
137 xl('Omit form, route and interval which then become part of dosage')
140 'simplified_copay' => array(
141 xl('Simplified Co-Pay'),
142 'bool', // data type
143 '0', // default = false
144 xl('Omit method of payment from the co-pay panel')
147 'use_charges_panel' => array(
148 xl('Use Charges Panel'),
149 'bool', // data type
150 '0', // default = false
151 xl('Enables the old Charges panel for entering billing codes and payments. Not recommended, use the Fee Sheet instead.')
154 'online_support_link' => array(
155 xl('Online Support Link'),
156 'text', // data type
157 'http://sourceforge.net/projects/openemr/support',
158 xl('URL for OpenEMR support.')
163 // Locale Tab
165 'Locale' => array(
167 'language_default' => array(
168 xl('Default Language'),
169 'lang', // data type
170 'English (Standard)', // default = english
171 xl('Default language if no other is allowed or chosen.')
174 'language_menu_showall' => array(
175 xl('All Languages Allowed'),
176 'bool', // data type
177 '1', // default = true
178 xl('Allow all available languages as choices on menu at login.')
181 'language_menu_other' => array(
182 xl('Allowed Languages'),
183 'm_lang', // data type
184 '', // default = none
185 xl('Select which languages, if any, may be chosen at login. (only pertinent if above All Languages Allowed is turned off)')
188 'translate_layout' => array(
189 xl('Translate Layouts'),
190 'bool', // data type
191 '1', // default = true
192 xl('Is text from form layouts to be translated?')
195 'translate_lists' => array(
196 xl('Translate Lists'),
197 'bool', // data type
198 '1', // default = true
199 xl('Is text from lists to be translated?')
202 'translate_gacl_groups' => array(
203 xl('Translate Access Control Groups'),
204 'bool', // data type
205 '1', // default = true
206 xl('Are access control group names to be translated?')
209 'translate_form_titles' => array(
210 xl('Translate Patient Note Titles'),
211 'bool', // data type
212 '1', // default = true
213 xl('Are patient note titles to be translated?')
216 'translate_document_categories' => array(
217 xl('Translate Document Categories'),
218 'bool', // data type
219 '1', // default = true
220 xl('Are document category names to be translated?')
223 'translate_appt_categories' => array(
224 xl('Translate Appointment Categories'),
225 'bool', // data type
226 '1', // default = true
227 xl('Are appointment category names to be translated?')
230 'units_of_measurement' => array(
231 xl('Units for Visit Forms'),
232 array(
233 '1' => xl('Show both US and metric (main unit is US)'),
234 '2' => xl('Show both US and metric (main unit is metric)'),
235 '3' => xl('Show US only'),
236 '4' => xl('Show metric only'),
238 '1', // default = Both/US
239 xl('Applies to the Vitals form and Growth Chart')
242 'disable_deprecated_metrics_form' => array(
243 xl('Disable Old Metric Vitals Form'),
244 'bool', // data type
245 '1', // default = true
246 xl('This was the older metric-only Vitals form, now deprecated.')
249 'phone_country_code' => array(
250 xl('Telephone Country Code'),
251 'num',
252 '1', // default = North America
253 xl('1 = North America. See http://www.wtng.info/ for a list of other country codes.')
256 'date_display_format' => array(
257 xl('Date Display Format'),
258 array(
259 '0' => xl('YYYY-MM-DD'),
260 '1' => xl('MM/DD/YYYY'),
261 '2' => xl('DD/MM/YYYY'),
263 '0',
264 xl('Format used to display most dates.')
267 'currency_decimals' => array(
268 xl('Currency Decimal Places'),
269 array(
270 '0' => xl('0'),
271 '1' => xl('1'),
272 '2' => xl('2'),
274 '2',
275 xl('Number of digits after decimal point for currency, usually 0 or 2.')
278 'currency_dec_point' => array(
279 xl('Currency Decimal Point Symbol'),
280 array(
281 '.' => xl('Period'),
282 ',' => xl('Comma'),
284 '.',
285 xl('Symbol used as the decimal point for currency. Not used if Decimal Places is 0.')
288 'currency_thousands_sep' => array(
289 xl('Currency Thousands Separator'),
290 array(
291 ',' => xl('Comma'),
292 '.' => xl('Period'),
293 ' ' => xl('Space'),
294 '' => xl('None'),
296 ',',
297 xl('Symbol used to separate thousands for currency.')
300 'gbl_currency_symbol' => array(
301 xl('Currency Designator'),
302 'text', // data type
303 '$', // default
304 xl('Code or symbol to indicate currency') . '. ' . xl('Examples') .
305 ': USD GBP EUR $ £ €'
310 // Features Tab
312 'Features' => array(
314 'specific_application' => array(
315 xl('Specific Application'),
316 array(
317 '0' => xl('None'),
318 '1' => xl('Athletic team'),
319 '2' => xl('IPPF'),
320 '3' => xl('Weight loss clinic'),
322 '0', // default
323 xl('Indicator for specialized usage')
326 'inhouse_pharmacy' => array(
327 xl('Drugs and Products'),
328 array(
329 '0' => xl('Do not inventory and sell any products'),
330 '1' => xl('Inventory and sell drugs only'),
331 '2' => xl('Inventory and sell both drugs and non-drug products'),
332 '3' => xl('Products but no prescription drugs and no templates'),
334 '0', // default
335 xl('Option to support inventory and sales of products')
338 'disable_chart_tracker' => array(
339 xl('Disable Chart Tracker'),
340 'bool', // data type
341 '0', // default = false
342 xl('Removes the Chart Tracker feature')
345 'disable_phpmyadmin_link' => array(
346 xl('Disable phpMyAdmin'),
347 'bool', // data type
348 '0', // default = false
349 xl('Removes support for phpMyAdmin')
352 'disable_immunizations' => array(
353 xl('Disable Immunizations'),
354 'bool', // data type
355 '0', // default = false
356 xl('Removes support for immunizations')
359 'disable_prescriptions' => array(
360 xl('Disable Prescriptions'),
361 'bool', // data type
362 '0', // default = false
363 xl('Removes support for prescriptions')
366 'omit_employers' => array(
367 xl('Omit Employers'),
368 'bool', // data type
369 '0', // default = false
370 xl('Omit employer information in patient demographics')
373 'select_multi_providers' => array(
374 xl('Support Multi-Provider Events'),
375 'bool', // data type
376 '0', // default = false
377 xl('Support calendar events that apply to multiple providers')
380 'disable_non_default_groups' => array(
381 xl('Disable User Groups'),
382 'bool', // data type
383 '1', // default = true
384 xl('Normally this should be checked. Not related to access control.')
387 'ignore_pnotes_authorization' => array(
388 xl('Skip Authorization of Patient Notes'),
389 'bool', // data type
390 '1', // default = true
391 xl('Do not require patient notes to be authorized')
394 'support_encounter_claims' => array(
395 xl('Allow Encounter Claims'),
396 'bool', // data type
397 '0', // default = false
398 xl('Allow creation of claims containing diagnoses but not procedures or charges. Most clinics do not want this.')
401 'advance_directives_warning' => array(
402 xl('Advance Directives Warning'),
403 'bool', // data type
404 '0', // default = false
405 xl('Display advance directives in the demographics page.')
408 'configuration_import_export' => array(
409 xl('Configuration Export/Import'),
410 'bool', // data type
411 '0', // default = false
412 xl('Support export/import of configuration data via the Backup page.')
415 'restrict_user_facility' => array(
416 xl('Restrict Users to Facilities'),
417 'bool', // data type
418 '0', // default
419 xl('Restrict non-authorized users to the Schedule Facilities set in User admin.')
422 'set_facility_cookie' => array(
423 xl('Remember Selected Facility'),
424 'bool', // data type
425 '0', // default
426 xl('Set a facility cookie to remember the selected facility between logins.')
429 'discount_by_money' => array(
430 xl('Discounts as Monetary Amounts'),
431 'bool', // data type
432 '1', // default = true
433 xl('Discounts at checkout time are entered as money amounts, as opposed to percentage.')
436 'gbl_mask_patient_id' => array(
437 xl('Mask for Patient IDs'),
438 'text', // data type
439 '', // default
440 xl('Specifies formatting for the external patient ID. # = digit, * = any character. Empty if not used.')
443 'gbl_mask_invoice_number' => array(
444 xl('Mask for Invoice Numbers'),
445 'text', // data type
446 '', // default
447 xl('Specifies formatting for invoice reference numbers. # = digit, * = any character. Empty if not used.')
450 'gbl_mask_product_id' => array(
451 xl('Mask for Product IDs'),
452 'text', // data type
453 '', // default
454 xl('Specifies formatting for product NDC fields. # = digit, * = any character. Empty if not used.')
459 // Calendar Tab
461 'Calendar' => array(
463 'disable_calendar' => array(
464 xl('Disable Calendar'),
465 'bool', // data type
466 '0', // default
467 xl('Do not display the calendar.')
470 'schedule_start' => array(
471 xl('Calendar Starting Hour'),
472 'hour',
473 '8', // default
474 xl('Beginning hour of day for calendar events.')
477 'schedule_end' => array(
478 xl('Calendar Ending Hour'),
479 'hour',
480 '17', // default
481 xl('Ending hour of day for calendar events.')
484 'calendar_interval' => array(
485 xl('Calendar Interval'),
486 array(
487 '5' => '5',
488 '10' => '10',
489 '15' => '15',
490 '20' => '20',
491 '30' => '30',
492 '60' => '60',
494 '15', // default
495 xl('The time granularity of the calendar and the smallest interval in minutes for an appointment slot.')
498 'calendar_appt_style' => array(
499 xl('Appointment Display Style'),
500 array(
501 '1' => 'Last name',
502 '2' => 'Last name, first name',
503 '3' => 'Last name, first name (title)',
504 '4' => 'Last name, first name (title: description)',
506 '2', // default
507 xl('This determines how appointments display on the calendar.')
510 'docs_see_entire_calendar' => array(
511 xl('Providers See Entire Calendar'),
512 'bool', // data type
513 '0', // default
514 xl('Check this if you want providers to see all appointments by default and not just their own.')
517 'auto_create_new_encounters' => array(
518 xl('Auto-Create New Encounters'),
519 'bool', // data type
520 '1', // default
521 xl('Automatically create a new encounter when appointment status is set to "@" (arrived).')
526 // Security Tab
528 'Security' => array(
530 'timeout' => array(
531 xl('Idle Session Timeout Seconds'),
532 'num', // data type
533 '7200', // default
534 xl('Maximum idle time in seconds before logout. Default is 7200 (2 hours).')
537 'secure_password' => array(
538 xl('Require Strong Passwords'),
539 'bool', // data type
540 '0', // default
541 xl('Strong password means at least 8 characters, and at least three of: a number, a lowercase letter, an uppercase letter, a special character.')
544 'password_history' => array(
545 xl('Require Unique Passwords'),
546 'bool', // data type
547 '0', // default
548 xl('Means none of last three passwords are allowed when changing a password.')
551 'password_expiration_days' => array(
552 xl('Default Password Expiration Days'),
553 'num', // data type
554 '0', // default
555 xl('Default password expiration period in days. 0 means this feature is disabled.')
558 'password_grace_time' => array(
559 xl('Password Expiration Grace Period'),
560 'num', // data type
561 '0', // default
562 xl('Period in days where a user may login with an expired password.')
565 'is_client_ssl_enabled' => array(
566 xl('Enable Client SSL'),
567 'bool', // data type
568 '0', // default
569 xl('Enable client SSL certificate authentication.')
572 'certificate_authority_crt' => array(
573 xl('Path to CA Certificate File'),
574 'text', // data type
575 '', // default
576 xl('Set this to the full absolute path. For creating client SSL certificates for HTTPS.')
579 'certificate_authority_key' => array(
580 xl('Path to CA Key File'),
581 'text', // data type
582 '', // default
583 xl('Set this to the full absolute path. For creating client SSL certificates for HTTPS.')
586 'client_certificate_valid_in_days' => array(
587 xl('Client Certificate Expiration Days'),
588 'num', // data type
589 '365', // default
590 xl('Number of days that the client certificate is valid.')
593 'Emergency_Login_email_id' => array(
594 xl('Emergency Login Email Address'),
595 'text', // data type
596 '', // default
597 xl('Email address, if any, to receive emergency login user activation messages.')
602 // Notifications Tab
604 'Notifications' => array(
606 'practice_return_email_path' => array(
607 xl('Notification Email Address'),
608 'text', // data type
609 '', // default
610 xl('Email address, if any, to receive administrative notifications.')
613 'EMAIL_METHOD' => array(
614 xl('Email Transport Method'),
615 array(
616 'PHPMAIL' => 'PHPMAIL',
617 'SENDMAIL' => 'SENDMAIL',
618 'SMTP' => 'SMTP',
620 'SMTP', // default
621 xl('Method for sending outgoing email.')
624 'SMTP_HOST' => array(
625 xl('SMTP Server Hostname'),
626 'text', // data type
627 'localhost', // default
628 xl('If SMTP is used, the server`s hostname or IP address.')
631 'SMTP_PORT' => array(
632 xl('SMTP Server Port Number'),
633 'num', // data type
634 '25', // default
635 xl('If SMTP is used, the server`s TCP port number (usually 25).')
638 'SMTP_USER' => array(
639 xl('SMTP User for Authentication'),
640 'text', // data type
641 '', // default
642 xl('Must be empty if SMTP authentication is not used.')
645 'SMTP_PASS' => array(
646 xl('SMTP Password for Authentication'),
647 'text', // data type
648 '', // default
649 xl('Must be empty if SMTP authentication is not used.')
652 'EMAIL_NOTIFICATION_HOUR' => array(
653 xl('Email Notification Hours'),
654 'num', // data type
655 '50', // default
656 xl('Number of hours in advance to send email notifications.')
659 'SMS_NOTIFICATION_HOUR' => array(
660 xl('SMS Notification Hours'),
661 'num', // data type
662 '50', // default
663 xl('Number of hours in advance to send SMS notifications.')
666 'SMS_GATEWAY_USENAME' => array(
667 xl('SMS Gateway Username'),
668 'text', // data type
669 '', // default
670 xl('Username for SMS Gateway.')
673 'SMS_GATEWAY_PASSWORD' => array(
674 xl('SMS Gateway Password'),
675 'text', // data type
676 '', // default
677 xl('Password for SMS Gateway.')
680 'SMS_GATEWAY_APIKEY' => array(
681 xl('SMS Gateway API Key'),
682 'text', // data type
683 '', // default
684 xl('API key for SMS Gateway.')
689 // Miscellaneous Tab
691 'Miscellaneous' => array(
693 'mysql_bin_dir' => array(
694 xl('Path to MySQL Binaries'),
695 'text', // data type
696 $mysql_bin_dir, // default
697 xl('Full path to directory containing MySQL executables.')
700 'perl_bin_dir' => array(
701 xl('Path to Perl Binaries'),
702 'text', // data type
703 $perl_bin_dir, // default
704 xl('Full path to directory containing Perl executables.')
707 'temporary_files_dir' => array(
708 xl('Path to Temporary Files'),
709 'text', // data type
710 $temporary_files_dir, // default
711 xl('Full path to directory used for temporary files.')
714 'backup_log_dir' => array(
715 xl('Path for Event Log Backup'),
716 'text', // data type
717 $backup_log_dir, // default
718 xl('Full path to directory for event log backup.')
721 'state_data_type' => array(
722 xl('State Data Type'),
723 array(
724 '2' => xl('Text field'),
725 '1' => xl('Single-selection list'),
726 '26' => xl('Single-selection list with ability to add to the list'),
728 '26', // default
729 xl('Field type to use for employer or subscriber state in demographics.')
732 'country_data_type' => array(
733 xl('Country Data Type'),
734 array(
735 '2' => xl('Text field'),
736 '1' => xl('Single-selection list'),
737 '26' => xl('Single-selection list with ability to add to the list'),
739 '26', // default
740 xl('Field type to use for employer or subscriber country in demographics.')
743 'print_command' => array(
744 xl('Print Command'),
745 'text', // data type
746 'lpr -P HPLaserjet6P -o cpi=10 -o lpi=6 -o page-left=72 -o page-top=72',
747 xl('Shell command for printing from the server.')
750 'default_chief_complaint' => array(
751 xl('Default Reason for Visit'),
752 'text', // data type
754 xl('You may put text here as the default complaint in the New Patient Encounter form.')
757 'default_new_encounter_form' => array(
758 xl('Default Encounter Form ID'),
759 'text', // data type
761 xl('To automatically open the specified form. Some sports teams use football_injury_audit here.')
764 'patient_id_category_name' => array(
765 xl('Patient ID Category Name'),
766 'text', // data type
767 'Patient ID card', // default
768 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.')
771 'MedicareReferrerIsRenderer' => array(
772 xl('Medicare Referrer Is Renderer'),
773 'bool', // data type
774 '0', // default = true
775 xl('For Medicare only, forces the referring provider to be the same as the rendering provider.')