diff --git a/Src/java/engine/src/main/java/org/opencds/cqf/cql/engine/execution/CqlEngine.java b/Src/java/engine/src/main/java/org/opencds/cqf/cql/engine/execution/CqlEngine.java index 1968d58e6..f4ac3a4a0 100644 --- a/Src/java/engine/src/main/java/org/opencds/cqf/cql/engine/execution/CqlEngine.java +++ b/Src/java/engine/src/main/java/org/opencds/cqf/cql/engine/execution/CqlEngine.java @@ -499,7 +499,9 @@ private void validateDataRequirements(Library library) { private void validateTerminologyRequirements(Library library) { // TODO: Smarter validation would be to checkout and see if any retrieves // Use terminology, and to check for any codesystem lookups. - if ((library.getCodeSystems() != null + // Please remember that (true) || (true) || (true) && false == true beacause of order of operations, so the + // extra () are needed! + if (((library.getCodeSystems() != null && library.getCodeSystems().getDef() != null && !library.getCodeSystems().getDef().isEmpty()) || (library.getCodes() != null @@ -507,7 +509,7 @@ private void validateTerminologyRequirements(Library library) { && !library.getCodes().getDef().isEmpty()) || (library.getValueSets() != null && library.getValueSets().getDef() != null - && !library.getValueSets().getDef().isEmpty()) + && !library.getValueSets().getDef().isEmpty())) && this.environment.getTerminologyProvider() == null) { throw new IllegalArgumentException(String.format( "Library %s has terminology requirements and no terminology provider is registered.",