public ActionResult Ver(string id)
        {
            ConsultationBL oBL    = new ConsultationBL();
            int            pIntID = 0;

            int.TryParse(id, out pIntID);
            ConsultationViewModel pConsultationViewModel = oBL.Obtener(pIntID);


            NotificationBL oNotificationBL = new NotificationBL();

            oNotificationBL.ActualizarNotificacionLeido("/Consultation/Ver/" + id, AuthorizeUserAttribute.UsuarioLogeado().user_id);


            SelectorBL oSelectorBL = new SelectorBL();

            pConsultationViewModel.interest_areasMultiSelectList = new MultiSelectList(oSelectorBL.InterestAreasSelector(), "Value", "Text");


            List <SelectOptionItem> oConsultationTypes = oSelectorBL.ConsultationTypesSelector();
            List <SelectListItem>   consultation_types = Helper.ConstruirDropDownList <SelectOptionItem>(oConsultationTypes, "Value", "Text", "", false, "", "");

            ViewBag.consultation_types = consultation_types;
            return(View(pConsultationViewModel));
        }
Exemple #2
0
        public IHttpActionResult ConsultationCrear(ConsultationViewModel pConsultationViewModel)
        {
            // TODO: Add insert logic here

            pConsultationViewModel.consultation_id = 0;


            ConsultationBL oBL = new ConsultationBL();

            oBL.Agregar(pConsultationViewModel);

            ConsultationTypeBL oConsultationTypeBL = new ConsultationTypeBL();

            var subject = oConsultationTypeBL.Obtener(pConsultationViewModel.consultation_type_id.Value).name;

            NotificacionNuevaSolicitud(pConsultationViewModel, subject);



            var result = new
            {
                status = 1
            };

            return(Ok(result));
        }
Exemple #3
0
        public void Agregar(ConsultationViewModel pConsultationViewModel)
        {
            consultations oconsultations = new consultations
            {
                consultation_id      = 0,
                title                = pConsultationViewModel.title,
                message              = pConsultationViewModel.message,
                consultation_type_id = pConsultationViewModel.consultation_type_id,

                date_created    = DateTime.Now,
                user_id_created = pConsultationViewModel.user_id_created
            };

            oRepositorio.Add(oconsultations);

            foreach (int interest_area_id in pConsultationViewModel.interest_areas)
            {
                oRepositorioConsultationInterestArea.Add(new consultations_interest_areas
                {
                    interest_area_id = interest_area_id,
                    consultation_id  = pConsultationViewModel.consultation_id,
                    date_created     = DateTime.Now,
                    user_id_created  = pConsultationViewModel.user_id_created,
                    date_modified    = DateTime.Now,
                    user_id_modified = pConsultationViewModel.user_id_created,
                });
            }

            oUnitOfWork.SaveChanges();
            pConsultationViewModel.consultation_id = oconsultations.consultation_id;
        }
        public async Task <IActionResult> PatientNewConsultation([Bind(Prefix = "Item2")] ConsultationViewModel vm)
        {
            var doctor = await doctroRepo.GetDoctorByUserNameAsync(User.Identity.Name);

            var patient = await patientRepo.GetPatientByIdAsync(vm.PatientId);

            if (!doctor.Patients.Contains(patient))
            {
                return(new RedirectResult("/Denied"));
            }

            var consultation = new Consultation()
            {
                Header      = vm.Header,
                Description = vm.Description,
                Time        = vm.Time,
                DoctorId    = doctor.Id,
                Doctor      = doctor,
                PatientId   = vm.PatientId,
                Patient     = patient,
                Drugs       = new HashSet <Drug>()
            };

            patient.Consultations = patient.Consultations ?? new HashSet <Consultation>();

            patient.Consultations.Add(consultation);

            patient.Consultations = patient.Consultations.OrderByDescending(x => x.Time).ToList();

            patientRepo.UpdatePatient(patient);
            await doctroRepo.SaveChangesAsync();

            return(PartialView("PatientHistory", patient));
        }
