LT-406: Baseline conformance checks are getting applied at follow-up

This commit is contained in:
Leonardo Campos 2017-02-09 05:16:39 -02:00
parent e8d8608002
commit cdda919d5a
3 changed files with 14 additions and 9 deletions

View File

@ -13,7 +13,7 @@ Template.measurementTableRow.onCreated(() => {
const nonconformitiesByMeasurementNumbers = nonconformitiesByMeasurementTypeId.measurementNumbers || {}; const nonconformitiesByMeasurementNumbers = nonconformitiesByMeasurementTypeId.measurementNumbers || {};
const nonconformitiesByMeasurementNumber = nonconformitiesByMeasurementNumbers[measurementNumber] || {}; const nonconformitiesByMeasurementNumber = nonconformitiesByMeasurementNumbers[measurementNumber] || {};
return nonconformitiesByMeasurementNumber.messages || []; return _.uniq(nonconformitiesByMeasurementNumber.messages || []);
}; };
}); });

View File

@ -17,7 +17,7 @@ class ConformanceCriteria {
this.maxTargets = new ReactiveVar(null); this.maxTargets = new ReactiveVar(null);
const validate = _.debounce(trialCriteriaType => { const validate = _.debounce(trialCriteriaType => {
if (Session.get('MeasurementsReady')) return; if (!Session.get('MeasurementsReady')) return;
this.validate(trialCriteriaType); this.validate(trialCriteriaType);
}, 300); }, 300);
@ -31,9 +31,14 @@ class ConformanceCriteria {
validate(trialCriteriaType) { validate(trialCriteriaType) {
const baselineData = this.getData('baseline'); const baselineData = this.getData('baseline');
const followupData = this.getData('followup'); const followupData = this.getData('followup');
const mergedData = baselineData; const mergedData = {
targets: [],
nonTargets: []
};
mergedData.targets = mergedData.targets.concat(baselineData.targets);
mergedData.targets = mergedData.targets.concat(followupData.targets); mergedData.targets = mergedData.targets.concat(followupData.targets);
mergedData.nonTargets = mergedData.nonTargets.concat(baselineData.nonTargets);
mergedData.nonTargets = mergedData.nonTargets.concat(followupData.nonTargets); mergedData.nonTargets = mergedData.nonTargets.concat(followupData.nonTargets);
this.maxTargets.set(null); this.maxTargets.set(null);
@ -135,9 +140,9 @@ class ConformanceCriteria {
const { studyInstanceUid, imageId } = measurement; const { studyInstanceUid, imageId } = measurement;
const metadata = this.getImageInstanceMetadata(studyInstanceUid, imageId); const metadata = this.getImageInstanceMetadata(studyInstanceUid, imageId);
const timepointId = measurement.timepointId; const timepointId = measurement.timepointId;
const timepoint = this.timepointApi.timepoints.findOne({ timepointId }); const timepoint = timepointId && this.timepointApi.timepoints.findOne({ timepointId });
if ((timepointType !== 'both') && (timepoint.timepointType !== timepointType)) { if (!timepoint || ((timepointType !== 'both') && (timepoint.timepointType !== timepointType))) {
return; return;
} }

View File

@ -1,6 +1,9 @@
{ {
"both": { "both": {
"Location": {}, "Location": {}
},
"baseline": {
"TargetType": {},
"MaxTargetsPerOrgan": { "MaxTargetsPerOrgan": {
"limit": 2 "limit": 2
}, },
@ -27,8 +30,5 @@
"message": "Nodal lesions must be >= 15mm short axis AND >= double the acquisition slice thickness by CT and MR" "message": "Nodal lesions must be >= 15mm short axis AND >= double the acquisition slice thickness by CT and MR"
}] }]
}, },
"baseline": {
"TargetType": {}
},
"followup": {} "followup": {}
} }