diff --git a/js/main.js b/js/main.js index e630fa1..f64e988 100644 --- a/js/main.js +++ b/js/main.js @@ -270,6 +270,7 @@ function loadPacketFromAjax(path) { }) .done(function (data) { //setUpPacket(data, path.split("/").pop()); + if (data.hasOwnProperty("cached") && data["cached"]) { console.log("loading cached packet")} setUpPacket(data, path); $("#options-panel").hide(); }) @@ -378,6 +379,8 @@ cornerstoneWebImageLoader.external.cornerstone = cornerstone; cornerstoneWADOImageLoader.external.cornerstone = cornerstone; +cornerstone.imageCache.setMaximumSizeBytes(52428800) + // cornerstoneWADOImageLoader.configure({ // beforeSend: function(xhr) { // // Add custom headers here (e.g. auth tokens) @@ -462,6 +465,8 @@ function setUpPacket(data, path) { question_total ); + if (question_json.hasOwnProperty("cached") && question_json["cached"]) { console.log("loading cached packet")} + //requests.push(request) //request_numbers.push(n) data["questions"][n] = question_json; @@ -644,6 +649,13 @@ function loadQuestion(n, section = 1, force_reload = false) { $(".canvas-panel").remove(); } + // disable any further enabled elements + cornerstone.getEnabledElements().forEach((el) => { + cornerstone.disable(el.element); + }) + + cornerstone.imageCache.purgeCache(); + // Remove feedback images $(".feedback-image").remove(); @@ -656,6 +668,7 @@ function loadQuestion(n, section = 1, force_reload = false) { // TODO: figure captions (need to extend base json) current_question.images.forEach(function createThumbnail(image, id) { + console.log("create thumb", image); // For thumbnails we only want a single image if (Array.isArray(image)) { image = image[0]; // Do we want the middle image? @@ -2018,5 +2031,3 @@ function saveSession() { window.saveSession = saveSession; -// Register Key Event Listener -window.addEventListener("keydown", viewer.keydown_handler); diff --git a/js/viewer.js b/js/viewer.js index fb46d44..fcda19c 100644 --- a/js/viewer.js +++ b/js/viewer.js @@ -44,6 +44,8 @@ export function loadMainImage(image, stack) { cornerstoneTools.setToolActive("Pan", { mouseButtonMask: 1 }); cornerstoneTools.setToolEnabled("ArrowAnnotate"); + //cornerstoneTools.keyboardInput.enable(element); + element.addEventListener("cornerstoneimagerendered", onImageRendered); setDicomCanvasNonFullscreen(element); @@ -78,6 +80,10 @@ export function loadMainImage(image, stack) { .addEventListener("change", function () { changeControlSelection(); }); + + + // Register Key Event Listener + document.addEventListener("keydown", keydown_handler); } /** @@ -202,9 +208,6 @@ export function manualScrollDicom(n) { let dicom_element = document.getElementById("dicom-image"); let c = cornerstone.getEnabledElement(dicom_element); - // Cancel if no active element - if (el == undefined) { return } - let max = c.toolStateManager.toolState.stack.data[0].imageIds.length; if (max < 2) { @@ -356,8 +359,13 @@ export function changeControlSelection() { * @param {*} event - KeyEvent */ export function keydown_handler(event) { + console.log(event); const target_element = event.target.tagName; + // Cancel if no active element + let dicom_element = document.getElementById("dicom-image"); + if (dicom_element == undefined) { return } + // Catch all keypresses unless user is typing if (target_element == "INPUT" || target_element == "TEXTAREA") { return;