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)))); } }
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); }