Exemplo n.º 1
0
        public ActionResult ExemptEarlierRegisteredUnder5()
        {
            if (hs.ExemptUnderFive())
            {
                var underFiveServices = db.BillServices.Where(e => !e.Paid);
                foreach (var u5s in underFiveServices)
                {
                    if (hs.IsUnderFive(u5s.OpdRegister.PatientId))
                    {
                        hs.AutoWaiver(u5s.Id, "under 5 automatic waiver");
                    }
                }

                return(Content("Cleared " + underFiveServices.Count()));
            }

            return(Content("Under five exemption is disabled. Check Keyvalue pairs."));
        }
Exemplo n.º 2
0
        public ActionResult OPDRegistration(int?id, string QueueType = "OPD", string mode = "New")
        {
            if (id != null)
            {
                var opdRegg = db.Patients.FirstOrDefault(e => e.Id == id)?.OpdRegisters?.OrderByDescending(e => e.Id)?
                              .FirstOrDefault(e => !e.Status.Equals("draft"));

                if (opdRegg != null)
                {
                    ViewBag.LastRegistationDate = opdRegg.TimeAdded;
                }
                else
                {
                    ViewBag.LastRegistationDate = DateTime.Now;
                }
            }
            else
            {
                ViewBag.LastRegistationDate = DateTime.Now;
            }

            var data = new OPDModels();

            if (mode == "New")
            {
                data.Patient = db.Patients.Find(id);

                if (data.Patient.OpdRegisters.FirstOrDefault(
                        e => e.Date.Date == DateTime.Today && !(e.Status.ToLower().Trim().Equals("draft") || e.Status.ToLower().Trim().Equals("closed"))) != null)
                {
                    return(Json(new { status = "info", message = "This patient is already in todays queue!" }, JsonRequestBehavior.AllowGet));
                }
                var opdDraft = data.Patient.OpdRegisters.FirstOrDefault(e => e.Status.ToLower().Trim().Equals("draft"));
                if (opdDraft != null)
                {
                    data.OPDEntry = opdDraft;
                }
                else
                {
                    var entry = new OpdRegister();

                    entry.BranchId  = (int)Session["UserBranchId"];
                    entry.Date      = DateTime.Now;
                    entry.PatientId = data.Patient.Id;
                    entry.Status    = "draft";
                    entry.TimeAdded = DateTime.Now;
                    var tariffCash = db.Tariffs.FirstOrDefault(e => e.TariffName.ToLower().Trim().Equals("cash"));
                    if (tariffCash == null)
                    {
                        entry.TariffId = new Seeder().SeedCashAsATariff();
                    }
                    else
                    {
                        entry.TariffId = tariffCash.Id;
                    }
                    entry.Username = int.Parse(Session["UserId"].ToString());
                    db.OpdRegisters.Add(entry);
                    int res = db.SaveChanges();

                    if (res > 0)
                    {
                        new Utils.TurnAroundTime().insert(
                            new PatientTurnAroundTime()
                        {
                            OPDId           = entry.Id,
                            RequestTime     = DateTime.Now,
                            FullfilmentTime = null,
                            Department      = "billing",
                            SearvedByUserId = (int)Session["UserId"],
                            FacilityId      = 1,
                        }
                            );
                    }

                    data.OPDEntry = entry;

                    //enter consultation fee by default
                    var consultationService = db.KeyValuePairs.FirstOrDefault(e => e.Key_ == "default_consultation_service_name").Value;
                    var consultation        = db.Services.FirstOrDefault(e => e.ServiceName.Trim().ToLower().Equals(consultationService));
                    var billService         = new BillService();

                    billService.OPDNo        = entry.Id;
                    billService.DepartmentId = consultation.DepartmentId;
                    billService.SeviceId     = consultation.Id; billService.ServiceName = consultation.ServiceName;
                    billService.Price        = consultation.CashPrice; billService.Quatity = 1;
                    billService.Award        = 0; billService.DoctorFee = 0; billService.Paid = false;
                    billService.Offered      = false; billService.DateAdded = DateTime.Now;
                    billService.UserId       = int.Parse(Session["UserId"].ToString());
                    billService.BranchId     = (int)Session["UserBranchId"];
                    billService.IsNurse      = false;
                    db.BillServices.Add(billService);
                    db.SaveChanges();

                    if (hs.IsUnderFive(entry.PatientId) && hs.ExemptUnderFive())
                    {
                        hs.AutoWaiver(billService.Id, "under 5 automatic waiver");
                    }
                }
            }
            else if (mode == "Edit")
            {
                data.OPDEntry = db.OpdRegisters.Find(id);
                data.Patient  = data.OPDEntry.Patient;
            }
            ViewBag.Mode = mode;

            data.Doctors            = db.Employees.Where(e => e.Designation.DesignationName.Trim().ToLower().Equals("doctor")).ToList();
            data.RevenueDepartments = db.Departments.Where(e => e.DepartmentType1.DepartmnetType.ToLower().Trim().Equals("revenue")).ToList();
            //data.PatientCategories = db.Companies.ToList();
            data.MainCategories = db.CompanyTypes.ToList();
            data.Relationships  = db.Relationships.ToList();
            var defaultConsultationServiceName = db.KeyValuePairs.FirstOrDefault(e => e.Key_.ToLower().Trim().Equals("default_consultation_service_name")).Value;

            data.Consultation = db.Services.FirstOrDefault(e => e.ServiceName.ToLower().Trim().Equals(defaultConsultationServiceName));
            ViewBag.QueueType = QueueType;
            return(PartialView(data));
        }