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