public ActionResult GetHdlReferringReport(HdlReferringCutReportResponseModel requestModel)
        {
            try
            {
                var resposeModel = patientService.GetHdlReferringReport(requestModel);

                if (resposeModel != null)
                {
                    return(Ok(GetResponse(ResponseType.OBJECT, ResponseStatusCode.SUCCESS, resposeModel)));
                }
                else
                {
                    return(Ok(GetResponse(ResponseType.FAIL, ResponseStatusCode.FAIL, GetError(ErrorCodes.dataNotFound, "No test titles found", "Something went wrong!"))));
                }
            }
            catch (Exception e)
            {
                Program.Logger.Error(e);
                return(Ok(GetResponse(ResponseType.FAIL, ResponseStatusCode.FAIL, GetError(ErrorCodes.dataNotFound, "Failed", e.Message))));
            }
        }
Example #2
0
        public async Task <HdlReferringCutReportResponseModel> GetHdlReferringCutPaymentReport(HdlReferringCutReportResponseModel model)
        {
            var url = URLBuilder.GetURL(Controllers.PATIENT, EndPoint.PATIENT_GET_HDL_REF_PAYMENT_REPORT);

            return(await requestProvider.PostAsync(url, model));
        }
        public HdlReferringCutReportResponseModel GetHdlReferringReport(HdlReferringCutReportResponseModel model)
        {
            if (model.FromDate == null || model.ToDate == null)
            {
                throw new Exception("Please enter valid date range");
            }

            var patients = patientsRepository.GetAll().Where(x =>
            {
                if ((x.RegistrationDate >= model.FromDate) && (x.RegistrationDate <= model.ToDate))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            })?.ToList();

            var responseModel = new HdlReferringCutReportResponseModel();

            responseModel.Hdls = hdlRegisrationRepository.GetAll()?.ToList()?.FindAll(x => x.RegistrationCategoryId == 2 && x.RegistrationTypeId != 3);
            if (patients != null && patients.Count > 0)
            {
                responseModel.FromDate = model.FromDate;
                responseModel.ToDate   = model.ToDate;
                foreach (var patient in patients)
                {
                    var testResults = testResultsRepository.GetAll()?.Where(x => x.PatientId == patient.Id)?.ToList();
                    if (testResults != null)
                    {
                        List <TestTitles> selectedTests = new List <TestTitles>();
                        if (testResults.Count > 0)
                        {
                            foreach (var testResult in testResults)
                            {
                                var testTitle = testTitlesRepository.Get(testResult.TitleId);
                                if (!selectedTests.Contains(testTitle))
                                {
                                    selectedTests.Add(testTitle);
                                }
                            }
                        }

                        foreach (var test in selectedTests)
                        {
                            var labSample = new HdlReferringCutModelDto();
                            var testTitle = testTitlesRepository.Get(test.Id);
                            var lab       = hdlRegisrationRepository.Get((int)patient.ReferredBy);
                            var _patient  = patient;
                            var rateList  = referringRateListRepository.GetAll()?.ToList()?.Find(x => x.HdlId == lab.Id && x.TestTitleId == testTitle.Id);

                            labSample.TestTitleId      = testTitle.Id;
                            labSample.TestGroupId      = testTitle.GroupId;
                            labSample.TestName         = testTitle.Name;
                            labSample.RegistrationDate = patient.RegistrationDate;
                            labSample.PatientName      = patient.FirstName + " " + patient.LastName;
                            labSample.PatientCode      = patient.PatientCode;
                            labSample.PatientId        = patient.Id;
                            labSample.HdlName          = lab.Name;
                            labSample.HdlId            = lab.Id;
                            labSample.OriginalCharge   = testTitle.Charges;
                            var amount = GetReferringAmount(rateList, testTitle, labSample.HdlName);
                            if (amount.HasValue)
                            {
                                labSample.ReferringCharge = (float)amount;
                            }
                            else
                            {
                                labSample.ReferringCharge = 0;
                            }

                            responseModel.HdlReferringCutModelDtos.Add(labSample);
                        }
                    }
                }
            }
            return(responseModel);
        }