/** @see CohortDefinitionEvaluator#evaluate(CohortDefinition, EvaluationContext) */ public EvaluatedCohort evaluate(CohortDefinition cohortDefinition, EvaluationContext context) { PersonAttributeCohortDefinition pacd = (PersonAttributeCohortDefinition) cohortDefinition; List<String> values = new ArrayList<String>(); if (pacd.getValues() != null) { values.addAll(pacd.getValues()); } if (pacd.getValueConcepts() != null) { for (Concept c : pacd.getValueConcepts()) { values.add(c.serialize()); } } if (pacd.getValueLocations() != null) { for (Location l : pacd.getValueLocations()) { values.add(l.serialize()); } } CohortQueryService cqs = Context.getService(CohortQueryService.class); Cohort c = cqs.getPatientsHavingPersonAttributes(pacd.getAttributeType(), values); return new EvaluatedCohort(c, cohortDefinition, context); }