diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageServiceResponse.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageServiceResponse.java index d795a52f..e91864c7 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageServiceResponse.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageServiceResponse.java @@ -21,6 +21,8 @@ public class ImageServiceResponse { @JsonAttribute(alternativeNames = {"imageMetadata"}) private List data = new ArrayList<>(); + private List dataCV = new ArrayList<>(); + @JsonProperty(value = "imageMetadata") @JsonAlias("data") @JsonAttribute(alternativeNames = {"imageMetadata"}) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/ImageService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/ImageService.java index 5daceb37..e6a7ccd4 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/ImageService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/ImageService.java @@ -27,26 +27,48 @@ public class ImageService { private final ObjectMapper objectMapper; private final RedactionStorageService redactionStorageService; + @SneakyThrows - public Map> convertImages(String dossierId, String fileId){ + public Map> convertImages(String dossierId, String fileId) { var imageClassificationStream = redactionStorageService.getStoredObject(RedactionStorageService.StorageIdUtils.getStorageId(dossierId, fileId, FileType.IMAGE_INFO)); - ImageServiceResponse imageServiceResponse = objectMapper.readValue(imageClassificationStream, ImageServiceResponse.class); Map> images = new HashMap<>(); imageServiceResponse.getData().forEach(imageMetadata -> { - var classification = imageMetadata.getFilters().isAllPassed() ? ImageType.valueOf(imageMetadata.getClassification().getLabel().toUpperCase(Locale.ROOT)) : ImageType.OTHER; - images.computeIfAbsent(imageMetadata.getPosition().getPageNumber() ,x -> new ArrayList<>()) - .add(new PdfImage(new RedRectangle2D(imageMetadata.getPosition().getX1(), imageMetadata.getPosition().getY1(), imageMetadata.getGeometry().getWidth(), imageMetadata.getGeometry().getHeight()), classification,imageMetadata.isAlpha(), imageMetadata.getPosition().getPageNumber())); + var classification = imageMetadata.getFilters() + .isAllPassed() ? ImageType.valueOf(imageMetadata.getClassification() + .getLabel() + .toUpperCase(Locale.ROOT)) : ImageType.OTHER; + images.computeIfAbsent(imageMetadata.getPosition().getPageNumber(), x -> new ArrayList<>()) + .add(new PdfImage(new RedRectangle2D(imageMetadata.getPosition() + .getX1(), imageMetadata.getPosition().getY1(), imageMetadata.getGeometry() + .getWidth(), imageMetadata.getGeometry() + .getHeight()), classification, imageMetadata.isAlpha(), imageMetadata.getPosition() + .getPageNumber())); + }); + + // Currently This is a copy but, it will be changed later because i don' t think that we should unclassified images. + imageServiceResponse.getDataCV().forEach(imageMetadata -> { + var classification = imageMetadata.getFilters() + .isAllPassed() ? ImageType.valueOf(imageMetadata.getClassification() + .getLabel() + .toUpperCase(Locale.ROOT)) : ImageType.OTHER; + images.computeIfAbsent(imageMetadata.getPosition().getPageNumber(), x -> new ArrayList<>()) + .add(new PdfImage(new RedRectangle2D(imageMetadata.getPosition() + .getX1(), imageMetadata.getPosition().getY1(), imageMetadata.getGeometry() + .getWidth(), imageMetadata.getGeometry() + .getHeight()), classification, imageMetadata.isAlpha(), imageMetadata.getPosition() + .getPageNumber())); }); return images; } - public void findOcr(Page page){ + public void findOcr(Page page) { + page.getImages().forEach(image -> { if (image.getImageType().equals(ImageType.OTHER)) { page.getTextBlocks().forEach(textblock -> { @@ -59,5 +81,4 @@ public class ImageService { }); } - }