LT-406: Baseline conformance checks are getting applied at follow-up
This commit is contained in:
parent
e8d8608002
commit
cdda919d5a
@ -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 || []);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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": {}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user