@infect/infect-rda-sample-storage
Version:
INFECT Sample Storage for RDA
95 lines (89 loc) • 3.26 kB
JavaScript
import FilterFactory from './lib/FilterFactory.js';
import InfectFilter from './InfectFilter.js'
export default class InfectFilterFactory extends FilterFactory {
async load() {
await super.load();
this.FilterConstructor = InfectFilter;
const mapping = [{
filterFieldName: 'dataVersionIds',
modelFieldName: 'dataVersionId',
comparatorName: 'one-of',
voidIsTrue: false,
}, {
filterFieldName: 'fromDate',
modelFieldName: 'sampleCollectionDate',
comparatorName: 'greater-equal-than',
voidIsTrue: false,
}, {
filterFieldName: 'toDate',
modelFieldName: 'sampleCollectionDate',
comparatorName: 'smaller-equal-than',
voidIsTrue: false,
}, {
filterFieldName: 'animalIds',
modelFieldName: 'animalId',
comparatorName: 'one-of',
voidIsTrue: false,
}, {
filterFieldName: 'countryIds',
modelFieldName: 'countryId',
comparatorName: 'one-of',
voidIsTrue: false,
}, {
filterFieldName: 'patientSettingIds',
modelFieldName: 'patientSettingId',
comparatorName: 'one-of',
voidIsTrue: false,
}, {
filterFieldName: 'patientSexIds',
modelFieldName: 'patientSexId',
comparatorName: 'one-of',
voidIsTrue: false,
}, {
filterFieldName: 'regionIds',
modelFieldName: 'regionId',
comparatorName: 'one-of',
voidIsTrue: false,
}, {
filterFieldName: 'sampleSourceIds',
modelFieldName: 'sampleSourceIds',
comparatorName: 'one-of-many',
voidIsTrue: false,
}, {
filterFieldName: 'compoundSubstanceIds',
modelFieldName: 'compoundSubstanceId',
comparatorName: 'one-of',
voidIsTrue: false,
}, {
filterFieldName: 'microorganismIds',
modelFieldName: 'microorganismId',
comparatorName: 'one-of',
voidIsTrue: false,
}, {
filterFieldName: 'dataVersionStatusIdentifier',
modelFieldName: 'dataVersionStatusIdentifier',
comparatorName: 'one-of',
voidIsTrue: false,
}, {
filterFieldName: 'ageGroupIntervals',
comparatorName: 'some-of',
voidIsTrue: false,
children: [{
filterFieldName: '$array-value',
comparatorName: 'all-of',
voidIsTrue: false,
children: [{
filterFieldName: 'daysFrom',
modelFieldName: 'patientAgeRangeFrom',
comparatorName: 'greater-equal-than',
voidIsTrue: false,
}, {
filterFieldName: 'daysTo',
modelFieldName: 'patientAgeRangeTo',
comparatorName: 'smaller-equal-than',
voidIsTrue: false,
}]
}]
}].forEach(mapping => this.registerFilterMapping(mapping));
}
}