Exemple #5
0
        public ConsultationWindow(IHospital hospital, ObservableCollection <Patient> patients)
        {
            InitializeComponent();
            var vm = new ConsultationViewModel((Hospital)hospital, patients);

            this.DataContext = vm;
            if (vm.CloseAction == null)
            {
                vm.CloseAction = this.Close;
            }
        }
 public ConsultationModel MapShortConsultationModel(ConsultationViewModel consultation)
 {
     return(new ConsultationModel()
     {
         Id = consultation.Id,
         ConsultationStatusID = consultation.ConsultationStatusID,
         ConsultationTime = consultation.ConsultationTime,
         ModifiedBy = consultation.ModifiedBy,
         ModifiedByEntity = consultation.ModifiedEntity,
         TenantID = consultation.TanentId
     });
 }
Exemple #7
0
        public IActionResult Post([FromBody] ConsultationViewModel consultationViewModel)
        {
            if (!ModelState.IsValid)
            {
                NotifyModelStateErrors();
                return(Response(consultationViewModel));
            }

            _consultationService.Register(consultationViewModel);

            return(Response(consultationViewModel));
        }
Exemple #8
0
        public async Task <IActionResult> Consultation(ConsultationViewModel consultationViewModel)
        {
            try
            {
                await _consultationViewModelService.Update(consultationViewModel);

                return(RedirectToAction("Index", "Consultations"));
            }

            catch (Exception exp)
            {
                throw (exp);
            }
        }
Exemple #9
0
        public async Task <IActionResult> Consultation([FromRoute] int id)
        {
            try
            {
                var consultationViewModel = new ConsultationViewModel();
                consultationViewModel = await _consultationViewModelService.GetConsultation(id);

                return(View(consultationViewModel));
            }
            catch (Exception exp)
            {
                throw (exp);
            }
        }
