diff --git a/care/facility/api/viewsets/patient.py b/care/facility/api/viewsets/patient.py index 631928d5f4..0ce204bdf9 100644 --- a/care/facility/api/viewsets/patient.py +++ b/care/facility/api/viewsets/patient.py @@ -406,6 +406,14 @@ def get_serializer_class(self): else: return self.serializer_class + def filter_queryset(self, queryset: QuerySet) -> QuerySet: + if self.action == "list" and settings.CSV_REQUEST_PARAMETER in self.request.GET: + for backend in (PatientDRYFilter, filters.DjangoFilterBackend): + queryset = backend().filter_queryset(self.request, queryset, self) + return queryset.filter(last_consultation__discharge_date__isnull=True) + + return super().filter_queryset(queryset) + def list(self, request, *args, **kwargs): """ Patient List