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