Skip to content

Commit

Permalink
Adding implementation of aggregation for resolve().
Browse files Browse the repository at this point in the history
  • Loading branch information
piotrszul committed Dec 6, 2024
1 parent 53e86ea commit 0c0b40d
Showing 1 changed file with 1 addition and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -835,21 +835,7 @@ private FhirpathResult purifyResolve(@Nonnull final ObjectDataSource dataSource,
);
}
}

@Nonnull
public static Dataset<Row> groupBy(@Nonnull final Dataset<Row> dataset,
@Nonnull final Column groupingExpression, @Nonnull final Set<String> excludeFields,
@Nonnull final Column... aggExpressions) {
final Stream<Column> passThroughExpressions = Stream.of(dataset.columns())
.filter(c -> !excludeFields.contains(c))
.map(c -> functions.any_value(functions.col(c)).alias(c));
final List<Column> aggColumns = Stream.concat(passThroughExpressions, Stream.of(aggExpressions))
.toList();
return dataset.groupBy(groupingExpression)
.agg(aggColumns.get(0), aggColumns.stream().skip(1).toArray(Column[]::new));
}



@Test
void simpleReverseResolveToSingularValue() {
final ObjectDataSource dataSource = getPatientsWithConditions();
Expand Down

0 comments on commit 0c0b40d

Please sign in to comment.