Пример #1
0
 /// <summary>
 /// saves an instance of type Dantist in DB
 /// </summary>
 /// <param name="dantist"></param>
 public static void SaveDantist(Dantist dantist)
 {
     using (var ctx = new PatientsContext())
     {
         ctx.Entry(dantist).State = EntityState.Modified;
         ctx.SaveChanges();
     }
 }
Пример #2
0
 /// <summary>
 /// adds an instance of <Picture> to manipulation list of <Picture> and saves it to DB
 /// </summary>
 /// <param name="manipulationId"></param>
 /// <param name="picture"></param>
 public static void AddManipulationImages(int?manipulationId, Picture picture)
 {
     using (var ctx = new PatientsContext())
     {
         Manipulation manipulation = ctx.Manipulations.Include(m => m.ManipulationPictures).Where(u => u.ManipulationId == manipulationId).FirstOrDefault();
         manipulation.ManipulationPictures.Add(picture);
         ctx.Entry(manipulation).State = EntityState.Modified;
         ctx.SaveChanges();
     }
 }
Пример #3
0
 /// <summary>
 /// adds manipulation to tooth with given id and saves it to DB
 /// </summary>
 /// <param name="manipulation">manipulation to add</param>
 /// <param name="toothId">tooth id to which the manipulation is to add</param>
 public static void AddManipulation(Manipulation manipulation, int?toothId)
 {
     using (var ctx = new PatientsContext())
     {
         Tooth tooth = ctx.Teeth.Include(m => m.Manipulations).Where(u => u.ToothId == toothId).FirstOrDefault();
         tooth.Manipulations.Add(manipulation);
         ctx.Entry(tooth).State = EntityState.Modified;
         ctx.SaveChanges();
     }
 }
Пример #4
0
 /// <summary>
 /// adds an instance of type Picture to and instance of type Visit
 /// and saves that to DB
 /// </summary>
 /// <param name="visitId"></param>
 /// <param name="picture"></param>
 public static void NewPicture(int?visitId, Picture picture)
 {
     using (var ctx = new PatientsContext())
     {
         Visit visit = ctx.Visits.Find(visitId);
         visit.VisitPictures.Add(picture);
         ctx.Entry(visit).State = EntityState.Modified;
         ctx.SaveChanges();
     }
 }
Пример #5
0
 /// <summary>
 /// add an instance of type Patient to an instance of type Dantist
 /// with given id and saves that to DB
 /// </summary>
 /// <param name="dantistId"></param>
 /// <param name="patient"></param>
 public static void AddPatient(int dantistId, Patient patient)
 {
     using (var ctx = new PatientsContext())
     {
         Dantist dantist = ctx.Dantists.Find(dantistId);
         dantist.Patients.Add(patient);
         ctx.Entry(dantist).State = EntityState.Modified;
         ctx.SaveChanges();
     }
 }
        public IActionResult Edit(int id, Consultation consultation)
        {
            try
            {
                if (consultation == null)
                {
                    logger.LogError($"При изменении консультации с id {id} произошла ошибка связывания модели.");
                    return(View("Error",
                                new ErrorViewModel {
                        Message = $"При изменении консультации с id {id} произошла ошибка связывания модели."
                    }));
                }
                var consultationId = consultation.ConsultationId;
                var _consultation  = patientContext.Consultations.FromSqlRaw
                                         ($"SELECT * FROM CONSULTATIONS WHERE ConsultationId = {id}");
                if (_consultation.Count() != 0)
                {
                    if (consultation.Day < DateTime.Parse("01/01/1880") ||
                        consultation.Day > DateTime.Now.AddYears(1))
                    {
                        logger.LogError($"При изменении пациенту с id = {consultation.PatientId}" +
                                        $" консультации с id = {id} произошла ошибка: Недопустимая дата: {consultation.Day}");
                        ModelState.AddModelError("Day", $"День консультации должен быть в промежутке" +
                                                 $" от {DateTime.Parse("01/01/1880").ToString("d")} до {DateTime.Now.AddYears(1).ToString("d")}");
                        return(View(consultation));
                    }

                    patientContext.Entry(_consultation.FirstOrDefault()).CurrentValues.SetValues(consultation);
                    patientContext.SaveChanges();
                    logger.LogInformation($"У пациента с id = {consultation.PatientId}" +
                                          $" была изменена консультация с id = {id}");
                    return(RedirectToAction("Get", "Patient",
                                            new { id = consultation.PatientId, message = "Консультация успешно изменена" }));
                }
                logger.LogError($"При изменении консультации произошла ошибка: " +
                                $"Консультация с id = {id} не найдена в базе данных");
                return(View("Error",
                            new ErrorViewModel
                {
                    Message = $"При изменении консультации произошла ошибка: " +
                              $"Консультация с id = {id} не найдена в базе данных"
                }));
            }
            catch (Exception e)
            {
                logger.LogCritical($"Произошла ошибка при обновлении данных консультации с id = {id}" +
                                   $" пациента с id  = {consultation.PatientId}", e);
                return(View("Error",
                            new ErrorViewModel
                {
                    Message = $"Произошла ошибка. Не удалось обновить данные консультации с id = {id}" +
                              $" пациента с id  = {consultation.PatientId}. Обратитесь к администратору."
                }));
            }
        }