Exemple #10
0
        public IHttpActionResult UpdateConsultationTime(RequestCarrier requestCarrier)
        {
            ResponseCarrier response;

            if (requestCarrier != null && requestCarrier.TanentId != 0 && requestCarrier.From != string.Empty && requestCarrier.UserId.HasValue && requestCarrier.UserId.Value > 0)
            {
                ConsultationViewModel cViewModel = WebCommon.Instance.GetObject <ConsultationViewModel>(requestCarrier.PayLoad);
                cViewModel.TanentId = requestCarrier.TanentId;
                string validationResponse = this._consultationMapper.ValidateConsultationDetailsForTimeUpdate(cViewModel);
                if (string.IsNullOrEmpty(validationResponse))
                {
                    var consultationDetailModel = this._consultationMapper.MapConsultation(cViewModel);
                    consultationDetailModel.CreatedBy        = (int)requestCarrier.UserId.Value;
                    consultationDetailModel.CreatedByEntity  = Convert.ToInt32(requestCarrier.From);
                    consultationDetailModel.ModifiedBy       = (int)requestCarrier.UserId.Value;
                    consultationDetailModel.ModifiedByEntity = Convert.ToInt32(requestCarrier.From);
                    var consultationResponse = _dataServices.ConsultationService.UpdateConsultationTime(consultationDetailModel);
                    if (consultationResponse.Success)
                    {
                        cViewModel.Id = consultationResponse.Id;
                        response      = new ResponseCarrier()
                        {
                            Status = true, TanentId = requestCarrier.TanentId
                        };
                    }
                    else
                    {
                        response = new ResponseCarrier()
                        {
                            Status = false, TanentId = requestCarrier.TanentId, ErrorMessage = consultationResponse.ErrorMessage
                        };
                    }
                }
                else
                {
                    response = new ResponseCarrier()
                    {
                        Status = false, TanentId = requestCarrier.TanentId, ErrorMessage = validationResponse
                    };
                }
            }
            else
            {
                response = new ResponseCarrier()
                {
                    Status = false, PayLoad = null, ErrorMessage = "TanentId or RequestFrom or UserId not provided.", TanentId = requestCarrier.TanentId
                };
            }
            return(Json(response));
        }
        public JsonResult ObtenerInvestigadores(DataTableAjaxPostModel ofilters)//DataTableAjaxPostModel model
        {
            ConsultationBL        oConsultationBL        = new ConsultationBL();
            ConsultationViewModel pConsultationViewModel = oConsultationBL.Obtener(ofilters.consultation_id);


            GridModel <InvestigatorViewModel> grid = oConsultationBL.ObtenerInvestigadores(ofilters, pConsultationViewModel.interest_areas);

            return(Json(new
            {
                // this is what datatables wants sending back
                draw = ofilters.draw,
                recordsTotal = grid.total,
                recordsFiltered = grid.recordsFiltered,
                data = grid.rows
            }));
        }
 public string ValidateConsultationDetails(ConsultationViewModel patientDetailViewModel)
 {
     if (string.IsNullOrEmpty(patientDetailViewModel.Description))
     {
         return("Description is require");
     }
     if (patientDetailViewModel.ConsultationTime == null)
     {
         return("Consultation time is require");
     }
     if (patientDetailViewModel.DoctorId <= 0)
     {
         return("Doctor for Consultation is require");
     }
     if (patientDetailViewModel.PatientId <= 0)
     {
         return("Patient for Consultation is require");
     }
     return(string.Empty);
 }
 public ConsultationModel MapConsultation(ConsultationViewModel vmodel)
 {
     return(new ConsultationModel
     {
         Id = vmodel.Id,
         IsDeleted = vmodel.IsDeleted,
         CreatedBy = vmodel.CreatedBy,
         CreatedByEntity = vmodel.CreatedByEntity,
         CreatedOn = vmodel.CreatedOn,
         ModifiedBy = vmodel.ModifiedBy,
         ModifiedByEntity = vmodel.ModifiedEntity,
         ModifiedOn = vmodel.ModifiedOn,
         ConsultationModeID = vmodel.ConsultationModeID,
         ConsultationStatusID = vmodel.ConsultationStatusID,
         ConsultationTime = vmodel.ConsultationTime,
         Description = vmodel.Description,
         DoctorId = vmodel.DoctorId,
         PatientId = vmodel.PatientId,
         TenantID = vmodel.TanentId
     });
 }
        public ActionResult Crear([Bind(Include = "consultation_id,title,message,interest_areas,consultation_type_id")] ConsultationViewModel pConsultationViewModel)
        {
            // TODO: Add insert logic here

            if (pConsultationViewModel == null)
            {
                return(HttpNotFound());
            }
            pConsultationViewModel.consultation_id = 0;
            pConsultationViewModel.user_id_created = AuthorizeUserAttribute.UsuarioLogeado().user_id;

            ConsultationBL oBL = new ConsultationBL();

            oBL.Agregar(pConsultationViewModel);

            ConsultationTypeBL oConsultationTypeBL = new ConsultationTypeBL();

            var subject = oConsultationTypeBL.Obtener(pConsultationViewModel.consultation_type_id.Value).name;

            NotificacionNuevaSolicitud(pConsultationViewModel, subject);
            return(RedirectToAction("Index"));
        }
