Steps toward converting targets to non-targets
This commit is contained in:
parent
3c69caf92b
commit
e354c6c577
@ -32,6 +32,7 @@
|
||||
</select>
|
||||
</div>
|
||||
<button id="removeLesion" class="btn btn-link">Remove</button>
|
||||
<button id="convertToNonTarget" class="btn btn-link">Convert to Non-Target</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -258,6 +258,14 @@ Template.lesionLocationDialog.events({
|
||||
|
||||
closeHandler(dialog);
|
||||
},
|
||||
'click #convertToNonTarget': function() {
|
||||
var measurementData = Template.lesionLocationDialog.measurementData;
|
||||
var dialog = Template.lesionLocationDialog.dialog;
|
||||
|
||||
convertToNonTarget(measurementData);
|
||||
|
||||
closeHandler(dialog);
|
||||
},
|
||||
'click #btnCloseLesionPopup': function() {
|
||||
var dialog = Template.lesionLocationDialog.dialog;
|
||||
closeHandler(dialog);
|
||||
|
||||
86
Packages/lesiontracker/lib/convertToNonTarget.js
Normal file
86
Packages/lesiontracker/lib/convertToNonTarget.js
Normal file
@ -0,0 +1,86 @@
|
||||
convertToNonTarget = function(measurementData) {
|
||||
if (measurementData.isTarget === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
var measurement = Measurements.findOne(measurementData.id);
|
||||
|
||||
var timepoint = Timepoints.findOne({
|
||||
timepointId: measurementData.timepointId
|
||||
});
|
||||
|
||||
// Next, update the measurementData and add it to the new tool type
|
||||
var toolType = 'nonTarget';
|
||||
var newMeasurement = {
|
||||
id: 'notready',
|
||||
lesionNumber: LesionManager.getNewLesionNumber(measurementData.timepointId, false),
|
||||
visible: true,
|
||||
active: true,
|
||||
imageId: measurementData.imageId,
|
||||
seriesInstanceUid: measurementData.seriesInstanceUid,
|
||||
studyInstanceUid: measurementData.studyInstanceUid,
|
||||
patientId: measurementData.patientId,
|
||||
isTarget: false,
|
||||
measurementType: toolType
|
||||
};
|
||||
|
||||
if (timepoint && timepoint.timepointType === 'baseline') {
|
||||
newMeasurement.response = 'NM';
|
||||
} else if (timepoint && timepoint.timepointType === 'followup') {
|
||||
newMeasurement.response = 'Present';
|
||||
} else {
|
||||
newMeasurement.response = '';
|
||||
}
|
||||
|
||||
newMeasurement.handles = {
|
||||
start: {
|
||||
x: (measurementData.handles.start.x + measurementData.handles.end.x) / 2,
|
||||
y: (measurementData.handles.start.y + measurementData.handles.end.y) / 2,
|
||||
highlight: true,
|
||||
active: false
|
||||
},
|
||||
end: {
|
||||
x: Math.min(measurementData.handles.start.x, measurementData.handles.end.x),
|
||||
y: Math.min(measurementData.handles.start.y, measurementData.handles.end.y),
|
||||
highlight: true,
|
||||
active: false
|
||||
},
|
||||
textBox: {
|
||||
x: measurementData.handles.textBox.x,
|
||||
y: measurementData.handles.textBox.y,
|
||||
active: false,
|
||||
movesIndependently: false,
|
||||
drawnIndependently: true,
|
||||
allowedOutsideImage: true,
|
||||
hasBoundingBox: true
|
||||
}
|
||||
};
|
||||
|
||||
// Adds lesion data to timepoints array
|
||||
LesionManager.updateLesionData(newMeasurement);
|
||||
|
||||
// Set the new Measurement to have the same location as the old one
|
||||
if (measurement.location && measurement.locationId) {
|
||||
var existingMeasurement = Measurements.findOne({
|
||||
lesionNumber: newMeasurement.lesionNumber,
|
||||
isTarget: newMeasurement.isTarget
|
||||
});
|
||||
|
||||
if (!existingMeasurement) {
|
||||
return;
|
||||
}
|
||||
|
||||
Measurements.update(existingMeasurement._id, {
|
||||
$set: {
|
||||
location: measurement.location,
|
||||
locationId: measurement.locationId
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (measurement) {
|
||||
// Remove the timepointData from this Measurement and update it
|
||||
// in the database, if it is already in the database
|
||||
clearMeasurementTimepointData(measurement._id, measurementData.timepointId);
|
||||
}
|
||||
};
|
||||
@ -144,6 +144,7 @@ Package.onUse(function(api) {
|
||||
api.addFiles('lib/deactivateAllToolData.js', 'client');
|
||||
api.addFiles('lib/clearTools.js', 'client');
|
||||
api.addFiles('lib/calculateTotalLesionBurden.js', 'client');
|
||||
api.addFiles('lib/convertToNonTarget.js', 'client');
|
||||
|
||||
api.addFiles('lib/syncMeasurementAndToolData.js', 'client');
|
||||
api.addFiles('lib/syncImageMeasurementAndToolData.js', 'client');
|
||||
@ -174,6 +175,7 @@ Package.onUse(function(api) {
|
||||
api.export('getTimepointName', 'client');
|
||||
api.export('getTrialCriteriaConstraints', 'client');
|
||||
api.export('calculateTotalLesionBurden', 'client');
|
||||
api.export('convertToNonTarget', 'client');
|
||||
|
||||
// Export global objects
|
||||
api.export('TrialResponseCriteria', 'client');
|
||||
|
||||
Loading…
Reference in New Issue
Block a user