diff --git a/pom.xml b/pom.xml
index 503b66b..b4fe623 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
org.sitenv.vocabulary
codevalidator-api
- 1.0.12
+ 1.0.13
Code Validator API
http://www.sitenv.org
diff --git a/src/main/java/org/sitenv/vocabularies/validation/repositories/CodeRepository.java b/src/main/java/org/sitenv/vocabularies/validation/repositories/CodeRepository.java
index 87af522..7299cd0 100644
--- a/src/main/java/org/sitenv/vocabularies/validation/repositories/CodeRepository.java
+++ b/src/main/java/org/sitenv/vocabularies/validation/repositories/CodeRepository.java
@@ -7,6 +7,7 @@
import org.springframework.stereotype.Repository;
import java.util.List;
+import java.util.Set;
/**
* Created by Brian on 2/7/2016.
@@ -14,25 +15,25 @@
@Repository
public interface CodeRepository extends JpaRepository {
@Query("SELECT CASE WHEN COUNT(c) > 0 THEN true ELSE false END FROM Code c WHERE c.codeSystem in (:codesystems)")
- boolean foundCodesystems(@Param("codesystems")List codesystems);
+ boolean foundCodesystems(@Param("codesystems")Set codesystems);
@Query("SELECT CASE WHEN COUNT(c) > 0 THEN true ELSE false END FROM Code c WHERE c.code = :code and c.displayName = :displayName and c.codeSystem in (:codesystems)")
boolean foundCodeAndDisplayNameInCodesystem(@Param("code")String code, @Param("displayName")String displayName, @Param("codesystems")List codesystems);
@Query("SELECT CASE WHEN COUNT(c) > 0 THEN true ELSE false END FROM Code c WHERE c.code = :code and c.displayName = :displayName and c.codeSystemOID = :codeSystemOID and c.codeSystem in (:codesystems) and c.active = true")
- boolean foundActiveCodeAndDisplayNameAndCodeSystemOIDInCodesystem(@Param("code")String code, @Param("displayName")String displayName, @Param("codeSystemOID")String codeSystemOID, @Param("codesystems")List codesystems);
+ boolean foundActiveCodeAndDisplayNameAndCodeSystemOIDInCodesystem(@Param("code")String code, @Param("displayName")String displayName, @Param("codeSystemOID")String codeSystemOID, @Param("codesystems")Set codesystems);
@Query("SELECT CASE WHEN COUNT(c) > 0 THEN true ELSE false END FROM Code c WHERE c.code = :code and c.codeSystem in (:codesystems)")
- boolean foundCodeInCodesystems(@Param("code")String code, @Param("codesystems")List codesystems);
+ boolean foundCodeInCodesystems(@Param("code")String code, @Param("codesystems")Set codesystems);
@Query("SELECT CASE WHEN COUNT(c) > 0 THEN true ELSE false END FROM Code c WHERE c.displayName = :displayName and c.codeSystem in (:codesystems)")
- boolean foundDisplayNameInCodesystems(@Param("displayName")String displayName, @Param("codesystems")List codesystems);
+ boolean foundDisplayNameInCodesystems(@Param("displayName")String displayName, @Param("codesystems")Set codesystems);
@Query("SELECT CASE WHEN COUNT(c) > 0 THEN true ELSE false END FROM Code c WHERE c.codeSystemOID = :codeSystemOID and c.codeSystem in (:codesystems)")
- boolean foundCodeSystemOIDInCodesystems(@Param("codeSystemOID")String codeSystemOID, @Param("codesystems")List codesystems);
+ boolean foundCodeSystemOIDInCodesystems(@Param("codeSystemOID")String codeSystemOID, @Param("codesystems")Set codesystems);
List findByCodeAndCodeSystemIn(String code, List codesystems);
- @Query("SELECT c.active FROM Code c WHERE c.code = :code and c.codeSystem in (:codesystems)")
- boolean codeIsActive(@Param("code")String code, @Param("codesystems")List codesystems);
+ @Query("SELECT c.active FROM Code c WHERE c.active = 1 AND c.code = :code and c.codeSystem in (:codesystems)")
+ boolean codeIsActive(@Param("code")String code, @Param("codesystems")Set codesystems);
}
diff --git a/src/main/java/org/sitenv/vocabularies/validation/services/VocabularyCodeService.java b/src/main/java/org/sitenv/vocabularies/validation/services/VocabularyCodeService.java
index cccdf27..14e96a6 100644
--- a/src/main/java/org/sitenv/vocabularies/validation/services/VocabularyCodeService.java
+++ b/src/main/java/org/sitenv/vocabularies/validation/services/VocabularyCodeService.java
@@ -1,14 +1,15 @@
package org.sitenv.vocabularies.validation.services;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
import org.sitenv.vocabularies.validation.entities.Code;
import org.sitenv.vocabularies.validation.repositories.CodeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
/**
* Created by Brian on 2/23/2016.
*/
@@ -34,7 +35,7 @@ public boolean isFoundByCodeAndDisplayNameInCodeSystems(String code, String disp
public boolean isFoundByCodeInCodeSystems(String code, Set codeSystems){
String cleanedCode = code.trim().toUpperCase();
- ArrayList cleanedCodeSystems = new ArrayList<>();
+ Set cleanedCodeSystems = new HashSet<>();
for(String codeSystem : codeSystems){
cleanedCodeSystems.add(codeSystem.trim().toUpperCase());
}
diff --git a/src/main/java/org/sitenv/vocabularies/validation/validators/nodetypes/CodeSystemCodeValidator.java b/src/main/java/org/sitenv/vocabularies/validation/validators/nodetypes/CodeSystemCodeValidator.java
index 6afe00c..a7234ed 100644
--- a/src/main/java/org/sitenv/vocabularies/validation/validators/nodetypes/CodeSystemCodeValidator.java
+++ b/src/main/java/org/sitenv/vocabularies/validation/validators/nodetypes/CodeSystemCodeValidator.java
@@ -1,5 +1,16 @@
package org.sitenv.vocabularies.validation.validators.nodetypes;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpression;
+import javax.xml.xpath.XPathExpressionException;
+
import org.apache.log4j.Logger;
import org.sitenv.vocabularies.configuration.ConfiguredValidationResultSeverityLevel;
import org.sitenv.vocabularies.configuration.ConfiguredValidator;
@@ -13,14 +24,6 @@
import org.springframework.stereotype.Component;
import org.w3c.dom.Node;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpression;
-import javax.xml.xpath.XPathExpressionException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
@Component(value = "CodeSystemCodeValidator")
public class CodeSystemCodeValidator extends NodeValidator {
private static final Logger logger = Logger.getLogger(CodeSystemCodeValidator.class);
@@ -51,7 +54,7 @@ public List validateNode(ConfiguredValidator configu
throw new RuntimeException("ERROR getting node values " + e.getMessage());
}
- List allowedConfiguredCodeSystemNames = new ArrayList<>(Arrays.asList(configuredValidator.getAllowedCodesystemNames().split(",")));
+ Set allowedConfiguredCodeSystemNames = new HashSet<>(Arrays.asList(configuredValidator.getAllowedCodesystemNames().split(",")));
NodeValidationResult nodeValidationResult = new NodeValidationResult();
nodeValidationResult.setValidatedDocumentXpathExpression(XpathUtils.buildXpathFromNode(node));