Example #1
0
        public ActionResult Create(ExaminationCRUViewModel viewModel)
        {
            //var file = new file
            //{
            //    id = viewmodel.examfile.id,
            //    contenttype = viewmodel.examfile.fileupload.contenttype
            //};
            ExaminationTranslator examTranslator = new ExaminationTranslator();
            List <File>           files          = new List <File>();
            Examination           exam           = examTranslator.ToExaminationDataModel(viewModel, files);

            viewModel.ExamDoctorID = new SelectList(db.Doctors, "ID", "FullName", exam.DoctorID);
            viewModel.PatientID    = new SelectList(db.Patients, "ID", "FullName", exam.PatientID);
            if (ModelState.IsValid)
            {
                FileManipulation fileUploader = new FileManipulation();

                fileUploader.FileUpload(files, viewModel.File.MultipleFileUpload);
                foreach (File file in files)
                {
                    db.Files.Add(file);
                }
                exam.Files = files;

                exam.DoctorID  = viewModel.SelectedDoctorID;
                exam.PatientID = viewModel.SelectedPatientID;

                db.Examinations.Add(exam);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(viewModel));
        }
        public ActionResult ExaminationList(int?doctorId, string sort, string searchPatient, int?page)
        {
            int pageSize   = 2;
            int pageNumber = (page ?? 1);

            Doctor doctor = db.Doctors.SingleOrDefault(d => d.ID == doctorId);

            IQueryable <Examination> examinationQuery = db.Examinations
                                                        .Include(exam => exam.Doctor)
                                                        .Include(exam => exam.Patient);

            DoctorsExaminationListViewModel viewModel      = new DoctorsExaminationListViewModel();
            ExaminationTranslator           examTranslator = new ExaminationTranslator();

            if (!string.IsNullOrEmpty(searchPatient))
            {
                examinationQuery = examinationQuery
                                   .Where(exam => exam.Patient.FirstName.Contains(searchPatient) ||
                                          exam.Patient.LastName.Contains(searchPatient));
            }

            examinationQuery = examinationQuery.Where(exam => exam.DoctorID == doctorId);
            var singleDoctorExaminationQuery = examinationQuery
                                               .Select(examTranslator.ToDoctorsExaminationsViewModel);

            switch (sort)
            {
            case "date_asc":
                singleDoctorExaminationQuery = singleDoctorExaminationQuery.OrderBy(exam => exam.ExamDate);
                break;

            case "Name":
                singleDoctorExaminationQuery = singleDoctorExaminationQuery.OrderBy(exam => exam.PatientLastName).ThenBy(exam => exam.PatientFirstName);
                break;

            case "name_desc":
                singleDoctorExaminationQuery = singleDoctorExaminationQuery.OrderByDescending(exam => exam.PatientLastName).ThenByDescending(exam => exam.PatientFirstName);
                break;

            default:
                singleDoctorExaminationQuery = singleDoctorExaminationQuery.OrderByDescending(exam => exam.ExamDate);
                break;
            }



            viewModel.Examinations = singleDoctorExaminationQuery
                                     .ToPagedList(pageNumber, pageSize);
            viewModel.SortByDate        = string.IsNullOrEmpty(sort) ? "date_asc" : "";
            viewModel.SortByPatientName = sort == "Name" ? "name_desc" : "Name";
            viewModel.CurrentSort       = sort;

            viewModel.PatientFilter = searchPatient;
            viewModel.DoctorName    = doctor.FirstName + " " + doctor.LastName;
            viewModel.DoctorID      = doctorId;

            return(View("Examinations", viewModel));
        }
