From c8375a1ad951d8a075101ba4faaf3f13acf0d23e Mon Sep 17 00:00:00 2001 From: cheng Date: Wed, 22 Jul 2020 22:54:05 +0200 Subject: [PATCH 1/2] RED-161: replace hard-coded hint-type with dictionary-service query --- .../redaction-service-server-v1/pom.xml | 2 +- .../v1/server/redaction/service/DictionaryService.java | 10 ++++++++++ .../service/AnnotationHighlightService.java | 8 +++----- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/pom.xml b/redaction-service-v1/redaction-service-server-v1/pom.xml index 08ad41a0..1b656c6d 100644 --- a/redaction-service-v1/redaction-service-server-v1/pom.xml +++ b/redaction-service-v1/redaction-service-server-v1/pom.xml @@ -39,7 +39,7 @@ com.iqser.red.service configuration-service-api-v1 - 1.0.2 + 1.0.5.1 org.drools diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DictionaryService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DictionaryService.java index 4b6d5bf8..f96de814 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DictionaryService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DictionaryService.java @@ -1,6 +1,8 @@ package com.iqser.red.service.redaction.v1.server.redaction.service; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -32,6 +34,12 @@ public class DictionaryService { @Getter private Map entryColors = new HashMap<>(); + @Getter + private List hintTypes = new ArrayList<>(); + + @Getter + private List caseSensitiveTypes = new ArrayList<>(); + public void updateDictionary() { long version = dictionaryClient.getVersion(); @@ -47,6 +55,8 @@ public class DictionaryService { if (typeResponse != null && !CollectionUtils.isEmpty(typeResponse.getTypes())) { entryColors = typeResponse.getTypes().stream().collect(Collectors.toMap(TypeResult::getType, TypeResult::getColor)); dictionary = entryColors.keySet().stream().collect(Collectors.toMap(type -> type, s -> dictionaryClient.getDictionaryForType(s).getEntries().stream().collect(Collectors.toSet()))); + hintTypes = typeResponse.getTypes().stream().filter(TypeResult::isHint).map(TypeResult::getType).collect(Collectors.toList()); + caseSensitiveTypes = typeResponse.getTypes().stream().filter(TypeResult::isCaseSensitive).map(TypeResult::getType).collect(Collectors.toList()); } } catch (FeignException e) { log.warn("Got some unknown feignException", e); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java index 4b63523e..81cc166f 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java @@ -4,6 +4,7 @@ import java.awt.Color; import java.io.IOException; import java.util.List; +import org.apache.commons.collections4.CollectionUtils; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; @@ -208,17 +209,14 @@ public class AnnotationHighlightService { return dictionaryService.getEntryColors().get(entity.getType()); } - private boolean isHint(Entity entity) { - // TODO in RED-161. - if (entity.getType().equalsIgnoreCase("vertebrate") || entity.getType() - .equalsIgnoreCase("no_redaction_indicator")) { + List hintTypes = dictionaryService.getHintTypes(); + if (!CollectionUtils.isEmpty(hintTypes) && hintTypes.contains(entity.getType())) { return true; } return false; } - private void visualizeTextBlock(TextBlock textBlock, PDPageContentStream contentStream) throws IOException { contentStream.setStrokingColor(Color.LIGHT_GRAY); From 3eb37fa6db0d9f1a4e6b93b2047b3b96c94cd9ff Mon Sep 17 00:00:00 2001 From: cheng Date: Thu, 23 Jul 2020 10:47:14 +0200 Subject: [PATCH 2/2] RED-161: reverse caseSensitive --- .../redaction-service-server-v1/pom.xml | 2 +- .../redaction/service/DictionaryService.java | 29 +++++++++++++++---- .../service/AnnotationHighlightService.java | 2 +- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/pom.xml b/redaction-service-v1/redaction-service-server-v1/pom.xml index 1b656c6d..f7d688f0 100644 --- a/redaction-service-v1/redaction-service-server-v1/pom.xml +++ b/redaction-service-v1/redaction-service-server-v1/pom.xml @@ -39,7 +39,7 @@ com.iqser.red.service configuration-service-api-v1 - 1.0.5.1 + 1.0.6 org.drools diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DictionaryService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DictionaryService.java index f96de814..4a02ad89 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DictionaryService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DictionaryService.java @@ -38,7 +38,8 @@ public class DictionaryService { private List hintTypes = new ArrayList<>(); @Getter - private List caseSensitiveTypes = new ArrayList<>(); + private List caseInsensitiveTypes = new ArrayList<>(); + public void updateDictionary() { @@ -49,18 +50,36 @@ public class DictionaryService { } } + private void updateDictionaryEntry() { + try { TypeResponse typeResponse = dictionaryClient.getAllTypes(); if (typeResponse != null && !CollectionUtils.isEmpty(typeResponse.getTypes())) { - entryColors = typeResponse.getTypes().stream().collect(Collectors.toMap(TypeResult::getType, TypeResult::getColor)); - dictionary = entryColors.keySet().stream().collect(Collectors.toMap(type -> type, s -> dictionaryClient.getDictionaryForType(s).getEntries().stream().collect(Collectors.toSet()))); - hintTypes = typeResponse.getTypes().stream().filter(TypeResult::isHint).map(TypeResult::getType).collect(Collectors.toList()); - caseSensitiveTypes = typeResponse.getTypes().stream().filter(TypeResult::isCaseSensitive).map(TypeResult::getType).collect(Collectors.toList()); + entryColors = typeResponse.getTypes() + .stream() + .collect(Collectors.toMap(TypeResult::getType, TypeResult::getColor)); + dictionary = entryColors.keySet() + .stream() + .collect(Collectors.toMap(type -> type, s -> dictionaryClient.getDictionaryForType(s) + .getEntries() + .stream() + .collect(Collectors.toSet()))); + hintTypes = typeResponse.getTypes() + .stream() + .filter(TypeResult::isHint) + .map(TypeResult::getType) + .collect(Collectors.toList()); + caseInsensitiveTypes = typeResponse.getTypes() + .stream() + .filter(TypeResult::isCaseInsensitive) + .map(TypeResult::getType) + .collect(Collectors.toList()); } } catch (FeignException e) { log.warn("Got some unknown feignException", e); throw e; } } + } \ No newline at end of file diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java index 81cc166f..fa4b49aa 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java @@ -211,7 +211,7 @@ public class AnnotationHighlightService { private boolean isHint(Entity entity) { List hintTypes = dictionaryService.getHintTypes(); - if (!CollectionUtils.isEmpty(hintTypes) && hintTypes.contains(entity.getType())) { + if (CollectionUtils.isNotEmpty(hintTypes) && hintTypes.contains(entity.getType())) { return true; } return false;