36 lines
1.3 KiB
JavaScript
36 lines
1.3 KiB
JavaScript
import { OHIF } from 'meteor/ohif:core';
|
|
|
|
OHIF.measurements.saveMeasurements = (measurementApi, timepointId) => {
|
|
const { unsavedChanges, notifications, showDialog } = OHIF.ui;
|
|
const basePath = `viewer.studyViewer.measurements.${timepointId}`;
|
|
|
|
// Stop here if there are nonconformities in the timepoints
|
|
const nonconformities = OHIF.viewer.conformanceCriteria.nonconformities.get();
|
|
if (nonconformities.length) return;
|
|
|
|
// Stop here if there were no changes to the timepoint
|
|
if (unsavedChanges.probe(basePath) === 0) return;
|
|
|
|
// Clear unsaved changes state and display success message
|
|
const successHandler = () => {
|
|
unsavedChanges.clear(basePath, true);
|
|
notifications.success({ text: 'The measurement data was successfully saved' });
|
|
};
|
|
|
|
// Display the error messages
|
|
const errorHandler = data => {
|
|
showDialog('dialogInfo', Object.assign({ class: 'themed' }, data));
|
|
};
|
|
|
|
// Call the storage method and display a loading overlay
|
|
const promise = measurementApi.storeMeasurements(timepointId);
|
|
promise.then(successHandler).catch(errorHandler);
|
|
showDialog('dialogLoading', {
|
|
promise,
|
|
text: 'Saving measurement data'
|
|
});
|
|
|
|
// Return the save promise
|
|
return promise;
|
|
};
|