Skip to content

Commit 4b0b816

Browse files
Remove analysis type remnants and require non-null values for analysis method in samplePreview (#394)
* Fix missing value exception. * Subject line Description * log exception * Refactor analysistype to AnalysisMethod and streamline sample deletion * Add null check to AnalysisMethod within SamplePreview to avoid tedious debugging --------- Co-authored-by: Tobias Koch <[email protected]>
1 parent a0c2e2a commit 4b0b816

File tree

5 files changed

+15
-9
lines changed

5 files changed

+15
-9
lines changed

database-connector/src/main/java/life/qbic/projectmanagement/persistence/SampleRepositoryImpl.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public Result<Collection<Sample>, ResponseCode> addAll(Project project,
6868
} catch (Exception e) {
6969
log.error("The samples:" + commaSeperatedSampleIds + "could not be stored in openBIS", e);
7070
log.error("Removing samples from repository, as well.");
71-
samples.forEach(sample -> qbicSampleRepository.delete(sample));
71+
qbicSampleRepository.deleteAll(samples);
7272
return Result.fromError(ResponseCode.REGISTRATION_FAILED);
7373
}
7474
return Result.fromValue(samples);
@@ -83,7 +83,7 @@ public Result<Collection<Sample>, SampleInformationService.ResponseCode> findSam
8383
samples = qbicSampleRepository.findAllByExperimentId(experimentId);
8484
} catch (Exception e) {
8585
log.error(
86-
"Retrieving Samples for experiment with id " + experimentId.value() + " failed: " + e);
86+
"Retrieving Samples for experiment with id " + experimentId.value() + " failed: " + e, e);
8787
return Result.fromError(SampleInformationService.ResponseCode.QUERY_FAILED);
8888
}
8989
return Result.fromValue(samples);

projectmanagement/src/main/java/life/qbic/projectmanagement/application/sample/SamplePreview.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ private SamplePreview(ExperimentId experimentId, SampleId sampleId, String sampl
7272
Objects.requireNonNull(species);
7373
Objects.requireNonNull(specimen);
7474
Objects.requireNonNull(analyte);
75+
Objects.requireNonNull(analysisMethod);
7576
this.experimentId = experimentId;
7677
this.sampleId = sampleId;
7778
this.sampleCode = sampleCode;
@@ -206,7 +207,7 @@ public String toString() {
206207
", species='" + species + '\'' +
207208
", specimen='" + specimen + '\'' +
208209
", analyte='" + analyte + '\'' +
209-
", analysisType='" + analysisMethod + '\'' +
210+
", analysisMethod='" + analysisMethod + '\'' +
210211
", comment='" + comment + '\'' +
211212
", conditions=" + experimentalGroup +
212213
'}';

projectmanagement/src/main/java/life/qbic/projectmanagement/domain/project/sample/AnalysisMethod.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
public enum AnalysisMethod {
1515

1616
/*
17-
NGS related analysis types
17+
NGS related analysis methods
1818
*/
1919

2020
SIXTEEN_S("16S", "16S amplicon sequencing",
@@ -57,7 +57,7 @@ public enum AnalysisMethod {
5757
SEQ_ONLY("SEQ-ONLY", "Sequencing only", "Processing of ready-to-sequence pools"),
5858

5959
/*
60-
Proteomics related analysis types
60+
Proteomics related analysis methods
6161
*/
6262

6363
PROTEOMICS("PROTEOMIICS", "Proteomics", ""),
@@ -71,7 +71,7 @@ public enum AnalysisMethod {
7171
PTMS("PTMS", "Posttransductional mutations", ""),
7272

7373
/*
74-
Metabolomics related analysis types
74+
Metabolomics related analysis methods
7575
*/
7676

7777
UNTARGETED_MX("UNTARGETED-MX", "Untargeted metabolomics", ""),

vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/SampleDetailsComponent.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.util.Collection;
2727
import java.util.List;
2828
import java.util.stream.Collectors;
29+
import life.qbic.application.commons.ApplicationException;
2930
import life.qbic.application.commons.Result;
3031
import life.qbic.datamanager.views.AppRoutes.Projects;
3132
import life.qbic.datamanager.views.general.Disclaimer;
@@ -334,7 +335,7 @@ private Grid<SamplePreview> createSampleGrid() {
334335
sampleGrid.addColumn(SamplePreview::analyte).setHeader("Analyte").setSortProperty("analyte")
335336
.setTooltipGenerator(SamplePreview::analyte);
336337
sampleGrid.addColumn(SamplePreview::analysisMethod).setHeader("Analysis to Perform")
337-
.setSortProperty("analysisType").setTooltipGenerator(SamplePreview::analysisMethod);
338+
.setSortProperty("analysisMethod").setTooltipGenerator(SamplePreview::analysisMethod);
338339
sampleGrid.addColumn(SamplePreview::comment).setHeader("Comment").setSortProperty("comment")
339340
.setTooltipGenerator(SamplePreview::comment);
340341
sampleGrid.addClassName("sample-grid");
@@ -365,7 +366,11 @@ private boolean noExperimentGroupsInExperiment(Experiment experiment) {
365366

366367
private boolean noSamplesRegisteredInExperiment(Experiment experiment) {
367368
return sampleInformationService.retrieveSamplesForExperiment(experiment.experimentId())
368-
.getValue().isEmpty();
369+
.map(Collection::isEmpty)
370+
.onError(error -> {
371+
throw new ApplicationException("Unexpected response code : " + error);
372+
})
373+
.getValue();
369374
}
370375

371376
private Disclaimer createNoGroupsDefinedDisclaimer(Experiment experiment) {

vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/registration/batch/SampleRegistrationSpreadsheet.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ private void generateCellValueOptionsMap(
398398
/**
399399
* Collects all {@link AnalysisMethod} specific for the genomic {@link MetadataType}
400400
*
401-
* @return List of String labels for all genomic analysis types.
401+
* @return List of String labels for all genomic analysis methods.
402402
*/
403403
private List<String> generateGenomicsAnalysisMethods() {
404404
return Arrays.stream(AnalysisMethod.values())

0 commit comments

Comments
 (0)