Пример #7
0
 /// <summary>
 /// adds an instance of type Visit to a patient with
 /// given id and saves that to DB
 /// </summary>
 /// <param name="PatientId"></param>
 /// <param name="visit"></param>
 public static void AddVisit(int PatientId, Visit visit)
 {
     using (var ctx = new PatientsContext())
     {
         Patient patient = ctx.Patients.Find(PatientId);
         patient.LastVisitDate = visit.VisitDate;
         patient.Visits.Add(visit);
         List <Visit> visits = patient.Visits.OrderByDescending(m => m.VisitDate).ToList();
         patient.LastVisitDate    = visits[0].VisitDate;
         ctx.Entry(patient).State = EntityState.Modified;
         ctx.SaveChanges();
     }
 }
Пример #8
0
 /// <summary>
 /// Saves changes DB in list of instance of type Tooth for
 /// certain patient with given id
 /// </summary>
 /// <param name="patientId"></param>
 /// <param name="conditions">list of new conditions</param>
 public static void SaveTeeth(int patientId, List <string> conditions)
 {
     using (var ctx = new PatientsContext())
     {
         Patient patient = ctx.Patients.Find(patientId);
         if (patient.Teeth.Count == conditions.Count)
         {
             List <Tooth> teeth = patient.Teeth.ToList();
             for (int i = 0; i < conditions.Count; i++)
             {
                 teeth[i].Description = conditions[i];
             }
             patient.Teeth            = teeth;
             ctx.Entry(patient).State = EntityState.Modified;
             ctx.SaveChanges();
         }
     }
 }
Пример #9
0
        public ActionResult Edit(int id, Patient patient)
        {
            if (ModelState.IsValid)
            {
                var _patient = patientContext.Patients.Find(id);
                if (_patient != null)
                {
                    patient.PatientId = id;
                    patientContext.Entry(_patient).CurrentValues.SetValues(patient);
                    patientContext.SaveChanges();

                    logger.LogInformation($"Изменен пациент с id = {id}.");
                    return(Ok(new { isSuccess = true, ErrorMessage = "", StatusCode = 201, Result = id }));
                }
                logger.LogError($"Пациент с id = {id} не найден в базе данных.");
                return(NotFound(new { isSucces = false, ErrorMessage = $"Пациент с id = {id} не найден в базе данных", StatusCode = 404, Result = "" }));
            }
            logger.LogError($"При изменении данных пациента с id = {id} данные не были получены от клиента, или они не прошли валидацию.");
            return(BadRequest(new { isSucces = false, ErrorMessage = "Полученные данные не прошли валидацию.", StatusCode = 400, Result = "" }));
        }
