Skip to content

Commit

Permalink
Remove unused methods
Browse files Browse the repository at this point in the history
  • Loading branch information
haynescd committed Oct 16, 2024
1 parent 3338a3d commit 471b45a
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 144 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -110,17 +110,7 @@ public Map<String, ClinicalDataType> getClinicalAttributeDatatypeMap() {

@Override
public List<ClinicalDataCountItem> getClinicalDataCounts(StudyViewFilter studyViewFilter, List<String> filteredAttributes) {
StudyViewFilterContext studyViewFilterContext = createContext(studyViewFilter);
//List<ClinicalDataCount> dataCounts = studyViewRepository.getClinicalDataCounts(studyViewFilterContext, filteredAttributes);
//List<ClinicalDataCountItem> clinicalDataCountItems = generateDataCountItemsFromDataCounts(dataCounts);
return studyViewRepository.getClinicalDataCounts(studyViewFilterContext, filteredAttributes);
// return calculateMissingNaCountsForClinicalDataCountItems(
// clinicalDataCountItems,
// filteredAttributes,
// this.getClinicalAttributeDatatypeMap(),
// studyViewRepository.getFilteredSamplesCount(studyViewFilterContext),
// studyViewRepository.getFilteredPatientCount(studyViewFilterContext)
// );
return studyViewRepository.getClinicalDataCounts(createContext(studyViewFilter), filteredAttributes);
}

@Override
Expand Down Expand Up @@ -239,83 +229,6 @@ private List<ClinicalDataCount> normalizeDataCounts(List<ClinicalDataCount> data
return new ArrayList<>(normalizedDataCounts);
}

public static List<ClinicalDataCountItem> calculateMissingNaCountsForClinicalDataCountItems(
List<ClinicalDataCountItem> clinicalDataCountItems,
List<String> filteredAttributes,
Map<String, ClinicalDataType> clinicalAttributeDatatypeMap,
int filteredSamplesCount,
int filteredPatientsCount
) {
// Postprocess clinical data count items to adjust NA counts
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()
.map(ClinicalDataCount::getCount)
.reduce(0, Integer::sum);
// depending on clinical data type we either use filtered sample count or filtered patient count
int filteredCount = clinicalAttributeDatatypeMap.get(clinicalDataCountItem.getAttributeId()) == ClinicalDataType.SAMPLE ?
filteredSamplesCount: filteredPatientsCount;
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" or else create a new one
Optional<ClinicalDataCount> naClinicalDataCountOptional = clinicalDataCountItem
.getCounts()
.stream()
.filter(c -> c.getValue().equals("NA"))
.findFirst();

ClinicalDataCount naClinicalDataCount = naClinicalDataCountOptional
.orElseGet(() -> {
// this should only happen when there are multiple studies
ClinicalDataCount count = new ClinicalDataCount();
count.setAttributeId(attributeId);
count.setValue("NA");
count.setCount(0);
return count;
});

// if not present we need to add naClinicalDataCount to the existing counts
if (naClinicalDataCountOptional.isEmpty()) {
clinicalDataCountItem.getCounts().add(naClinicalDataCount);
}

naClinicalDataCount.setCount(naClinicalDataCount.getCount() + casesWithoutClinicalData);
}
}

combinedClinicalDataCountItems.addAll(clinicalDataCountItems);
return combinedClinicalDataCountItems;
}

public static List<CaseListDataCount> mergeCaseListCounts(List<CaseListDataCount> counts) {
Map<String, List<CaseListDataCount>> countsPerListType = counts.stream()
.collect((Collectors.groupingBy(CaseListDataCount::getValue)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -226,62 +226,6 @@
)
</sql>

<sql id="getClinicalDataCountsQuerySample">
SELECT
attribute_name as attributeId,
<include refid="normalizeAttributeValue">
<property name="attribute_value" value="attribute_value"/>
</include> as value,
count(value) as count
FROM clinical_data_derived
<where>
type='sample' AND
<include refid="applyStudyViewFilter">
<property name="filter_type" value="'SAMPLE_ID_ONLY'"/>
</include>
<if test="filteredAttributeValues != null and !filteredAttributeValues.isEmpty()">
AND UPPER(value) NOT IN
<foreach item="filteredAttributeValue" collection="filteredAttributeValues" open="(" separator="," close=")">
#{filteredAttributeValue}
</foreach>
</if>
AND attribute_name IN
<foreach item="attributeId" collection="attributeIds" open="(" separator="," close=")">
#{attributeId}
</foreach>
</where>
GROUP BY attribute_name,
value
</sql>

<sql id="getClinicalDataCountsQueryPatient">
SELECT
attribute_name as attributeId,
<include refid="normalizeAttributeValue">
<property name="attribute_value" value="attribute_value"/>
</include> as value,
count(value) as count
FROM clinical_data_derived
<where>
type='patient' AND
<include refid="applyStudyViewFilter">
<property name="filter_type" value="'PATIENT_ID_ONLY'"/>
</include>
<if test="filteredAttributeValues != null and !filteredAttributeValues.isEmpty()">
AND UPPER(value) NOT IN
<foreach item="filteredAttributeValue" collection="filteredAttributeValues" open="(" separator="," close=")">
#{filteredAttributeValue}
</foreach>
</if>
AND attribute_name IN
<foreach item="attributeId" collection="attributeIds" open="(" separator="," close=")">
#{attributeId}
</foreach>
</where>
GROUP BY attribute_name,
value
</sql>

<sql id="getTotalSampleCount">
SELECT count(distinct sample_unique_id) as count
FROM sample_derived
Expand Down

0 comments on commit 471b45a

Please sign in to comment.