Exemple #15
0
        private void NotificacionNuevaSolicitud(ConsultationViewModel pConsultationViewModel, string subject)
        {
            var base_url = ConfigurationManager.AppSettings["site.url"];

            UserBL userBL = new UserBL();

            List <UserViewModel> evaluadores = userBL.ObtenerPorPermiso(118);// 12 = perfil evaluador

            foreach (UserViewModel evaluador in evaluadores)
            {
                SendEmailNotificationBL oSendEmailNotificationBL = new SendEmailNotificationBL();

                NotificationGeneralAccountViewModel oNotificationConceptViewModel = new NotificationGeneralAccountViewModel();
                oNotificationConceptViewModel.name = evaluador.contact_name;
                oNotificationConceptViewModel.url_solicitud_concepto = base_url + @"/Consultation/Ver/" + pConsultationViewModel.consultation_id;
                oNotificationConceptViewModel.to = evaluador.user_email;

                oNotificationConceptViewModel.url_home = ConfigurationManager.AppSettings["site.url"];

                oNotificationConceptViewModel.url_politicas  = ConfigurationManager.AppSettings["site.url.politicas"];
                oNotificationConceptViewModel.url_contacto   = ConfigurationManager.AppSettings["site.url.contacto"];
                oNotificationConceptViewModel.url_privacidad = ConfigurationManager.AppSettings["site.url.privacidad"];


                oSendEmailNotificationBL.EnviarNotificacionSolicitudConcepto(oNotificationConceptViewModel, subject);


                NotificationBL        oNotificationBL        = new NotificationBL();
                NotificationViewModel pNotificationViewModel = new NotificationViewModel();
                pNotificationViewModel.user_id = evaluador.id;
                pNotificationViewModel.message = "Hay una nueva solicitud de concepto con número '" + pConsultationViewModel.consultation_id + "'";
                pNotificationViewModel.url     = @"/Consultation/Ver/" + pConsultationViewModel.consultation_id;

                oNotificationBL.Agregar(pNotificationViewModel);
            }
        }
Exemple #16
0
 public Task Update(ConsultationViewModel consultationViewModel)
 {
     throw new NotImplementedException();
 }
 public string ValidateConsultationDetailsForTimeUpdate(ConsultationViewModel patientDetailViewModel)
 {
     return(string.Empty);
 }
Exemple #18
0
        public void Register(ConsultationViewModel consultationViewModel)
        {
            var registerConsultationCommand = _mapper.Map <RegisterConsultationCommand>(consultationViewModel);

            _mediator.SendCommand(registerConsultationCommand);
        }
