more improvements ot image annotatiotns

This commit is contained in:
Ross
2020-12-06 12:19:58 +00:00
parent be80d78d7a
commit 3265285327
7 changed files with 137 additions and 10 deletions
+71 -2
View File
@@ -36,6 +36,8 @@ $(document).ready(function () {
if($("#dicom-image").length) {
console.log("Dicom element found ", $("#dicom-image"));
$('#dicom-image').bind('contextmenu', function(e) {
return false;
});
@@ -53,7 +55,7 @@ cornerstoneTools.init();
const RotateTool = cornerstoneTools.RotateTool;
const StackScrollTool = cornerstoneTools.StackScrollTool;
const MagnifyTool = cornerstoneTools.MagnifyTool;
const ArrowAnnotateTool = cornerstoneTools.ArrowAnnotateTool;
const element = document.getElementById('dicom-image');
@@ -71,14 +73,40 @@ cornerstone.loadAndCacheImage(imageId).then(function(image) {
cornerstoneTools.addTool(RotateTool);
cornerstoneTools.addTool(StackScrollTool);
cornerstoneTools.addTool(MagnifyTool);
cornerstoneTools.addTool(ArrowAnnotateTool, {
configuration: {
getTextCallback: () => {},
changeTextCallback: () => {},
allowEmptyLabel: true,
renderDashed: false,
drawHandles: false,
drawHandlesOnHover: true,
},
});
// Enable our tools
// Avoid incorrect aspect ratio
cornerstone.resize(element);
cornerstoneTools.setToolActive("Pan", { mouseButtonMask: 1 });
cornerstoneTools.setToolActive("Wwwc", { mouseButtonMask: 2 });
cornerstoneTools.setToolActive("ZoomMouseWheel", { mouseButtonMask: 3 });
cornerstoneTools.setToolActive("Zoom", { mouseButtonMask: 4 });
if (element.dataset.edit_annotation == "true") {
cornerstoneTools.setToolActive("ArrowAnnotate", { mouseButtonMask: 2 });
} else {
cornerstoneTools.setToolEnabled("ArrowAnnotate");
}
if (element.dataset.annotations) {
loadJsonToolStateOnCurrentImage(element.dataset.annotations)
}
cornerstone.resize(element);
});
}
@@ -132,3 +160,44 @@ function prepAnswerData() {
})
$("#id_marked_answers").val(JSON.stringify(window.marked_answers));
}
function getJsonToolStateNoId() {
const el = document.getElementById("dicom-image");
const c = cornerstone.getEnabledElement(el);
const toolStateManager = cornerstoneTools.globalImageIdSpecificToolStateManager;
const image_id = c.image.imageId;
const state_with_id = toolStateManager.saveToolState()
const json_tool_state = JSON.stringify(state_with_id[image_id]);
return json_tool_state;
}
function loadJsonToolStateOnCurrentImage(json) {
let el = document.getElementById("dicom-image");
const toolStateManager = cornerstoneTools.globalImageIdSpecificToolStateManager;
const c = cornerstone.getEnabledElement(el);
let image_id = c.image.imageId;
let tool_state_no_id = JSON.parse(json);
let tool_state = {};
tool_state[image_id] = tool_state_no_id;
toolStateManager.restoreToolState(tool_state);
cornerstone.reset(el);
return tool_state;
}