Add a few annotation tools (and only enable for main element)
This commit is contained in:
@@ -30,6 +30,8 @@
|
|||||||
.thumb {
|
.thumb {
|
||||||
position: relative;
|
position: relative;
|
||||||
border: 1px dotted blue;
|
border: 1px dotted blue;
|
||||||
|
touch-action: none;
|
||||||
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.thumb-active {
|
.thumb-active {
|
||||||
|
|||||||
+42
-16
@@ -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);
|
let single_dicom_viewer = main_element.find(".single-dicom-viewer").get(0);
|
||||||
console.log(single_dicom_viewer);
|
console.log(single_dicom_viewer);
|
||||||
|
|
||||||
// Add generic settings menus to canvas-panel
|
// Add generic settings menus to canvas-panel
|
||||||
$(".canvas-panel").append(
|
$(".canvas-panel").append(
|
||||||
$(`<div id='dicom-settings-panel'>
|
$(`<div id='dicom-settings-panel'>
|
||||||
@@ -162,6 +163,8 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
|
|||||||
images = [images];
|
images = [images];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log("Images", images)
|
||||||
|
|
||||||
//let annotations = [];
|
//let annotations = [];
|
||||||
//if (annotations_to_load) {
|
//if (annotations_to_load) {
|
||||||
//annotations = annotations_to_load[figure_to_load.split("-")[1]];
|
//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) {
|
async function load(images, annotations) {
|
||||||
console.log("LOAD");
|
console.log("LOAD", images);
|
||||||
let imageIds = [];
|
let imageIds = [];
|
||||||
for (let i = 0; i < images.length; i++) {
|
for (let i = 0; i < images.length; i++) {
|
||||||
let data_url = images[i];
|
let data_url = images[i];
|
||||||
@@ -223,11 +226,13 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
|
|||||||
//});
|
//});
|
||||||
} else {
|
} else {
|
||||||
let url;
|
let url;
|
||||||
if (data_url.startsWith("http")) {
|
// 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;
|
url = data_url;
|
||||||
} else {
|
|
||||||
url = window.location.href.replace(/\/\#\/?$/, '') + "/" + data_url
|
|
||||||
}
|
|
||||||
|
|
||||||
if (url.endsWith("dcm")) {
|
if (url.endsWith("dcm")) {
|
||||||
url = "wadouri:" + url;
|
url = "wadouri:" + url;
|
||||||
@@ -279,6 +284,7 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
|
|||||||
$("#thumb-" + id).click(selectThumbClick).mousedown(stopEvent);
|
$("#thumb-" + id).click(selectThumbClick).mousedown(stopEvent);
|
||||||
|
|
||||||
let image_url = images[id];
|
let image_url = images[id];
|
||||||
|
console.log(image_url)
|
||||||
|
|
||||||
let img;
|
let img;
|
||||||
|
|
||||||
@@ -340,6 +346,7 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
let url = "wadouri:" + image_url;
|
let url = "wadouri:" + image_url;
|
||||||
|
console.log(url)
|
||||||
cornerstone.loadAndCacheImage(url).then(function (image) {
|
cornerstone.loadAndCacheImage(url).then(function (image) {
|
||||||
img = $("<div></div>").get(0);
|
img = $("<div></div>").get(0);
|
||||||
img.id = "thumb-image-" + id;
|
img.id = "thumb-image-" + id;
|
||||||
@@ -377,6 +384,7 @@ function loadCornerstoneMainImage(element, image, stack, db, load_as_stack) {
|
|||||||
const StackScrollTool = cornerstoneTools.StackScrollTool;
|
const StackScrollTool = cornerstoneTools.StackScrollTool;
|
||||||
const MagnifyTool = cornerstoneTools.MagnifyTool;
|
const MagnifyTool = cornerstoneTools.MagnifyTool;
|
||||||
const ArrowAnnotateTool = cornerstoneTools.ArrowAnnotateTool;
|
const ArrowAnnotateTool = cornerstoneTools.ArrowAnnotateTool;
|
||||||
|
const RectangleRoiTool = cornerstoneTools.RectangleRoiTool;
|
||||||
const LengthTool = cornerstoneTools.LengthTool;
|
const LengthTool = cornerstoneTools.LengthTool;
|
||||||
|
|
||||||
console.log("enable element", element);
|
console.log("enable element", element);
|
||||||
@@ -387,18 +395,20 @@ function loadCornerstoneMainImage(element, image, stack, db, load_as_stack) {
|
|||||||
cornerstoneTools.addStackStateManager(element, ["stack"]);
|
cornerstoneTools.addStackStateManager(element, ["stack"]);
|
||||||
cornerstoneTools.addToolState(element, "stack", stack);
|
cornerstoneTools.addToolState(element, "stack", stack);
|
||||||
|
|
||||||
cornerstoneTools.addTool(PanTool);
|
cornerstoneTools.addToolForElement(element, PanTool);
|
||||||
cornerstoneTools.addTool(ZoomTool);
|
cornerstoneTools.addToolForElement(element, ZoomTool);
|
||||||
cornerstoneTools.addTool(ZoomMouseWheelTool);
|
cornerstoneTools.addToolForElement(element, ZoomMouseWheelTool);
|
||||||
cornerstoneTools.addTool(StackScrollMouseWheelTool);
|
cornerstoneTools.addToolForElement(element, StackScrollMouseWheelTool);
|
||||||
cornerstoneTools.addTool(WwwcTool);
|
cornerstoneTools.addToolForElement(element, WwwcTool);
|
||||||
cornerstoneTools.addTool(WwwcRegionTool);
|
cornerstoneTools.addToolForElement(element, WwwcRegionTool);
|
||||||
cornerstoneTools.addTool(RotateTool);
|
cornerstoneTools.addToolForElement(element, RotateTool);
|
||||||
cornerstoneTools.addTool(StackScrollTool);
|
cornerstoneTools.addToolForElement(element, StackScrollTool);
|
||||||
cornerstoneTools.addTool(MagnifyTool);
|
cornerstoneTools.addToolForElement(element, MagnifyTool);
|
||||||
cornerstoneTools.addTool(LengthTool);
|
cornerstoneTools.addToolForElement(element, LengthTool);
|
||||||
|
//cornerstoneTools.addTool(ArrowAnnotateTool);
|
||||||
|
//cornerstoneTools.addTool(RectangleRoiTool);
|
||||||
|
|
||||||
cornerstoneTools.addTool(ArrowAnnotateTool, {
|
cornerstoneTools.addToolForElement(element, ArrowAnnotateTool, {
|
||||||
configuration: {
|
configuration: {
|
||||||
getTextCallback: () => { },
|
getTextCallback: () => { },
|
||||||
changeTextCallback: () => { },
|
changeTextCallback: () => { },
|
||||||
@@ -408,6 +418,16 @@ function loadCornerstoneMainImage(element, image, stack, db, load_as_stack) {
|
|||||||
drawHandlesOnHover: true,
|
drawHandlesOnHover: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
cornerstoneTools.addToolForElement(element, RectangleRoiTool, {
|
||||||
|
configuration: {
|
||||||
|
showHounsfieldUnits: false,
|
||||||
|
showMinMax: false,
|
||||||
|
allowEmptyLabel: true,
|
||||||
|
renderDashed: false,
|
||||||
|
drawHandles: false,
|
||||||
|
drawHandlesOnHover: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
cornerstoneTools.setToolEnabled("ArrowAnnotate");
|
cornerstoneTools.setToolEnabled("ArrowAnnotate");
|
||||||
|
|
||||||
@@ -421,6 +441,8 @@ function loadCornerstoneMainImage(element, image, stack, db, load_as_stack) {
|
|||||||
"StackScroll",
|
"StackScroll",
|
||||||
"Magnify",
|
"Magnify",
|
||||||
"Length",
|
"Length",
|
||||||
|
"ArrowAnnotate",
|
||||||
|
"RectangleRoi",
|
||||||
];
|
];
|
||||||
$(".mouse-binding-select option").remove();
|
$(".mouse-binding-select option").remove();
|
||||||
|
|
||||||
@@ -642,3 +664,7 @@ function urltoFile(url, filename, mimeType) {
|
|||||||
return new File([buf], filename, { type: mimeType });
|
return new File([buf], filename, { type: mimeType });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function saveAnnotations() {
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user