execute method
The iterable, nested function that evaluates the entire FHIRPath expression one object at a time
Implementation
@override
List execute(List results, Map<String, dynamic> passed) {
final other = value.execute(results.toList(), passed);
final inBag = [...results];
// Eliminate duplicates in input
final outBag = [];
for (final item in inBag) {
if (outBag.indexWhere((otherItem) =>
const DeepCollectionEquality().equals(item, otherItem)) ==
-1) {
outBag.add(item);
}
}
// Intersect
outBag.removeWhere((e) =>
other.indexWhere(
(element) => const DeepCollectionEquality().equals(e, element)) ==
-1);
return outBag;
}