private Set<CodePhrase> getCodePhrases(PredicateGeneratedElementInstance predicate) { DataValue dataValue = predicate.getDataValue(); Set<CodePhrase> codePhrases = new HashSet<>(); if (dataValue instanceof DvCodedText) { DvCodedText codedText = (DvCodedText) dataValue; List<TermMapping> mappings = codedText.getMappings(); if (mappings != null) { for (TermMapping termMapping : mappings) { codePhrases.add(termMapping.getTarget()); } } else { codePhrases.add(codedText.getDefiningCode()); } } return codePhrases; }
private void filterEquals( PredicateGeneratedElementInstance predicate, Collection<ArchetypeReference> ehrArchetypeReferences, boolean negation) { final Set<ArchetypeReference> archetypeReferencesToRemove = new HashSet<>(); for (ArchetypeReference archetypeReference : ehrArchetypeReferences) { ElementInstance elementInstance = archetypeReference.getElementInstancesMap().get(predicate.getId()); if (elementInstance != null) { DataValue dataValue = elementInstance.getDataValue(); if (dataValue != null) { boolean equals = dataValue.equals(predicate.getDataValue()); if ((!equals && !negation) || (equals && negation)) { archetypeReferencesToRemove.add(elementInstance.getArchetypeReference()); } } else { archetypeReferencesToRemove.add(elementInstance.getArchetypeReference()); } } } ehrArchetypeReferences.removeAll(archetypeReferencesToRemove); }
PredicateGeneratedElementInstance pgeiPrev = (PredicateGeneratedElementInstance) prevEI; if (!pgeiNew.getOperatorKind().equals(pgeiPrev.getOperatorKind()) || DVUtil.compareDVs(pgeiNew.getDataValue(), pgeiPrev.getDataValue()) != 0) {
private void filterEhrData( Collection<ArchetypeReference> ehrArchetypeReferences, Calendar date, PredicateGeneratedElementInstance predicate) { if (OperatorKind.MAX.equals(predicate.getOperatorKind())) { filterMaxMin(predicate.getId(), ehrArchetypeReferences, true); } else if (OperatorKind.MIN.equals(predicate.getOperatorKind())) { filterMaxMin(predicate.getId(), ehrArchetypeReferences, false); } else if (OperatorKind.IS_A.equals(predicate.getOperatorKind())) { filterIsA(predicate, ehrArchetypeReferences, false); } else if (OperatorKind.IS_NOT_A.equals(predicate.getOperatorKind())) { filterIsA(predicate, ehrArchetypeReferences, true); } else if (OperatorKind.EQUALITY.equals(predicate.getOperatorKind())) { filterEquals(predicate, ehrArchetypeReferences, false); } else if (OperatorKind.INEQUAL.equals(predicate.getOperatorKind())) { filterEquals(predicate, ehrArchetypeReferences, true); } else if (OperatorKind.GREATER_THAN_OR_EQUAL.equals(predicate.getOperatorKind())) { filterGreaterLessThanPredicate(predicate.getId(), predicate.getDataValue(), ehrArchetypeReferences, true, date); } else if (OperatorKind.LESS_THAN_OR_EQUAL.equals(predicate.getOperatorKind())) { filterGreaterLessThanPredicate(predicate.getId(), predicate.getDataValue(), ehrArchetypeReferences, false, date); } }