def list_all_treatments(id_patient, id_treatment_cycle, page_num, page_size, path): """ Method to list all treatments on treatment cycle :param id_patient: Specified Patient :param id_treatment_cycle: Specified treatment cycle :param page_num: Specified page number :param page_size: Specified number of elements per page :param path: Current endpoint url :return: list of information of patients on the system """ PatientService.is_valid_patient(id_patient) TreatmentService.is_valid_treatment_cycle(id_treatment_cycle, id_patient) all_treatments = Treatment.objects.filter( treatment_cycle_id=id_treatment_cycle) paginator = Paginator(all_treatments, page_size) PaginationService.is_valid_page_number(paginator, int(page_num)) results = TreatmentListSerializer(paginator.page(page_num), many=True).data return PaginationService.get_paginated_results(paginator, page_num, path, results)
def list_all_physio_treatments(physio_id, page_num, page_size, path): """ Method to list all treatments done by a physiotherapist ordered by date in descending order :param physio_id: Specified Physiotherapist :param page_num: Specified page number :param page_size: Specified number of elements per page :param path: Current endpoint url :return: list of physiotherapist treatments """ all_treatment_cycles = TreatmentCycle.objects.filter( physiotherapist=physio_id) all_treatments = Treatment.objects.filter( treatment_cycle_id__in=all_treatment_cycles).order_by( 'end_date').reverse() paginator = Paginator(all_treatments, page_size) PaginationService.is_valid_page_number(paginator, int(page_num)) results = TreatmentPhysioListSerializer(paginator.page(page_num), many=True).data return PaginationService.get_paginated_results(paginator, page_num, path, results)
def list_physios_patients(physio_id, page_num, page_size, path, query=""): """ Method to list patients of a physiotherapist :param page_num: Specified page number :param page_size: Specified number of elements per page :param path: Current endpoint url :param query: Search query :return: listof patients of a specific physiotherapist """ list_patients = Patient.objects.filter( patientphysiotherapist__physiotherapist=physio_id).order_by( 'person__first_name') patient_list = QueryService.get_query_results( list_patients, query, { "person__first_name": 'A', "person__last_name": 'A', "person__telephone_number": 'B', "person__email": 'B', "profession": 'B', "diagnostic": 'C', "clinical_history": 'C', "doctor__name": 'B' }) paginator = Paginator(patient_list, page_size) PaginationService.is_valid_page_number(paginator, int(page_num)) results = PatientListSerializer(paginator.page(page_num), many=True).data return PaginationService.get_paginated_results(paginator, page_num, path, results)
def list_patients(page_num, page_size, path, query=""): """ Method to list patients on the system :param page_num: Specified page number :param page_size: Specified number of elements per page :param path: Current endpoint url :param query: Search query :return: list of information of patients on the system """ patients_list = QueryService.get_query_results(Patient.objects, query, {"person__first_name": 'A', "person__last_name": 'A', "person__telephone_number": 'B', "person__email": 'B', "profession": 'B', "diagnostic": 'C', "clinical_history": 'C', "doctor__name": 'B'}) paginator = Paginator(patients_list, page_size) PaginationService.is_valid_page_number(paginator, int(page_num)) results = PatientListSerializer(paginator.page(page_num), many=True).data return PaginationService.get_paginated_results(paginator, page_num, path, results)
def list_body_zones(page_num, page_size, path, query=""): """ Method to list body zones on the system :param page_num: Specified page number :param page_size: Specified number of elements per page :param path: Current endpoint url :param query: Search query :return: list of body zones on the system """ body_zones_list = QueryService.get_trigram_similarity_results( BodyZone, query) paginator = Paginator(body_zones_list, page_size) PaginationService.is_valid_page_number(paginator, int(page_num)) results = BodyZoneSerializer(paginator.page(page_num), many=True).data return PaginationService.get_paginated_results(paginator, page_num, path, results)
def test_valid_is_valid_page_number(self): """ Tests if the method validates a valid page number """ PaginationService.is_valid_page_number(self.paginator, 1)