Skip to content

Commit 8c9c7db

Browse files
committed
#382 - Change display and translations structure for criteria and concepts
- remove nested declaration from elastic search documents (seems to be unnecessary, but should be monitored) - modify swagger file to match new responses - adapt tests to the new structure - Change responses to codeable concept and terminology replies to the new structure
1 parent bce7fc1 commit 8c9c7db

33 files changed

+1777
-586
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package de.numcodex.feasibility_gui_backend.common.api;
2+
3+
import com.fasterxml.jackson.annotation.JsonInclude;
4+
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import de.numcodex.feasibility_gui_backend.dse.api.LocalizedValue;
6+
import de.numcodex.feasibility_gui_backend.terminology.es.model.Display;
7+
import lombok.Builder;
8+
9+
import java.util.List;
10+
11+
@JsonInclude(JsonInclude.Include.NON_NULL)
12+
@Builder
13+
public record DisplayEntry(
14+
@JsonProperty String original,
15+
@JsonProperty List<LocalizedValue> translations
16+
) {
17+
18+
public static DisplayEntry of(Display display) {
19+
return DisplayEntry.builder()
20+
.original(display.original())
21+
.translations(List.of(
22+
LocalizedValue.builder()
23+
.language("de-DE")
24+
.value(display.deDe())
25+
.build(),
26+
LocalizedValue.builder()
27+
.language("en-US")
28+
.value(display.enUs())
29+
.build()
30+
))
31+
.build();
32+
}
33+
}

src/main/java/de/numcodex/feasibility_gui_backend/dse/api/DisplayEntry.java

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/main/java/de/numcodex/feasibility_gui_backend/dse/api/DseProfile.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.fasterxml.jackson.annotation.JsonInclude;
44
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import de.numcodex.feasibility_gui_backend.common.api.DisplayEntry;
56
import lombok.Builder;
67

78
import java.util.List;

src/main/java/de/numcodex/feasibility_gui_backend/dse/api/DseProfileTreeNode.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.fasterxml.jackson.annotation.JsonInclude;
44
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import de.numcodex.feasibility_gui_backend.common.api.DisplayEntry;
56
import lombok.Builder;
67

78
import java.util.List;

src/main/java/de/numcodex/feasibility_gui_backend/dse/api/Field.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.fasterxml.jackson.annotation.JsonInclude;
44
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import de.numcodex.feasibility_gui_backend.common.api.DisplayEntry;
56
import lombok.Builder;
67

78
import java.util.List;

