From 63907355b6a95f07e37dc94a903b4927399a719f Mon Sep 17 00:00:00 2001 From: Rithvik Nishad Date: Thu, 31 Aug 2023 17:34:12 +0000 Subject: [PATCH] Adds `type` filter to Medibase search (#1566) add `type` filter for medibase Co-authored-by: Vignesh Hari --- care/facility/api/viewsets/prescription.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/care/facility/api/viewsets/prescription.py b/care/facility/api/viewsets/prescription.py index 0f89beb1fc..3231a9bc0d 100644 --- a/care/facility/api/viewsets/prescription.py +++ b/care/facility/api/viewsets/prescription.py @@ -177,13 +177,18 @@ def list(self, request): from care.facility.static_data.medibase import MedibaseMedicineTable queryset = MedibaseMedicineTable - try: - limit = min(int(request.query_params.get("limit", 30)), 100) - except ValueError: - limit = 30 + + if type := request.query_params.get("type"): + queryset = [x for x in queryset if x[2] == type] if query := request.query_params.get("query"): query = query.strip().lower() queryset = [x for x in queryset if query in f"{x[1]} {x[3]} {x[4]}".lower()] queryset = self.sort(query, queryset) + + try: + limit = min(int(request.query_params.get("limit", 30)), 100) + except ValueError: + limit = 30 + return Response(self.serailize_data(queryset[:limit]))