From eac9669aa48309f81fa300a16a6d9d039671f074 Mon Sep 17 00:00:00 2001 From: Aysel Afsar Date: Sat, 31 Oct 2015 10:26:57 -0400 Subject: [PATCH] select lesion from lesion table and show its image(has some bugs) --- .../lesiontracker/compatibility/lesionTool.js | 32 +++++++++++++++---- .../compatibility/measurementManagerDAL.js | 1 + .../components/lesionTable/lesionTable.html | 1 - .../components/lesionTable/lesionTable.js | 27 ++++++++++++++-- .../lesionTableRow/lesionTableRow.html | 2 +- 5 files changed, 52 insertions(+), 11 deletions(-) diff --git a/Packages/lesiontracker/compatibility/lesionTool.js b/Packages/lesiontracker/compatibility/lesionTool.js index e7ff4d4bf..ace490154 100644 --- a/Packages/lesiontracker/compatibility/lesionTool.js +++ b/Packages/lesiontracker/compatibility/lesionTool.js @@ -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, diff --git a/Packages/lesiontracker/compatibility/measurementManagerDAL.js b/Packages/lesiontracker/compatibility/measurementManagerDAL.js index 3a4496221..30b8fa160 100644 --- a/Packages/lesiontracker/compatibility/measurementManagerDAL.js +++ b/Packages/lesiontracker/compatibility/measurementManagerDAL.js @@ -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 diff --git a/Packages/lesiontracker/components/lesionTable/lesionTable.html b/Packages/lesiontracker/components/lesionTable/lesionTable.html index a7f65b70b..27f54d6bf 100644 --- a/Packages/lesiontracker/components/lesionTable/lesionTable.html +++ b/Packages/lesiontracker/components/lesionTable/lesionTable.html @@ -20,7 +20,6 @@ {{ >lesionTableRow }} {{ /each }} - diff --git a/Packages/lesiontracker/components/lesionTable/lesionTable.js b/Packages/lesiontracker/components/lesionTable/lesionTable.js index 69f9d5a9a..7897fc81e 100644 --- a/Packages/lesiontracker/components/lesionTable/lesionTable.js +++ b/Packages/lesiontracker/components/lesionTable/lesionTable.js @@ -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); + + } + + } }); + diff --git a/Packages/lesiontracker/components/lesionTableRow/lesionTableRow.html b/Packages/lesiontracker/components/lesionTableRow/lesionTableRow.html index c74128735..66757bc4f 100644 --- a/Packages/lesiontracker/components/lesionTableRow/lesionTableRow.html +++ b/Packages/lesiontracker/components/lesionTableRow/lesionTableRow.html @@ -1,5 +1,5 @@