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) {
//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);
+11 -3
View File
@@ -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;