diff --git a/src/main/java/org/openelisglobal/testreflex/action/util/TestReflexUtil.java b/src/main/java/org/openelisglobal/testreflex/action/util/TestReflexUtil.java index 6ee675ec4..d02f64d0e 100644 --- a/src/main/java/org/openelisglobal/testreflex/action/util/TestReflexUtil.java +++ b/src/main/java/org/openelisglobal/testreflex/action/util/TestReflexUtil.java @@ -331,20 +331,15 @@ private List getReflexTests(TestReflexBean reflexBean) { return new ArrayList<>(); } String resultType = testService.getResultType(reflexBean.getResult().getTestResult().getTest()); - List reflexesForResult = reflexResolver.getTestReflexesForResult(reflexBean.getResult()); + List reflexesForResult; if (resultType.equals("D")) { - reflexesForResult = applyDictionaryRelationRulesForReflex(reflexBean.getResult()); - } else if (!resultType.equals("D")) { - if (resultType.equals("N")) { - reflexesForResult = reflexesForResult.stream() - .filter(test -> applyNumericRelationRulesForReflex(test, reflexBean.getResult())) - .collect(Collectors.toList()); - } else { - reflexesForResult = reflexesForResult.stream() - .filter(test -> applyTextRelationRulesForReflex(test, reflexBean.getResult())) - .collect(Collectors.toList()); - } + reflexesForResult = reflexResolver.getTestReflexsByAnalyteAndTest(reflexBean.getResult()); + } else { + reflexesForResult = reflexResolver.getTestReflexesForResult(reflexBean.getResult()); } + reflexesForResult = reflexesForResult.stream() + .filter(e -> isTestTriggeredByResult(e.getAddedTest(), reflexBean.getResult())) + .collect(Collectors.toList()); return reflexesForResult; } @@ -895,13 +890,13 @@ public boolean doesDictionaryRelationRulesForReflexApply(Test potentialReflexTes private boolean doesNumericRulesForReflexApply(Test potentialReflexTest, Result potentialTriggerResult) { List reflexesForResult = reflexResolver.getTestReflexesForResult(potentialTriggerResult); - return reflexesForResult.stream().anyMatch(test -> test.getAddedTest().equals(potentialReflexTest) + return reflexesForResult.stream().anyMatch(test -> test.getAddedTest().getId().equals(potentialReflexTest.getId()) && applyNumericRelationRulesForReflex(test, potentialTriggerResult)); } private boolean doesGenericRulesForReflexApply(Test potentialReflexTest, Result potentialTriggerResult) { List reflexesForResult = reflexResolver.getTestReflexesForResult(potentialTriggerResult); - return reflexesForResult.stream().anyMatch(test -> test.getAddedTest().equals(potentialReflexTest) + return reflexesForResult.stream().anyMatch(test -> test.getAddedTest().getId().equals(potentialReflexTest.getId()) && applyTextRelationRulesForReflex(test, potentialTriggerResult)); } }