Example #3
0
        public ActionResult Index(string sort, string searchByPatientName, string searchByDoctorName, int?page)
        {
            int pageSize   = 3;
            int pageNumber = (page ?? 1);
            ExaminationListViewModel viewModel         = new ExaminationListViewModel();
            IQueryable <Examination> examinationsQuery = db.Examinations
                                                         .Include(exam => exam.Doctor)
                                                         .Include(exam => exam.Patient);

            if (!string.IsNullOrEmpty(searchByDoctorName))
            {
                examinationsQuery = examinationsQuery
                                    .Where(exam => exam.Doctor.FirstName.Contains(searchByDoctorName) ||
                                           exam.Doctor.LastName.Contains(searchByDoctorName));
            }
            if (!string.IsNullOrEmpty(searchByPatientName))
            {
                examinationsQuery = examinationsQuery
                                    .Where(exam => exam.Patient.FirstName.Contains(searchByPatientName) ||
                                           exam.Patient.LastName.Contains(searchByPatientName));
            }

            switch (sort)
            {
            case "date_asc":
                examinationsQuery = examinationsQuery.OrderBy(exam => exam.DateOfVisit);
                break;

            default:
                examinationsQuery = examinationsQuery.OrderByDescending(exam => exam.DateOfVisit);
                break;
            }

            ExaminationTranslator examTranslator = new ExaminationTranslator();

            viewModel.Examinations = examinationsQuery
                                     .Select(examTranslator.ToViewListModel)
                                     .ToPagedList(pageNumber, pageSize);

            viewModel.CurrentSort       = sort;
            viewModel.SortByDate        = string.IsNullOrEmpty(sort) ? "date_asc" : "";
            viewModel.DoctorNameFilter  = searchByDoctorName;
            viewModel.PatientNameFilter = searchByPatientName;

            return(View(viewModel));
        }
Example #4
0
        // GET: Examinations/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Examination examination = db.Examinations.SingleOrDefault(exam => exam.ID == id);

            if (examination == null)
            {
                return(HttpNotFound());
            }
            ExaminationTranslator      examDeleteTranslator = new ExaminationTranslator();
            ExaminationDeleteViewModel viewModel            = examDeleteTranslator.ToExamDeleteViewModel(examination);

            return(View(viewModel));
        }
Example #5
0
        public ActionResult ExaminationList(int?patientId, string sort, string searchByDoctorName, int?page)
        {
            int pageSize   = 2;
            int pageNumber = (page ?? 1);

            Patient patient = db.Patients.SingleOrDefault(p => p.ID == patientId);

            IQueryable <Examination> examinationsQuery = db.Examinations
                                                         .Include(exam => exam.Doctor)
                                                         .Include(exam => exam.Patient);
            PatientExaminationsListViewModel viewModel = new PatientExaminationsListViewModel();
            ExaminationTranslator            patientExaminationTranslator = new ExaminationTranslator();

            if (!string.IsNullOrEmpty(searchByDoctorName))
            {
                examinationsQuery = examinationsQuery
                                    .Where(exam => exam.Doctor.FirstName.Contains(searchByDoctorName) ||
                                           exam.Doctor.LastName.Contains(searchByDoctorName));
            }

            examinationsQuery = examinationsQuery.Where(exam => exam.PatientID == patientId);
            var singlePatientExaminationQuery = examinationsQuery
                                                .Select(patientExaminationTranslator.ToPatientsExaminationsViewModel);

            switch (sort)
            {
            case "date_asc":
                singlePatientExaminationQuery = singlePatientExaminationQuery.OrderBy(exam => exam.ExamDate);
                break;

            default:
                singlePatientExaminationQuery = singlePatientExaminationQuery.OrderByDescending(exam => exam.ExamDate);
                break;
            }

            viewModel.Examinations     = singlePatientExaminationQuery.ToPagedList(pageNumber, pageSize);
            viewModel.PatientFirstName = patient.FirstName;
            viewModel.PatientLastName  = patient.LastName;
            viewModel.SortByDate       = string.IsNullOrEmpty(sort) ? "date_asc" : "";
            viewModel.CurrentSort      = sort;
            viewModel.DoctorNameFilter = searchByDoctorName;
            return(View("ExaminationList", viewModel));
        }
Example #6
0
        // GET: Examinations/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Examination exam = db.Examinations
                               .Include(e => e.Doctor)
                               .Include(e => e.Patient)
                               .Include(e => e.Files)
                               .SingleOrDefault(e => e.ID == id);

            if (exam == null)
            {
                return(HttpNotFound());
            }
            ExaminationTranslator   examTranslator = new ExaminationTranslator();
            ExaminationCRUViewModel viewModel      = new ExaminationCRUViewModel();

            viewModel = examTranslator.ToCRUViewModel(exam);
            viewModel.ExamDoctorID = new SelectList(db.Doctors, "ID", "FullName", exam.DoctorID);
            viewModel.PatientID    = new SelectList(db.Patients, "ID", "FullName", exam.PatientID);
            return(View(viewModel));
        }