private void filterIsA( PredicateGeneratedElementInstance predicate, Collection<ArchetypeReference> ehrArchetypeReferences, boolean negation) { final Set<ArchetypeReference> archetypeReferencesToRemove = new HashSet<>(); final Set<CodePhrase> codePhrases = getCodePhrases(predicate); ElementInstance elementInstance; for (ArchetypeReference archetypeReference : ehrArchetypeReferences) { elementInstance = archetypeReference.getElementInstancesMap().get(predicate.getId()); if (elementInstance != null && codePhrases != null) { CodePhrase codePhrase = getCodePhrase(elementInstance); try { if (codePhrase != null) { if ("local".equalsIgnoreCase(codePhrase.getTerminologyId().name())) { filterIsALocalTerminology(negation, archetypeReferencesToRemove, codePhrases, elementInstance, codePhrase); } else { filterIsAExternalTerminology(negation, archetypeReferencesToRemove, codePhrases, elementInstance, codePhrase); } } else { archetypeReferencesToRemove.add(elementInstance.getArchetypeReference()); } } catch (Exception exception) { archetypeReferencesToRemove.add(elementInstance.getArchetypeReference()); logger.warn("Filter isA ", exception); } } } ehrArchetypeReferences.removeAll(archetypeReferencesToRemove); }
CodePhrase code = ord.getSymbol(); if ("local".equalsIgnoreCase( code.getTerminologyId().name())) { codes.add(code.getCodeString()); CCodePhrase ccod = (CCodePhrase) cobj; List<String> list = ccod.getCodeList(); if ("local".equalsIgnoreCase(ccod.getTerminologyId().name()) && list != null) { for (String code : list) {