diff --git a/redaction-report-service-v1/redaction-report-service-api-v1/pom.xml b/redaction-report-service-v1/redaction-report-service-api-v1/pom.xml
index 4e0cad5..2fa3bd3 100644
--- a/redaction-report-service-v1/redaction-report-service-api-v1/pom.xml
+++ b/redaction-report-service-v1/redaction-report-service-api-v1/pom.xml
@@ -17,7 +17,7 @@
com.iqser.red.service
redaction-service-api-v1
- 1.1.3
+ 1.3.0
diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java
index a70d6bc..afb91ef 100644
--- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java
+++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/ReportGenerationService.java
@@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
import com.iqser.red.service.redaction.report.v1.api.model.MultiFileRedactionLog;
import com.iqser.red.service.redaction.report.v1.server.utils.ResourceLoader;
+import com.iqser.red.service.redaction.v1.model.Status;
@Service
public class ReportGenerationService {
@@ -49,6 +50,9 @@ public class ReportGenerationService {
multiFileRedactionLog.getRedactionLogs().forEach(fileRedactionLog -> {
fileRedactionLog.getRedactionLogEntry().forEach(redactionLogEntry -> {
if(redactionLogEntry.isRedacted()) {
+ if(redactionLogEntry.isManual() && !redactionLogEntry.getStatus().equals(Status.APPROVED)){
+ return;
+ }
Set pages = new HashSet<>();
redactionLogEntry.getPositions().forEach(position -> {
pages.add(position.getPage());
diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java
index 46929a3..236b693 100644
--- a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java
+++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/java/com/iqser/red/service/redaction/report/v1/server/RedactionReportIntegrationTest.java
@@ -34,7 +34,7 @@ public class RedactionReportIntegrationTest {
@Test
public void testReportGeneration() throws IOException {
- ClassPathResource redactionLogResource = new ClassPathResource("files/RedactionLog.txt");
+ ClassPathResource redactionLogResource = new ClassPathResource("files/RedactionLogManual.txt");
RedactionLog redactionLog = objectMapper.readValue(redactionLogResource.getInputStream(), RedactionLog.class);
@@ -43,7 +43,7 @@ public class RedactionReportIntegrationTest {
ReportResult reportResult = redactionReportController.generateReport(multiFileRedactionLog);
- try (FileOutputStream fileOutputStream = new FileOutputStream("/tmp/document.docx")) {
+ try (FileOutputStream fileOutputStream = new FileOutputStream("/tmp/document2.docx")) {
fileOutputStream.write(reportResult.getDocument());
}
diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/test/resources/files/RedactionLogManual.txt b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/resources/files/RedactionLogManual.txt
new file mode 100644
index 0000000..c9a3654
--- /dev/null
+++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/test/resources/files/RedactionLogManual.txt
@@ -0,0 +1,416 @@
+{
+ "redactionLogEntry": [
+ {
+ "id": "e5be0f1d941bbb92a068e198648d06c4",
+ "type": "name",
+ "value": "Robinson N.",
+ "reason": "Not redacted because row is not a vertebrate study",
+ "redacted": false,
+ "section": "Table in: ",
+ "color": [
+ 0.8,
+ 0.8,
+ 0.8
+ ],
+ "positions": [
+ {
+ "topLeft": {
+ "x": 142.04396,
+ "y": 241.282
+ },
+ "width": 7.648056,
+ "height": 42.43087,
+ "page": 1
+ }
+ ],
+ "sectionNumber": 3,
+ "manual": false,
+ "status": null,
+ "hint": false
+ },
+ {
+ "id": "0295bbdff66926ebb57b03641bba7ba8",
+ "type": "address",
+ "value": "Syngenta Crop Protection AG, Basel, Switzerland",
+ "reason": "Not redacted because row is not a vertebrate study",
+ "redacted": false,
+ "section": "Table in: ",
+ "color": [
+ 0.8,
+ 0.8,
+ 0.8
+ ],
+ "positions": [
+ {
+ "topLeft": {
+ "x": 289.44595,
+ "y": 327.567
+ },
+ "width": 7.648041,
+ "height": 82.51475,
+ "page": 1
+ },
+ {
+ "topLeft": {
+ "x": 298.67056,
+ "y": 327.567
+ },
+ "width": 7.648041,
+ "height": 75.32377,
+ "page": 1
+ }
+ ],
+ "sectionNumber": 4,
+ "manual": false,
+ "status": null,
+ "hint": false
+ },
+ {
+ "id": "1bd556e9b3dd82987f9775b19bb26fa4",
+ "type": "address",
+ "value": "RCC Ltd., Itingen, Switzerland",
+ "reason": "Not redacted because row is not a vertebrate study",
+ "redacted": false,
+ "section": "Table in: ",
+ "color": [
+ 0.8,
+ 0.8,
+ 0.8
+ ],
+ "positions": [
+ {
+ "topLeft": {
+ "x": 307.89517,
+ "y": 327.567
+ },
+ "width": 7.648041,
+ "height": 61.670967,
+ "page": 1
+ },
+ {
+ "topLeft": {
+ "x": 316.99985,
+ "y": 327.567
+ },
+ "width": 7.648041,
+ "height": 38.104286,
+ "page": 1
+ }
+ ],
+ "sectionNumber": 4,
+ "manual": false,
+ "status": null,
+ "hint": false
+ },
+ {
+ "id": "e4eb6f849b60753c59897d1da21f3d83",
+ "type": "hint_only",
+ "value": "N",
+ "reason": null,
+ "redacted": false,
+ "section": "Table in: ",
+ "color": [
+ 0,
+ 0.9882353,
+ 0.69411767
+ ],
+ "positions": [
+ {
+ "topLeft": {
+ "x": 145.03896,
+ "y": 448.34
+ },
+ "width": 7.648056,
+ "height": 4.000008,
+ "page": 1
+ }
+ ],
+ "sectionNumber": 3,
+ "manual": false,
+ "status": null,
+ "hint": true
+ },
+ {
+ "id": "76dcc148fca080479fb3856d6e404813",
+ "type": "address",
+ "value": "Syngenta Crop Protection AG, Basel, Switzerland",
+ "reason": "Not redacted because row is not a vertebrate study",
+ "redacted": false,
+ "section": "Table in: ",
+ "color": [
+ 0.8,
+ 0.8,
+ 0.8
+ ],
+ "positions": [
+ {
+ "topLeft": {
+ "x": 169.62755,
+ "y": 327.567
+ },
+ "width": 7.648056,
+ "height": 82.51475,
+ "page": 1
+ },
+ {
+ "topLeft": {
+ "x": 178.73225,
+ "y": 327.567
+ },
+ "width": 7.648056,
+ "height": 75.32377,
+ "page": 1
+ }
+ ],
+ "sectionNumber": 3,
+ "manual": false,
+ "status": null,
+ "hint": false
+ },
+ {
+ "id": "109c034945053697a8c3ff5449d4dbd5",
+ "type": "name",
+ "value": "Wolf S.",
+ "reason": "Not redacted because row is not a vertebrate study",
+ "redacted": false,
+ "section": "Table in: ",
+ "color": [
+ 0.8,
+ 0.8,
+ 0.8
+ ],
+ "positions": [
+ {
+ "topLeft": {
+ "x": 261.87195,
+ "y": 241.282
+ },
+ "width": 7.648041,
+ "height": 26.739037,
+ "page": 1
+ }
+ ],
+ "sectionNumber": 4,
+ "manual": false,
+ "status": null,
+ "hint": false
+ },
+ {
+ "id": "8d4060e4761dfccfdaa6310d6e9c3407",
+ "type": "hint_only",
+ "value": "N",
+ "reason": null,
+ "redacted": false,
+ "section": "Table in: ",
+ "color": [
+ 0,
+ 0.9882353,
+ 0.69411767
+ ],
+ "positions": [
+ {
+ "topLeft": {
+ "x": 264.88797,
+ "y": 448.34
+ },
+ "width": 7.648041,
+ "height": 4.000008,
+ "page": 1
+ }
+ ],
+ "sectionNumber": 4,
+ "manual": false,
+ "status": null,
+ "hint": true
+ },
+ {
+ "id": "6b1338e3a108d3993c6da186f57ea019",
+ "type": "vertebrate",
+ "value": "rats",
+ "reason": null,
+ "redacted": false,
+ "section": "Table in: ",
+ "color": [
+ 0,
+ 1,
+ 0
+ ],
+ "positions": [
+ {
+ "topLeft": {
+ "x": 381.84018,
+ "y": 377.10638
+ },
+ "width": 7.648041,
+ "height": 12.379707,
+ "page": 1
+ }
+ ],
+ "sectionNumber": 5,
+ "manual": false,
+ "status": null,
+ "hint": true
+ },
+ {
+ "id": "258d1236aa4ff9de4260a9d4284efdc5",
+ "type": "name",
+ "value": "Casey, H.W.",
+ "reason": "Redacted because Section contains Vertebrate",
+ "redacted": true,
+ "section": "Table in: ",
+ "color": [
+ 1,
+ 1,
+ 0
+ ],
+ "positions": [
+ {
+ "topLeft": {
+ "x": 421.61328,
+ "y": 241.282
+ },
+ "width": 7.648041,
+ "height": 42.66442,
+ "page": 1
+ }
+ ],
+ "sectionNumber": 5,
+ "manual": false,
+ "status": null,
+ "hint": false
+ },
+ {
+ "id": "0836727c3508a0b2ea271da69c04cc2f",
+ "type": "address",
+ "value": "Toxigenics, Inc., Decatur, IL 62526, USA",
+ "reason": "Redacted because Section contains Vertebrate",
+ "redacted": true,
+ "section": "Table in: ",
+ "color": [
+ 0,
+ 1,
+ 1
+ ],
+ "positions": [
+ {
+ "topLeft": {
+ "x": 400.16907,
+ "y": 327.567
+ },
+ "width": 7.648041,
+ "height": 91.46436,
+ "page": 1
+ },
+ {
+ "topLeft": {
+ "x": 409.39368,
+ "y": 327.567
+ },
+ "width": 7.648041,
+ "height": 38.232735,
+ "page": 1
+ }
+ ],
+ "sectionNumber": 5,
+ "manual": false,
+ "status": null,
+ "hint": false
+ },
+ {
+ "id": "0372ec83feed162bdd478b201027bc25",
+ "type": "name",
+ "value": "Salamon, C.M.",
+ "reason": "Redacted because Section contains Vertebrate",
+ "redacted": true,
+ "section": "Table in: ",
+ "color": [
+ 1,
+ 1,
+ 0
+ ],
+ "positions": [
+ {
+ "topLeft": {
+ "x": 394.0594,
+ "y": 241.282
+ },
+ "width": 7.648041,
+ "height": 32.012077,
+ "page": 1
+ },
+ {
+ "topLeft": {
+ "x": 403.16406,
+ "y": 241.282
+ },
+ "width": 7.648041,
+ "height": 18.487892,
+ "page": 1
+ }
+ ],
+ "sectionNumber": 5,
+ "manual": false,
+ "status": null,
+ "hint": false
+ },
+ {
+ "id": "8734c14e72b7750de7637627ed5d572c",
+ "type": "name",
+ "value": "Smith, S.H.",
+ "reason": "Redacted because Section contains Vertebrate",
+ "redacted": true,
+ "section": "Table in: ",
+ "color": [
+ 1,
+ 1,
+ 0
+ ],
+ "positions": [
+ {
+ "topLeft": {
+ "x": 412.38867,
+ "y": 241.282
+ },
+ "width": 7.648041,
+ "height": 39.300346,
+ "page": 1
+ }
+ ],
+ "sectionNumber": 5,
+ "manual": false,
+ "status": null,
+ "hint": false
+ },
+ {
+ "id": "2f4459be7301d8689a0f405399e55d69",
+ "type": "name",
+ "value": null,
+ "reason": "Manual Redaction",
+ "redacted": true,
+ "section": null,
+ "color": [
+ 1,
+ 1,
+ 0
+ ],
+ "positions": [
+ {
+ "topLeft": {
+ "x": 375.61096,
+ "y": 241.282
+ },
+ "width": 7.648041,
+ "height": 43.72262,
+ "page": 1
+ }
+ ],
+ "sectionNumber": 0,
+ "manual": true,
+ "status": "APPROVED",
+ "hint": false
+ }
+ ],
+ "dictionaryVersion": 9,
+ "rulesVersion": 2,
+ "filename": "Single Table.pdf"
+}
\ No newline at end of file