var db;
var $url = "";
var oTable;
var addBtnPressed = false;
var editBtnPressed = false;
var callingAET = '';
$(document).ready(function() {
$('button').button();
loadTable();
$.get("do/IOviyamContext", function(data) {
$('#ioviyamCxt').val(data.trim());
}, 'text');
$("#addBtn").click(function() {
if (!addBtnPressed) {
var str = '
' +
'
' +
'
' +
'
' +
'
' +
'
' +
'
' +
'
';
//var wid = $("#serverTable").css('width');
$("#serverTable > tbody:last").append(str);
addBtnPressed = true;
}
});
$("#verifyBtn").click(function() {
var msg = '';
if ($url != "" && ($('#serverTable :checked').not('.previewChk').length == 1)) {
$.get("Echo.do?dicomURL=" + $url, function(data) {
if (data == "EchoSuccess") {
msg = "Echo " + $url + " successfully!!!";
$.ambiance({
message: msg,
type: 'success'
});
} else {
msg = "Echo " + $url + " not successfully!!!";
$.ambiance({
message: msg,
type: 'error'
});
}
});
} else {
msg = "Please select server!!!";
$.ambiance({
message: msg,
type: 'error'
});
}
});
oTable = $('#serverTable').dataTable({
"bJQueryUI": true,
//"sPaginationType": "full_numbers"
"bPaginate": false,
"bFilter": false,
"bSort": false
});
$(".fg-toolbar.ui-corner-tl").html('Servers');
$("#deleteBtn").click(function() {
deleteSelectedRow();
//oTable.fnClearTable();
//loadTable();
});
$("#editBtn").click(function() {
if (!editBtnPressed) {
editSelectedRow();
}
});
$('.dataTables_wrapper').css('min-height', '200px');
$("#updateListener").click(function() {
$.ajax({
url: 'Listener.do',
type: 'POST',
data: {
'aetitle': $('#listener_ae').val(),
'port': $('#listener_port').val(),
'action': 'Update'
},
dataType: 'text',
success: function(msg1) {
if (msg1.trim() == 'success') {
$.ambiance({
message: "Listener details updated and listener restarted!!!",
type: 'success'
});
} else {
$.ambiance({
message: "Error while updating listener details!!!",
type: 'error'
});
}
}
});
});
$('#updIoviyamCxt').click(function() {
var iOvmCxt = $('#ioviyamCxt').val().trim();
if (iOvmCxt.length == 0) {
alert("iOviyam context should not be empty!!!");
return;
}
if (iOvmCxt.indexOf("\/") != 0) {
alert("iOviyam context must starts with /");
return;
}
$.ajax({
url: 'do/IOviyamContext',
type: 'POST',
data: {
'iOviyamCxt': $('#ioviyamCxt').val(),
'action': 'Update'
},
dataType: 'text',
success: function(msg2) {
if (msg2.trim() == 'success') {
$.ambiance({
message: "iOviyam context updated successfully!!!",
type: 'success'
});
} else {
$.ambiance({
message: 'Error while updating iOviyam context!!!',
type: 'error'
});
}
}
});
});
$('#updDownloadStudy').click(function() {
var dwnStudy = $('#downloadStudy').val();
if (dwnStudy == 'none') {
dwnStudy = 'no';
}
$.ajax({
url: 'DwnStudyConfig.do',
type: 'POST',
data: {
'downloadStudy': dwnStudy,
'action': 'update'
},
dataType: 'text',
success: function(msg3) {
if (msg3.trim() == 'success') {
$.ambiance({
message: "Download Study updated successfully!!!",
type: 'success'
});
} else {
$.ambiance({
message: 'Error while updating Download Study!!!',
type: 'error'
});
}
}
})
});
$.get("DwnStudyConfig.do", {
'action': 'READ'
}, function(data) {
data = data.trim();
$('#downloadStudy').val(data);
}, 'text');
}); // for document.ready
// To create table
function createTables(database) {
database.transaction(function(tx) {
var sql = "CREATE TABLE IF NOT EXISTS ae(pk integer NOT NULL PRIMARY KEY AUTOINCREMENT, logicalname varchar(255), hostname varchar(255),aetitle varchar(255),port integer);";
tx.executeSql(sql, [], nullDataHandler, errorHandler);
});
}
function insertTable() {
var msg = '';
if ($('#desc').val().toLowerCase() == "local") {
alert($('#desc').val() + " is reserved for local studies, please try some other name!!!");
return;
}
if ($("#desc").val() != '' && $("#aet").val() != '' && $("#host").val() != '' && $("#port").val() != '' && $("#wadoport").val() != '') {
$.ajax({
url: 'ServerConfig.do',
data: {
'logicalName': $("#desc").val().replace(/ /g, ''),
'aeTitle': $("#aet").val(),
'hostName': $("#host").val(),
'port': $("#port").val(),
'retrieve': $("#retrieve").val(),
'wadoContext': $("#wadoCxt").val(),
'wadoPort': $("#wadoPort").val(),
'imageType': $("#imgType").val(),
'previews': $('#preview').prop('checked') ? 'true' : 'false',
'todo': 'ADD'
},
type: 'POST',
dataType: 'text',
success: function(msg1) {
if (msg1.trim() == 'success') {
oTable.fnClearTable();
loadTable();
msg = "Server added!!!";
} else if (msg1.trim() == 'duplicate') {
msg = "Logical name already exists!!!";
}
$.ambiance({
message: msg,
type: 'success'
});
}
});
} else {
msg = "Please enter all the details";
$.ambiance({
message: msg,
type: 'error'
});
return;
}
addBtnPressed = false;
}
function editTable() {
$.ajax({
url: 'ServerConfig.do',
data: {
'logicalName': $("#desc").val(),
'aeTitle': $("#aet").val(),
'hostName': $("#host").val(),
'port': $("#port").val(),
'retrieve': $("#retrieve").val(),
'wadoContext': $("#wadoCxt").val(),
'wadoPort': $("#wadoPort").val(),
'imageType': $("#imgType").val(),
'previews': $('#preview').prop('checked') ? 'true' : 'false',
'todo': 'EDIT'
},
type: 'POST',
dataType: 'text',
success: function(msg1) {
oTable.fnClearTable();
loadTable();
var msg = "Server edited!!!";
$.ambiance({
message: msg,
type: 'success'
});
}
});
editBtnPressed = false;
}
function loadTable() {
$.getJSON('DicomNodes.do', function(result) {
$.each(result, function(i, row) {
if (typeof row['callingAET'] == 'undefined') {
//$('#serverTable').databind(result);
var wadoCxt = '';
if (typeof row['wadocontext'] != 'undefined') {
wadoCxt = row['wadocontext'];
}
var wadoPort = '';
if (typeof row['wadoport'] != 'undefined') {
wadoPort = row['wadoport'];
}
var retrieveType = row['retrieve'];
var imageType = 'JPEG';
if (typeof row['imageType'] != 'undefined' && retrieveType == 'WADO') {
imageType = row['imageType'];
}
var preview = "";
} else {
preview += ">";
}
oTable.fnAddData([
"",
row['logicalname'],
row['aetitle'],
row['hostname'],
row['port'],
retrieveType,
wadoCxt,
wadoPort,
imageType,
preview
]);
} else {
callingAET = row['callingAET'].trim();
$("#listener_ae").val(callingAET);
$("#listener_port").val(row['listenerPort'].trim());
}
})
});
}
function deleteRow() {
var host = $url.substring($url.indexOf("@") + 1, $url.lastIndexOf(":"));
var port = $url.substring($url.lastIndexOf(":") + 1);
var ae = $url.substring($url.lastIndexOf("/") + 1, $url.indexOf("@"));
var sql = "delete from ae where hostname=? and aetitle=? and port=?";
db.transaction(function(tx) {
tx.executeSql(sql, [host, ae, port], nullDataHandler, errorHandler);
});
}
function deleteSelectedRow() {
var msg = '';
var selectRow = $('#serverTable :checked').not('.previewChk').parent().parent();
if ($('#serverTable :checked').not('.previewChk').length == 1) {
var logical = selectRow.find('td:nth-child(2)').html();
var ae = selectRow.find('td:nth-child(3)').html();
var host = selectRow.find('td:nth-child(4)').html();
var port = selectRow.find('td:nth-child(5)').html();
var wado = selectRow.find('td:nth-child(6)').html();
$.ajax({
url: 'ServerConfig.do',
data: {
'logicalName': logical,
'aeTitle': ae,
'hostName': host,
'port': port,
'wadoPort': wado,
'todo': 'DELETE'
},
type: 'POST',
dataType: 'text',
success: function(msg1) {
oTable.fnClearTable();
loadTable();
msg = "Server deleted";
$.ambiance({
message: msg,
type: 'success'
});
}
});
} else {
msg = "Please select server to delete";
$.ambiance({
message: msg,
type: 'error'
});
return;
}
}
function editSelectedRow() {
var $selRow = $('#serverTable :checked').not('.previewChk').parent().parent();
if ($('#serverTable :checked').not('.previewChk').length == 1) {
var currDesc = $selRow.find('td:nth-child(2)').html();
var currAET = $selRow.find('td:nth-child(3)').html();
var currHost = $selRow.find('td:nth-child(4)').html();
var currPort = $selRow.find('td:nth-child(5)').html();
var currRet = $selRow.find('td:nth-child(6)').html();
var currWadoCxt = $selRow.find('td:nth-child(7)').html();
var currWadoPort = $selRow.find('td:nth-child(8)').html();
var currImageType = $selRow.find('td:nth-child(9)').html();
var currentPreview = $selRow.find('td:nth-child(10)').find('.previewChk').prop('checked');
var str = '
' +
'
' +
'
';
var imgTypeDisabled = '';
if (currRet == 'C-MOVE') {
str += '