LT-297: Implementing delete behavior on measurement table options

This commit is contained in:
Bruno Alves de Faria 2016-11-11 10:32:40 -02:00 committed by Erik Ziegler
parent adb8e76aef
commit 8520b2aea8
4 changed files with 55 additions and 1 deletions

View File

@ -0,0 +1,8 @@
<template name="dialogConfirm">
{{#dialogForm (extend this
dialogClass='modal-sm'
title=(choose this.title 'Confirmation')
)}}
<p>{{choose this.message 'Are you sure you want to perform this action?'}}</p>
{{/dialogForm}}
</template>

View File

@ -1,3 +1,4 @@
import './dialog/confirm.html';
import './dialog/form.html';
import './dialog/form.js';
import './dialog/login.html';

View File

@ -85,7 +85,6 @@ class MeasurementApi {
configuration.measurementTools.forEach(tool => {
const measurements = this[tool.id].find().fetch();
measurements.forEach(measurement => {
console.warn('>>>>MEASUREMENT', measurement);
OHIF.measurements.syncMeasurementAndToolData(measurement);
});
});

View File

@ -1,6 +1,7 @@
import { Meteor } from 'meteor/meteor';
import { Template } from 'meteor/templating';
import { OHIF } from 'meteor/ohif:core';
import { _ } from 'meteor/underscore';
function doneCallback(measurementData, deleteTool) {
// If a Lesion or Non-Target is removed via a dialog
@ -43,6 +44,51 @@ Template.measurementTableRow.events({
});
},
'click .js-delete'(event, instance) {
const measurementTypeId = instance.data.rowItem.measurementTypeId;
const measurement = instance.data.rowItem.entries[0];
const dialogSettings = {
title: 'Delete measurements',
message: 'Are you sure you want to delete the measurement among all timepoints?'
};
OHIF.ui.showFormDialog('dialogConfirm', dialogSettings).then(formData => {
const collection = instance.data.measurementApi[measurementTypeId];
const filter = {
toolType: measurement.toolType,
measurementNumber: measurement.measurementNumber,
patientId: measurement.patientId
};
const entries = collection.find(filter).fetch();
collection.remove(filter);
// Synchronize the new data with cornerstone tools
const toolState = cornerstoneTools.globalImageIdSpecificToolStateManager.toolState;
_.each(entries, entry => {
if (toolState[entry.imageId]) {
const toolData = toolState[entry.imageId][entry.toolType];
const measurementsData = toolData && toolData.data;
const measurementEntry = _.findWhere(measurementsData, {
_id: entry._id
});
if (measurementEntry) {
console.warn('>>>>REMOVING FROM CORNERSTONE', measurementEntry);
const index = measurementsData.indexOf(measurementEntry);
measurementsData.splice(index, 1);
// Repaint the images on all viewports without the removed measurements
_.each($('.imageViewerViewport'), elm => cornerstone.updateImage(elm));
}
}
});
});
},
'dblclick .location'() {
OHIF.log.info('Double clicked on Lesion Location cell');