Add a few annotation tools (and only enable for main element)

This commit is contained in:
Ross
2021-08-19 15:06:24 +01:00
parent 683f77fcf4
commit 6f2af7df21
2 changed files with 45 additions and 17 deletions
+2
View File
@@ -30,6 +30,8 @@
.thumb {
position: relative;
border: 1px dotted blue;
touch-action: none;
user-select: none;
}
.thumb-active {
+43 -17
View File
@@ -20,6 +20,7 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
let single_dicom_viewer = main_element.find(".single-dicom-viewer").get(0);
console.log(single_dicom_viewer);
// Add generic settings menus to canvas-panel
$(".canvas-panel").append(
$(`<div id='dicom-settings-panel'>
@@ -162,6 +163,8 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
images = [images];
}
console.log("Images", images)
//let annotations = [];
//if (annotations_to_load) {
//annotations = annotations_to_load[figure_to_load.split("-")[1]];
@@ -192,7 +195,7 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
}
async function load(images, annotations) {
console.log("LOAD");
console.log("LOAD", images);
let imageIds = [];
for (let i = 0; i < images.length; i++) {
let data_url = images[i];
@@ -223,11 +226,13 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
//});
} else {
let url;
if (data_url.startsWith("http")) {
url = data_url;
} else {
url = window.location.href.replace(/\/\#\/?$/, '') + "/" + data_url
}
// This doesn't seem to have any benefit
//if (data_url.startsWith("http")) {
// url = data_url;
//} else {
// url = window.location.href.replace(/\/\#\/?$/, '') + "/" + data_url
//}
url = data_url;
if (url.endsWith("dcm")) {
url = "wadouri:" + url;
@@ -279,6 +284,7 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
$("#thumb-" + id).click(selectThumbClick).mousedown(stopEvent);
let image_url = images[id];
console.log(image_url)
let img;
@@ -340,6 +346,7 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
} else {
let url = "wadouri:" + image_url;
console.log(url)
cornerstone.loadAndCacheImage(url).then(function (image) {
img = $("<div></div>").get(0);
img.id = "thumb-image-" + id;
@@ -377,6 +384,7 @@ function loadCornerstoneMainImage(element, image, stack, db, load_as_stack) {
const StackScrollTool = cornerstoneTools.StackScrollTool;
const MagnifyTool = cornerstoneTools.MagnifyTool;
const ArrowAnnotateTool = cornerstoneTools.ArrowAnnotateTool;
const RectangleRoiTool = cornerstoneTools.RectangleRoiTool;
const LengthTool = cornerstoneTools.LengthTool;
console.log("enable element", element);
@@ -387,18 +395,20 @@ function loadCornerstoneMainImage(element, image, stack, db, load_as_stack) {
cornerstoneTools.addStackStateManager(element, ["stack"]);
cornerstoneTools.addToolState(element, "stack", stack);
cornerstoneTools.addTool(PanTool);
cornerstoneTools.addTool(ZoomTool);
cornerstoneTools.addTool(ZoomMouseWheelTool);
cornerstoneTools.addTool(StackScrollMouseWheelTool);
cornerstoneTools.addTool(WwwcTool);
cornerstoneTools.addTool(WwwcRegionTool);
cornerstoneTools.addTool(RotateTool);
cornerstoneTools.addTool(StackScrollTool);
cornerstoneTools.addTool(MagnifyTool);
cornerstoneTools.addTool(LengthTool);
cornerstoneTools.addToolForElement(element, PanTool);
cornerstoneTools.addToolForElement(element, ZoomTool);
cornerstoneTools.addToolForElement(element, ZoomMouseWheelTool);
cornerstoneTools.addToolForElement(element, StackScrollMouseWheelTool);
cornerstoneTools.addToolForElement(element, WwwcTool);
cornerstoneTools.addToolForElement(element, WwwcRegionTool);
cornerstoneTools.addToolForElement(element, RotateTool);
cornerstoneTools.addToolForElement(element, StackScrollTool);
cornerstoneTools.addToolForElement(element, MagnifyTool);
cornerstoneTools.addToolForElement(element, LengthTool);
//cornerstoneTools.addTool(ArrowAnnotateTool);
//cornerstoneTools.addTool(RectangleRoiTool);
cornerstoneTools.addTool(ArrowAnnotateTool, {
cornerstoneTools.addToolForElement(element, ArrowAnnotateTool, {
configuration: {
getTextCallback: () => { },
changeTextCallback: () => { },
@@ -408,6 +418,16 @@ function loadCornerstoneMainImage(element, image, stack, db, load_as_stack) {
drawHandlesOnHover: true,
},
});
cornerstoneTools.addToolForElement(element, RectangleRoiTool, {
configuration: {
showHounsfieldUnits: false,
showMinMax: false,
allowEmptyLabel: true,
renderDashed: false,
drawHandles: false,
drawHandlesOnHover: true,
},
});
cornerstoneTools.setToolEnabled("ArrowAnnotate");
@@ -421,6 +441,8 @@ function loadCornerstoneMainImage(element, image, stack, db, load_as_stack) {
"StackScroll",
"Magnify",
"Length",
"ArrowAnnotate",
"RectangleRoi",
];
$(".mouse-binding-select option").remove();
@@ -641,4 +663,8 @@ function urltoFile(url, filename, mimeType) {
.then(function (buf) {
return new File([buf], filename, { type: mimeType });
});
}
function saveAnnotations() {
}