25 lines
936 B
JavaScript
25 lines
936 B
JavaScript
import { OHIF } from 'meteor/ohif:core';
|
|
|
|
OHIF.measurements.isSaveDisabled = timepointId => {
|
|
const basePath = `viewer.studyViewer.measurements.${timepointId}`;
|
|
|
|
// Get the timepoint object
|
|
const timepoint = OHIF.viewer.timepointApi.timepoints.findOne({ timepointId });
|
|
|
|
// Check if the timepoint is locked
|
|
let isLocked = (timepoint && timepoint.isLocked);
|
|
if (typeof isLocked === 'undefined') {
|
|
isLocked = true;
|
|
}
|
|
|
|
// Check if the given timepoint suffered changes
|
|
const hasChanges = OHIF.ui.unsavedChanges.probe(basePath) !== 0;
|
|
|
|
// Check if the given timepoint has nonconformities
|
|
const nonconformities = OHIF.viewer.conformanceCriteria.nonconformities.get();
|
|
const hasNonconformities = nonconformities && !!nonconformities.length;
|
|
|
|
// Prevent saving if timepoint is locked, has no changes or has nonconformities
|
|
return isLocked || !hasChanges || hasNonconformities;
|
|
};
|