RED-3452: Code to create IMAGE_INFO.json from redactionLog
This commit is contained in:
parent
400c602868
commit
9a48f57603
@ -0,0 +1,80 @@
|
||||
package com.iqser.red.service.peristence.v1.server.migration.image;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.iqser.red.service.peristence.v1.server.migration.image.model.Classification;
|
||||
import com.iqser.red.service.peristence.v1.server.migration.image.model.Filters;
|
||||
import com.iqser.red.service.peristence.v1.server.migration.image.model.Geometry;
|
||||
import com.iqser.red.service.peristence.v1.server.migration.image.model.ImageMetadata;
|
||||
import com.iqser.red.service.peristence.v1.server.migration.image.model.ImageServiceResponse;
|
||||
import com.iqser.red.service.peristence.v1.server.migration.image.model.Position;
|
||||
import com.iqser.red.service.peristence.v1.server.service.FileManagementStorageService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
// @Service Dont know if it will be integrated as service
|
||||
@RequiredArgsConstructor
|
||||
public class MigrateImageService {
|
||||
|
||||
private final FileManagementStorageService fileManagementStorageService;
|
||||
private final FileRepository fileRepository;
|
||||
private final ObjectMapper objectMapper;
|
||||
|
||||
|
||||
@SneakyThrows
|
||||
public void migrateImagesFiles() {
|
||||
|
||||
List<FileEntity> files = fileRepository.findAll();
|
||||
|
||||
for (FileEntity file : files) {
|
||||
try {
|
||||
var redactionLog = fileManagementStorageService.getRedactionLog(file.getDossierId(), file.getId());
|
||||
|
||||
ImageServiceResponse imageServiceResponse = new ImageServiceResponse();
|
||||
imageServiceResponse.setFileId(file.getId());
|
||||
imageServiceResponse.setDossierId(file.getDossierId());
|
||||
|
||||
for (var entry : redactionLog.getRedactionLogEntry()) {
|
||||
if (entry.isImage() || entry.getType().equals("image")) {
|
||||
ImageMetadata imageMetadata = new ImageMetadata();
|
||||
|
||||
Classification classification = new Classification();
|
||||
classification.setLabel(entry.getType());
|
||||
imageMetadata.setClassification(classification);
|
||||
|
||||
Position position = new Position();
|
||||
position.setX1(entry.getPositions().get(0).getTopLeft().getX());
|
||||
position.setY1(entry.getPositions().get(0).getTopLeft().getY());
|
||||
position.setPageNumber(entry.getPositions().get(0).getPage());
|
||||
imageMetadata.setPosition(position);
|
||||
|
||||
Geometry geometry = new Geometry();
|
||||
geometry.setWidth(entry.getPositions().get(0).getWidth());
|
||||
geometry.setHeight(entry.getPositions().get(0).getHeight());
|
||||
imageMetadata.setGeometry(geometry);
|
||||
|
||||
Filters filters = new Filters();
|
||||
filters.setAllPassed(entry.getType().equals("image") ? false : true);
|
||||
imageMetadata.setFilters(filters);
|
||||
|
||||
imageServiceResponse.getImageMetadata().add(imageMetadata);
|
||||
}
|
||||
}
|
||||
|
||||
fileManagementStorageService.storeObject(file.getDossierId(), file.getId(), FileType.IMAGE_INFO, objectMapper.writeValueAsBytes(imageServiceResponse));
|
||||
|
||||
} catch (NotFoundException e) {
|
||||
// Do nothing
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package com.iqser.red.service.peristence.v1.server.migration.image.model;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class Classification {
|
||||
|
||||
private Map<String, Float> probabilities = new HashMap<>();
|
||||
private String label;
|
||||
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
package com.iqser.red.service.peristence.v1.server.migration.image.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class FilterGeometry {
|
||||
|
||||
private ImageSize imageSize;
|
||||
private ImageFormat imageFormat;
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
package com.iqser.red.service.peristence.v1.server.migration.image.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class Filters {
|
||||
|
||||
private FilterGeometry geometry;
|
||||
private Probability probability;
|
||||
private boolean allPassed;
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
package com.iqser.red.service.peristence.v1.server.migration.image.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class Geometry {
|
||||
private float width;
|
||||
private float height;
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
package com.iqser.red.service.peristence.v1.server.migration.image.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ImageFormat {
|
||||
|
||||
private float quotient;
|
||||
private boolean tooTall;
|
||||
private boolean tooWide;
|
||||
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
package com.iqser.red.service.peristence.v1.server.migration.image.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ImageMetadata {
|
||||
|
||||
private Classification classification;
|
||||
private Position position;
|
||||
private Geometry geometry;
|
||||
private Filters filters;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.iqser.red.service.peristence.v1.server.migration.image.model;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ImageServiceResponse {
|
||||
|
||||
private String dossierId;
|
||||
private String fileId;
|
||||
private List<ImageMetadata> imageMetadata = new ArrayList<>();
|
||||
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
package com.iqser.red.service.peristence.v1.server.migration.image.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ImageSize {
|
||||
|
||||
private float quotient;
|
||||
private boolean tooLarge;
|
||||
private boolean tooSmall;
|
||||
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
package com.iqser.red.service.peristence.v1.server.migration.image.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class Position {
|
||||
private float x1;
|
||||
private float x2;
|
||||
private float y1;
|
||||
private float y2;
|
||||
private int pageNumber;
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
package com.iqser.red.service.peristence.v1.server.migration.image.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class Probability {
|
||||
|
||||
private boolean unconfident;
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user