diff --git a/src/main/java/org/cbioportal/domain/clinical_data/repository/ClinicalDataRepository.java b/src/main/java/org/cbioportal/domain/clinical_data/repository/ClinicalDataRepository.java index ddaa22538bc..4221941e2c6 100644 --- a/src/main/java/org/cbioportal/domain/clinical_data/repository/ClinicalDataRepository.java +++ b/src/main/java/org/cbioportal/domain/clinical_data/repository/ClinicalDataRepository.java @@ -3,6 +3,7 @@ import org.cbioportal.legacy.model.ClinicalData; import org.cbioportal.legacy.model.ClinicalDataCountItem; import org.cbioportal.domain.studyview.StudyViewFilterContext; +import org.cbioportal.shared.enums.ProjectionType; import java.util.List; @@ -18,11 +19,9 @@ public interface ClinicalDataRepository { * @param filteredAttributes A list of attributes to filter the clinical data. * @return A list of {@link ClinicalData} representing patient clinical data. */ - List getPatientClinicalData(StudyViewFilterContext studyViewFilterContext, List filteredAttributes); + List getPatientClinicalDataFromStudyViewFilter(StudyViewFilterContext studyViewFilterContext, List filteredAttributes); - List getPatientClinicalDataSummary(List studyIds, List sampleIds, List filteredAttributes); - - List getPatientClinicalDataDetailed(List studyIds, List sampleIds, List filteredAttributes); + List getPatientClinicalData(List studyIds, List sampleIds, List filteredAttributes, ProjectionType projectionType); /** * Retrieves clinical data for samples based on the given study view filter context and filtered attributes. @@ -31,11 +30,9 @@ public interface ClinicalDataRepository { * @param filteredAttributes A list of attributes to filter the clinical data. * @return A list of {@link ClinicalData} representing sample clinical data. */ - List getSampleClinicalData(StudyViewFilterContext studyViewFilterContext, List filteredAttributes); + List getSampleClinicalDataFromStudyViewFilter(StudyViewFilterContext studyViewFilterContext, List filteredAttributes); - List getSampleClinicalDataSummary(List studyIds, List sampleIds, List filteredAttributes); - - List getSampleClinicalDataDetailed(List studyIds, List sampleIds, List filteredAttributes); + List getSampleClinicalData(List studyIds, List sampleIds, List filteredAttributes, ProjectionType projectionType); /** * Retrieves counts of clinical data records based on the given study view filter context and filtered attributes. diff --git a/src/main/java/org/cbioportal/domain/clinical_data/usecase/GetPatientClinicalDataUseCase.java b/src/main/java/org/cbioportal/domain/clinical_data/usecase/GetPatientClinicalDataUseCase.java index 4c5b206291c..d9eb3eb0e58 100644 --- a/src/main/java/org/cbioportal/domain/clinical_data/usecase/GetPatientClinicalDataUseCase.java +++ b/src/main/java/org/cbioportal/domain/clinical_data/usecase/GetPatientClinicalDataUseCase.java @@ -40,7 +40,7 @@ public GetPatientClinicalDataUseCase(ClinicalDataRepository clinicalDataReposito * @return a list of {@link ClinicalData} representing the patient's clinical data */ public List execute(StudyViewFilterContext studyViewFilterContext, List filteredAttributes) { - return clinicalDataRepository.getPatientClinicalData(studyViewFilterContext, filteredAttributes); + return clinicalDataRepository.getPatientClinicalDataFromStudyViewFilter(studyViewFilterContext, filteredAttributes); } public List execute(ClinicalDataMultiStudyFilter clinicalDataMultiStudyFilter, List attributeIds, ProjectionType projectionType) { @@ -51,20 +51,7 @@ public List execute(ClinicalDataMultiStudyFilter clinicalDataMulti patientIds.add(identifier.getEntityId()); } - // DETAILED level - if (projectionType == ProjectionType.DETAILED) { - return clinicalDataRepository.getPatientClinicalDataDetailed(studyIds, patientIds, attributeIds); - } - - // ID or SUMMARY level - List clinicalDataList = clinicalDataRepository.getPatientClinicalDataSummary(studyIds, patientIds, attributeIds); - // ID level doesn't have attrValue - if (projectionType == ProjectionType.ID) { - for (ClinicalData clinicalData : clinicalDataList) { - clinicalData.setAttrValue(null); - } - } - return clinicalDataList; + return clinicalDataRepository.getPatientClinicalData(studyIds, patientIds, attributeIds, projectionType); } } diff --git a/src/main/java/org/cbioportal/domain/clinical_data/usecase/GetSampleClinicalDataUseCase.java b/src/main/java/org/cbioportal/domain/clinical_data/usecase/GetSampleClinicalDataUseCase.java index c8373f72029..8495b6178ea 100644 --- a/src/main/java/org/cbioportal/domain/clinical_data/usecase/GetSampleClinicalDataUseCase.java +++ b/src/main/java/org/cbioportal/domain/clinical_data/usecase/GetSampleClinicalDataUseCase.java @@ -40,7 +40,7 @@ public GetSampleClinicalDataUseCase(ClinicalDataRepository clinicalDataRepositor * @return a list of {@link ClinicalData} representing the sample's clinical data */ public List execute(StudyViewFilterContext studyViewFilterContext, List filteredAttributes) { - return clinicalDataRepository.getSampleClinicalData(studyViewFilterContext, filteredAttributes); + return clinicalDataRepository.getSampleClinicalDataFromStudyViewFilter(studyViewFilterContext, filteredAttributes); } public List execute(ClinicalDataMultiStudyFilter clinicalDataMultiStudyFilter, List attributeIds, ProjectionType projectionType) { @@ -51,20 +51,7 @@ public List execute(ClinicalDataMultiStudyFilter clinicalDataMulti sampleIds.add(identifier.getEntityId()); } - // DETAILED level - if (projectionType == ProjectionType.DETAILED) { - return clinicalDataRepository.getSampleClinicalDataDetailed(studyIds, sampleIds, attributeIds); - } - - // ID or SUMMARY level - List clinicalDataList = clinicalDataRepository.getSampleClinicalDataSummary(studyIds, sampleIds, attributeIds); - // ID level doesn't have attrValue - if (projectionType == ProjectionType.ID) { - for (ClinicalData clinicalData : clinicalDataList) { - clinicalData.setAttrValue(null); - } - } - return clinicalDataList; + return clinicalDataRepository.getSampleClinicalData(studyIds, sampleIds, attributeIds, projectionType); } } diff --git a/src/main/java/org/cbioportal/infrastructure/repository/clickhouse/clinical_data/ClickhouseClinicalDataMapper.java b/src/main/java/org/cbioportal/infrastructure/repository/clickhouse/clinical_data/ClickhouseClinicalDataMapper.java index 6f3eb4fd268..dde19f9beb2 100644 --- a/src/main/java/org/cbioportal/infrastructure/repository/clickhouse/clinical_data/ClickhouseClinicalDataMapper.java +++ b/src/main/java/org/cbioportal/infrastructure/repository/clickhouse/clinical_data/ClickhouseClinicalDataMapper.java @@ -3,6 +3,7 @@ import org.cbioportal.legacy.model.ClinicalData; import org.cbioportal.legacy.model.ClinicalDataCountItem; import org.cbioportal.domain.studyview.StudyViewFilterContext; +import org.cbioportal.shared.enums.ProjectionType; import java.util.List; @@ -31,9 +32,7 @@ public interface ClickhouseClinicalDataMapper { */ List getSampleClinicalDataFromStudyViewFilter(StudyViewFilterContext studyViewFilterContext, List attributeIds); - List getSampleClinicalDataSummary(List studyIds, List sampleIds, List attributeIds); - - List getSampleClinicalDataDetailed(List studyIds, List sampleIds, List attributeIds); + List getSampleClinicalData(List studyIds, List sampleIds, List attributeIds, ProjectionType projectionType); /** * Retrieves patient clinical data based on the study view filter context and attribute IDs. @@ -44,9 +43,7 @@ public interface ClickhouseClinicalDataMapper { */ List getPatientClinicalDataFromStudyViewFilter(StudyViewFilterContext studyViewFilterContext, List attributeIds); - List getPatientClinicalDataSummary(List studyIds, List patientIds, List attributeIds); - - List getPatientClinicalDataDetailed(List studyIds, List patientIds, List attributeIds); + List getPatientClinicalData(List studyIds, List patientIds, List attributeIds, ProjectionType projectionType); } diff --git a/src/main/java/org/cbioportal/infrastructure/repository/clickhouse/clinical_data/ClickhouseClinicalDataRepository.java b/src/main/java/org/cbioportal/infrastructure/repository/clickhouse/clinical_data/ClickhouseClinicalDataRepository.java index 7b04ccbecda..4b03683fb68 100644 --- a/src/main/java/org/cbioportal/infrastructure/repository/clickhouse/clinical_data/ClickhouseClinicalDataRepository.java +++ b/src/main/java/org/cbioportal/infrastructure/repository/clickhouse/clinical_data/ClickhouseClinicalDataRepository.java @@ -4,6 +4,7 @@ import org.cbioportal.legacy.model.ClinicalData; import org.cbioportal.legacy.model.ClinicalDataCountItem; import org.cbioportal.domain.studyview.StudyViewFilterContext; +import org.cbioportal.shared.enums.ProjectionType; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Repository; @@ -24,33 +25,23 @@ public ClickhouseClinicalDataRepository(ClickhouseClinicalDataMapper mapper) { @Override - public List getPatientClinicalData(StudyViewFilterContext studyViewFilterContext, List filteredAttributes) { + public List getPatientClinicalDataFromStudyViewFilter(StudyViewFilterContext studyViewFilterContext, List filteredAttributes) { return mapper.getPatientClinicalDataFromStudyViewFilter(studyViewFilterContext, filteredAttributes); } @Override - public List getPatientClinicalDataSummary(List studyIds, List patientIds, List attributeIds) { - return mapper.getPatientClinicalDataSummary(studyIds, patientIds, attributeIds); + public List getPatientClinicalData(List studyIds, List patientIds, List attributeIds, ProjectionType projectionType) { + return mapper.getPatientClinicalData(studyIds, patientIds, attributeIds, projectionType); } @Override - public List getPatientClinicalDataDetailed(List studyIds, List patientIds, List attributeIds) { - return mapper.getPatientClinicalDataDetailed(studyIds, patientIds, attributeIds); - } - - @Override - public List getSampleClinicalData(StudyViewFilterContext studyViewFilterContext, List filteredAttributes) { + public List getSampleClinicalDataFromStudyViewFilter(StudyViewFilterContext studyViewFilterContext, List filteredAttributes) { return mapper.getSampleClinicalDataFromStudyViewFilter(studyViewFilterContext, filteredAttributes); } @Override - public List getSampleClinicalDataSummary(List studyIds, List sampleIds, List attributeIds) { - return mapper.getSampleClinicalDataSummary(studyIds, sampleIds, attributeIds); - } - - @Override - public List getSampleClinicalDataDetailed(List studyIds, List sampleIds, List attributeIds) { - return mapper.getSampleClinicalDataDetailed(studyIds, sampleIds, attributeIds); + public List getSampleClinicalData(List studyIds, List sampleIds, List attributeIds, ProjectionType projectionType) { + return mapper.getSampleClinicalData(studyIds, sampleIds, attributeIds, projectionType); } @Override diff --git a/src/main/resources/mappers/clickhouse/clinical_data/ClickhouseClinicalDataMapper.xml b/src/main/resources/mappers/clickhouse/clinical_data/ClickhouseClinicalDataMapper.xml index d4aa6b46be7..a1fa5aef07b 100644 --- a/src/main/resources/mappers/clickhouse/clinical_data/ClickhouseClinicalDataMapper.xml +++ b/src/main/resources/mappers/clickhouse/clinical_data/ClickhouseClinicalDataMapper.xml @@ -45,6 +45,85 @@ AND type = 'patient' + + + +