public IHttpActionResult PutOpdRegister(int id, OpdRegister opdRegister) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != opdRegister.Id) { return(BadRequest()); } db.Entry(opdRegister).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!OpdRegisterExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public InvestigationFormData AddWorkOrderTest(OpdRegister OPDEntry, int serviceId, int billserviceId) { InvestigationFormData investigationFormData = new InvestigationFormData(); investigationFormData.TestBillServices = db.BillServices.Where(e => e.OPDNo == OPDEntry.Id && (e.Service.IsLAB || e.Service.IsXRAY)).ToList(); investigationFormData.Patient = OPDEntry.Patient; investigationFormData.OpdRegister = OPDEntry; var dep = db.Departments.FirstOrDefault(e => e.DepartmentName.ToLower().Trim().Equals("lab") || e.DepartmentName.ToLower().Trim().Equals("pathology")).Id; CareSoftLabsEntities labDb = new CareSoftLabsEntities(); var workOrder = labDb.WorkOrders.FirstOrDefault(e => e.OPDNo == OPDEntry.Id); if (workOrder == null) { //start new work order workOrder = new WorkOrder(); workOrder.OPDNo = OPDEntry.Id; workOrder.OPDType = "OPD"; if (OPDEntry.IsIPD) { workOrder.OPDType = "IPD"; } workOrder.BillPaid = 1; workOrder.Doctor = (int)Session["UserId"]; workOrder.CreatedUtc = DateTime.Now; workOrder.DepartmentRadPath = dep; workOrder.Accession_Status = labDb.Status.FirstOrDefault(e => e.StatusValue.ToLower().Trim().Equals("default")).Id; labDb.WorkOrders.Add(workOrder); labDb.SaveChanges(); } //add work order tests WorkOrderTest test = new WorkOrderTest(); test.WorkOrder = workOrder.Id; test.Test = (int)db.Services.Find(serviceId).LabId; test.BillPaid = false; test.Status = labDb.Status.FirstOrDefault(e => e.StatusValue.ToLower().Trim().Equals("default")).Id; test.CreatedUtc = DateTime.Now; labDb.WorkOrderTests.Add(test); labDb.SaveChanges(); var ser = db.BillServices.Find(billserviceId); ser.WorkOrderTestId = test.Id; db.SaveChanges(); hs.AttemptMarkPaid(billserviceId, 0); return(investigationFormData); }
public IHttpActionResult GetOpdRegister(int id) { OpdRegister opdRegister = db.OpdRegisters.Find(id); if (opdRegister == null) { return(NotFound()); } return(Ok(opdRegister)); }
public IHttpActionResult DeleteOpdRegister(int id) { OpdRegister opdRegister = db.OpdRegisters.Find(id); if (opdRegister == null) { return(NotFound()); } db.OpdRegisters.Remove(opdRegister); db.SaveChanges(); return(Ok(opdRegister)); }
public JsonResult AdmitPatient(OpdRegister register, string autoBedAndAdmission = "false", string type = "Cash") { var myActiveAdmissions = db.OpdRegisters.Where(e => e.PatientId == register.PatientId && e.IsIPD && !e.Discharged).ToList(); var IPDNo = 0; if (myActiveAdmissions.Count() < 1) { register.IsIPD = true; register.BranchId = (int)Session["UserBranchId"]; register.TimeAdded = DateTime.Now; register.Status = "Active"; register.Date = (DateTime)register.AdmissionDate; //TODO changeUesrname to int register.Username = int.Parse(Session["UserId"].ToString()); db.OpdRegisters.Add(register); db.SaveChanges(); IPDNo = register.Id; if (autoBedAndAdmission == "true") { var billItem = new BillService(); var ipdDepartment = db.Departments.FirstOrDefault(e => e.DepartmentName.Trim().ToLower().Equals("ipd")); if (ipdDepartment == null) { ipdDepartment = new Department(); ipdDepartment.DepartmentName = "IPD"; ipdDepartment.DepartmentType = 2; ipdDepartment.IsMedical = "No"; ipdDepartment.DateAdded = DateTime.Now; db.Departments.Add(ipdDepartment); db.SaveChanges(); } billItem.DepartmentId = ipdDepartment.Id; var admissionService = db.Services.FirstOrDefault(e => e.ServiceName.Trim().ToLower().Contains("admission")); if (admissionService == null) { admissionService = new Service(); admissionService.ServiceName = "Admission"; admissionService.BranchId = (int)Session["UserBranchId"]; admissionService.CashPrice = 800; admissionService.IsIPD = true; admissionService.DepartmentId = billItem.DepartmentId; admissionService.DateAdded = DateTime.Now; admissionService.ServiceGroupId = db.ServiceGroups.FirstOrDefault(e => e.ServiceGroupName.ToLower().Trim() == "procedure").Id; admissionService.UserId = int.Parse(Session["UserId"].ToString()); db.Services.Add(admissionService); db.SaveChanges(); } billItem.SeviceId = admissionService.Id; billItem.ServiceName = admissionService.ServiceName; billItem.OPDNo = register.Id; var bed = db.HSBeds.Find(register.BedId); var pricing = db.WardTypeCharges.FirstOrDefault(e => e.ServiceId.Equals(admissionService.Id) && e.WardCategoryId.Equals(bed.HSWard.CategoryId)); if (pricing != null) { billItem.Price = pricing.Price; } else { billItem.Price = admissionService.CashPrice; } billItem.Quatity = 1; var PayableAmount = billItem.Quatity * billItem.Price; billItem.TariffId = register.TariffId; var awardentry = db.ServicesPrices.FirstOrDefault(e => e.TariffId.Equals(register.TariffId) && e.ServiceId.Equals(admissionService.Id)); billItem.Award = 0; billItem.DoctorFee = 0; if (awardentry != null) { billItem.Award = awardentry.Award * billItem.Quatity; if (awardentry.AwardUnit.ToLower().Trim().Equals("percent")) { billItem.Award = PayableAmount * (1 + awardentry.Award / 100); } } PayableAmount = PayableAmount - billItem.Award; billItem.Paid = false; billItem.Offered = true; billItem.UserId = (int)Session["UserId"]; billItem.BranchId = (int)Session["UserBranchId"]; billItem.IsNurse = false; billItem.DateAdded = DateTime.Now; db.BillServices.Add(billItem); db.SaveChanges(); AddBedCharges(register.Id); } } var res = new CustRes() { Type = "Cash", IPDNo = IPDNo }; if (type == "Insurance") { res = new CustRes() { Type = "Insurance", IPDNo = IPDNo }; } else if (type == "Corporate") { res = new CustRes() { Type = "Corporate", IPDNo = IPDNo }; } else { } return(Json(res)); //return RedirectToAction("BedsGrid", new { id = db.HSBeds.Find(register.BedId).HSWard.HSWardCategory.Id }); }
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)); }