Skip to content

Commit 8607377

Browse files
committed
Dynamically calculate sample identifiers in study view filter helper
1 parent 0bc04ff commit 8607377

File tree

3 files changed

+11
-14
lines changed

3 files changed

+11
-14
lines changed

src/main/java/org/cbioportal/persistence/helper/StudyViewFilterHelper.java

+7-9
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ public static StudyViewFilterHelper build(@Nullable StudyViewFilter studyViewFil
5555
private final StudyViewFilter studyViewFilter;
5656
private final CategorizedGenericAssayDataCountFilter categorizedGenericAssayDataCountFilter;
5757
private final List<CustomSampleIdentifier> customDataSamples;
58-
private final String[] filteredSampleIdentifiers;
5958
private final List<String> involvedCancerStudies;
6059

6160
private StudyViewFilterHelper(@NonNull StudyViewFilter studyViewFilter,
@@ -66,13 +65,6 @@ private StudyViewFilterHelper(@NonNull StudyViewFilter studyViewFilter,
6665
this.categorizedGenericAssayDataCountFilter = extractGenericAssayDataCountFilters(studyViewFilter, genericAssayProfilesMap);
6766
this.customDataSamples = customDataSamples;
6867
this.involvedCancerStudies = involvedCancerStudies;
69-
if (studyViewFilter != null && studyViewFilter.getSampleIdentifiers() != null) {
70-
this.filteredSampleIdentifiers = studyViewFilter.getSampleIdentifiers().stream()
71-
.map(sampleIdentifier -> sampleIdentifier.getStudyId() + "_" + sampleIdentifier.getSampleId())
72-
.toArray(String[]::new);
73-
} else {
74-
this.filteredSampleIdentifiers = new String[0];
75-
}
7668
}
7769

7870
public StudyViewFilter studyViewFilter() {
@@ -88,7 +80,13 @@ public List<CustomSampleIdentifier> customDataSamples() {
8880
}
8981

9082
public String[] filteredSampleIdentifiers() {
91-
return this.filteredSampleIdentifiers;
83+
if (studyViewFilter != null && studyViewFilter.getSampleIdentifiers() != null) {
84+
return studyViewFilter.getSampleIdentifiers().stream()
85+
.map(sampleIdentifier -> sampleIdentifier.getStudyId() + "_" + sampleIdentifier.getSampleId())
86+
.toArray(String[]::new);
87+
} else {
88+
return new String[0];
89+
}
9290
}
9391

9492
public List<String> involvedCancerStudies() {

src/main/java/org/cbioportal/web/parameter/CustomSampleIdentifier.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ public class CustomSampleIdentifier extends SampleIdentifier implements Serializ
66

77
private boolean isFilteredOut = false;
88
private String value;
9-
109
private String uniqueSampleId;
1110

1211
public boolean getIsFilteredOut() {
@@ -32,6 +31,6 @@ public String getUniqueSampleId() {
3231
if (getStudyId() != null && getSampleId() != null) {
3332
return getStudyId() + "_" + getSampleId();
3433
}
35-
return null; // or return a default value if either studyId or sampleId is null
34+
return null; // or return null if either studyId or sampleId is null
3635
}
3736
}

src/main/resources/org/cbioportal/persistence/mybatisclickhouse/StudyViewFilterMapper.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,14 @@
6060
)
6161

6262
</if>
63-
64-
<if test="studyViewFilterHelper.filteredSampleIdentifiers != null and studyViewFilterHelper.filteredSampleIdentifiers.length > 0">
63+
<bind name="filteredSampleIdentifiers" value="studyViewFilterHelper.filteredSampleIdentifiers()" />
64+
<if test="filteredSampleIdentifiers != null and filteredSampleIdentifiers.length > 0">
6565
INTERSECT
6666
SELECT sample_unique_id
6767
FROM sample_derived
6868
WHERE sample_unique_id IN
6969
(
70-
#{studyViewFilterHelper.filteredSampleIdentifiers, typeHandler=org.apache.ibatis.type.ArrayTypeHandler}
70+
#{filteredSampleIdentifiers, typeHandler=org.apache.ibatis.type.ArrayTypeHandler}
7171
)
7272
</if>
7373
<if test="studyViewFilterHelper.studyViewFilter.customDataFilters != null and !studyViewFilterHelper.studyViewFilter.customDataFilters.isEmpty() and studyViewFilterHelper.customDataSamples != null">

0 commit comments

Comments
 (0)