From d83dd3b576a34a7f4843507083587e0b2e806c06 Mon Sep 17 00:00:00 2001 From: deiflaender Date: Tue, 22 Nov 2022 12:07:14 +0100 Subject: [PATCH] RSS-204: Added new guideline mapping, fixed component names for scm --- .../v1/server/service/RSSPoc2Service.java | 95 +++++++++---------- 1 file changed, 45 insertions(+), 50 deletions(-) diff --git a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RSSPoc2Service.java b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RSSPoc2Service.java index 48e1366..020a924 100644 --- a/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RSSPoc2Service.java +++ b/redaction-report-service-v1/redaction-report-service-server-v1/src/main/java/com/iqser/red/service/redaction/report/v1/server/service/RSSPoc2Service.java @@ -14,6 +14,7 @@ import java.util.stream.Collectors; import javax.annotation.PostConstruct; +import org.apache.commons.lang3.tuple.Pair; import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel; @@ -40,8 +41,8 @@ public class RSSPoc2Service { public static final String EXPERIMENTAL_COMPLETION_DATE = "Experimental_Completion_Date"; public static final String GLP_STUDY = "GLP_Study"; public static final String CERTIFICATE_OF_ANALYSIS_BATCH_IDENTIFICATION = "Certificate_of_Analysis_Batch_Identification"; - public static final String TEST_GUIDELINE_1 = "Test_Guideline_1"; - public static final String TEST_GUIDELINE_2 = "Test_Guideline_2"; + public static final String TEST_GUIDELINE_1 = "Test_Guidelines_1"; + public static final String TEST_GUIDELINE_2 = "Test_Guidelines_2"; public static final String STUDY_CONCLUSION = "Study_Conclusion"; public static final String DEVIATION_FROM_THE_GUIDELINE_SENTENCE = "Deviation_from_the_Guideline_"; public static final String SPECIES = "Species"; @@ -51,8 +52,8 @@ public class RSSPoc2Service { public static final String CONCLUSION_MINIMUM_CONFIDENCE = "Conclusion_Minimum_Confidence"; public static final String CONCLUSION_MAXIMUM_CONFIDENCE = "Conclusion_Maximum_Confidence"; public static final String NECROPSY_FINDINGS = "Necropsy_Findings"; - public static final String NECROPSY_FINDINGS_SENTENCE = "Necropsy_findings_"; - public static final String CONDUCTED_WITHIN_4_HOURS_OF_EXPOSURE = "Conducted_within_4_Hours_of_Exposure"; + public static final String NECROPSY_FINDINGS_SENTENCE = "Necropsy_Findings_"; + public static final String CONDUCTED_WITHIN_4_HOURS_OF_EXPOSURE = "Conducted_with_4_Hours_of_Exposure"; public static final String STUDY_DESIGN = "Study_Design"; public static final String RESULTS_AND_CONCLUSIONS = "Results_and_Conclusions"; public static final String WEIGHT_BEHAVIOR_CHANGES_SENTENCE = "Weight_Behavior_Changes_"; @@ -75,44 +76,42 @@ public class RSSPoc2Service { private final RedactionLogClient redactionLogClient; private final FileStatusClient statusClient; - private final Map> guidelineMapping = new HashMap<>(); + private final Map guidelineMapping = new HashMap<>(); private final FileAttributesConfigClient fileAttributesClient; @PostConstruct public void init() { - guidelineMapping.put("Nº 425: Acute oral Toxicity - Up-and-Down Procedure (03/10/2008)", Set.of("OECD 425 (2008)", "OECD No. 425 (2008)")); - guidelineMapping.put("Nº 425: Acute oral Toxicity - Up-and-Down Procedure (17/12/2001)", Set.of("OECD 425 (2001)", "OECD No. 425 (2001)")); - guidelineMapping.put("Nº 402: Acute Dermal Toxicity (09/10/2017)", Set.of("OECD 402 (2017)", "OECD No. 402 (2017)")); - guidelineMapping.put("Nº 402: Acute Dermal Toxicity (24/02/1987)", Set.of("OECD 402 (1987)", "OECD No. 402 (1987)")); - guidelineMapping.put("Nº 403: Acute Inhalation Toxicity (08/09/2009)", Set.of("OECD 403 (2009)", "OECD No. 403 (2009)")); - guidelineMapping.put("Nº 403: Acute Inhalation Toxicity (12/05/1981)", Set.of("OECD 403 (1981)", "OECD No. 403 (1981)")); - guidelineMapping.put("Nº 433: Acute Inhalation Toxicity: Fixed Concentration Procedure (27/06/2018)", Set.of("OECD 433 (2018)", "OECD No. 433 (2018)")); - guidelineMapping.put("Nº 433: Acute Inhalation Toxicity: Fixed Concentration Procedure (09/10/2017)", Set.of("OECD 433 (2017)", "OECD No. 433 (2017)")); - guidelineMapping.put("Nº 436: Acute Inhalation Toxicity – Acute Toxic Class Method (08/09/2009)", Set.of("OECD 436 (2009)", "OECD No. 436 (2009)")); - guidelineMapping.put("Nº 404: Acute Dermal Irritation/Corrosion (12/05/1981)", Set.of("OECD 404 (1981)", "OECD No. 404 (1981)")); - guidelineMapping.put("Nº 404: Acute Dermal Irritation/Corrosion (17/07/1992)", Set.of("OECD 404 (1992)", "OECD No. 404 (1992)")); - guidelineMapping.put("Nº 404: Acute Dermal Irritation/Corrosion (24/04/2002)", Set.of("OECD 404 (2002)", "OECD No. 404 (2002)")); - guidelineMapping.put("Nº 404: Acute Dermal Irritation/Corrosion (28/07/2015)", Set.of("OECD 405 (2017)", "OECD No. 405 (2017)")); - guidelineMapping.put("Nº 405: Acute Eye Irritation/Corrosion (09/10/2017)", Set.of("OECD 405 (2017)", "OECD No. 405 (2017)")); - guidelineMapping.put("Nº 405: Acute Eye Irritation/Corrosion (02/10/2012)", Set.of("OECD 405 (2012)", "OECD No. 405 (2012)")); - guidelineMapping.put("Nº 405: Acute Eye Irritation/Corrosion (24/04/2002)", Set.of("OECD 405 (2002)", "OECD No. 405 (2002)")); - guidelineMapping.put("Nº 405: Acute Eye Irritation/Corrosion (24/02/1987)", Set.of("OECD 405 (1987)", "OECD No. 405 (1987)")); - guidelineMapping.put("Nº 429: Skin Sensitisation: Local Lymph Node Assay (24/04/2002)", Set.of("OECD 429 (2002)", "OECD No. 429 (2002)")); - guidelineMapping.put("Nº 429: Skin Sensitisation (23/07/2010)", Set.of("OECD 429 (2010)", "OECD No. 429 (2010)")); - guidelineMapping.put("Nº 442A: Skin Sensitization (23/07/2018)", Set.of("ÖECD 442A (2018)", "ÖECD No. 442A (2018)")); - guidelineMapping.put("Nº 442B: Skin Sensitization (27/06/2018)", Set.of("ÖECD 442B (2018)", "ÖECD No. 442B (2018)")); - guidelineMapping.put("Nº 471: Bacterial Reverse Mutation Test (21/07/1997)", Set.of("OECD 471 (1997)", "OECD No. 471 (1997)")); - guidelineMapping.put("Nº 471: Bacterial Reverse Mutation Test (26/06/2020)", Set.of("OECD 471 (2020)", "OECD No. 471 (2020)")); - - guidelineMapping.put("Nº 406: Skin Sensitisation (1992)", Set.of("OECD 406 (1992)", "OECD No. 406 (1992)")); - guidelineMapping.put("Nº 428: Split-Thickness Skin test (2004)", Set.of("OECD 428 (2004)", "OECD No. 428 (2004)")); - guidelineMapping.put("Nº 438: Eye Irritation (26/06/2018)", Set.of("OECD 438 (2018)", "OECD No. 438 (2018)")); - guidelineMapping.put("Nº 439: Skin Irritation (2019)", Set.of("OECD 439 (2019)", "OECD No. 439 (2019)")); - guidelineMapping.put("Nº 474: Micronucleus Bone Marrow Cells Rat (2016)", Set.of("OECD 474 (2016)", "OECD No. 474 (2016)")); - guidelineMapping.put("Nº 487: Micronucleus Human Lymphocytes (2016)", Set.of("OECD 487 (2016)", "OECD No. 487 (2016)")); - + guidelineMapping.put(Pair.of("425", "2008"), "Nº 425: Acute oral Toxicity - Up-and-Down Procedure (03/10/2008)"); + guidelineMapping.put(Pair.of("425", "2001"), "Nº 425: Acute oral Toxicity - Up-and-Down Procedure (17/12/2001)"); + guidelineMapping.put(Pair.of("402", "2017"), "Nº 402: Acute Dermal Toxicity (09/10/2017)"); + guidelineMapping.put(Pair.of("402", "1987"), "Nº 402: Acute Dermal Toxicity (24/02/1987)"); + guidelineMapping.put(Pair.of("403", "2009"), "Nº 403: Acute Inhalation Toxicity (08/09/2009)"); + guidelineMapping.put(Pair.of("403", "1981"), "Nº 403: Acute Inhalation Toxicity (12/05/1981)"); + guidelineMapping.put(Pair.of("433", "2018"), "Nº 433: Acute Inhalation Toxicity: Fixed Concentration Procedure (27/06/2018)"); + guidelineMapping.put(Pair.of("433", "2017"), "Nº 433: Acute Inhalation Toxicity: Fixed Concentration Procedure (09/10/2017)"); + guidelineMapping.put(Pair.of("436", "2009"), "Nº 436: Acute Inhalation Toxicity – Acute Toxic Class Method (08/09/2009)"); + guidelineMapping.put(Pair.of("404", "1981"), "Nº 404: Acute Dermal Irritation/Corrosion (12/05/1981)"); + guidelineMapping.put(Pair.of("404", "1992"), "Nº 404: Acute Dermal Irritation/Corrosion (17/07/1992)"); + guidelineMapping.put(Pair.of("404", "2002"), "Nº 404: Acute Dermal Irritation/Corrosion (24/04/2002)"); + guidelineMapping.put(Pair.of("404", "2015"), "Nº 404: Acute Dermal Irritation/Corrosion (28/07/2015)"); + guidelineMapping.put(Pair.of("405", "2017"), "Nº 405: Acute Eye Irritation/Corrosion (09/10/2017)"); + guidelineMapping.put(Pair.of("405", "2012"), "Nº 405: Acute Eye Irritation/Corrosion (02/10/2012)"); + guidelineMapping.put(Pair.of("405", "2002"), "Nº 405: Acute Eye Irritation/Corrosion (24/04/2002)"); + guidelineMapping.put(Pair.of("405", "1987"), "Nº 405: Acute Eye Irritation/Corrosion (24/02/1987)"); + guidelineMapping.put(Pair.of("429", "2002"), "Nº 429: Skin Sensitisation: Local Lymph Node Assay (24/04/2002)"); + guidelineMapping.put(Pair.of("429", "2010"), "Nº 429: Skin Sensitisation (23/07/2010)"); + guidelineMapping.put(Pair.of("442A", "2018"), "Nº 442A: Skin Sensitization (23/07/2018)"); + guidelineMapping.put(Pair.of("442B", "2018"), "Nº 442B: Skin Sensitization (27/06/2018)"); + guidelineMapping.put(Pair.of("471", "1997"), "Nº 471: Bacterial Reverse Mutation Test (21/07/1997)"); + guidelineMapping.put(Pair.of("471", "2020"), "Nº 471: Bacterial Reverse Mutation Test (26/06/2020)"); + guidelineMapping.put(Pair.of("406", "1992"), "Nº 406: Skin Sensitisation (1992)"); + guidelineMapping.put(Pair.of("428", "2004"), "Nº 428: Split-Thickness Skin test (2004)"); + guidelineMapping.put(Pair.of("438", "2018"), "Nº 438: Eye Irritation (26/06/2018)"); + guidelineMapping.put(Pair.of("439", "2019"), "Nº 439: Skin Irritation (2019)"); + guidelineMapping.put(Pair.of("474", "2016"), "Nº 474: Micronucleus Bone Marrow Cells Rat (2016)"); + guidelineMapping.put(Pair.of("487", "2016"), "Nº 487: Micronucleus Human Lymphocytes (2016)"); } @@ -811,13 +810,19 @@ public class RSSPoc2Service { private String getTestGuideline1(RedactionLog redactionLog) { - var guideline = redactionLog.getRedactionLogEntry().stream().filter(r -> r.getType().equals("oecd_guideline")).map(RedactionLogEntry::getValue).findFirst(); + var guidelineNumber = redactionLog.getRedactionLogEntry().stream().filter(r -> r.getType().equals("oecd_guideline_number")).map(RedactionLogEntry::getValue).findFirst(); + var guidelineYear = redactionLog.getRedactionLogEntry().stream().filter(r -> r.getType().equals("oecd_guideline_year")).map(RedactionLogEntry::getValue).findFirst(); - if (guideline.isPresent()) { - return mapGuideline(guideline.get()); + if(guidelineNumber.isPresent() && guidelineYear.isPresent()){ + var guidelinePair = Pair.of(guidelineNumber.get(), guidelineYear.get()); + if(guidelineMapping.containsKey(guidelinePair)){ + return guidelineMapping.get(guidelinePair); + } } - return ""; + var guideline = redactionLog.getRedactionLogEntry().stream().filter(r -> r.getType().equals("oecd_guideline")).map(RedactionLogEntry::getValue).findFirst(); + + return guideline.orElse(""); } @@ -848,16 +853,6 @@ public class RSSPoc2Service { } - private String mapGuideline(String guideline) { - - for (Map.Entry> entry : guidelineMapping.entrySet()) { - if (entry.getValue().contains(guideline)) { - return entry.getKey(); - } - } - return "No mapping found for: " + guideline; - } - private void sortRedactionLog(RedactionLog redactionLog) {