You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
423 lines
13 KiB
423 lines
13 KiB
/** |
|
* Message center javascript. |
|
* |
|
* @package MedEx |
|
* @link http://www.MedExbank.com |
|
* @author MedEx <support@MedExBank.com> |
|
* @copyright Copyright (c) 2017 MedEx <support@MedExBank.com> |
|
* @license https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3 |
|
*/ |
|
|
|
var labels = []; |
|
var postcards = []; |
|
var show_just; |
|
|
|
/** |
|
* Function to find a patient in the DB |
|
* This pop-up is the standard openEMR file find_patient_popup.php |
|
* It returns pid, lname, fname, dob to function "setpatient" below |
|
* which then populates the form with the select patient data |
|
*/ |
|
function recall_name_click(field) { |
|
top.restoreSession(); |
|
dlgopen('../../main/calendar/find_patient_popup.php?pflag=0', '_blank', 500, 400); |
|
} |
|
|
|
/** |
|
* Function to insert patient data into addRecall fields |
|
* pid is sent to server for the data to display |
|
*/ |
|
function setpatient(pid, lname='', fname='', dob='') { |
|
top.restoreSession(); |
|
$.ajax({ |
|
type: "POST", |
|
url: "save.php", |
|
data: { |
|
'pid': pid, |
|
'action': 'new_recall' |
|
} |
|
}).done(function (result) { |
|
obj = JSON.parse(result); |
|
if (obj.DOLV > '') { |
|
//check to see if this is an already scheduled appt for the future |
|
//if so, do you really want a recall? Ask. |
|
//Maybe that appt needs to be removed... |
|
var now = moment(); //new Date()).format('YYYY-MM-DD'); //todays date |
|
var dolv = moment(obj.DOLV); // another date |
|
var duration = dolv.diff(now, 'days'); |
|
if (duration > '0') { //it's a future appt dude! |
|
alert(xljs_NOTE + ': ' + xljs_PthsApSched + ' ' + obj.DOLV ); |
|
} |
|
} |
|
$(".news").removeClass('nodisplay'); |
|
$("#new_pid").val(obj.pid); |
|
$("#new_phone_home").val(obj.phone_home); |
|
$("#new_phone_cell").val(obj.phone_cell); |
|
if (obj.hipaa_allowsms === "NO") { |
|
$('#new_allowsms_no').prop('checked', true); |
|
} else { |
|
$('#new_allowsms_yes').prop('checked', true); |
|
} |
|
if (obj.hipaa_allowemail === 'NO') { |
|
$("#new_email_no").prop('checked', true); |
|
} else { |
|
$("#new_email_yes").prop('checked', true); |
|
} |
|
if (obj.hipaa_voice === 'NO') { |
|
$("#new_voice_no").prop('checked', true); |
|
} else { |
|
$("#new_voice_yes").prop('checked', true); |
|
} |
|
$("#new_address").val(obj.street); |
|
$("#new_city").val(obj.city); |
|
$("#new_state").val(obj.state); |
|
$("#new_postal_code").val(obj.postal_code); |
|
$("#new_DOB").html(obj.DOB); |
|
$("#new_email").val(obj.email); |
|
if (obj.DOLV > '') { |
|
$("#DOLV").val(obj.DOLV); |
|
} else { |
|
var today = moment().format('YYYY-MM-DD'); |
|
$("#DOLV").val(today); |
|
} |
|
//there is an openemr global for age display under X years old (eg. under "2", so == 17 months old) |
|
//not sure where it is though... or if we can use it here. |
|
$("#new_age").html(obj.age + ' years old'); |
|
$("#new_reason").val(obj.PLAN); |
|
$("#new_recall_name").val(obj.lname + ', ' + obj.fname); |
|
$("#form_recall_date").val(obj.recall_date); |
|
$("#new_provider").val(obj.provider).change(); |
|
$("#new_facility").val(obj.facility).change(); |
|
}); |
|
} |
|
|
|
/** |
|
* This function is called with pressing Submit on the Add a Recall page |
|
*/ |
|
function add_this_recall(e) { |
|
if ($('#form_recall_date').val() === '') { |
|
alert(xljs_PlsDecRecDate); |
|
$("#form_recall_date").focus(); |
|
//e.defaultPrevented(); |
|
e.preventDefault(); |
|
return false; |
|
} else { |
|
var url = "save.php"; |
|
formData = JSON.stringify($("form#addRecall").serialize()); |
|
top.restoreSession(); |
|
$.ajax({ |
|
type: 'POST', |
|
url: url, |
|
dataType: 'json', |
|
action: 'add_recall', |
|
data: formData |
|
}).done(function (result) { |
|
goReminderRecall('Recalls'); |
|
}); |
|
} |
|
} |
|
|
|
/** |
|
* This function is called when a preference is changed |
|
*/ |
|
function save_preferences(event) { |
|
event.preventDefault; |
|
var url = "save.php"; |
|
formData = JSON.stringify($("form#addRecall").serialize()); |
|
top.restoreSession(); |
|
$.ajax({ |
|
type: 'POST', |
|
url: url, |
|
dataType: 'json', |
|
action: 'add_recall', |
|
data: formData |
|
}).done(function (result) { |
|
if (result.msg > '') { |
|
$("#message").html = result.msg |
|
} |
|
}); |
|
} |
|
|
|
function show_patient(newpid) { |
|
if (newpid.length === 0) { |
|
return; |
|
} |
|
top.restoreSession(); |
|
top.RTop.location = "../../patient_file/summary/demographics.php?set_pid=" + newpid; |
|
} |
|
|
|
/** |
|
* This function is called when the user clicks a header "ALL" checkbox in Postcards or Labels. |
|
* The goal is to select visible checkboxes in the selected column, |
|
* which can then be printed locally (labels or postcards at present 10/31/2016). |
|
*/ |
|
function checkAll(chk, set) { |
|
if ($("#chk_" + chk).hasClass('fa-square-o')) { |
|
$("[name=" + chk + "]").each(function () { |
|
this.checked = !$(this).parents('.nodisplay').length; |
|
}); |
|
} else { |
|
$("[name=" + chk + "]").each(function () { |
|
this.checked = false; |
|
}); |
|
} |
|
$("#chk_" + chk).toggleClass('fa-check-square-o').toggleClass('fa-square-o'); |
|
} |
|
|
|
/** |
|
* This function sends a list of checked items to the server for processing. |
|
*/ |
|
function process_this(material, id, eid='') { |
|
var make_this = []; |
|
var make_that = []; |
|
var make_all = []; |
|
if ((material === "phone") || (material === "notes")) { //we just checked a phone box or left/blurred away from a notes field |
|
make_this.push(id); |
|
make_that.push(eid); |
|
make_all.push(id + '_' + eid); |
|
var notes = $("#msg_notes_" + id).val(); |
|
} else { |
|
$('input:checkbox[name=' + material + ']:checked').each(function () { |
|
make_this.push(this.value); |
|
}); |
|
} |
|
|
|
var url = "save.php"; |
|
var formData = JSON.stringify(make_this); |
|
var pc_Data = JSON.stringify(make_that); |
|
var all_Data = JSON.stringify(make_all); |
|
top.restoreSession(); |
|
$.ajax({ |
|
type: 'POST', |
|
url: url, |
|
dataType: 'json', |
|
data: { |
|
'parameter': formData, |
|
'pc_eid': pc_Data, |
|
'uid_pc_eid': all_Data, |
|
'msg_notes': notes, |
|
'action': 'process', |
|
'item': material |
|
} |
|
}).done(function (result) { |
|
if (material === 'labels') window.open("../../patient_file/addr_appt_label.php", "_blank"); |
|
if (material === 'postcards') window.open("print_postcards.php", "rbot"); |
|
//now change the checkmark to a date, turn it red and leave a comment |
|
$('input:checkbox[name=' + material + ']:checked').each(function () { |
|
r_uid = this.value; |
|
var dateval = $.datepicker.formatDate('mm/dd/yy', new Date()); |
|
if (material !== 'phone') { |
|
$(this).parents('.' + material).append(' ' + dateval); |
|
$("#remind_" + r_uid).removeClass('whitish') |
|
.removeClass('reddish') |
|
.removeClass('greenish') |
|
.removeClass('yellowish') |
|
.addClass('yellowish'); |
|
} else { |
|
$("#msg_phone_" + r_uid).append('<br />' + dateval); |
|
} |
|
}); |
|
}); |
|
// |
|
|
|
} |
|
|
|
|
|
$.date = function (dateObject) { |
|
var d = new Date(dateObject); |
|
var day = d.getDate(); |
|
var month = d.getMonth() + 1; |
|
var year = d.getFullYear(); |
|
if (day < 10) { |
|
day = "0" + day; |
|
} |
|
if (month < 10) { |
|
month = "0" + month; |
|
} |
|
var date = day + "/" + month + "/" + year; |
|
|
|
return date; |
|
}; |
|
|
|
$(function () { |
|
/* |
|
* this swallows backspace keys. |
|
* stops backspace -> back a page in the browser, a very annoying thing indeed. |
|
*/ |
|
var rx = /INPUT|SELECT|TEXTAREA|SPAN|DIV/i; |
|
|
|
$(document).bind("keydown keypress", function (e) { |
|
if (e.which === 8) { // 8 == backspace |
|
if (!rx.test(e.target.tagName) || e.target.disabled || e.target.readOnly) { |
|
e.preventDefault(); |
|
} |
|
} |
|
}); |
|
}); |
|
|
|
// Open the add-event dialog. |
|
function newEvt(pid, pc_eid) { |
|
var f = document.forms[0]; |
|
var url = '../../main/calendar/add_edit_event.php?patientid=' + pid + '&eid=' + pc_eid; |
|
top.restoreSession(); |
|
dlgopen(url, '_blank', 800, 480); |
|
return false; |
|
} |
|
|
|
function delete_Recall(pid, r_ID) { |
|
if (confirm('Are you sure you want to delete this Recall?')) { |
|
var url = 'save.php'; |
|
top.restoreSession(); |
|
$.ajax({ |
|
type: 'POST', |
|
url: url, |
|
data: { |
|
'action': 'delete_Recall', |
|
'pid': pid, |
|
'r_ID': r_ID |
|
} |
|
|
|
}).done(function (result) { |
|
refresh_me(); |
|
}); |
|
} |
|
|
|
} |
|
|
|
function refresh_me() { |
|
top.restoreSession(); |
|
location.reload(); |
|
} |
|
|
|
/**** FUNCTIONS RELATED TO NAVIGATION *****/ |
|
// Process click to pop up the edit window. |
|
function doRecallclick_edit(goHere) { |
|
top.restoreSession(); |
|
if (window.location.pathname.match(/patient_tracker/)) { |
|
zone ='main/'; |
|
} else { |
|
zone = ''; |
|
} |
|
dlgopen('../'+zone+'messages/messages.php?nomenu=1&go=' + goHere, '_blank', 900, 400); |
|
} |
|
|
|
function goReminderRecall(choice) { |
|
tabYourIt('recall', 'main/messages/messages.php?go=' + choice); |
|
} |
|
|
|
function goMessages() { |
|
R = 'messages.php?showall=no&sortby=users.lname&sortorder=asc&begin=0&task=addnew&form_active=1'; |
|
top.restoreSession(); |
|
location.href = R; |
|
} |
|
|
|
function goMedEx() { |
|
top.restoreSession(); |
|
location.href = 'https://medexbank.com/cart/upload/index.php?route=information/campaigns'; |
|
} |
|
|
|
/**** END FUNCTIONS RELATED TO NAVIGATION *****/ |
|
|
|
function show_this(colorish='') { |
|
var facV = $("#form_facility").val(); |
|
var provV = $("#form_provider").val(); |
|
var pidV = $("#form_patient_id").val(); |
|
var pidRE = new RegExp(pidV, 'i'); |
|
var pnameV = $("#form_patient_name").val(); |
|
var pnameRE = new RegExp(pnameV, 'i'); |
|
|
|
$('.ALL').hide().filter(function () { |
|
var d = $(this).data(); |
|
meets_fac = (facV === '') || (facV == d.facility); |
|
meets_prov = (provV === '') || (provV == d.provider); |
|
meets_pid = pidV === ''; |
|
if ((pidV > '') && pidRE.test(d.pid)) { |
|
meets_pid = true; |
|
} |
|
meets_pname = pnameV === ''; |
|
if ((pnameV > '') && pnameRE.test(d.pname)) { |
|
meets_pname = true; |
|
} |
|
meets_color = (colorish === '') || (colorish == d.status ); |
|
return meets_fac && meets_prov && meets_pid && meets_pname && meets_color; |
|
}).show('4000', 'linear'); |
|
} |
|
|
|
//in bootstrap_menu.js |
|
function tabYourIt(tabNAME, url) { |
|
if (!top.tab_mode) { |
|
tabNAME = window.name; |
|
} |
|
top.restoreSession(); |
|
parent.left_nav.loadFrame('1', tabNAME, url); |
|
} |
|
|
|
$(function () { |
|
//bootstrap menu functions |
|
$('.dropdown').hover(function () { |
|
$(".dropdown").removeClass('open'); |
|
$(this).addClass('open'); |
|
$(this).find('.dropdown-menu').first().stop(true, true).delay(250).slideDown(); |
|
}, function () { |
|
$(this).find('.dropdown-menu').first().stop(true, true).delay(250).slideUp(); |
|
$('.dropdown').removeClass('open'); |
|
$(this).parent().removeClass('open'); |
|
}); |
|
$("[class='dropdown-toggle']").hover(function () { |
|
$(".dropdown").removeClass('open'); |
|
$(this).parent().addClass('open'); |
|
$(this).find('.dropdown-menu').first().stop(true, true).delay(250).slideDown(); |
|
}); |
|
$(".divTableRow").mouseover(function () { |
|
if ((!$(this).hasClass('divTableHeading')) && |
|
(!$(this).hasClass('greenish')) && |
|
(!$(this).parents().hasClass('newRecall')) && |
|
(!$(this).parents().hasClass('prefs')) |
|
) $(this).addClass("yellow").css('cursor', 'pointer'); |
|
}); |
|
$(".divTableRow").mouseout(function () { |
|
$(this).removeClass('yellow'); |
|
}); |
|
$("[name='new_recall_when']").change(function () { |
|
var dolv = moment($("#DOLV").val()); |
|
now = dolv.add($(this).val(), 'days').format(format_date_moment_js); |
|
$("#form_recall_date").val(now); |
|
}); |
|
$(".update").on('change', function (e) { |
|
var formData = $("form#save_prefs").serialize(); |
|
var url = "save.php"; |
|
top.restoreSession(); |
|
$.ajax({ |
|
type: 'POST', |
|
url: url, |
|
data: formData, |
|
action: 'save_prefs' |
|
}).done(function (result) { |
|
$("#div_response").html('<span class="text-danger">' + xljs1 + '.</span>'); |
|
setTimeout(function () { |
|
$("#div_response").html('<br />'); |
|
}, 2000); |
|
}); |
|
}); |
|
var bs_interval = $("#execute_interval").val(); |
|
if (bs_interval < '1') { |
|
$("#active_sync").hide(); |
|
$("#paused").show(); |
|
} else { |
|
$("#paused").hide(); |
|
$("#active_sync").show(); |
|
} |
|
$("#execute_interval").change(function() { |
|
var bs_interval = $("#execute_interval").val(); |
|
if (bs_interval <'1') { |
|
$("#active_sync").hide(); |
|
$("#paused").show(); |
|
} else { |
|
$("#display_interval").text(bs_interval); |
|
$("#paused").hide(); |
|
$("#active_sync").show(); |
|
} |
|
}); |
|
|
|
}); |
|
|
|
|