diff --git a/smash/web/api_views/subject.py b/smash/web/api_views/subject.py index a30d4c198348f47bf26f6672e4c323ae352d83d3..f5eed511a6803c18a79d89643ae294ae40b30da8 100644 --- a/smash/web/api_views/subject.py +++ b/smash/web/api_views/subject.py @@ -199,11 +199,11 @@ def filter_by_visit(result, visit_number, visit_type): elif visit_type == "EXCEED": result = result.filter(**{datetime_begin_filter + "__lt": get_today_midnight_date()}). \ filter(**{is_finished_filter: 0}). \ + filter(**{scheduled_appointments_filter: 0}). \ filter(**{datetime_end_filter + "__lt": get_today_midnight_date()}) elif visit_type == "IN_PROGRESS": result = result.filter(**{datetime_begin_filter + "__lt": get_today_midnight_date()}). \ filter(**{is_finished_filter: 0}). \ - filter(**{datetime_end_filter + "__gt": get_today_midnight_date()}). \ filter(**{scheduled_appointments_filter + "__gt": 0}) elif visit_type == "SHOULD_BE_IN_PROGRESS": result = result.filter(**{datetime_begin_filter + "__lt": get_today_midnight_date()}). \ @@ -330,7 +330,12 @@ def serialize_subject(study_subject): else: status = "MISSED" elif visit.datetime_end < get_today_midnight_date(): - status = "EXCEEDED" + scheduled_appointments_count = visit.appointment_set.filter( + status=Appointment.APPOINTMENT_STATUS_SCHEDULED).count() + if scheduled_appointments_count > 0: + status = "IN_PROGRESS" + else: + status = "EXCEEDED" else: scheduled_appointments_count = visit.appointment_set.filter( status=Appointment.APPOINTMENT_STATUS_SCHEDULED).count()