diff --git a/api/models/Images.js b/api/models/Images.js index ad7f79b..15e538d 100644 --- a/api/models/Images.js +++ b/api/models/Images.js @@ -134,24 +134,16 @@ module.exports = { filterByWic: async function(imageList, wicMin, wicMax) { if (wicMin === -99999999 && wicMax === 99999999) return imageList; - let result = []; - const set = new Set(); - for (const image of imageList) { - let imagesWithWic = await Annotations.find({ - imageId : image.id, - }); - imagesWithWic = imagesWithWic || []; - if (!imagesWithWic.length) continue; - for(const wic of imagesWithWic) { - if (wic.wicConfidence >= wicMin && wic.wicConfidence <= wicMax) { - if(!set.has(image.id)) { - result.push(image); - set.add(image.id); - } - break; - } - } - } + + const imageIds = imageList.map(data => data.id); + const annotations = await Annotations.find({ + imageId: { in: imageIds}, + wicConfidence: { ">=": wicMin, "<=": wicMax} + }); + + const imageIdSet = new Set(annotations.map(annotation => annotation.imageId)); + const result = imageList.filter(image => imageIdSet.has(image.id)); + return result; } diff --git a/assets/js/main.js b/assets/js/main.js index 38d7bbe..40ab8e3 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -696,6 +696,7 @@ window.imageSelectionFormSavedInputs = {}; window.imageSelectionFormUnsavedCount = 0; window.imageSelectionFormSavedCount = 0; const imageSelectionFormChange = async () => { + $('#filteredImageCountModal').html('
Loading...
'); let labels = []; const formData = new FormData(document.getElementById('imageSelectionForm')); const formValues = {};