Bringing series into viewport ( work-in-progress)
This commit is contained in:
parent
652144932f
commit
b28e84076f
@ -10,9 +10,6 @@ var measurementManagerDAL = (function() {
|
||||
function addTimepointData(lesionData) {
|
||||
var timepoints = Timepoints.find().fetch();
|
||||
|
||||
var study = cornerstoneTools.metaData.get('study', lesionData.imageId);
|
||||
var series = cornerstoneTools.metaData.get('study', lesionData.imageId);
|
||||
|
||||
var timepointsObject = {};
|
||||
|
||||
for (var i = 0; i < timepoints.length; i++) {
|
||||
@ -25,14 +22,17 @@ var measurementManagerDAL = (function() {
|
||||
timepointObject = {
|
||||
longestDiameter: lesionData.measurementText,
|
||||
imageId: lesionData.imageId,
|
||||
studyInstanceUid: study.instanceUid,
|
||||
seriesInstanceUid: series.instanceUid
|
||||
seriesInstanceUid: lesionData.seriesInstanceUid,
|
||||
studyInstanceUid: lesionData.studyInstanceUid
|
||||
|
||||
};
|
||||
} else {
|
||||
// Add null measurement
|
||||
timepointObject = {
|
||||
longestDiameter: "",
|
||||
imageId: ""
|
||||
imageId: "",
|
||||
seriesInstanceUid: "",
|
||||
studyInstanceUid: ""
|
||||
};
|
||||
}
|
||||
timepointsObject[timepointId] = timepointObject;
|
||||
@ -71,6 +71,8 @@ var measurementManagerDAL = (function() {
|
||||
var timepoints = measurement.timepoints;
|
||||
timepoints[timepointID].longestDiameter = lesionData.measurementText;
|
||||
timepoints[timepointID].imageId = lesionData.imageId;
|
||||
timepoints[timepointID].seriesInstanceUid = lesionData.seriesInstanceUid;
|
||||
timepoints[timepointID].studyInstanceUid = lesionData.studyInstanceUid;
|
||||
|
||||
Measurements.update(measurement._id, {
|
||||
$set: {
|
||||
|
||||
@ -83,6 +83,11 @@
|
||||
}
|
||||
|
||||
function createNewMeasurement(mouseEventData) {
|
||||
|
||||
// Get seriesInstanceUId & studyInstanceUId
|
||||
var seriesInstanceUid = cornerstoneTools.metaData.get('series', mouseEventData.image.imageId).instanceUid;
|
||||
var studyInstanceUid = cornerstoneTools.metaData.get('study', mouseEventData.image.imageId).instanceUid;
|
||||
|
||||
// create the measurement data for this tool with the end handle activated
|
||||
var measurementData = {
|
||||
visible: true,
|
||||
@ -110,6 +115,8 @@
|
||||
}
|
||||
},
|
||||
imageId: mouseEventData.image.imageId,
|
||||
seriesInstanceUid: seriesInstanceUid,
|
||||
studyInstanceUid: studyInstanceUid,
|
||||
measurementText: '',
|
||||
isTarget: false,
|
||||
uid: uuid.v4()
|
||||
@ -372,6 +379,8 @@
|
||||
var enabledElement = eventObject.enabledElement;
|
||||
var isTarget = eventObject.lesionData.isTarget;
|
||||
var lesionNumber = eventObject.lesionData.lesionNumber;
|
||||
var seriesInstanceUid = eventObject.lesionData.seriesInstanceUid;
|
||||
var studyInstanceUid = eventObject.lesionData.studyInstanceUid;
|
||||
var type = eventObject.type;
|
||||
|
||||
// if we have no toolData for this element, return immediately as there is nothing to do
|
||||
@ -388,7 +397,12 @@
|
||||
var data = toolData.data[i];
|
||||
|
||||
//When click a row of table measurements, measurement will be active and color will be green
|
||||
if (data.lesionNumber === eventObject.lesionNumber && eventObject.type !== "active" && !isTarget) {
|
||||
if (data.lesionNumber === lesionNumber
|
||||
&& eventObject.type !== "active"
|
||||
&& !isTarget
|
||||
&& data.seriesInstanceUid === seriesInstanceUid
|
||||
&& data.studyInstanceUid === studyInstanceUid) {
|
||||
|
||||
data.visible = false;
|
||||
deletedDataIndex = i;
|
||||
}
|
||||
@ -401,7 +415,12 @@
|
||||
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.lesionNumber === eventObject.lesionData.lesionNumber && eventObject.type === "active" && !isTarget) {
|
||||
if (data.lesionNumber === eventObject.lesionData.lesionNumber
|
||||
&& eventObject.type === "active"
|
||||
&& !isTarget
|
||||
&& data.seriesInstanceUid === seriesInstanceUid
|
||||
&& data.studyInstanceUid === studyInstanceUid) {
|
||||
|
||||
data.active = true;
|
||||
} else {
|
||||
data.active = false;
|
||||
|
||||
@ -4,6 +4,8 @@ function updateLesions(e) {
|
||||
var lesionNumber = parseInt($(e.currentTarget).attr("id"), 10);
|
||||
|
||||
// TODO= Clarify this
|
||||
// Get Target column value
|
||||
// Search and update data according to target type
|
||||
var isTarget = $(e.currentTarget).find('td').eq(2).html().trim() === 'N'?false:true;
|
||||
|
||||
// Find data for specific lesion
|
||||
@ -23,7 +25,12 @@ function updateLesions(e) {
|
||||
// from the DOM itself. This will be changed later when a
|
||||
// real association between viewports and timepoints is created.
|
||||
var enabledElement = cornerstone.getEnabledElement(element);
|
||||
if (!enabledElement) {
|
||||
return;
|
||||
}
|
||||
var study = cornerstoneTools.metaData.get('study', enabledElement.image.imageId);
|
||||
var series = cornerstoneTools.metaData.get('series', enabledElement.image.imageId);
|
||||
|
||||
var timepoint = Timepoints.findOne({timepointName: study.date});
|
||||
if (!timepoint) {
|
||||
return;
|
||||
@ -32,21 +39,40 @@ function updateLesions(e) {
|
||||
|
||||
var timepointObject = timepoints[timepointID];
|
||||
|
||||
// TODO: Bring series in correct imageViewport
|
||||
|
||||
if (timepointObject.seriesInstanceUid !== series.instanceUid) {
|
||||
console.log("not in same series");
|
||||
var newSeriesData = {
|
||||
seriesInstanceUid: timepointObject.seriesInstanceUid,
|
||||
studyInstanceUid: timepointObject.studyInstanceUid
|
||||
};
|
||||
|
||||
// Rerender the viewport using the drag and drop data
|
||||
rerenderViewportWithNewSeries(element, newSeriesData);
|
||||
}
|
||||
|
||||
// Defines event data
|
||||
var eventData = {
|
||||
enabledElement: cornerstone.getEnabledElement(element),
|
||||
lesionData: {
|
||||
isTarget: isTarget,
|
||||
lesionNumber: lesionNumber,
|
||||
imageId: timepointObject.imageId
|
||||
imageId: timepointObject.imageId,
|
||||
seriesInstanceUid: timepointObject.seriesInstanceUid,
|
||||
studyInstanceUid: timepointObject.studyInstanceUid
|
||||
},
|
||||
type: "active"
|
||||
};
|
||||
|
||||
// When measurement column is null, deactivate other measurements in the enabledElement
|
||||
if (timepointObject.longestDiameter === "") {
|
||||
eventData.type = "inactive";
|
||||
}
|
||||
|
||||
// If isTarget = false, this measurement is nonTarget measurement
|
||||
// Activate related nonTarget measurement
|
||||
// Deactivate all target measurements to activate only nonTarget measurement
|
||||
if (!isTarget) {
|
||||
$(element).trigger("NonTargetToolSelected", eventData);
|
||||
|
||||
@ -55,10 +81,15 @@ function updateLesions(e) {
|
||||
$(element).trigger("LesionToolSelected", eventData);
|
||||
return;
|
||||
}
|
||||
|
||||
// Trigger event for target measurements
|
||||
$(element).trigger("LesionToolSelected", eventData);
|
||||
|
||||
// Deactivate nonTarget tool measurements
|
||||
eventData.type = "inactive";
|
||||
|
||||
// Triggger event for nonTarget measurements
|
||||
// Inactivate all nonTarget measurements if any measurement is active
|
||||
$(element).trigger("NonTargetToolSelected", eventData);
|
||||
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user