var myLayout; $.fn.dataTableInstances = []; var timer; $(document).ready(function () { loadTabs(); $("#buttonContainer").buttonset(); if (/chrome/.test(navigator.userAgent.toLowerCase())) { $('.ui-helper-hidden-accessible').css('display', 'none'); } $('#buttonContainer').addClass('ui-widget-content'); $.get("UserConfig.do", { 'settings': 'userName', 'todo': 'READ' }, function (data) { $('#user').html(data); }, 'text'); $(".header-footer").hover( function () { $(this).addClass('ui-state-hover'); } , function () { $(this).removeClass('ui-state-hover'); } ); myLayout = $('#optional-container').layout({ closable: false, resizable: false }); /* myLayout = $('#optional-container').layout({ west: { size: 205 } }); */ // //start listener // $.ajax({ // type: "GET", // url: "Listener.do", // data: { // 'action':'Verify' // } // }); // get the buttons from configuration $.ajax({ type: "GET", url: "UserConfig.do", data: { 'settings': 'buttons', 'todo': 'READ' }, dataType: "json", success: parseJson }); /*if( !location.search ) { showAllLocalStudies(); }*/ function parseJson(json) { $('#buttonContainer').html(''); //createButton("Search", null, null, null); // createButton({"label":"Search"}); // if( !location.search || location.search==="?q=sukraa") { if (!location.search) { $(json).each(function () { createButton(this); }); } $.get("UserConfig.do", { 'settings': 'theme', 'todo': 'READ' }, function (data) { $('#switcher').themeswitcher({ loadTheme: data.trim(), cookieName: '', width: 160 }, 'text'); }, 'text'); //addThemeSwitcher('.ui-layout-north',{ top: '13px', right: '20px' }); } function createButton(that) { var txt = that['label']; var crit = that['dateCrit']; var tCrit = that['timeCrit']; var modality = that['modality']; var studyDesc = that['studyDesc']; var autoRef = that['autoRefresh']; var id = ''; if (txt == 'Search') { id = 'btn-search'; } else { id = 'btn-' + new Date().valueOf().toString(); } $('#buttonContainer').append(''); jQuery('#' + id).click(function () { var divContent = $('.ui-tabs-selected').find('a').attr('href'); $(divContent + '_content').html(''); var dUrl = $('.ui-tabs-selected').find('a').attr('name'); $('.ui-tabs-selected').find('a').attr('searchBtn', id); //if($('.ui-tabs-selected').length == 0) { if (dUrl == null) { var msg = "Please select remote server!!!"; noty({ text: msg, layout: 'topRight', type: 'error' }); return; } if (id == "btn-search") { $.get('search.html', function (data) { modal.open({ content: data }); }); } else { $.get("Echo.do?dicomURL=" + dUrl, function (data) { if (data == "EchoSuccess") { var searchURL = "queryResult.jsp?"; if (modality != null && modality != '') { searchURL += "modality=" + modality; } var days = 0; if (crit != null && crit != '') { if (crit.indexOf("-") >= 0) { days = crit.substring(crit.indexOf("t-") + 2); var fromDate = Date.today().addDays(-days).toString("yyyyMMdd"); var toDate = Date.today().toString("yyyyMMdd"); searchURL += "&searchDays=between&from=" + fromDate + "&to=" + toDate; } else { var tDate = Date.today().toString("yyyyMMdd"); searchURL += "&searchDays=between&from=" + tDate + "&to=" + tDate; } } if (tCrit != null) { if (tCrit == '-30m') { var fTime = new Date().addMinutes(-30).toString("HHmmss"); var tTime = new Date().toString("HHmmss"); searchURL += '&fromTime=' + fTime + '&toTime=' + tTime; } else if (tCrit.indexOf('-') == 0) { var fTime = new Date().addHours(parseInt(tCrit)).toString("HHmmss"); var tTime = new Date().toString("HHmmss"); searchURL += '&fromTime=' + fTime + '&toTime=' + tTime; } else if (tCrit.indexOf('-') > 0) { var tArr = tCrit.split('-'); searchURL += '&fromTime=' + tArr[0] + '&toTime=' + tArr[1]; } } if (studyDesc != null) { searchURL += '&studyDesc=' + studyDesc + "*"; } if (searchURL.trim() == ('queryResult.jsp?')) { jConfirm('No filters have been selected. The search may take long time. Do you want to proceed?', 'No search criteria', function (doQry) { if (doQry == true) { searchURL += "&dcmURL=" + dUrl; doQuery(searchURL, autoRef, divContent); } else { $('label[for="' + id + '"]').removeClass("ui-state-active"); } }); } else { searchURL += "&dcmURL=" + dUrl; doQuery(searchURL, autoRef, divContent); } } else { var msg = "Server not available"; noty({ text: msg, layout: 'topRight', type: 'error' }); return; } }); } }); $("#buttonContainer").buttonset(); if (/chrome/.test(navigator.userAgent.toLowerCase())) { $('.ui-helper-hidden-accessible').css('display', 'none'); } } function doQuery(searchURL, autoRef, divContent) { searchURL += '&tabName=' + divContent.replace('#', ''); var tabIndex = $('#tabs_div').data('tabs').options.selected; searchURL += '&tabIndex=' + tabIndex; searchURL += "&preview=" + $('.ui-tabs-selected').find('a').attr('preview'); searchURL += "&search=" + ((!location.search) ? 'true' : 'false'); divContent += '_content'; $(divContent).html('
Querying...
'); $('#westPane').html(''); $(divContent).load(encodeURI(searchURL), function () { clearInterval(timer); // checkLocalStudies(); if (parseInt(autoRef) > 0) { timer = setInterval(function () { startTimer(searchURL) }, parseInt(autoRef)); } }); $('.ui-tabs-selected').find('a').attr('searchurl', searchURL); } function startTimer(searchURL) { // if( searchURL.indexOf(Date.today().toString("yyyyMMdd")) >= 0) { $.getJSON('RefreshStudies.do', { 'query': searchURL }, function (data) { var tabIndex = $('#tabs_div').data('tabs').options.selected; var oTable = $.fn.dataTableInstances[tabIndex]; var selectedTabTxt = $('.ui-tabs-selected').find('span').html(); var searchTab = searchURL.substring(searchURL.indexOf('tabName=') + 8, searchURL.indexOf("tabIndex") - 1); if (searchTab.trim() == selectedTabTxt.trim()) { for (var itr = 0; itr < data.length; itr++) { var newRow = data[itr]; oTable.fnAddData([ ' ', newRow.patientID, newRow.patientName, newRow.patientBirthDate, newRow.accessionNumber, newRow.studyDate, newRow.studyDescription, newRow.modalitiesInStudy, newRow.studyRelatedInstances, newRow.studyInstanceUID, newRow.physicianName, newRow.studyRelatedSeries, newRow.patientGender ]); } } }); // } // if } function checkLocalStudies() { var myDB = initDB(); var sql = "select StudyInstanceUID from study"; myDB.transaction(function (tx) { tx.executeSql(sql, [], function (trans, results) { for (var i = 0; i < results.rows.length; i++) { var row = results.rows.item(i); var img = document.getElementById(row['StudyInstanceUID']); if (img != null) { img.style.visibility = 'visible'; } } }, errorHandler); }); } function loadTabs() { var tabName = getParameterByName("serverName"); var patId = getParameterByName("patientID"); var tabIndex = 0; $.getJSON('DicomNodes.do', function (results) { var callingAET = results[results.length - 1].callingAET.trim(); for (var i = 0; i < results.length - 1; i++) { var node = results[i]; console.log(node); //var li = '
  • Local
  • '; var showSearch = true; if (node.logicalname == tabName || results.length == 1) { tabIndex = parseInt(i); showSearch = false; } var dcmUrl = ''; if (callingAET == '') { dcmUrl = "DICOM://" + node.aetitle + "@" + node.hostname + ":" + node.port; } else { dcmUrl = "DICOM://" + node.aetitle + ":" + callingAET + "@" + node.hostname + ":" + node.port; } var wadoUrl = null; if (node.retrieve == 'WADO') { if (node.wadoport == '') { wadoUrl = "http://" + node.hostname + "/" + node.wadocontext; } else { wadoUrl = "http://" + node.hostname + ":" + node.wadoport + "/" + node.wadocontext; } } else { wadoUrl = node.retrieve; } var preview = true; if (typeof (node.previews) != "undefined") { preview = node.previews; } var imgType = "jpeg"; if (typeof (node.imageType) != "undefined") { imgType = node.imageType.toLowerCase(); } var li = '
  • ' + node.logicalname + '
  • '; $('#tabUL').append(li); var div = ''; if (!location.search) { div = '
    '; div += ''; div += '
    '; $('#tabContent').append(div); $('#' + node.logicalname + '_search').load('newSearch.jsp?tabName=' + node.logicalname); } else { div = '
    '; div += '
    '; $('#tabContent').append(div); //load studies in data table. if (node.logicalname == tabName || results.length == 1) { var searchURL = "queryResult.jsp?"; searchURL += 'patientId=' + patId; searchURL += "&dcmURL=" + dcmUrl; searchURL += '&tabName=' + node.logicalname; searchURL += '&tabIndex=' + tabIndex; searchURL += '&preview=' + preview; searchURL += '&search=' + showSearch; // searchURL += '&imgType=' + imgtype; // var wado = $('.ui-tabs-selected').find('a').attr('wadoUrl'); // searchURL += '&ris=' + wado.substring(0,wado.indexOf('wado'))+"ris/Report.do?studyUID="; var divContent = '#' + node.logicalname + '_content'; $(divContent).html(''); $('#westPane').html(''); $(divContent).load(encodeURI(searchURL), function () { clearInterval(timer); //checkLocalStudies(); }); } } } $("#tabs_div").tabs({ selected: tabIndex, select: function (event, ui) { clearInterval(timer); // var selTabText = ui.tab.text; // var oTable = $.fn.dataTableInstances[ui.index]; /* var search_url = $(ui.tab).attr("searchurl"); if(typeof search_url != 'undefined') { timer = setInterval(function() {startTimer(search_url)}, 10000); } */ var searchBtn = $(ui.tab).attr('searchBtn'); if (typeof searchBtn != 'undefined') { $('#' + searchBtn).attr('checked', 'checked'); $("#buttonContainer").buttonset("refresh"); } else { $("#buttonContainer").find("input:radio:checked").prop('checked', false); $("#buttonContainer").buttonset("refresh"); } /* if(selTabText == 'Local') { $('#buttonContainer').hide(); oTable.fnClearTable(); //oTable.fnDestroy(); showAllLocalStudies(oTable); } else {*/ // $('#buttonContainer').show(); /*if(typeof oTable != 'undefined') { oTable.fnClearTable(); }*/ //} /* $('.modalitiesList').multiselect({ selectedList: 12, minWidth: 130, header: false, noneSelectedText: "ALL" });*/ } // for select event }); $("#tabs_div LI").contextMenu({ menu: 'tabMenu' }, function (action, el, pos) { var url = 'Echo.do?dicomURL=' + el.find('a').attr('name'); $.get(url, function (data) { if (data == "EchoSuccess") { var msg = 'Echo ' + el.find('a').text() + ' is successful!'; noty({ text: msg, layout: 'topRight', type: 'success' }); } else { var msg = 'Echo ' + el.find('a').text() + ' is failed!'; noty({ text: msg, layout: 'topRight', type: 'error' }); } }); }); }); } $.fn.dataTableInstances.push($('#resultTable').dataTable({ "bJQueryUI": true, "oLanguage": { "sSearch": "Filter:" } })); $('.display tbody tr').live("click", function () { var seriesTblHr = $(this).closest('table').find('th').get(0).innerHTML; if (seriesTblHr.indexOf('Series Number') >= 0) { return; } var tabIndex = $('#tabs_div').data('tabs').options.selected; var oTable = $.fn.dataTableInstances[tabIndex]; if ($(this).hasClass('row_selected')) { return; } else { oTable.$('tr.row_selected').removeClass('row_selected'); $(this).addClass('row_selected'); } var preview = $('.ui-tabs-selected').find('a').attr('preview'); if (preview == 'true') { var iPos = oTable.row(this).data(); if (iPos == null) { return; } showWestPane(iPos); /* } else { if(!!(window.requestFileSystem || window.webkitRequestFileSystem)) { viewWPSeries(this); } else { var tmpUrl = "westContainer1.jsp?patient=" + iPos[1] + "&study=" + iPos[9] + "&patientName=" + iPos[2]; tmpUrl += "&studyDesc=" + iPos[6] + "&studyDate=" + iPos[5].split(" ")[0] + "&totalSeries=" + iPos[11]; var lSql = "select DicomURL, ServerURL from study where StudyInstanceUID='" + iPos[9] + "'"; var myDb = initDB(); myDb.transaction(function(tx) { tx.executeSql(lSql, [], function(trans, results) { var row = results.rows.item(0); tmpUrl += "&dcmURL=" + row['DicomURL'] + "&wadoUrl=" + row['ServerURL']; $('#' + selTabText + '_westPane').load(encodeURI(tmpUrl)); }, errorHandler); }); } }*/ } }); //$("#resultTable tbody tr").live("dblclick", function() { $('.display tbody tr').live("dblclick", function () { var seriesTblHr = $(this).closest('table').find('th').get(0).innerHTML; if (seriesTblHr.indexOf('Series Number') >= 0) { return; } var tabIndex = $('#tabs_div').data('tabs').options.selected; var oTable = $.fn.dataTableInstances[tabIndex]; // var nTrContent = oTable.fnGetData(this); var nTrContent = oTable.row(this).data(); if (nTrContent == null) { return; } /* var ser_url = $('.ui-tabs-selected').find('a').attr('wadoUrl'); if(typeof ser_url == 'undefined') { var lSql = "select DicomURL, ServerURL from study where StudyInstanceUID='" + nTrContent[7] + "'"; var myDb = initDB(); myDb.transaction(function(tx) { tx.executeSql(lSql, [], function(trans, results) { var row = results.rows.item(0); var jsonObj = { "pat_ID" : nTrContent[1], "pat_Name" : nTrContent[2], "pat_Birthdate" : nTrContent[3], "accNumber" : nTrContent[4], "studyDate" : nTrContent[5], "studyDesc" : nTrContent[6], "modality" : nTrContent[7], "totalIns" : nTrContent[8], "studyUID" : nTrContent[9], "refPhysician" : nTrContent[10], "totalSeries" : nTrContent[11], "pat_gender" : nTrContent[12], "serverURL" : row['ServerURL'], "dicomURL" : row['DicomURL'], "bgColor" : $('.ui-widget-content').css('background-color') }; $.cookies.set( 'patient', jsonObj ); window.open("viewer.html", "_blank"); }, errorHandler); }); } else {*/ openViewer(nTrContent); //} }); $('.display tbody td img').live('click', function () { var tabIndex = $('#tabs_div').data('tabs').options.selected; var oTable = $.fn.dataTableInstances[tabIndex]; var nTr = this.parentNode.parentNode; var nTrContent = oTable.row(nTr).data(); if (this.src.match('details_close')) { this.src = "images/details_open.png"; oTable.row(nTr).child.hide(); } else if (this.src.match('details_open')) { /* Open this row */ this.src = "images/details_close.png"; var selectedTabTxt = $('.ui-tabs-selected').find('span').html(); if (selectedTabTxt != 'Local') { var urlDcm = $('.ui-tabs-selected').find('a').attr('name'); var tmpUrl = "seriesDetails.jsp?patient=" + nTrContent[1] + "&study=" + nTrContent[8] + "&dcmURL=" + urlDcm; $.get(tmpUrl, function (series) { oTable.row(nTr).child(series); var now = new Date().getTime(); var table = oTable.row(nTr).child().find(".display"); $(table).attr("id", now); sTable = $(table).DataTable({ "bJQueryUI": true, "bPaginate": false, "bFilter": false }); oTable.row(nTr).child.show(); }); } /*else { var sql = "select SeriesNo, SeriesDescription, Modality, BodyPartExamined, NoOfSeriesRelatedInstances from series where StudyInstanceUID='" + nTrContent[8] + "';"; var content = ''; content += ''; content += ''; content += ''; content += ''; var myDb = initDB(); myDb.transaction(function(tx) { tx.executeSql(sql, [], function(trans, results) { for(var i=0; i'; content += ''; content += ''; } content += '
    Series NumberSeries DescModalityBody Part ExaminedTotal Instances
    ' + row['SeriesDescription'] + '' + row['Modality'] + '' + row['BodyPartExamined'] + '' + row['NoOfSeriesRelatedInstances'] + '
    '; oTable.fnOpen(nTr, content, 'details'); }, errorHandler); }); }*/ } }); $('#liConfig').click(function () { $('ul.the_menu').slideToggle('medium'); window.open('config.html', '_blank'); }); $('#deleteDb').click(function () { if (confirm('All the studies stored in the local storage will be deleted. Are you sure?')) { resetLocalDB(); var selTabText = $('.ui-tabs-selected').find('span').html(); if (selTabText == 'Local') { $('#westPane').html(''); } } }); // $('img.menu_class').click(function () { $('#imgToggle').click(function () { $('ul.the_menu').slideToggle(); /*if($('ul.the_menu').find('.jquery-ui-themeswitcher-trigger').length == 0) { $('ul.the_menu').find('#theme').themeswitcher({ cookieName: '', onSelect: function() { $('#westPane').addClass('ui-widget-content'); $('#buttonContainer').addClass('ui-widget-content'); $('#user').addClass('ui-widget-content'); }, onClose: function() { var selTheme = $(".jquery-ui-themeswitcher-title").html(); selTheme = selTheme.split(': ')[1]; //$.get("Theme.do", {'theme':selTheme}); if(typeof selTheme != 'undefined') { $.get("UserConfig.do", {'settings':'theme', 'settingsValue':selTheme, 'todo':'UPDATE'}); } } }); } */ }); $('#logout').click(function () { $.post('logout.jsp', null, function (data) { $(document).empty(); window.location.replace('.'); }); }); $(document).click(function (e) { var myTarget = 'fa fa-user-circle-o fa-3x'; // var myTarget = 'menu_class'; var clicked = e.target.className; // alert(clicked) if (myTarget != clicked) { if (!$('ul.the_menu').is(':hidden')) { $('ul.the_menu').slideToggle(); } } }); $('nav').live('click', function () { var selTabText = $('.ui-tabs-selected').find('a').attr('href'); var tmpStr = selTabText + '_search'; if ($(tmpStr).is(":visible")) { $(tmpStr).slideUp(); tmpStr = selTabText + '_content'; $(tmpStr).css('height', '100%'); } else { $(tmpStr).slideDown(); tmpStr = selTabText + '_content'; $(tmpStr).css('height', '85%'); } }); $('.ui-layout-resizer').css('visibility', 'hidden'); }); // for document ready function openViewer(nTrContent) { var jsonObj = { "pat_ID": nTrContent[1], "pat_Name": nTrContent[2], /* "pat_Birthdate" : nTrContent[3], "accNumber" : nTrContent[4],*/ "studyDate": nTrContent[4].display, "studyDesc": nTrContent[5], "modality": nTrContent[6], "totalIns": nTrContent[7], "studyUID": nTrContent[8], "refPhysician": nTrContent[9], "totalSeries": nTrContent[10], "pat_gender": nTrContent[3], "serverURL": $('.ui-tabs-selected').find('a').attr('wadoUrl'), "dicomURL": $('.ui-tabs-selected').find('a').attr('name'), "bgColor": $('.ui-widget-content').css('background-color'), "imgType": $('.ui-tabs-selected').find('a').attr('imgType'), }; $.cookies.set('patient', jsonObj); window.open("viewer.html", "_blank"); } function showWestPane(iPos) { var urlDcm = $('.ui-tabs-selected').find('a').attr('name'); var urlWado = $('.ui-tabs-selected').find('a').attr('wadoUrl'); var imgType = $('.ui-tabs-selected').find('a').attr('imgType'); var tmpUrl = "westContainer1.jsp?patient=" + iPos[1] + "&study=" + iPos[8] + "&patientName=" + iPos[2]; tmpUrl += "&studyDesc=" + iPos[5] + "&studyDate=" + iPos[4]["display"].split(" ")[0] + "&totalSeries=" + iPos[10] + "&dcmURL=" + urlDcm; tmpUrl += "&wadoUrl=" + urlWado; tmpUrl += "&contentType=image/" + imgType; var selTabText = $('.ui-tabs-selected').find('a').attr('href'); var container = selTabText + '_westPane'; $(container).load(encodeURI(tmpUrl)); } function getParameterByName(name) { name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search); return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); } function multiselectModality() { $('.modalitiesList').multiselect({ selectedList: 12, minWidth: 130, header: false, noneSelectedText: "ALL" }); }