LT-291: Allowing non-target removal

This commit is contained in:
Bruno Alves de Faria authored and Erik Ziegler committed 2016-11-15 08:29:46 +01:00
1 parent 28b3b34cfe
commit a715804880
5 files changed
+57 -19

No files matched your search

@@ -1,8 +1,16 @@
<template name="dialogNonTargetMeasurement">
{{#dialogForm (extend this dialogClass='modal-sm' schema=(choose this.schema instance.schema))}}
{{#dialogForm (extend this
dialogClass='modal-sm'
schema=(choose this.schema instance.schema)
api=instance.api
)}}
{{>inputSelect labelClass='form-group' key='location' hideSearch=true
options=(clone placeholder='Choose a lesion location')}}
{{>inputSelect labelClass='form-group' key='response' hideSearch=true
options=(clone placeholder='Choose a lesion location response')}}
{{#if this.edit}}
<hr>
{{#button class='btn btn-danger' action='remove'}}Remove{{/button}}
{{/if}}
{{/dialogForm}}
</template>
@@ -1,34 +1,64 @@
import { Template } from 'meteor/templating';
import { Blaze } from 'meteor/blaze';
import { SimpleSchema } from 'meteor/aldeed:simple-schema';
import { _ } from 'meteor/underscore';
import { OHIF } from 'meteor/ohif:core';
import { FieldLesionLocation, FieldLesionLocationResponse } from 'meteor/ohif:lesiontracker/both/schema/fields';
Template.dialogNonTargetMeasurement.onCreated(() => {
const instance = Template.instance();
instance.measurementTypeId = 'nonTargets';
const measurementData = instance.data.measurementData;
instance.schema = new SimpleSchema({
location: FieldLesionLocation,
response: FieldLesionLocationResponse
});
// Remove the measurement from the collection
instance.removeMeasurement = () => {
instance.viewerData.measurementApi.deleteMeasurements(instance.measurementTypeId, {
_id: measurementData._id
});
// Refresh the image with the measurement removed
cornerstone.updateImage(instance.cornerstoneElement);
};
// Close the current dialog
instance.closeDialog = () => instance.$('.form-action.close').trigger('click');
instance.api = {
// Confirm the deletion of the current non-target measurement
remove() {
const dialogSettings = {
title: 'Remove Measurement',
message: 'Are you sure you want to remove this Non-Target measurement?'
};
OHIF.ui.showFormDialog('dialogConfirm', dialogSettings)
.then(instance.removeMeasurement);
instance.closeDialog();
}
};
});
Template.dialogNonTargetMeasurement.onRendered(() => {
const instance = Template.instance();
const element = instance.data.eventData.element;
instance.cornerstoneElement = instance.data.eventData.element;
const form = instance.$('form').data('component');
const viewerMain = $(element).closest('.viewerMain')[0];
const viewerData = Blaze.getData(viewerMain);
console.warn('>>>>dialogData/viewerData', instance.data, viewerData);
const viewerMain = $(instance.cornerstoneElement).closest('.viewerMain')[0];
instance.viewerData = Blaze.getData(viewerMain);
const measurementApi = viewerData.measurementApi;
const measurementApi = instance.viewerData.measurementApi;
const measurementTypeId = 'nonTargets';
const measurementData = instance.data.measurementData;
const collection = measurementApi[measurementTypeId];
const collection = measurementApi[instance.measurementTypeId];
// Get the current inserted measurement from the collection
const currentMeasurement = collection.findOne({
@@ -42,7 +72,7 @@ Template.dialogNonTargetMeasurement.onRendered(() => {
measurementData.measurementNumber = currentMeasurement.measurementNumber;
// Refresh the image with the measurement number
cornerstone.updateImage(element);
cornerstone.updateImage(instance.cornerstoneElement);
// Delete the measurement from collection when dialog is closed and not on edit mode
instance.data.promise.catch(() => {
@@ -50,12 +80,7 @@ Template.dialogNonTargetMeasurement.onRendered(() => {
return;
}
viewerData.measurementApi.deleteMeasurements('nonTargets', {
_id: measurementData._id
});
// Refresh the image with the measurement removed
cornerstone.updateImage(element);
instance.removeMeasurement();
});
// Update the location and response after confirming the dialog data