-
Notifications
You must be signed in to change notification settings - Fork 487
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'refs/heads/demo-rfc80-poc' into demo-rfc80-poc-mutation…
…_type_count # Conflicts: # src/main/java/org/cbioportal/persistence/StudyViewRepository.java # src/main/java/org/cbioportal/persistence/mybatisclickhouse/StudyViewMapper.java # src/main/java/org/cbioportal/persistence/mybatisclickhouse/StudyViewMyBatisRepository.java # src/main/java/org/cbioportal/service/StudyViewColumnarService.java # src/main/java/org/cbioportal/service/impl/StudyViewColumnarServiceImpl.java # src/main/java/org/cbioportal/web/columnar/StudyViewColumnStoreController.java # src/main/resources/db-scripts/clickhouse/clickhouse.sql # src/main/resources/org/cbioportal/persistence/mybatisclickhouse/StudyViewMapper.xml
- Loading branch information
Showing
23 changed files
with
978 additions
and
277 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
package org.cbioportal.model; | ||
|
||
import java.io.Serializable; | ||
|
||
public record PatientTreatment (String treatment, int count) implements Serializable { | ||
|
||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/org/cbioportal/model/PatientTreatmentReport.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package org.cbioportal.model; | ||
|
||
import java.io.Serializable; | ||
import java.util.Collections; | ||
import java.util.List; | ||
|
||
public record PatientTreatmentReport (int totalPatients, int totalSamples, List<PatientTreatment> patientTreatments) implements Serializable { | ||
public PatientTreatmentReport(int totalPatients, int totalSamples) { | ||
this(totalPatients, totalSamples, Collections.emptyList()); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
78 changes: 78 additions & 0 deletions
78
src/main/java/org/cbioportal/persistence/helper/StudyViewFilterHelper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
package org.cbioportal.persistence.helper; | ||
|
||
import org.cbioportal.model.ClinicalAttribute; | ||
import org.cbioportal.persistence.enums.ClinicalAttributeDataSource; | ||
import org.cbioportal.web.parameter.CategorizedClinicalDataCountFilter; | ||
import org.cbioportal.web.parameter.StudyViewFilter; | ||
import org.springframework.lang.NonNull; | ||
import org.springframework.lang.Nullable; | ||
|
||
import java.util.EnumMap; | ||
import java.util.List; | ||
import java.util.Map; | ||
import java.util.Objects; | ||
|
||
public class StudyViewFilterHelper { | ||
public static StudyViewFilterHelper build(@Nullable StudyViewFilter studyViewFilter, @Nullable EnumMap<ClinicalAttributeDataSource, List<ClinicalAttribute>> clinicalAttributesMap) { | ||
if (Objects.isNull(studyViewFilter)) { | ||
studyViewFilter = new StudyViewFilter(); | ||
} | ||
if (Objects.isNull(clinicalAttributesMap)) { | ||
clinicalAttributesMap = new EnumMap<>(ClinicalAttributeDataSource.class); | ||
} | ||
return new StudyViewFilterHelper(studyViewFilter, clinicalAttributesMap); | ||
} | ||
|
||
private final StudyViewFilter studyViewFilter; | ||
private final CategorizedClinicalDataCountFilter categorizedClinicalDataCountFilter; | ||
|
||
|
||
private StudyViewFilterHelper(@NonNull StudyViewFilter studyViewFilter, @NonNull Map<ClinicalAttributeDataSource, List<ClinicalAttribute>> clinicalAttributesMap ) { | ||
this.studyViewFilter = studyViewFilter; | ||
this.categorizedClinicalDataCountFilter = extractClinicalDataCountFilters(studyViewFilter, clinicalAttributesMap); | ||
} | ||
|
||
private CategorizedClinicalDataCountFilter extractClinicalDataCountFilters(final StudyViewFilter studyViewFilter, Map<ClinicalAttributeDataSource, List<ClinicalAttribute>> clinicalAttributesMap) { | ||
|
||
if (studyViewFilter.getClinicalDataFilters() == null || clinicalAttributesMap.isEmpty()) { | ||
return CategorizedClinicalDataCountFilter.getBuilder().build(); | ||
} | ||
|
||
List<String> patientCategoricalAttributes = clinicalAttributesMap.get(ClinicalAttributeDataSource.PATIENT) | ||
.stream().filter(ca -> ca.getDatatype().equals("STRING")) | ||
.map(ClinicalAttribute::getAttrId) | ||
.toList(); | ||
|
||
List<String> patientNumericalAttributes = clinicalAttributesMap.get(ClinicalAttributeDataSource.PATIENT) | ||
.stream().filter(ca -> ca.getDatatype().equals("NUMBER")) | ||
.map(ClinicalAttribute::getAttrId) | ||
.toList(); | ||
|
||
List<String> sampleCategoricalAttributes = clinicalAttributesMap.get(ClinicalAttributeDataSource.SAMPLE) | ||
.stream().filter(ca -> ca.getDatatype().equals("STRING")) | ||
.map(ClinicalAttribute::getAttrId) | ||
.toList(); | ||
|
||
List<String> sampleNumericalAttributes = clinicalAttributesMap.get(ClinicalAttributeDataSource.SAMPLE) | ||
.stream().filter(ca -> ca.getDatatype().equals("NUMBER")) | ||
.map(ClinicalAttribute::getAttrId) | ||
.toList(); | ||
|
||
return CategorizedClinicalDataCountFilter.getBuilder() | ||
.setPatientCategoricalClinicalDataFilters(studyViewFilter.getClinicalDataFilters() | ||
.stream().filter(clinicalDataFilter -> patientCategoricalAttributes.contains(clinicalDataFilter.getAttributeId())) | ||
.toList()) | ||
.setPatientNumericalClinicalDataFilters(studyViewFilter.getClinicalDataFilters().stream() | ||
.filter(clinicalDataFilter -> patientNumericalAttributes.contains(clinicalDataFilter.getAttributeId())) | ||
.toList()) | ||
.setSampleCategoricalClinicalDataFilters(studyViewFilter.getClinicalDataFilters().stream() | ||
.filter(clinicalDataFilter -> sampleCategoricalAttributes.contains(clinicalDataFilter.getAttributeId())) | ||
.toList()) | ||
.setSampleNumericalClinicalDataFilters(studyViewFilter.getClinicalDataFilters().stream() | ||
.filter(clinicalDataFilter -> sampleNumericalAttributes.contains(clinicalDataFilter.getAttributeId())) | ||
.toList()) | ||
.build(); | ||
} | ||
|
||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.