LT-92: Target type criteria

This commit is contained in:
Leonardo Campos 2017-01-13 01:45:10 -02:00 committed by Bruno Alves de Faria
parent 2f73403682
commit bf59802fef
2 changed files with 34 additions and 0 deletions

View File

@ -4,6 +4,7 @@ import { MaxTargetsCriteria } from '../criterias/MaxTargetsCriteria';
import { MeasurementsLengthCriteria } from '../criterias/MeasurementsLengthCriteria';
import { ModalityCriteria } from '../criterias/ModalityCriteria';
import { NonTargetResponseCriteria } from '../criterias/NonTargetResponseCriteria';
import { TargetTypeCriteria } from '../criterias/TargetTypeCriteria';
export class RecistChecker extends BaseChecker {
@ -15,6 +16,7 @@ export class RecistChecker extends BaseChecker {
this.criterias.push(new MeasurementsLengthCriteria({}));
this.criterias.push(new ModalityCriteria(this.getModalityCriteriaOptions()));
this.criterias.push(new NonTargetResponseCriteria());
this.criterias.push(new TargetTypeCriteria());
}
check(data) {

View File

@ -0,0 +1,32 @@
import { BaseCriteria } from './BaseCriteria';
export class TargetTypeCriteria extends BaseCriteria {
constructor() {
super();
}
check(data) {
const items = data.targets;
const measurements = [];
let message;
items.forEach(item => {
const measurement = item.measurement;
const toolType = measurement.toolType.toLowerCase();
const timepoint = item.timepoint;
const timepointType = timepoint.timepointType.toLowerCase();
if ((timepointType === 'baseline') && (toolType !== 'bidirectional')) {
measurements.push(measurement);
}
});
if (measurements.length) {
message = 'Target lesions must have measurements (cannot be assessed as CR, UN/NE, EX)';
}
return this.respond(message, measurements);
}
}