LT-92: Target type criteria
This commit is contained in:
parent
2f73403682
commit
bf59802fef
@ -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) {
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user