Skip to content

Commit

Permalink
make sure to go over all filtered attributes
Browse files Browse the repository at this point in the history
  • Loading branch information
onursumer committed Sep 10, 2024
1 parent 599ab3c commit 898020a
Showing 1 changed file with 32 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,28 @@ public List<ClinicalDataCountItem> getClinicalDataCounts(StudyViewFilter studyVi
return item;
}).toList();

// This is postprocessing to adjust NA counts for multiple studies
for (ClinicalDataCountItem clinicalDataCountItem: clinicalDataCountItems) {
// This rest of the code is postprocessing to adjust NA counts for multiple studies
List<ClinicalDataCountItem> combinedClinicalDataCountItems = new ArrayList<>();

Map<String, ClinicalDataCountItem> clinicalDataCountItemMap = clinicalDataCountItems
.stream()
.collect(Collectors.toMap(
ClinicalDataCountItem::getAttributeId,
item -> item
));

// go over all filtered attributes, not just attributes found in clinicalDataCountItems
for (String attributeId: filteredAttributes) {
ClinicalDataCountItem clinicalDataCountItem = clinicalDataCountItemMap.get(attributeId);
boolean isItemMissing = false;

if (clinicalDataCountItem == null) {
isItemMissing = true;
clinicalDataCountItem = new ClinicalDataCountItem();
clinicalDataCountItem.setAttributeId(attributeId);
clinicalDataCountItem.setCounts(new ArrayList<>());
}

Integer totalClinicalDataCount = clinicalDataCountItem
.getCounts()
.stream()
Expand All @@ -126,6 +146,13 @@ public List<ClinicalDataCountItem> getClinicalDataCounts(StudyViewFilter studyVi
int casesWithoutClinicalData = filteredCount - totalClinicalDataCount;

if (casesWithoutClinicalData > 0) {
// some of these attributes may be completely missing in clinicalDataCountItem
// in case the only attribute value is NA.
// we need to manually add those missing items to make sure we have NA counts.
if (isItemMissing) {
combinedClinicalDataCountItems.add(clinicalDataCountItem);
}

// find "NA"
ClinicalDataCount naClinicalDataCount = clinicalDataCountItem
.getCounts()
Expand All @@ -150,7 +177,9 @@ public List<ClinicalDataCountItem> getClinicalDataCounts(StudyViewFilter studyVi
}
}

return clinicalDataCountItems;
combinedClinicalDataCountItems.addAll(clinicalDataCountItems);

return combinedClinicalDataCountItems;
}

@Override
Expand Down

0 comments on commit 898020a

Please sign in to comment.