select lesion from lesion table and show its image
Bug fix: Scroll to the correct image when lesion table row is clicked
This commit is contained in:
parent
28c67b573f
commit
ead3928077
@ -244,7 +244,7 @@ var cornerstoneTools = (function ($, cornerstone, cornerstoneMath, cornerstoneTo
|
|||||||
|
|
||||||
///////// END IMAGE RENDERING ///////
|
///////// END IMAGE RENDERING ///////
|
||||||
|
|
||||||
function activateLesion(e, eventObject) {
|
function updateLesion(e, eventObject) {
|
||||||
var start = new Date();
|
var start = new Date();
|
||||||
|
|
||||||
var enabledElement = eventObject.enabledElement;
|
var enabledElement = eventObject.enabledElement;
|
||||||
@ -274,7 +274,7 @@ var cornerstoneTools = (function ($, cornerstone, cornerstoneMath, cornerstoneTo
|
|||||||
if (deletedDataIndex >= 0 && deletedDataIndex < toolData.data.length) {
|
if (deletedDataIndex >= 0 && deletedDataIndex < toolData.data.length) {
|
||||||
toolData.data.splice(deletedDataIndex, 1);
|
toolData.data.splice(deletedDataIndex, 1);
|
||||||
}
|
}
|
||||||
} else {
|
} else if(type === "active") {
|
||||||
for (var i = 0; i < toolData.data.length; i++) {
|
for (var i = 0; i < toolData.data.length; i++) {
|
||||||
var data = toolData.data[i];
|
var data = toolData.data[i];
|
||||||
//When click a row of table measurements, measurement will be active and color will be green
|
//When click a row of table measurements, measurement will be active and color will be green
|
||||||
@ -284,6 +284,12 @@ var cornerstoneTools = (function ($, cornerstone, cornerstoneMath, cornerstoneTo
|
|||||||
data.active = false;
|
data.active = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if(type === "inactive") {
|
||||||
|
for (var i = 0; i < toolData.data.length; i++) {
|
||||||
|
var data = toolData.data[i];
|
||||||
|
// Make inactive all lesions for the timepoint
|
||||||
|
data.active = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -314,15 +320,26 @@ var cornerstoneTools = (function ($, cornerstone, cornerstoneMath, cornerstoneTo
|
|||||||
|
|
||||||
|
|
||||||
function loadImage(e, eventObject) {
|
function loadImage(e, eventObject) {
|
||||||
var stackToolDataSource = cornerstoneTools.getToolState(e.currentTarget, 'stack');
|
|
||||||
var stackData = stackToolDataSource.data[0];
|
|
||||||
var imageIdsArr = stackData.imageIds;
|
|
||||||
var indexOfImage = imageIdsArr.indexOf(eventObject.lesionData.imageId);
|
|
||||||
cornerstone.loadAndCacheImage(stackData.imageIds[indexOfImage]).then(function(image) {
|
|
||||||
cornerstone.displayImage(eventObject.enabledElement.element,image);
|
|
||||||
activateLesion(e, eventObject);
|
|
||||||
|
|
||||||
});
|
// If type is active, load image and activate lesion
|
||||||
|
// If type is inactive, update lesions of enabledElement as inactive
|
||||||
|
|
||||||
|
if (eventObject.type === "active") {
|
||||||
|
var stackToolDataSource = cornerstoneTools.getToolState(e.currentTarget, 'stack');
|
||||||
|
var stackData = stackToolDataSource.data[0];
|
||||||
|
var imageIdsArr = stackData.imageIds;
|
||||||
|
var indexOfImage = imageIdsArr.indexOf(eventObject.lesionData.imageId);
|
||||||
|
if (indexOfImage > -1) {
|
||||||
|
cornerstone.loadAndCacheImage(stackData.imageIds[indexOfImage]).then(function(image) {
|
||||||
|
cornerstone.displayImage(eventObject.enabledElement.element,image);
|
||||||
|
updateLesion(e, eventObject);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else if(eventObject.type === "inactive") {
|
||||||
|
updateLesion(e, eventObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//This function is called from cornerstone-viewport.html and updates lesion measurement and makes the lesion active
|
//This function is called from cornerstone-viewport.html and updates lesion measurement and makes the lesion active
|
||||||
|
|||||||
@ -55,12 +55,12 @@ var measurementManagerDAL = (function () {
|
|||||||
if (timepointId === lesionTimepointId) {
|
if (timepointId === lesionTimepointId) {
|
||||||
// Add real mesurement
|
// Add real mesurement
|
||||||
var timepointObject = {};
|
var timepointObject = {};
|
||||||
timepointObject[timepointId] = {longestDiameter: lesionData.measurementText};
|
timepointObject[timepointId] = {longestDiameter: lesionData.measurementText, imageId: lesionData.imageId};
|
||||||
timepointsArr.push(timepointObject);
|
timepointsArr.push(timepointObject);
|
||||||
} else {
|
} else {
|
||||||
// Add null measurement
|
// Add null measurement
|
||||||
var timepointObject = {};
|
var timepointObject = {};
|
||||||
timepointObject[timepointId] = {longestDiameter: ""};
|
timepointObject[timepointId] = {longestDiameter: "", imageId: ""};
|
||||||
timepointsArr.push(timepointObject);
|
timepointsArr.push(timepointObject);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -69,7 +69,6 @@ var measurementManagerDAL = (function () {
|
|||||||
var lesionDataCollectionObject = {
|
var lesionDataCollectionObject = {
|
||||||
lesionNumber: lesionData.lesionNumber,
|
lesionNumber: lesionData.lesionNumber,
|
||||||
isTarget: true,
|
isTarget: true,
|
||||||
imageId: lesionData.imageId,
|
|
||||||
locationUID: lesionData.locationUID,
|
locationUID: lesionData.locationUID,
|
||||||
location: getLocationName(lesionData.locationUID),
|
location: getLocationName(lesionData.locationUID),
|
||||||
timepoints: timepointsArr
|
timepoints: timepointsArr
|
||||||
@ -92,6 +91,8 @@ var measurementManagerDAL = (function () {
|
|||||||
var timepoint = timepointArr[i];
|
var timepoint = timepointArr[i];
|
||||||
if(timepoint[timepointID] != undefined) {
|
if(timepoint[timepointID] != undefined) {
|
||||||
timepoint[timepointID].longestDiameter = lesionData.measurementText;
|
timepoint[timepointID].longestDiameter = lesionData.measurementText;
|
||||||
|
timepoint[timepointID].imageId = lesionData.imageId;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Measurements.update(
|
Measurements.update(
|
||||||
|
|||||||
@ -60,28 +60,44 @@ Template.lesionTable.onRendered(function() {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Template.lesionTable.events({
|
// Activate selected lesions when lesion table row is clicked
|
||||||
'click table#tblLesion tbody tr': function(e, template) {
|
function activateLesions (e) {
|
||||||
|
|
||||||
// lesionNumber of measurement = id of row
|
// lesionNumber of measurement = id of row
|
||||||
var lesionNumber = parseInt($(e.currentTarget).attr("id"));
|
var lesionNumber = parseInt($(e.currentTarget).attr("id"));
|
||||||
// TODO: Get all imageViewport elements in content
|
var contentId = Session.get("activeContentId");
|
||||||
var contentId = Session.get("activeContentId");
|
var measurementData = Measurements.find({contentId:contentId,"lesionData.lesionNumber":lesionNumber}).fetch();
|
||||||
var measurementData = Measurements.find({contentId:contentId,"lesionData.lesionNumber":lesionNumber}).fetch();
|
var timepoints = measurementData[0].lesionData.timepoints;
|
||||||
var lesionData = measurementData[0].lesionData;
|
var imageViewportElements = $("#"+contentId).find(".imageViewerViewport");
|
||||||
console.log(lesionData);
|
|
||||||
var imageViewportElements = $("#"+contentId).find(".imageViewerViewport");
|
for( var i=0; i< imageViewportElements.length; i++) {
|
||||||
for( var i=0; i< imageViewportElements.length; i++) {
|
var timepointObject = timepoints[i];
|
||||||
var imageViewportElement = imageViewportElements[i];
|
var timepointKey = Object.keys(timepointObject);
|
||||||
var eventObject = {
|
var imageId = timepointObject[timepointKey].imageId;
|
||||||
|
var longestDiameter = timepointObject[timepointKey].longestDiameter;
|
||||||
|
var imageViewportElement = imageViewportElements[i];
|
||||||
|
var eventObject = {};
|
||||||
|
|
||||||
|
if(longestDiameter != "") {
|
||||||
|
eventObject = {
|
||||||
enabledElement: cornerstone.getEnabledElement(imageViewportElement),
|
enabledElement: cornerstone.getEnabledElement(imageViewportElement),
|
||||||
lesionData: {lesionNumber: lesionNumber, imageId: lesionData.imageId},
|
lesionData: {lesionNumber: lesionNumber, imageId: imageId},
|
||||||
type: "active"
|
type: "active"
|
||||||
};
|
};
|
||||||
$(imageViewportElement).trigger("LesionToolModified", eventObject);
|
} else {
|
||||||
|
eventObject = {
|
||||||
|
enabledElement: cornerstone.getEnabledElement(imageViewportElement),
|
||||||
|
lesionData: {lesionNumber: lesionNumber, imageId: imageId},
|
||||||
|
type: "inactive"
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
$(imageViewportElement).trigger("LesionToolModified", eventObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Template.lesionTable.events({
|
||||||
|
'click table#tblLesion tbody tr': function(e) {
|
||||||
|
activateLesions(e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user