select lesion from lesion table and show its image(has some bugs)

This commit is contained in:
Aysel Afsar 2015-10-31 10:26:57 -04:00
parent 4968fc1811
commit eac9669aa4
5 changed files with 52 additions and 11 deletions

View File

@ -45,6 +45,7 @@ var cornerstoneTools = (function ($, cornerstone, cornerstoneMath, cornerstoneTo
// Subscribe LesionMeasurementCreated
$(element).trigger("LesionMeasurementCreated");
console.log(mouseEventData.image.imageId);
// create the measurement data for this tool with the end handle activated
var measurementData = {
visible : true,
@ -64,6 +65,7 @@ var cornerstoneTools = (function ($, cornerstone, cornerstoneMath, cornerstoneTo
}
},
index: lineIndex,
imageId: mouseEventData.image.imageId,
measurementText: "",
linkedTextCoords: {
start : {
@ -242,12 +244,11 @@ var cornerstoneTools = (function ($, cornerstone, cornerstoneMath, cornerstoneTo
///////// END IMAGE RENDERING ///////
//This function is called from cornerstone-viewport.html and updates lesion measurement and makes the lesion active
function measurementModified(e, eventObject){
function activateLesion(e, eventObject) {
var start = new Date();
var enabledElement = eventObject.enabledElement;
var lineIndex = eventObject.lineIndex;
var lesionNumber = eventObject.lesionData.lesionNumber;
var type = eventObject.type;
// if we have no toolData for this element, return immediately as there is nothing to do
@ -264,7 +265,7 @@ var cornerstoneTools = (function ($, cornerstone, cornerstoneMath, cornerstoneTo
var data = toolData.data[i];
//When click a row of table measurements, measurement will be active and color will be green
if (data.index === eventObject.lineIndex && eventObject.type !== "active") {
if (data.lesionNumber === eventObject.lesionNumber && eventObject.type !== "active") {
data.visible = false;
deletedDataIndex = i;
}
@ -276,9 +277,8 @@ var cornerstoneTools = (function ($, cornerstone, cornerstoneMath, cornerstoneTo
} else {
for (var i = 0; i < toolData.data.length; i++) {
var data = toolData.data[i];
//When click a row of table measurements, measurement will be active and color will be green
if (data.index === eventObject.lineIndex && eventObject.type === "active") {
if (data.lesionNumber === eventObject.lesionData.lesionNumber && eventObject.type === "active") {
data.active = true;
} else{
data.active = false;
@ -303,7 +303,7 @@ var cornerstoneTools = (function ($, cornerstone, cornerstoneMath, cornerstoneTo
canvasContext: context,
measurementText: "",
renderTimeInMs : diff,
lineIndex : lineIndex,
lesionNumber : lesionNumber,
type : type //Holds image will be deleted or active
};
@ -312,6 +312,24 @@ var cornerstoneTools = (function ($, cornerstone, cornerstoneMath, cornerstoneTo
onImageRendered(e, eventData);
}
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);
});
}
//This function is called from cornerstone-viewport.html and updates lesion measurement and makes the lesion active
function measurementModified(e, eventObject){
loadImage(e,eventObject);
}
// module exports
cornerstoneTools.lesion = cornerstoneTools.mouseButtonTool({
createNewMeasurement : createNewMeasurement,

View File

@ -69,6 +69,7 @@ var measurementManagerDAL = (function () {
var lesionDataCollectionObject = {
lesionNumber: lesionData.lesionNumber,
isTarget: true,
imageId: lesionData.imageId,
locationUID: lesionData.locationUID,
location: getLocationName(lesionData.locationUID),
timepoints: timepointsArr

View File

@ -20,7 +20,6 @@
{{ >lesionTableRow }}
{{ /each }}
<!--Each measurement as row-->
<!--Each time point as a column-->
</tbody>

View File

@ -21,6 +21,7 @@ Template.lesionTable.helpers({
});
Template.lesionTable.onRendered(function() {
var contentId = this.data.contentId;
var viewportColumns = ViewerData[contentId].viewportColumns;
var viewportRows = ViewerData[contentId].viewportRows;
@ -59,6 +60,28 @@ Template.lesionTable.onRendered(function() {
});
Template.lesionTable.onCreated(function() {
this.timepointNamesDictionary = new ReactiveDict();
Template.lesionTable.events({
'click table#tblLesion tbody tr': function(e, template) {
// lesionNumber of measurement = id of row
var lesionNumber = parseInt($(e.currentTarget).attr("id"));
// TODO: Get all imageViewport elements in content
var contentId = Session.get("activeContentId");
var measurementData = Measurements.find({contentId:contentId,"lesionData.lesionNumber":lesionNumber}).fetch();
var lesionData = measurementData[0].lesionData;
console.log(lesionData);
var imageViewportElements = $("#"+contentId).find(".imageViewerViewport");
for( var i=0; i< imageViewportElements.length; i++) {
var imageViewportElement = imageViewportElements[i];
var eventObject = {
enabledElement: cornerstone.getEnabledElement(imageViewportElement),
lesionData: {lesionNumber: lesionNumber, imageId: lesionData.imageId},
type: "active"
};
$(imageViewportElement).trigger("LesionToolModified", eventObject);
}
}
});

View File

@ -1,5 +1,5 @@
<template name="lesionTableRow">
<tr class="lesionTableRow">
<tr id="{{lesionData.lesionNumber}}" class="lesionTableRow">
<td class='lesionNumber'>{{lesionData.lesionNumber}}</td>
<td class='location'>{{lesionData.location}}</td>
<td class='target'>{{#if lesionData.isTarget}} Y {{else}} N {{/if}}</td>