set cornerstone cache (and purge on changing a question)

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