Пример #10
0
        public ActionResult Edit(int id, Consultation consultation)
        {
            if (ModelState.IsValid)
            {
                var _consultation = patientContext.Consultations.Find(id);
                if (_consultation != null)
                {
                    consultation.ConsultationId = id;
                    consultation.PatientId      = _consultation.PatientId;

                    patientContext.Entry(_consultation).CurrentValues.SetValues(consultation);
                    patientContext.SaveChanges();

                    logger.LogInformation($"Изменена консультация с id = {id} пациента с id = {consultation.PatientId}.");
                    return(Ok(new { isSuccess = true, ErrorMessage = "", StatusCode = 201, Result = id }));
                }
                logger.LogError($"Консультация с id = {id} не найдена в базе данных.");
                return(NotFound(new { isSucces = false, ErrorMessage = $"Консультация с id = {id} не найдена в базе данных.", StatusCode = 404, Result = "" }));
            }
            logger.LogError($"При изменении данных консультации с id = {id} данные не были получены от клиента, или они не прошли валидацию.");
            return(BadRequest(new { isSucces = false, ErrorMessage = "Полученные данные не прошли валидацию.", StatusCode = 400, Result = "" }));
        }
Пример #11
0
        public IActionResult Edit(int id, Patient patient)
        {
            try
            {
                if (patient == null)
                {
                    logger.LogError($"При изменении пациента с id = {id} произошла ошибка связывания модели");
                    return(View("Error",
                                new ErrorViewModel {
                        Message = $"При изменении пациента с id = {id} произошла ошибка связывания модели"
                    }));
                }
                var _patient = patientContext.Patients.Find(id);
                if (_patient != null)
                {
                    if (patient.BirthDate < DateTime.Parse("01/01/1880") ||
                        patient.BirthDate > DateTime.Now.AddYears(1))
                    {
                        logger.LogError($"При изменения пациента с id = {id} произошла ошибка: " +
                                        $"Недопустимая дата: {patient.BirthDate}");
                        ModelState.AddModelError("BirthDate", $"Дата рождения должна быть в промежутке" +
                                                 $" от {DateTime.Parse("01/01/1880").ToString("d")} до {DateTime.Now.AddYears(1).ToString("d")}");
                        return(View(patient));
                    }

                    patient.PensionNumber = Regex.Replace(patient.PensionNumber, "[^0-9]", "");
                    var pensionCheck = patientContext.Patients
                                       .Where(x => x.PensionNumber == patient.PensionNumber)
                                       .FirstOrDefault();
                    if (pensionCheck == null || pensionCheck.PatientId == id)
                    {
                        patientContext.Entry(_patient).CurrentValues.SetValues(patient);
                        patientContext.SaveChanges();
                        logger.LogInformation($"Пациент с id = {id} был изменен");
                        return(RedirectToAction("Get", "Patient",
                                                new { id = patient.PatientId, message = "Пациент успешно изменен" }));
                    }
                    else
                    {
                        logger.LogWarning($"При изменении пациента с id = {id} произошла ошибка: " +
                                          $"Был обнаружен пациент с таким же СНИЛС = {patient.PensionNumber}");
                        ModelState.AddModelError("PensionNumber", "Пациент с таким СНИЛС уже существует");
                        return(View(patient));
                    }
                }
                logger.LogError($"При попытке изменения пациент с id = {id} был не найден в базе данных");
                return(View("Error",
                            new ErrorViewModel {
                    Message = $"При попытке изменения пациент с id = {id} был не найден в базе данных"
                }));
            }
            catch (Exception e)
            {
                logger.LogCritical($"Произошла ошибка при обновлении данных пациента с id  = {id}", e);
                return(View("Error",
                            new ErrorViewModel
                {
                    Message = $"Произошла ошибка. Не удалось обновить данные пациента с id  = {id}." +
                              " Обратитесь к администратору."
                }));
            }
        }