add log panel
This commit is contained in:
+89
-14
@@ -11,20 +11,28 @@ cornerstoneWADOImageLoader.external.cornerstone = cornerstone;
|
||||
|
||||
cornerstoneTools.init();
|
||||
|
||||
let tool_state = {};
|
||||
|
||||
|
||||
export function loadCornerstone(main_element, db, images, annotations_to_load, load_as_stack = false) {
|
||||
// canvas-panel holds the enabled elements and all tools / menus
|
||||
main_element.append("<div class='canvas-panel'></div>");
|
||||
main_element[0].dataset.collapsed = "none";
|
||||
$(".canvas-panel").append($("<div class='single-dicom-viewer'></div>"));
|
||||
//$(".canvas-panel").append($("<div id='dicom-summary'></div>").load("dicomSummary.html"));
|
||||
|
||||
let single_dicom_viewer = main_element.find(".single-dicom-viewer").get(0);
|
||||
console.log(single_dicom_viewer);
|
||||
|
||||
$(".canvas-panel").append($(`<div id='dicom-log-panel'>
|
||||
<span id="dicom-log-close" class="close-button"><a href="#">close</a></span>
|
||||
</div>`));
|
||||
|
||||
// Add generic settings menus to canvas-panel
|
||||
$(".canvas-panel").append(
|
||||
$(`<div id='dicom-settings-panel'>
|
||||
<span id="dicom-settings-close" class="close-button"><a href="#">close</a></span>
|
||||
<span class="view-log-button"><a href="#">view log</a></span>
|
||||
<h3>Image viewer settings:</h3>
|
||||
|
||||
Primary
|
||||
@@ -87,7 +95,8 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
|
||||
)
|
||||
.append($("<span id='dicom-toggle-mode-button' class='dicom-button' title='toggle stack/thumbnail view'>↻</span>"))
|
||||
.append($("<span id='dicom-fullscreen-button' class='dicom-button' title='toggle stack/thumbnail view'>⛶</span>"))
|
||||
.append($("<span id='dicom-settings-button' class='dicom-button' title='open settings'>⚙</span>"));
|
||||
.append($("<span id='dicom-settings-button' class='dicom-button' title='open settings'>⚙</span>"))
|
||||
.append($("<span id='dicom-collapse-button' class='dicom-button' title='collapse viewer'>⇄</span>"));
|
||||
|
||||
$(single_dicom_viewer).append(
|
||||
$(
|
||||
@@ -137,6 +146,15 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
|
||||
$("#dicom-settings-panel").hide();
|
||||
e.preventDefault();
|
||||
});
|
||||
$("#dicom-log-close").click(e => {
|
||||
$("#dicom-log-panel").hide();
|
||||
e.preventDefault();
|
||||
});
|
||||
$(".view-log-button").click(e => {
|
||||
$("#dicom-settings-panel").hide();
|
||||
$("#dicom-log-panel").show();
|
||||
e.preventDefault();
|
||||
});
|
||||
$("#dicom-settings-button").click(e => {
|
||||
$("#dicom-settings-panel").toggle();
|
||||
});
|
||||
@@ -156,6 +174,20 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
|
||||
loadCornerstone(main_element, db, images, annotations_to_load, stack)
|
||||
});
|
||||
|
||||
$("#dicom-collapse-button").click(e => {
|
||||
//$("#dicom-settings-panel").toggle();
|
||||
//let stack = !load_as_stack;
|
||||
if (main_element[0].dataset.collapsed == "none") {
|
||||
main_element[0].dataset.collapsed = main_element.width();
|
||||
main_element.width("50px");
|
||||
} else {
|
||||
main_element.width(main_element[0].dataset.collapsed);
|
||||
main_element[0].dataset.collapsed = "none"
|
||||
}
|
||||
resizeHandler();
|
||||
//loadCornerstone(main_element, db, images, annotations_to_load, stack)
|
||||
});
|
||||
|
||||
//let images = data["images"];
|
||||
|
||||
// Make sure we have an array
|
||||
@@ -180,15 +212,14 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
|
||||
|
||||
|
||||
function loadAnnotation(imageId, annotation) {
|
||||
console.log("loadAnnotations", imageId, annotations);
|
||||
console.log("loadAnnotations", imageId, annotation);
|
||||
const toolStateManager = cornerstoneTools.globalImageIdSpecificToolStateManager;
|
||||
|
||||
if (annotation == undefined || annotation.length < 1) { return }
|
||||
if (annotation == undefined || annotation.length < 1 || annotation == [undefined]) { return }
|
||||
|
||||
console.log(annotation);
|
||||
console.log("1234", annotation);
|
||||
let tool_state_no_id = JSON.parse(annotation);
|
||||
|
||||
let tool_state = {};
|
||||
tool_state[imageId] = tool_state_no_id;
|
||||
|
||||
toolStateManager.restoreToolState(tool_state);
|
||||
@@ -255,14 +286,15 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
|
||||
imageIds
|
||||
};
|
||||
//cornerstone.loadAndCacheImage(imageIds[0]).then(function(image) {
|
||||
console.log("load and cache", imageIds[0])
|
||||
//console.log("load and cache", imageIds[0])
|
||||
cornerstone.loadAndCacheImage(imageIds[0]).then(function (image) {
|
||||
|
||||
console.log("LOAD and cache, then");
|
||||
//console.log("LOAD and cache, then", image);
|
||||
loadCornerstoneMainImage(single_dicom_viewer, image, stack, db, load_as_stack);
|
||||
})
|
||||
.catch((err, err2) => {
|
||||
console.log(err);
|
||||
$("#dicom-log-panel").append(err);
|
||||
|
||||
});
|
||||
}
|
||||
@@ -371,6 +403,7 @@ export function loadCornerstone(main_element, db, images, annotations_to_load, l
|
||||
}
|
||||
|
||||
function loadCornerstoneMainImage(element, image, stack, db, load_as_stack) {
|
||||
dumpDataSet(image.data)
|
||||
console.log("loadCornerstoneMainImage")
|
||||
console.log("load as stack:", load_as_stack)
|
||||
// It is probably silly to do this each time we load a question
|
||||
@@ -429,7 +462,7 @@ function loadCornerstoneMainImage(element, image, stack, db, load_as_stack) {
|
||||
},
|
||||
});
|
||||
|
||||
cornerstoneTools.setToolEnabled("ArrowAnnotate");
|
||||
cornerstoneTools.setToolEnabledForElement(element, "ArrowAnnotate");
|
||||
|
||||
|
||||
let available_tools = [
|
||||
@@ -465,9 +498,9 @@ function loadCornerstoneMainImage(element, image, stack, db, load_as_stack) {
|
||||
|
||||
console.log(load_as_stack);
|
||||
if (load_as_stack) {
|
||||
cornerstoneTools.setToolActive("StackScrollMouseWheel", { mouseButtonMask: 3 });
|
||||
cornerstoneTools.setToolActiveForElement(element, "StackScrollMouseWheel", { mouseButtonMask: 3 });
|
||||
} else {
|
||||
cornerstoneTools.setToolActive("ZoomMouseWheel", { mouseButtonMask: 3 });
|
||||
cornerstoneTools.setToolActiveForElement(element, "ZoomMouseWheel", { mouseButtonMask: 3 });
|
||||
}
|
||||
//cornerstoneTools.setToolActive("Zoom", { mouseButtonMask: 4 });
|
||||
//cornerstoneTools.setToolActive("Wwwc", { mouseButtonMask: 2 });
|
||||
@@ -599,9 +632,10 @@ function selectThumbClick(evt) {
|
||||
|
||||
export function registerPrimaryDicomInterface() {
|
||||
// Set mousetools based upon the selected options
|
||||
let element = document.getElementsByClassName("single-dicom-viewer")[0];
|
||||
let selections = $("#primary-mouse-binding select");
|
||||
selections.each((i, option) => {
|
||||
cornerstoneTools.setToolActive(option.value, {
|
||||
cornerstoneTools.setToolActiveForElement(element, option.value, {
|
||||
mouseButtonMask: parseInt(option.dataset.button)
|
||||
});
|
||||
});
|
||||
@@ -611,9 +645,10 @@ export function registerAltDicomInterface(e) {
|
||||
// Called when control is pressed
|
||||
|
||||
// Set mousetools based upon the selected options
|
||||
let element = document.getElementsByClassName("single-dicom-viewer")[0];
|
||||
let selections = $("#secondary-mouse-binding select");
|
||||
selections.each((i, option) => {
|
||||
cornerstoneTools.setToolActive(option.value, {
|
||||
cornerstoneTools.setToolActiveForElement(element, option.value, {
|
||||
mouseButtonMask: parseInt(option.dataset.button)
|
||||
});
|
||||
});
|
||||
@@ -628,7 +663,8 @@ function changeMouseBinding(e, db) {
|
||||
// Directly activate primary tools (secondary will be activated when modifier
|
||||
// key is pressed
|
||||
if (mode == "0") {
|
||||
cornerstoneTools.setToolActive(tool, { mouseButtonMask: parseInt(button) });
|
||||
let element = document.getElementsByClassName("single-dicom-viewer")[0];
|
||||
cornerstoneTools.setToolActiveForElement(element, tool, { mouseButtonMask: parseInt(button) });
|
||||
}
|
||||
|
||||
dicom_settings_db.mouse_bindings.put({ button: button, mode: mode, tool: tool });
|
||||
@@ -663,4 +699,43 @@ function urltoFile(url, filename, mimeType) {
|
||||
.then(function (buf) {
|
||||
return new File([buf], filename, { type: mimeType });
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function dumpDataSet(dataSet)
|
||||
{
|
||||
$('span[data-dicom]').each(function(index, value)
|
||||
{
|
||||
var attr = $(value).attr('data-dicom');
|
||||
var element = dataSet.elements[attr];
|
||||
var text = "";
|
||||
if(element !== undefined)
|
||||
{
|
||||
var str = dataSet.string(attr);
|
||||
if(str !== undefined) {
|
||||
text = str;
|
||||
}
|
||||
}
|
||||
$(value).text(text);
|
||||
});
|
||||
|
||||
$('span[data-dicomUint]').each(function(index, value)
|
||||
{
|
||||
var attr = $(value).attr('data-dicomUint');
|
||||
var element = dataSet.elements[attr];
|
||||
var text = "";
|
||||
if(element !== undefined)
|
||||
{
|
||||
if(element.length === 2)
|
||||
{
|
||||
text += dataSet.uint16(attr);
|
||||
}
|
||||
else if(element.length === 4)
|
||||
{
|
||||
text += dataSet.uint32(attr);
|
||||
}
|
||||
}
|
||||
|
||||
$(value).text(text);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user