示例#1
0
 public ActionResult UpdateServiceTreatment(ServiceTreatmentModel model)
 {
     if (ModelState.IsValid)
     {
         updateServiceTreatment(model);
         return(RedirectToAction("AppointmentList"));
     }
     return(View("ServiceTreatment", model));
 }
示例#2
0
        private void updateServiceTreatment(ServiceTreatmentModel model)
        {
            if (model.StatementId == 0)  // CREATE NEW STATEMENT
            {
                var newStatement = Db.ServiceStatements.Add(new ServiceStatement
                {
                    Date          = DateTime.Now,
                    Prescription  = model.Prescription,
                    Amount        = 0,
                    AppointmentId = model.AppointmentId,
                    DoctorId      = model.DoctorId,
                    PatientId     = model.PatientId,
                });

                //update service with fee
                var        serviceFees = Db.ServiceFees.Select(x => new { x.ServiceId, x.Fee });
                List <int> serviceIds  = new List <int>();
                if (model.BloodTest)
                {
                    serviceIds.Add(1);
                }
                if (model.Xray)
                {
                    serviceIds.Add(2);
                }
                if (model.MRI)
                {
                    serviceIds.Add(3);
                }
                if (model.Radiology)
                {
                    serviceIds.Add(4);
                }
                if (model.LabTest)
                {
                    serviceIds.Add(5);
                }

                // create a list for AddRange
                List <ServiceStatementDetail> serviceDetails = new List <ServiceStatementDetail>();

                // Add appointment fee as default
                var appointmentFee = serviceFees.FirstOrDefault(s => s.ServiceId == 6);
                newStatement.Amount += (appointmentFee != null) ? appointmentFee.Fee : 0;
                serviceDetails.Add(new ServiceStatementDetail {
                    StatementId = newStatement.Id, ServiceId = 6
                });

                // Add optional services + fee
                foreach (var serviceId in serviceIds)
                {
                    var fee = serviceFees.FirstOrDefault(s => s.ServiceId == serviceId);
                    newStatement.Amount += (fee != null) ? fee.Fee : 0;
                    serviceDetails.Add(new ServiceStatementDetail {
                        StatementId = newStatement.Id, ServiceId = serviceId
                    });
                }

                Db.ServiceStatementDetails.AddRange(serviceDetails);
            }
            else // UPDATE OLD STATEMENT
            {
                var oldStatement = Db.ServiceStatements.Where(s => s.Id == model.StatementId).FirstOrDefault();
                if (oldStatement != null)
                {
                    oldStatement.Prescription = model.Prescription;
                    oldStatement.Date         = DateTime.Now;
                    oldStatement.Amount       = 0;

                    // remove old statement details
                    var details = Db.ServiceStatementDetails.Where(detail => detail.StatementId == model.StatementId);
                    Db.ServiceStatementDetails.RemoveRange(details);

                    //update new services with fee
                    var        serviceFees = Db.ServiceFees.Select(x => new { x.ServiceId, x.Fee });
                    List <int> serviceIds  = new List <int>();
                    if (model.BloodTest)
                    {
                        serviceIds.Add(1);
                    }
                    if (model.Xray)
                    {
                        serviceIds.Add(2);
                    }
                    if (model.MRI)
                    {
                        serviceIds.Add(3);
                    }
                    if (model.Radiology)
                    {
                        serviceIds.Add(4);
                    }
                    if (model.LabTest)
                    {
                        serviceIds.Add(5);
                    }
                    // create a list for AddRange
                    List <ServiceStatementDetail> serviceDetails = new List <ServiceStatementDetail>();

                    // add appointment fee
                    var appointmentFee = serviceFees.FirstOrDefault(s => s.ServiceId == 6);
                    oldStatement.Amount += (appointmentFee != null) ? appointmentFee.Fee : 0;
                    serviceDetails.Add(new ServiceStatementDetail {
                        StatementId = oldStatement.Id, ServiceId = 6
                    });
                    // add optional services + fee
                    foreach (var serviceId in serviceIds)
                    {
                        var fee = serviceFees.FirstOrDefault(s => s.ServiceId == serviceId);
                        oldStatement.Amount += (fee != null) ? fee.Fee : 0;
                        serviceDetails.Add(new ServiceStatementDetail {
                            StatementId = oldStatement.Id, ServiceId = serviceId
                        });
                    }

                    // then update with new details
                    Db.ServiceStatementDetails.AddRange(serviceDetails);
                }
            }
            Db.SaveChanges();
        }
示例#3
0
        public ActionResult UpdateServiceTreatment(int appointmentId)
        {
            if (!isAuthorizedAccess(EmployeeRole.Doctor))
            {
                ViewBag.ErrorMessage = ACCESS_DENIED_MSG;
                return(View("~/Views/Shared/Error.cshtml"));
            }
            var statement   = Db.ServiceStatements.Where(s => s.AppointmentId == appointmentId).FirstOrDefault();
            var appointment = Db.Appointments.Find(appointmentId);

            // New Statement
            if (statement == null && appointment != null)
            {
                return(View("ServiceTreatment", new ServiceTreatmentModel()
                {
                    PatientId = appointment.PatientId,
                    DoctorId = appointment.DoctorId,
                    AppointmentId = appointmentId
                }));
            }
            // Update
            else if (statement.Status == false && appointment != null)
            {
                var serviceList = Db.ServiceStatementDetails.Where(s => s.StatementId == statement.Id).ToList();
                var model       = new ServiceTreatmentModel();
                model.StatementId   = statement.Id;
                model.Prescription  = statement.Prescription;
                model.AppointmentId = appointmentId;
                model.Status        = statement.Status;

                // load checkboxes values
                foreach (var service in serviceList)
                {
                    switch (service.ServiceId)
                    {
                    case 1:
                        model.BloodTest = true;
                        break;

                    case 2:
                        model.Xray = true;
                        break;

                    case 3:
                        model.MRI = true;
                        break;

                    case 4:
                        model.Radiology = true;
                        break;

                    case 5:
                        model.LabTest = true;
                        break;

                    default: break;
                    }
                }

                return(View("ServiceTreatment", model));
            }

            ViewBag.ErrorMessage = "Appointment not found";
            return(View("~/Views/Shared/Error.cshtml"));
        }