Skip to content

Commit

Permalink
Added a language selector to the onsite patient portal.
Browse files Browse the repository at this point in the history
 -Settings of the language can be set in Administration->
  Globals->Locale (uses the same mechanism/settings
  as the main OpenEMR login)
 -Also migrated the main portal settings to Administration->
  Globals->Portal.
  • Loading branch information
bradymiller committed Aug 15, 2011
1 parent 6badcd8 commit 77317de
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 16 deletions.
34 changes: 20 additions & 14 deletions library/globals.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -1194,6 +1194,26 @@

),

// Portal Tab
//
'Portal' => array(

'portal_onsite_enable' => array(
xl('Enable Onsite Patient Portal'),
'bool', // data type
'0',
xl('Enable Onsite Patient Portal.')
),

'portal_onsite_address' => array(
xl('Onsite Patient Portal Site Address'),
'text', // data type
'https://your_web_site.com/openemr/patients',
xl('Website link for the Onsite Patient Portal.')
),

),

// Connectors Tab
//
'Connectors' => array(
Expand Down Expand Up @@ -1226,20 +1246,6 @@
xl('Https link for the OpenEMR Support LLC Lab Exchange Service.')
),

'portal_onsite_enable' => array(
xl('Enable Onsite Patient Portal'),
'bool', // data type
'0',
xl('Enable Onsite Patient Portal.')
),

'portal_onsite_address' => array(
xl('Onsite Patient Portal Site Address'),
'text', // data type
'https://your_web_site.com/openemr/patients',
xl('Website link for the Onsite Patient Portal.')
),

'erx_enable' => array(
xl('Enable NewCrop eRx Service'),
'bool', // data type
Expand Down
15 changes: 14 additions & 1 deletion patients/get_patient_info.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,21 @@
$ignoreAuth = 1;
//

//Authentication
//Authentication (and language setting)
require_once('../interface/globals.php');

// set the language
if (!empty($_POST['languageChoice'])) {
$_SESSION['language_choice'] = $_POST['languageChoice'];
}
else if (empty($_SESSION['language_choice'])) {
// just in case both are empty, then use english
$_SESSION['language_choice'] = 1;
}
else {
// keep the current session language token
}

$authorizedPortal=false; //flag

$sql = "SELECT * FROM `patient_access_onsite` WHERE `portal_username` = ? AND `portal_pwd` = ?";
Expand Down
84 changes: 83 additions & 1 deletion patients/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,61 @@

// security measure -- will check on next page.
$_SESSION['itsme'] = 1;
//
//

//
// Deal with language selection
//
// collect default language id (skip this if this is a password update)
if (!(isset($_SESSION['password_update']))) {
$res2 = sqlStatement("select * from lang_languages where lang_description = ?", array($GLOBALS['language_default']) );
for ($iter = 0;$row = sqlFetchArray($res2);$iter++) {
$result2[$iter] = $row;
}
if (count($result2) == 1) {
$defaultLangID = $result2[0]{"lang_id"};
$defaultLangName = $result2[0]{"lang_description"};
}
else {
//default to english if any problems
$defaultLangID = 1;
$defaultLangName = "English";
}
// set session variable to default so login information appears in default language
$_SESSION['language_choice'] = $defaultLangID;
// collect languages if showing language menu
if ($GLOBALS['language_menu_login']) {
// sorting order of language titles depends on language translation options.
$mainLangID = empty($_SESSION['language_choice']) ? '1' : $_SESSION['language_choice'];
if ($mainLangID == '1' && !empty($GLOBALS['skip_english_translation'])) {
$sql = "SELECT * FROM lang_languages ORDER BY lang_description, lang_id";
$res3=SqlStatement($sql);
}
else {
// Use and sort by the translated language name.
$sql = "SELECT ll.lang_id, " .
"IF(LENGTH(ld.definition),ld.definition,ll.lang_description) AS trans_lang_description, " .
"ll.lang_description " .
"FROM lang_languages AS ll " .
"LEFT JOIN lang_constants AS lc ON lc.constant_name = ll.lang_description " .
"LEFT JOIN lang_definitions AS ld ON ld.cons_id = lc.cons_id AND " .
"ld.lang_id = ? " .
"ORDER BY IF(LENGTH(ld.definition),ld.definition,ll.lang_description), ll.lang_id";
$res3=SqlStatement($sql, array($mainLangID) );
}
for ($iter = 0;$row = sqlFetchArray($res3);$iter++) {
$result3[$iter] = $row;
}
if (count($result3) == 1) {
//default to english if only return one language
$hiddenLanguageField = "<input type='hidden' name='languageChoice' value='1' />\n";
}
}
else {
$hiddenLanguageField = "<input type='hidden' name='languageChoice' value='".htmlspecialchars($defaultLanguage,ENT_QUOTES)."' />\n";
}
}

?>

<html>
Expand Down Expand Up @@ -179,10 +233,38 @@ function validate_new_pass() {
<input type="hidden" id="code" name="code" type="hidden" />
</td>
</tr>

<?php if ($GLOBALS['language_menu_login']) { ?>
<?php if (count($result3) != 1) { ?>
<tr>
<td><span class="text"><?php echo htmlspecialchars( xl('Language'), ENT_NOQUOTES); ?></span></td>
<td>
<select name=languageChoice size="1">
<?php
echo "<option selected='selected' value='".htmlspecialchars($defaultLangID,ENT_QUOTES)."'>" . htmlspecialchars( xl('Default') . " - " . xl($defaultLangName), ENT_NOQUOTES) . "</option>\n";
foreach ($result3 as $iter) {
if ($GLOBALS['language_menu_showall']) {
if ( !$GLOBALS['allow_debug_language'] && $iter[lang_description] == 'dummy') continue; // skip the dummy language
echo "<option value='".htmlspecialchars($iter[lang_id],ENT_QUOTES)."'>".htmlspecialchars($iter[trans_lang_description],ENT_NOQUOTES)."</option>\n";
}
else {
if (in_array($iter[lang_description], $GLOBALS['language_menu_show'])) {
if ( !$GLOBALS['allow_debug_language'] && $iter[lang_description] == 'dummy') continue; // skip the dummy language
echo "<option value='".htmlspecialchars($iter[lang_id],ENT_QUOTES)."'>".htmlspecialchars($iter[trans_lang_description],ENT_NOQUOTES)."</option>\n";
}
}
}
?>
</select>
</td>
</tr>
<?php }} ?>

<tr>
<td colspan=2><br><center><input type="submit" value="<?php echo htmlspecialchars( xl('Log In'), ENT_QUOTES);?>" /></center></td>
</tr>
</table>
<?php if (!(empty($hiddenLanguageField))) echo $hiddenLanguageField; ?>
</form>

<div class="copyright"><?php echo htmlspecialchars( xl('Powered by'), ENT_NOQUOTES);?> <a href="../../">OpenEMR</a></div>
Expand Down

0 comments on commit 77317de

Please sign in to comment.