Exemple #19
0
        public IHttpActionResult UpdateConsultationStatus(RequestCarrier requestCarrier)
        {
            ResponseCarrier response;

            if (requestCarrier != null && requestCarrier.TanentId != 0 && requestCarrier.From != string.Empty && requestCarrier.UserId.HasValue && requestCarrier.UserId.Value > 0)
            {
                ConsultationViewModel cViewModel = WebCommon.Instance.GetObject <ConsultationViewModel>(requestCarrier.PayLoad);
                cViewModel.TanentId = requestCarrier.TanentId;
                string validationResponse = this._consultationMapper.ValidateConsultationDetailsForStatusUpdate(cViewModel);
                if (string.IsNullOrEmpty(validationResponse))
                {
                    var consultationDetailModel = this._consultationMapper.MapConsultation(cViewModel);
                    consultationDetailModel.CreatedBy        = (int)requestCarrier.UserId.Value;
                    consultationDetailModel.CreatedByEntity  = Convert.ToInt32(requestCarrier.From);
                    consultationDetailModel.ModifiedBy       = (int)requestCarrier.UserId.Value;
                    consultationDetailModel.ModifiedByEntity = Convert.ToInt32(requestCarrier.From);
                    var consultationResponse = _dataServices.ConsultationService.UpdateConsultationStatus(consultationDetailModel);
                    if (consultationResponse.Success)
                    {
                        cViewModel.Id = consultationResponse.Id;
                        if (consultationDetailModel.CreatedByEntity == 2 || consultationDetailModel.CreatedByEntity == 5)//doctor
                        {
                            if (WebCommon.NotificationEnabled)
                            {
                                var consultationDetails = _dataServices.ConsultationService.GetConsultationDetails(consultationDetailModel.Id, consultationDetailModel.TenantID);
                                if (consultationDetails != null)
                                {
                                    var           userDetails          = _dataServices.UserService.GetUser(consultationDetails.CreatedBy, consultationDetailModel.TenantID);
                                    var           doctor               = _dataServices.DoctorService.GetDoctor(consultationDetails.DoctorId, consultationDetailModel.TenantID);
                                    List <object> additionalParameters = new List <object>();
                                    additionalParameters.Add(userDetails.Email);
                                    additionalParameters.Add(userDetails.PhoneNumber);
                                    additionalParameters.Add(doctor.EmailAddress);
                                    additionalParameters.Add(doctor.PhoneNumber);
                                    additionalParameters.Add(consultationDetails.Patient.PatientName);
                                    additionalParameters.Add(doctor.FirstName + " " + doctor.LastName);
                                    additionalParameters.Add(consultationDetails.AmountCharged);
                                    additionalParameters.Add(consultationDetails.ConsultationMode);
                                    additionalParameters.Add(consultationDetails.ConsultationTime);
                                    if (consultationDetailModel.ConsultationStatusID == 2)//accepted by doctor
                                    {
                                        NotificationClient.Instance.SendMessage(null, ImTech.Notification.Messages.MessageType.Booking_Accepted_Patient, additionalParameters);
                                    }
                                    else if (consultationDetailModel.ConsultationStatusID == 3)//end by doctor
                                    {
                                        NotificationClient.Instance.SendMessage(null, ImTech.Notification.Messages.MessageType.Booking_End_Patient, additionalParameters);
                                        NotificationClient.Instance.SendMessage(null, ImTech.Notification.Messages.MessageType.Booking_End_Doctor, additionalParameters);
                                    }
                                }
                            }
                        }
                        else if (consultationDetailModel.CreatedByEntity == 1 || consultationDetailModel.CreatedByEntity == 4)//user
                        {
                            if (WebCommon.NotificationEnabled)
                            {
                                var consultationDetails = _dataServices.ConsultationService.GetConsultationDetails(consultationDetailModel.Id, consultationDetailModel.TenantID);
                                if (consultationDetails != null)
                                {
                                    var           userDetails          = _dataServices.UserService.GetUser(consultationDetails.CreatedBy, consultationDetailModel.TenantID);
                                    var           doctor               = _dataServices.DoctorService.GetDoctor(consultationDetails.DoctorId, consultationDetailModel.TenantID);
                                    List <object> additionalParameters = new List <object>();
                                    additionalParameters.Add(userDetails.Email);
                                    additionalParameters.Add(userDetails.PhoneNumber);
                                    additionalParameters.Add(doctor.EmailAddress);
                                    additionalParameters.Add(doctor.PhoneNumber);
                                    additionalParameters.Add(consultationDetails.Patient.PatientName);
                                    additionalParameters.Add(doctor.FirstName + " " + doctor.LastName);
                                    additionalParameters.Add(consultationDetails.AmountCharged);
                                    additionalParameters.Add(consultationDetails.ConsultationMode);
                                    additionalParameters.Add(consultationDetails.ConsultationTime);
                                    if (consultationDetailModel.ConsultationStatusID == 3)//cancelled by patient
                                    {
                                        NotificationClient.Instance.SendMessage(null, ImTech.Notification.Messages.MessageType.Booking_Cancelled_Patient, additionalParameters);
                                        NotificationClient.Instance.SendMessage(null, ImTech.Notification.Messages.MessageType.Booking_Cancelled_Doctor, additionalParameters);
                                    }
                                }
                            }
                        }

                        response = new ResponseCarrier()
                        {
                            Status = true, PayLoad = cViewModel, TanentId = requestCarrier.TanentId
                        };
                    }
                    else
                    {
                        response = new ResponseCarrier()
                        {
                            Status = false, TanentId = requestCarrier.TanentId, ErrorMessage = consultationResponse.ErrorMessage
                        };
                    }
                }
                else
                {
                    response = new ResponseCarrier()
                    {
                        Status = false, TanentId = requestCarrier.TanentId, ErrorMessage = validationResponse
                    };
                }
            }
            else
            {
                response = new ResponseCarrier()
                {
                    Status = false, PayLoad = null, ErrorMessage = "TanentId or RequestFrom or UserId not provided.", TanentId = requestCarrier.TanentId
                };
            }
            return(Json(response));
        }