ohif-viewer/Packages/ohif-measurements/client/components/measurementTable/measurementTableHeaderRow/measurementTableHeaderRow.js

73 lines
2.5 KiB
JavaScript
Raw Normal View History

Template.measurementTableHeaderRow.onCreated(() => {
const instance = Template.instance();
instance.maxNumMeasurements = new ReactiveVar();
if (!instance.data.timepointApi) {
return;
}
// Get the current timepoint
const current = instance.data.timepointApi.current();
// Stop here if no timepoint was found
if (!current) {
console.warn('No current timepoint found?');
return;
}
const timepointType = current.timepointType;
// TODO: Check if we have criteria where maximum limits are applied to
// Non-Targets and/or New Lesions
if (timepointType === 'baseline' && instance.data.id === 'target') {
instance.autorun(() => {
// Identify which Trial Conformance Criteria are currently being used
// Note that there may be more than one.
const criteriaTypes = TrialCriteriaTypes.find({
selected: true
}).map(function(criteria) {
return criteria.id;
});
const currentConstraints = OHIF.lesiontracker.getTrialCriteriaConstraints(criteriaTypes);
if (!currentConstraints) {
return;
}
// TODO: Fix Trial Conformance Criteria, it appears that totalNumberOfLesions
// is applied to both Targets and Non-Targets, when it should typically only be
// for Targets
const criteria = currentConstraints[timepointType];
const maxNumMeasurements = criteria.group.totalNumberOfLesions.numericality.lessThanOrEqualTo;
instance.maxNumMeasurements.set(maxNumMeasurements);
});
}
});
Template.measurementTableHeaderRow.helpers({
numberOfMeasurements() {
return Template.instance().data.measurements.length;
},
maxNumMeasurements() {
return Template.instance().maxNumMeasurements.get();
},
anyUnmarkedLesionsLeft() {
const instance = Template.instance();
const measurementType = instance.data.measurementType;
const measurementApi = instance.data.measurementApi;
// TODO: Add selector to check if there are unmarked lesions
//return measurementApi.fetch(measurementType.id).length;
return;
2016-06-07 19:09:47 +02:00
}
});
Template.measurementTableHeaderRow.events({
'click .js-setTool'(event, instance) {
const measurementType = instance.data.measurementType;
toolManager.setActiveTool(measurementType.cornerstoneToolType);
2016-06-07 19:09:47 +02:00
}
});