src/main/java/de/numcodex/feasibility_gui_backend/terminology/api/CcSearchResult.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@
1010
@Builder
1111
public class CcSearchResult {
1212
private long totalHits;
13-
private List<TermCode> results;
13+
private List<CodeableConceptEntry> results;
1414
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package de.numcodex.feasibility_gui_backend.terminology.api;
2+
3+
import de.numcodex.feasibility_gui_backend.common.api.TermCode;
4+
import de.numcodex.feasibility_gui_backend.common.api.DisplayEntry;
5+
import de.numcodex.feasibility_gui_backend.dse.api.LocalizedValue;
6+
import de.numcodex.feasibility_gui_backend.terminology.es.model.CodeableConceptDocument;
7+
import lombok.Builder;
8+
9+
import java.util.List;
10+
11+
@Builder
12+
public record CodeableConceptEntry(
13+
TermCode termCode,
14+
DisplayEntry display
15+
) {
16+
public static CodeableConceptEntry of(CodeableConceptDocument document) {
17+
return CodeableConceptEntry.builder()
18+
.termCode(document.termCode())
19+
.display(DisplayEntry.builder()
20+
.original(document.display().original())
21+
.translations(List.of(
22+
LocalizedValue.builder()
23+
.language("de-DE")
24+
.value(document.display().deDe())
25+
.build(),
26+
LocalizedValue.builder()
27+
.language("en-US")
28+
.value(document.display().enUs())
29+
.build()
30+
))
31+
.build()
32+
)
33+
.build();
34+
}
35+
}

src/main/java/de/numcodex/feasibility_gui_backend/terminology/api/EsSearchResultEntry.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package de.numcodex.feasibility_gui_backend.terminology.api;
22

3+
import de.numcodex.feasibility_gui_backend.common.api.DisplayEntry;
34
import de.numcodex.feasibility_gui_backend.terminology.es.model.OntologyListItemDocument;
45
import lombok.Builder;
56

67
@Builder
78
public record EsSearchResultEntry(
89
String id,
9-
String name,
10+
DisplayEntry display,
1011
int availability,
1112
String context,
1213
String terminology,
@@ -17,7 +18,7 @@ public record EsSearchResultEntry(
1718
public static EsSearchResultEntry of(OntologyListItemDocument ontologyListItemDocument) {
1819
return EsSearchResultEntry.builder()
1920
.id(ontologyListItemDocument.id())
20-
.name(ontologyListItemDocument.name())
21+
.display(DisplayEntry.of(ontologyListItemDocument.display()))
2122
.availability(ontologyListItemDocument.availability())
2223
.context(ontologyListItemDocument.context().code())
2324
.terminology(ontologyListItemDocument.terminology())

src/main/java/de/numcodex/feasibility_gui_backend/terminology/es/CodeableConceptService.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import co.elastic.clients.elasticsearch._types.FieldValue;
44
import co.elastic.clients.elasticsearch._types.query_dsl.*;
5-
import de.numcodex.feasibility_gui_backend.common.api.TermCode;
65
import de.numcodex.feasibility_gui_backend.terminology.api.CcSearchResult;
6+
import de.numcodex.feasibility_gui_backend.terminology.api.CodeableConceptEntry;
77
import de.numcodex.feasibility_gui_backend.terminology.es.model.CodeableConceptDocument;
88
import de.numcodex.feasibility_gui_backend.terminology.es.repository.CodeableConceptEsRepository;
99
import de.numcodex.feasibility_gui_backend.terminology.es.repository.OntologyItemNotFoundException;
@@ -47,17 +47,18 @@ public CcSearchResult performCodeableConceptSearchWithRepoAndPaging(String keywo
4747
}
4848

4949
var searchHitPage = findByCodeOrDisplay(keyword, filterList, PageRequest.of(page, pageSize));
50-
List<TermCode> codeableConceptEntries = new ArrayList<>();
50+
List<CodeableConceptEntry> codeableConceptEntries = new ArrayList<>();
5151

52-
searchHitPage.getSearchHits().forEach(hit -> codeableConceptEntries.add(hit.getContent().termCode()));
52+
searchHitPage.getSearchHits().forEach(hit -> codeableConceptEntries.add(CodeableConceptEntry.of(hit.getContent())));
5353
return CcSearchResult.builder()
5454
.totalHits(searchHitPage.getTotalHits())
5555
.results(codeableConceptEntries)
5656
.build();
5757
}
5858

59-
public TermCode getSearchResultEntryByCode(String code) {
60-
return repo.findById(code).orElseThrow(OntologyItemNotFoundException::new).termCode();
59+
public CodeableConceptEntry getSearchResultEntryByCode(String code) {
60+
var document = repo.findById(code).orElseThrow(OntologyItemNotFoundException::new);
61+
return CodeableConceptEntry.of(document);
6162
}
6263

6364
private SearchHits<CodeableConceptDocument> findByCodeOrDisplay(String keyword,
@@ -88,7 +89,7 @@ private SearchHits<CodeableConceptDocument> findByCodeOrDisplay(String keyword,
8889
} else {
8990
var mmQuery = new MultiMatchQuery.Builder()
9091
.query(keyword)
91-
.fields(List.of("termcode.display", "termcode.code^2"))
92+
.fields(List.of("display.de-DE", "display.en-US", "termcode.code^2"))
9293
.build();
9394

9495
boolQuery = new BoolQuery.Builder()

src/main/java/de/numcodex/feasibility_gui_backend/terminology/es/TerminologyEsService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ private SearchHits<OntologyListItemDocument> findByNameOrTermcode(String keyword
150150
} else {
151151
var mmQuery = new MultiMatchQuery.Builder()
152152
.query(keyword)
153-
.fields(List.of("name", "termcode^2"))
153+
.fields(List.of("display.de-DE", "display.en-US", "termcode^2"))
154154
.build();
155155

156156
boolQuery = new BoolQuery.Builder()
@@ -196,7 +196,7 @@ private SearchHits<OntologyListItemDocument> findByNameOrTermcode(String keyword
196196
public OntologyItemRelationsDocument getOntologyItemRelationsByHash(String hash) {
197197
var ontologyItem = ontologyItemEsRepository.findById(hash).orElseThrow(OntologyItemNotFoundException::new);
198198
return OntologyItemRelationsDocument.builder()
199-
.translations(ontologyItem.translations())
199+
.display(ontologyItem.display())
200200
.parents(ontologyItem.parents())
201201
.children(ontologyItem.children())
202202
.relatedTerms(ontologyItem.relatedTerms())

0 commit comments

Comments
 (0)