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.
318 lines
12 KiB
318 lines
12 KiB
$(document).ready(function () { |
|
|
|
$('#nic_new_img_btn').click(function(){ |
|
$('#nic_new_img_modal').modal('show'); |
|
get_new_db_images(); |
|
$('#nic_images_to_visit').attr("disabled", false); |
|
$('#nic_images_to_exam').attr("disabled", false); |
|
}); |
|
|
|
$('.close').click(function(){ |
|
$('#' + $(this).data('target')).hide(); |
|
}); |
|
|
|
var cookie_life = new Date(); |
|
cookie_life.setTime(cookie_life.getTime() + (20 * 60 * 1000)); |
|
$.cookie('images_timestamp', null, { expires: 0 }); |
|
check_cookies(); |
|
setInterval(() => check_cookies(), 5000); |
|
|
|
|
|
function check_cookies() |
|
{ |
|
if (!document.hidden) { |
|
if ($('#nic_saving').length == 0) |
|
{ |
|
var url = '/new_images_monitoring' |
|
if ($.cookie('images_timestamp')) |
|
url = '/new_images_monitoring?timestamp='+$.cookie('images_timestamp') |
|
$.ajax({ |
|
type:'GET', |
|
url: url, |
|
processData: false, // tell jQuery not to process the data |
|
contentType: false, // tell jQuery not to set contentType |
|
success: (data) => { |
|
for (msg_num in data['result']) |
|
{ |
|
if (data['result'][msg_num]['timestamp'] > $.cookie('images_timestamp')) |
|
{ |
|
startRemoteUnvRec(data['result'][msg_num]['src']); |
|
} |
|
if($.cookie('images_timestamp') == null) |
|
{ |
|
startRemoteUnvRec(data['result'][msg_num]['src']); |
|
} |
|
} |
|
$.cookie('images_timestamp', data['timestamp'], { expires: cookie_life }); |
|
if (data['length'] > 0) |
|
{ |
|
$('#nic_new_img_btn').show(); |
|
} |
|
else |
|
{ |
|
$('#nic_new_img_btn').hide(); |
|
} |
|
|
|
}, |
|
error:function (jqXHR, exception) { |
|
after_error(); |
|
} |
|
}); |
|
} |
|
} |
|
} |
|
|
|
function startRemoteUnvRec(src){ |
|
// console.log('start_remote_unvisit_image_diagnostics'); |
|
var message = { |
|
src: src |
|
} |
|
lang = getUrlParameter('lang'); |
|
$.ajax({ |
|
type:'POST', |
|
data: JSON.stringify(message), |
|
url: '/start_remote_unvisit_image_diagnostics'+'?lang='+lang, |
|
processData: false, // tell jQuery not to process the data |
|
contentType: false, // tell jQuery not to set contentType |
|
success: (data) => { |
|
|
|
//Если модалка активна |
|
if($('#nic_new_img_modal').hasClass('show')) |
|
{ |
|
get_new_db_images(); |
|
} |
|
}, |
|
error:function (jqXHR, exception) { |
|
|
|
} |
|
}); |
|
|
|
} |
|
|
|
var getUrlParameter = function getUrlParameter(sParam) { |
|
var sPageURL = window.location.search.substring(1), |
|
sURLVariables = sPageURL.split('&'), |
|
sParameterName, |
|
i; |
|
|
|
for (i = 0; i < sURLVariables.length; i++) { |
|
sParameterName = sURLVariables[i].split('='); |
|
|
|
if (sParameterName[0] === sParam) { |
|
return typeof sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]); |
|
} |
|
} |
|
return false; |
|
}; |
|
|
|
$('#nic_images_to_exam').click(function(){ |
|
$('#nic_images_to_exam').attr("disabled", true); |
|
var image_ids = []; |
|
$.each($('.img-checkbox'), function(e) { |
|
if($(this).is(':checked')) |
|
image_ids.push($(this).data('id')); |
|
}); |
|
var message = { |
|
'image_ids': image_ids |
|
} |
|
lang = getUrlParameter('lang'); |
|
$.ajax({ |
|
type:'POST', |
|
data: JSON.stringify(message), |
|
url: '/nic_images_to_exam'+'?lang='+lang, |
|
processData: false, // tell jQuery not to process the data |
|
contentType: false, // tell jQuery not to set contentType |
|
success: (data) => { |
|
if(data['success'] == true) |
|
{ |
|
if(lang == 'en') |
|
window.location.href = '/med_exam?visit_id='+data['visit_id']+'&lang=en'; |
|
else |
|
window.location.href = '/med_exam?visit_id='+data['visit_id']+'&lang=ru'; |
|
} |
|
else |
|
$('#nic_images_to_exam').attr("disabled", false); |
|
}, |
|
error:function (jqXHR, exception) { |
|
$('#nic_images_to_exam').attr("disabled", false); |
|
} |
|
}); |
|
}); |
|
|
|
$('#nic_images_to_visit').click(function(){ |
|
$('#nic_images_to_visit').attr("disabled", true); |
|
var image_ids = []; |
|
$.each($('.img-checkbox'), function(e) { |
|
if($(this).is(':checked')) |
|
image_ids.push($(this).data('id')); |
|
}); |
|
var message = { |
|
'image_ids': image_ids |
|
} |
|
lang = getUrlParameter('lang'); |
|
$.ajax({ |
|
type:'POST', |
|
data: JSON.stringify(message), |
|
url: '/nic_images_to_visit'+'?lang='+lang, |
|
processData: false, // tell jQuery not to process the data |
|
contentType: false, // tell jQuery not to set contentType |
|
success: (data) => { |
|
if(data['success'] == true) |
|
{ |
|
// if(lang == 'en') |
|
// window.location.href = '/visit/'+data['patient_id']+'?lang=en&nic_visit=true'; |
|
// else |
|
// window.location.href = '/visit/'+data['patient_id']+'?nic_visit=true'; |
|
if(lang == 'en') |
|
window.location.href = '/visit/new_visit'+'?lang=en&nic_visit=true&visit_id='+data['visit_id']; |
|
else |
|
window.location.href = '/visit/new_visit'+'?nic_visit=true&visit_id='+data['visit_id']; |
|
} |
|
else |
|
$('#nic_images_to_visit').attr("disabled", false); |
|
}, |
|
error:function (jqXHR, exception) { |
|
$('#nic_images_to_visit').attr("disabled", false); |
|
} |
|
}); |
|
}); |
|
|
|
$('#nic_remove_images').click(function(){ |
|
var image_ids = []; |
|
$.each($('.img-checkbox'), function(e) { |
|
if($(this).is(':checked')) |
|
image_ids.push($(this).data('id')); |
|
}); |
|
var message = { |
|
'image_ids': image_ids |
|
} |
|
$.ajax({ |
|
type:'POST', |
|
data: JSON.stringify(message), |
|
url: '/remove_nic_images', |
|
processData: false, // tell jQuery not to process the data |
|
contentType: false, // tell jQuery not to set contentType |
|
success: (data) => { |
|
get_new_db_images(); |
|
}, |
|
error:function (jqXHR, exception) { |
|
|
|
} |
|
}); |
|
}); |
|
|
|
function get_new_db_images(){ |
|
// Доделать чекбоксы для |
|
$('#new_images_selector').empty(); |
|
lang = getUrlParameter('lang'); |
|
$.ajax({ |
|
type:'GET', |
|
url: '/get_new_db_images'+'?lang='+lang, |
|
processData: false, // tell jQuery not to process the data |
|
contentType: false, // tell jQuery not to set contentType |
|
success: (data) => { |
|
$('#new_images_selector').empty(); |
|
for(i in data['result']['groups']) |
|
{ |
|
form_check = document.createElement('div'); |
|
form_check.setAttribute('class', 'form_check'); |
|
checkbox = document.createElement('input'); |
|
checkbox.setAttribute('type', 'checkbox'); |
|
checkbox.setAttribute('class', 'form-check-input check-group me-2'); |
|
checkbox.setAttribute('data-id', 'group_' + data['result']['groups'][i]); |
|
checkbox.setAttribute('data-group', data['result']['groups'][i]); |
|
|
|
label = document.createElement('label'); |
|
label.setAttribute('for', 'group_' + data['result']['groups'][i]); |
|
label.setAttribute('class', 'form-check-label'); |
|
|
|
h3 = document.createElement('h3'); |
|
h3.innerHTML = data['result']['groups'][i] |
|
label.appendChild(h3); |
|
form_check.appendChild(checkbox); |
|
form_check.appendChild(label); |
|
document.getElementById("new_images_selector").appendChild(form_check); |
|
|
|
pics = data['result'][data['result']['groups'][i]]; |
|
for(j in pics){ |
|
var pic = pics[j]; |
|
div = document.createElement('div'); |
|
div.setAttribute('class', 'col-xs-4 col-md-3 col-lg-2 col-4 p-1 m-0'); |
|
|
|
custom_control = document.createElement('div'); |
|
custom_control.setAttribute('class', 'custom-control custom-checkbox image-checkbox'); |
|
|
|
checkbox = document.createElement('input'); |
|
checkbox.setAttribute('type', 'checkbox'); |
|
checkbox.setAttribute('class', 'custom-control-input img-checkbox'); |
|
checkbox.setAttribute('id', 'chk' + pic['id']); |
|
checkbox.setAttribute('data-id', pic['id']); |
|
checkbox.setAttribute('data-group', data['result']['groups'][i]); |
|
|
|
label = document.createElement('label'); |
|
label.setAttribute('for', 'chk' + pic['id']); |
|
label.setAttribute('class', 'custom-control-label image-checkbox-label'); |
|
|
|
img = document.createElement('img'); |
|
img.setAttribute('class', 'img-fluid'); |
|
img.setAttribute('alt', '#'); |
|
img.setAttribute('src', '/img/'+pic['hash_name']); |
|
label.appendChild(img); |
|
custom_control.appendChild(checkbox); |
|
custom_control.appendChild(label); |
|
div.appendChild(custom_control); |
|
document.getElementById("new_images_selector").appendChild(div); |
|
} |
|
$('#new_images_selector').append('<hr>'); |
|
|
|
} |
|
$('.check-group').click(function(){ |
|
var group = $(this).data('group'); |
|
if($(this).is(':checked')) |
|
$.each($('.img-checkbox'), function(e) { |
|
if($(this).data('group') == group) |
|
$(this).prop('checked', true); |
|
}); |
|
else |
|
$.each($('.img-checkbox'), function(e) { |
|
if($(this).data('group') == group) |
|
$(this).prop('checked', false); |
|
}); |
|
}); |
|
$('.img-checkbox').click(function(){ |
|
var group = $(this).data('group'); |
|
var all_checked = true; |
|
if($(this).is(':checked')) |
|
$.each($('.img-checkbox'), function(e) { |
|
if($(this).data('group') == group) |
|
if($(this).is(':checked') == false) |
|
{ |
|
all_checked = false |
|
} |
|
|
|
}); |
|
else |
|
{ |
|
$.each($('.check-group'), function(e) { |
|
if($(this).data('group') == group) |
|
$(this).prop('checked', false); |
|
}); |
|
all_checked = false |
|
} |
|
if (all_checked == true) |
|
{ |
|
$.each($('.check-group'), function(e) { |
|
if($(this).data('group') == group) |
|
$(this).prop('checked', true); |
|
}); |
|
} |
|
}) |
|
}, |
|
error:function (jqXHR, exception) { |
|
|
|
} |
|
}); |
|
|
|
} |
|
|
|
});
|
|
|