From 8a471d0771f9be15f8d3906c7161a9dd670d335c Mon Sep 17 00:00:00 2001 From: deiflaender Date: Mon, 24 Aug 2020 12:24:02 +0200 Subject: [PATCH 1/3] Highlight N in vertebrate study tables and fixed rule order --- .../v1/server/redaction/model/Section.java | 16 +++++---- .../src/test/resources/drools/rules.drl | 34 +++++++++++-------- 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java index ca571a84..638dc201 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java @@ -37,15 +37,19 @@ public class Section { public boolean isVertebrateStudy() { return tabularData != null - && tabularData.containsKey("Vertebrate study Y/N") - && tabularData.get("Vertebrate study Y/N").getText().equals("Y"); + && ((tabularData.containsKey("Vertebrate study Y/N") + && tabularData.get("Vertebrate study Y/N").getText().equals("Y")) + || (tabularData.containsKey("Verte brate study Y/N") + && tabularData.get("Verte brate study Y/N").getText().equals("Y"))); } public boolean isNotVertebrateStudy() { return tabularData != null - && tabularData.containsKey("Vertebrate study Y/N") - && tabularData.get("Vertebrate study Y/N").getText().equals("N"); + && ((tabularData.containsKey("Vertebrate study Y/N") + && tabularData.get("Vertebrate study Y/N").getText().equals("N")) + || (tabularData.containsKey("Verte brate study Y/N") + && tabularData.get("Verte brate study Y/N").getText().equals("N"))); } @@ -176,13 +180,13 @@ public class Section { } - public void highlightCell(String cellHeader, int ruleNumber) { + public void highlightCell(String cellHeader, int ruleNumber, String type) { TextBlock value = tabularData.get(cellHeader); if (value == null) { log.warn("Could not find any data for {}.", cellHeader); } else { - Entity entity = new Entity(value.getText(), "must_redact", 0, value.getText().length(), headline, sectionNumber); + Entity entity = new Entity(value.getText(), type, 0, value.getText().length(), headline, sectionNumber); entity.setRedaction(false); entity.setMatchedRule(ruleNumber); entity.setRedactionReason(cellHeader); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl index faaeda84..cb7a2002 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl @@ -90,28 +90,32 @@ rule "7: Redact contact information, if Producer is found" section.redactBetween("No:", "Fax", "address", 7, "Producer was found"); end -rule "8: Redact Authors and Addresses in Reference Table, if it is a Vertebrate study" - when - Section(isVertebrateStudy()) - then - section.redact("name", 8, "Redacted because row is a vertebrate study"); - section.redact("address", 8, "Redacted because row is a vertebrate study"); - section.highlightCell("Vertebrate study Y/N", 9); - end -rule "9: Not redacted because Vertebrate Study = N" +rule "8: Not redacted because Vertebrate Study = N" when Section(isNotVertebrateStudy()) then - section.redactNot("name", 9, "Not redacted because row is not a vertebrate study"); - section.redactNot("address", 9, "Not redacted because row is not a vertebrate study"); + section.redactNot("name", 8, "Not redacted because row is not a vertebrate study"); + section.redactNot("address", 8, "Not redacted because row is not a vertebrate study"); + section.highlightCell("Vertebrate study Y/N", 8, "hint_only"); + section.highlightCell("Verte brate study Y/N", 8, "hint_only"); end -rule "10: Redact if must redact entry is found" +rule "9: Redact if must redact entry is found" when eval(section.contains("must_redact")==true); then - section.redact("name", 10, "must_redact entry was found."); - section.redact("address", 10, "must_redact entry was found."); - end \ No newline at end of file + section.redact("name", 9, "must_redact entry was found."); + section.redact("address", 9, "must_redact entry was found."); + end + +rule "10: Redact Authors and Addresses in Reference Table, if it is a Vertebrate study" + when + Section(isVertebrateStudy()) + then + section.redact("name", 10, "Redacted because row is a vertebrate study"); + section.redact("address", 10, "Redacted because row is a vertebrate study"); + section.highlightCell("Vertebrate study Y/N", 10, "must_redact"); + section.highlightCell("Verte brate study Y/N", 10, "must_redact"); + end \ No newline at end of file From 85667c91e4c663bc4ac7a4cf56f953f59515faef Mon Sep 17 00:00:00 2001 From: deiflaender Date: Mon, 24 Aug 2020 12:36:49 +0200 Subject: [PATCH 2/3] Fixed pmd --- .../v1/server/redaction/model/Section.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java index 638dc201..13b2b435 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java @@ -37,19 +37,19 @@ public class Section { public boolean isVertebrateStudy() { return tabularData != null - && ((tabularData.containsKey("Vertebrate study Y/N") - && tabularData.get("Vertebrate study Y/N").getText().equals("Y")) - || (tabularData.containsKey("Verte brate study Y/N") - && tabularData.get("Verte brate study Y/N").getText().equals("Y"))); + && (tabularData.containsKey("Vertebrate study Y/N") + && tabularData.get("Vertebrate study Y/N").getText().equals("Y") + || tabularData.containsKey("Verte brate study Y/N") + && tabularData.get("Verte brate study Y/N").getText().equals("Y")); } public boolean isNotVertebrateStudy() { return tabularData != null - && ((tabularData.containsKey("Vertebrate study Y/N") - && tabularData.get("Vertebrate study Y/N").getText().equals("N")) - || (tabularData.containsKey("Verte brate study Y/N") - && tabularData.get("Verte brate study Y/N").getText().equals("N"))); + && (tabularData.containsKey("Vertebrate study Y/N") + && tabularData.get("Vertebrate study Y/N").getText().equals("N") + || tabularData.containsKey("Verte brate study Y/N") + && tabularData.get("Verte brate study Y/N").getText().equals("N")); } From afa26895c8e78f261ec3700c515f412d8cf605ce Mon Sep 17 00:00:00 2001 From: deiflaender Date: Mon, 24 Aug 2020 13:05:23 +0200 Subject: [PATCH 3/3] Fixed test problem --- .../v1/server/redaction/service/EntityRedactionServiceTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionServiceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionServiceTest.java index 625479a2..b8a80ac8 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionServiceTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionServiceTest.java @@ -232,7 +232,7 @@ public class EntityRedactionServiceTest { " then\n" + " section.redact(\"name\", 9, \"Redacted because row is a vertebrate study\");\n" + " section.redact(\"address\", 9, \"Redacted because rows is a vertebrate study\");\n" + - " section.highlightCell(\"Vertebrate study Y/N\", 9);\n" + + " section.highlightCell(\"Vertebrate study Y/N\", 9, \"must_redact\");\n" + " end"; when(rulesClient.getVersion()).thenReturn(1L); when(rulesClient.getRules()).thenReturn(new RulesResponse(tableRules));