Skip to content

Commit 0df9b13

Browse files
authored
Fix redundant ontology terms that are actually the same (#932)
Due to the improvement of the OntologyTerm comparison by considering equal terms when they have the same IRI, the combobox showed empty rows for a term that was referenced in more than two ontologies. This contribution filters them out. Also, an unused ontology term list is removed. The NCBI Taxon filtering happens in the SpeciesSearchService and should also not be knowledgable by the client.
1 parent 7e9f85b commit 0df9b13

File tree

2 files changed

+5
-10
lines changed

2 files changed

+5
-10
lines changed

user-interface/src/main/java/life/qbic/datamanager/views/projects/create/OntologyComboboxFactory.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,8 @@ public MultiSelectComboBox<OntologyTerm> analyteBox() {
4040
return box;
4141
}
4242

43-
private FetchCallback<OntologyTerm, String> speciesFetchCallback(
44-
List<Ontology> ontologies) {
45-
return query -> OntologyFilterConnector.loadOntologyTerms(ontologies, query,
43+
private FetchCallback<OntologyTerm, String> speciesFetchCallback() {
44+
return query -> OntologyFilterConnector.loadOntologyTerms(query,
4645
speciesLookupService);
4746
}
4847

@@ -51,10 +50,9 @@ private FetchCallback<OntologyTerm, String> ontologyTermFetchCallback() {
5150
}
5251

5352
public MultiSelectComboBox<OntologyTerm> speciesBox() {
54-
List<Ontology> speciesOntologies = List.of(Ontology.NCBI_TAXONOMY);
5553

5654
MultiSelectComboBox<OntologyTerm> box = newBox();
57-
box.setItems(speciesFetchCallback(speciesOntologies));
55+
box.setItems(speciesFetchCallback());
5856

5957
box.setPlaceholder("Search and select one or more species for your samples");
6058
box.setLabel("Species");

user-interface/src/main/java/life/qbic/datamanager/views/projects/project/experiments/OntologyFilterConnector.java

+2-5
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,12 @@ private OntologyFilterConnector() {
2424
public static Stream<OntologyTerm> loadOntologyTerms(Query<OntologyTerm, String> query,
2525
TerminologyService terminologyService) {
2626
return terminologyService.query(query.getFilter().orElse(""), query.getOffset(),
27-
query.getLimit()).stream();
27+
query.getLimit()).stream().distinct();
2828
}
2929

30-
public static Stream<OntologyTerm> loadOntologyTerms(List<Ontology> ontologies,
30+
public static Stream<OntologyTerm> loadOntologyTerms(
3131
Query<OntologyTerm, String> query,
3232
SpeciesLookupService ontologyTermInformationService) {
33-
List<String> ontologyAbbreviations = ontologies.stream()
34-
.map(Ontology::getAbbreviation)
35-
.toList();
3633
List<SortOrder> sortOrders = query.getSortOrders().stream()
3734
.map(querySortOrder -> new SortOrder(querySortOrder.getSorted(),
3835
querySortOrder.getDirection().equals(SortDirection.DESCENDING)))

0 commit comments

Comments
 (0)