diff --git a/LesionTracker/client/lib/customCommands.js b/LesionTracker/client/lib/customCommands.js
index 776d5804c..65e8057d3 100644
--- a/LesionTracker/client/lib/customCommands.js
+++ b/LesionTracker/client/lib/customCommands.js
@@ -21,7 +21,7 @@ Meteor.startup(() => {
name: 'UN Target'
}];
customTools.forEach(tool => {
- _.defaults(OHIF.hotkeys.defaults.viewer, { [tool.id]: '' });
+ _.defaults(OHIF.hotkeys.defaults[contextName], { [tool.id]: '' });
OHIF.commands.register(contextName, tool.id, {
name: tool.name,
action: tool.action || (() => toolManager.setActiveTool(tool.id))
@@ -35,10 +35,36 @@ Meteor.startup(() => {
action: OHIF.viewerbase.viewportUtils.linkStackScroll
}];
customCommands.forEach(command => {
- _.defaults(OHIF.hotkeys.defaults.viewer, { [command.id]: '' });
+ _.defaults(OHIF.hotkeys.defaults[contextName], { [command.id]: '' });
OHIF.commands.register(contextName, command.id, {
name: command.name,
action: command.action || (() => toolManager.setActiveTool(command.id))
});
});
+
+ // Add the save command
+ OHIF.commands.register(contextName, 'storeMeasurements', () => {
+ // Register the hotkey default
+ _.defaults(OHIF.hotkeys.defaults[contextName], { storeMeasurements: '' });
+
+ // Clear signaled unsaved changes...
+ const successHandler = () => {
+ OHIF.ui.unsavedChanges.clear(`${instance.path}.*`);
+ instance.saveObserver.changed();
+ };
+
+ // Display the error messages
+ const errorHandler = data => {
+ OHIF.ui.showDialog('dialogInfo', Object.assign({ class: 'themed' }, data));
+ };
+
+ const promise = OHIF.viewer.measurementApi.storeMeasurements();
+ promise.then(successHandler).catch(errorHandler);
+ OHIF.ui.showDialog('dialogLoading', {
+ promise,
+ text: 'Saving measurement data'
+ });
+
+ return promise;
+ });
});
diff --git a/Packages/ohif-measurements/client/components/longitudinal/index.js b/Packages/ohif-measurements/client/components/longitudinal/index.js
index a0f9e99c6..43398f973 100644
--- a/Packages/ohif-measurements/client/components/longitudinal/index.js
+++ b/Packages/ohif-measurements/client/components/longitudinal/index.js
@@ -3,6 +3,7 @@ import './longitudinalStudyListStudy/longitudinalStudyListStudy.html';
import './longitudinalStudyListStudy/longitudinalStudyListStudy.styl';
import './longitudinalStudyListStudy/longitudinalStudyListStudy.js';
+import './longitudinalViewportOverlay/imageViewportIcons.html';
import './longitudinalViewportOverlay/longitudinalViewportOverlay.html';
import './longitudinalViewportOverlay/longitudinalViewportOverlay.js';
diff --git a/Packages/ohif-measurements/client/components/longitudinal/longitudinalViewportOverlay/imageViewportIcons.html b/Packages/ohif-measurements/client/components/longitudinal/longitudinalViewportOverlay/imageViewportIcons.html
new file mode 100644
index 000000000..7b6bf52f8
--- /dev/null
+++ b/Packages/ohif-measurements/client/components/longitudinal/longitudinalViewportOverlay/imageViewportIcons.html
@@ -0,0 +1 @@
+
diff --git a/Packages/ohif-measurements/client/components/longitudinal/longitudinalViewportOverlay/longitudinalViewportOverlay.html b/Packages/ohif-measurements/client/components/longitudinal/longitudinalViewportOverlay/longitudinalViewportOverlay.html
index 8e5400da5..6b966cccd 100644
--- a/Packages/ohif-measurements/client/components/longitudinal/longitudinalViewportOverlay/longitudinalViewportOverlay.html
+++ b/Packages/ohif-measurements/client/components/longitudinal/longitudinalViewportOverlay/longitudinalViewportOverlay.html
@@ -9,13 +9,14 @@
{{studyDescription}}
{{formatDA studyDate}} {{formatTM studyTime}}
- {{#if linked}}
-
+
+ {{>imageViewportIcons this}}
+ {{#if linked}}
-
- {{/if}}
+ {{/if}}
+
{{#if zoom}}Zoom: {{formatNumberPrecision zoom 0}}%{{/if}}
diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js b/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js
index 86355bc3f..faa7c4346 100644
--- a/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js
+++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js
@@ -94,7 +94,10 @@ Template.measurementTableRow.events({
_.each($('.imageViewerViewport'), element => cornerstone.updateImage(element));
// Notify that viewer suffered changes
- OHIF.ui.unsavedChanges.set('viewer.studyViewer.measurements.deleted');
+ const { timepointId } = measurement;
+ const basePath = 'viewer.studyViewer.measurements';
+ const timepointPath = timepointId ? `.${timepointId}` : '';
+ OHIF.ui.unsavedChanges.set(`${basePath}${timepointPath}.deleted`);
});
}
});
diff --git a/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleChildMeasurementAdded.js b/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleChildMeasurementAdded.js
index de0d86d98..b6eeaf3ee 100644
--- a/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleChildMeasurementAdded.js
+++ b/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleChildMeasurementAdded.js
@@ -90,5 +90,8 @@ export default function ({ instance, eventData, tool, toolGroupId, toolGroup })
}
// Signal unsaved changes
- OHIF.ui.unsavedChanges.set('viewer.studyViewer.measurements.' + eventData.toolType);
+ const { timepointId } = Collection.findOne(measurementData._id);
+ const basePath = 'viewer.studyViewer.measurements';
+ const timepointPath = timepointId ? `.${timepointId}` : '';
+ OHIF.ui.unsavedChanges.set(`${basePath}${timepointPath}.${eventData.toolType}`);
}
diff --git a/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleChildMeasurementModified.js b/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleChildMeasurementModified.js
index cf7ab4e10..b5b4e593e 100644
--- a/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleChildMeasurementModified.js
+++ b/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleChildMeasurementModified.js
@@ -36,5 +36,8 @@ export default function ({ instance, eventData, tool, toolGroupId, toolGroup })
Collection.update(measurement._id, { $set: { [tool.attribute]: childMeasurement } });
// Signal unsaved changes
- OHIF.ui.unsavedChanges.set('viewer.studyViewer.measurements.' + eventData.toolType);
+ const { timepointId } = Collection.findOne(measurementData._id);
+ const basePath = 'viewer.studyViewer.measurements';
+ const timepointPath = timepointId ? `.${timepointId}` : '';
+ OHIF.ui.unsavedChanges.set(`${basePath}${timepointPath}.${eventData.toolType}`);
}
diff --git a/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleChildMeasurementRemoved.js b/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleChildMeasurementRemoved.js
index 817b9610d..d30f4d7ab 100644
--- a/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleChildMeasurementRemoved.js
+++ b/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleChildMeasurementRemoved.js
@@ -36,5 +36,8 @@ export default function ({ instance, eventData, tool, toolGroupId, toolGroup })
_.each($('.imageViewerViewport'), element => cornerstone.updateImage(element));
// Signal unsaved changes
- OHIF.ui.unsavedChanges.set('viewer.studyViewer.measurements.' + eventData.toolType);
+ const { timepointId } = Collection.findOne(measurementData._id);
+ const basePath = 'viewer.studyViewer.measurements';
+ const timepointPath = timepointId ? `.${timepointId}` : '';
+ OHIF.ui.unsavedChanges.set(`${basePath}${timepointPath}.${eventData.toolType}`);
}
diff --git a/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleSingleMeasurementAdded.js b/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleSingleMeasurementAdded.js
index f5bc1ad2e..27b14c214 100644
--- a/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleSingleMeasurementAdded.js
+++ b/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleSingleMeasurementAdded.js
@@ -49,5 +49,8 @@ export default function ({ instance, eventData, tool }) {
});
// Signal unsaved changes
- OHIF.ui.unsavedChanges.set('viewer.studyViewer.measurements.' + eventData.toolType);
+ const { timepointId } = Collection.findOne(measurementData._id);
+ const basePath = 'viewer.studyViewer.measurements';
+ const timepointPath = timepointId ? `.${timepointId}` : '';
+ OHIF.ui.unsavedChanges.set(`${basePath}${timepointPath}.${eventData.toolType}`);
}
diff --git a/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleSingleMeasurementModified.js b/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleSingleMeasurementModified.js
index dfe9ce9e8..d689e656e 100644
--- a/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleSingleMeasurementModified.js
+++ b/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleSingleMeasurementModified.js
@@ -38,5 +38,8 @@ export default function ({ instance, eventData, tool, toolGroupId, toolGroup })
Collection.update(measurementId, { $set: measurement });
// Signal unsaved changes
- OHIF.ui.unsavedChanges.set('viewer.studyViewer.measurements.' + eventData.toolType);
+ const { timepointId } = Collection.findOne(measurementData._id);
+ const basePath = 'viewer.studyViewer.measurements';
+ const timepointPath = timepointId ? `.${timepointId}` : '';
+ OHIF.ui.unsavedChanges.set(`${basePath}${timepointPath}.${eventData.toolType}`);
}
diff --git a/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleSingleMeasurementRemoved.js b/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleSingleMeasurementRemoved.js
index 3084f1b21..0d70db365 100644
--- a/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleSingleMeasurementRemoved.js
+++ b/Packages/ohif-measurements/client/lib/MeasurementHandlers/handleSingleMeasurementRemoved.js
@@ -33,5 +33,7 @@ export default function({ instance, eventData, tool, toolGroupId, toolGroup }) {
_.each($('.imageViewerViewport'), element => cornerstone.updateImage(element));
// Signal unsaved changes
- OHIF.ui.unsavedChanges.set('viewer.studyViewer.measurements.' + eventData.toolType);
+ const basePath = 'viewer.studyViewer.measurements';
+ const timepointPath = timepointId ? `.${timepointId}` : '';
+ OHIF.ui.unsavedChanges.set(`${basePath}${timepointPath}.${eventData.toolType}`);
}
diff --git a/Packages/ohif-measurements/client/lib/toggleLabelButton.js b/Packages/ohif-measurements/client/lib/toggleLabelButton.js
index 0acb51e2e..6c5a041c8 100644
--- a/Packages/ohif-measurements/client/lib/toggleLabelButton.js
+++ b/Packages/ohif-measurements/client/lib/toggleLabelButton.js
@@ -60,7 +60,10 @@ OHIF.measurements.toggleLabelButton = options => {
options.measurement.description = description;
// Notify that viewer suffered changes
- OHIF.ui.unsavedChanges.set('viewer.studyViewer.measurements.renamed');
+ const { timepointId } = measurement;
+ const basePath = 'viewer.studyViewer.measurements';
+ const timepointPath = timepointId ? `.${timepointId}` : '';
+ OHIF.ui.unsavedChanges.set(`${basePath}${timepointPath}.renamed`);
}
};
buttonView = Blaze.renderWithData(Template.measureFlow, data, document.body);
diff --git a/Packages/ohif-viewerbase/client/components/viewer/viewportOverlay/viewportOverlay.styl b/Packages/ohif-viewerbase/client/components/viewer/viewportOverlay/viewportOverlay.styl
index 91b3ec981..c7e69a2a6 100644
--- a/Packages/ohif-viewerbase/client/components/viewer/viewportOverlay/viewportOverlay.styl
+++ b/Packages/ohif-viewerbase/client/components/viewer/viewportOverlay/viewportOverlay.styl
@@ -48,4 +48,3 @@ $viewportTagPadding = 20px
margin: 2px
width: 18px
height: 18px
-
\ No newline at end of file