private ActionResult GenericIndex(PoliEnum poliEnum) { if (Session["UserLogon"] != null) { AccountModel account = (AccountModel)Session["UserLogon"]; bool isHasPrivilege = IsHaveAuthorization("ADD_REGISTRATION"); ViewBag.IsHasAddPrivilege = isHasPrivilege; } var poliName = Regex.Replace(poliEnum.ToString(), "([A-Z])", " $1").Trim(); var model = new LoketModel { PoliFromID = (int)poliEnum, CurrentPoliID = (int)poliEnum, PoliFromName = poliName }; ViewBag.Response = new LoketResponse(); var tempPoliList = BindDropDownPoliList((int)poliEnum); ViewBag.PoliList = tempPoliList; ViewBag.PatientList = BindDropDownPatientList(); ViewBag.RegistrationTypeList = BindDropDownTypeList(); ViewBag.DoctorList = BindDropDownDoctorList(int.Parse(tempPoliList[0].Value)); ViewBag.PaymentTypeList = BindDropDownPaymentTypeList(); ViewBag.NecessityList = BindDropDownNecessityList(); return(View("Index", model)); }
public ActionResult Edit() { LoketResponse _response = new LoketResponse(); var request = new LoketRequest { Data = new LoketModel { Id = long.Parse(Request.QueryString["id"].ToString()) } }; LoketResponse resp = new LoketHandler(_unitOfWork).GetDetail(request); LoketModel _model = resp.Entity; _model.CurrentPoliID = GetUserPoliID(); ViewBag.Response = _response; ViewBag.PoliList = BindDropDownPoliList(_model.PoliFromID); ViewBag.PatientList = BindDropDownPatientList(); ViewBag.RegistrationTypeList = BindDropDownTypeList(); ViewBag.DoctorList = BindDropDownDoctorList(_model.PoliToID); ViewBag.PaymentTypeList = BindDropDownPaymentTypeList(); ViewBag.NecessityList = BindDropDownNecessityList(); return(View("Edit", _model)); }
public ActionResult Create(LoketModel model) { model.Account = Account; var request = new LoketRequest { Data = model, }; LoketResponse _response = new LoketValidator(_unitOfWork).Validate(request); if (_response.Status) { // Notify to all RegistrationHub.BroadcastDataToAllClients(); } ViewBag.Response = $"{_response.Status};{_response.Message}"; ViewBag.PoliList = BindDropDownPoliList(model.PoliFromID); ViewBag.PatientList = BindDropDownPatientList(); ViewBag.RegistrationTypeList = BindDropDownTypeList(); ViewBag.DoctorList = BindDropDownDoctorList(model.PoliToID); ViewBag.PaymentTypeList = BindDropDownPaymentTypeList(); ViewBag.NecessityList = BindDropDownNecessityList(); return(View("Index", model)); }
public PoliExamineModel() { LoketData = new LoketModel(); PreExamineData = new PreExamineModel(); ExamineData = new FormExamineModel { TransDate = DateTime.Now }; LabDataList = new List <FormExamineLabModel>(); RadiologyDataList = new List <FormExamineLabModel>(); MedicineDataList = new List <FormExamineMedicineModel>(); InjectionDataList = new List <FormExamineMedicineModel>(); ServiceDataList = new List <FormExamineServiceModel>(); DefaultServiceList = new List <ServiceModel>(); }
public JsonResult SendForCalling(int id) { var response = new LoketResponse { Status = false }; var _loketModel = new LoketModel { Id = id }; var request = new LoketRequest { Data = _loketModel }; response = new LoketHandler(_unitOfWork).GetDetail(request); if (response != null) { var _callModel = new PanggilanPoliModel { PoliID = response.Entity.PoliToID, SortNumber = response.Entity.SortNumber, Status = CallStatusEnum.CallStatus.READY.ToString(), Account = Session["UserLogon"] == null ? new AccountModel() : (AccountModel)Session["UserLogon"], QueueCode = response.Entity.SortNumberCode }; var _requestCall = new LoketRequest { CallRequest = _callModel, }; response = new LoketResponse(); response = new LoketHandler(_unitOfWork).SendForCall(_requestCall); } return(Json(new { Status = response.Status, Message = response.Message }, JsonRequestBehavior.AllowGet)); }
private ActionResult GenericController(int poliToID) { var userPoliID = GetUserPoliID(); var poliName = Regex.Replace(((PoliEnum)userPoliID).ToString(), "([A-Z])", " $1").Trim(); var model = new LoketModel { PoliFromID = userPoliID, PoliFromName = poliName, CurrentPoliID = userPoliID, PoliToID = poliToID, IsFromDashboard = true }; var tempPoliList = BindDropDownPoliList(model.CurrentPoliID); ViewBag.PoliList = tempPoliList; ViewBag.PatientList = BindDropDownPatientList(); ViewBag.RegistrationTypeList = BindDropDownTypeList(); ViewBag.DoctorList = BindDropDownDoctorList(model.PoliToID); return(View("CreateOrEditRegistration", model)); }
public ActionResult CreateRegistrationForNewPatient(int patientID) { var poliName = Regex.Replace(((PoliEnum)1).ToString(), "([A-Z])", " $1").Trim(); var model = new LoketModel { PoliFromID = 1, CurrentPoliID = 1, PoliFromName = poliName, PatientID = patientID }; ViewBag.Response = new LoketResponse(); var tempPoliList = BindDropDownPoliList(1); ViewBag.PoliList = tempPoliList; ViewBag.PatientList = BindDropDownPatientList(); ViewBag.RegistrationTypeList = BindDropDownTypeList(); ViewBag.DoctorList = BindDropDownDoctorList(int.Parse(tempPoliList[0].Value)); ViewBag.PaymentTypeList = BindDropDownPaymentTypeList(); ViewBag.NecessityList = BindDropDownNecessityList(); return(View("Index", model)); }
/// <summary> /// Get registration list /// </summary> /// <param name="request"></param> /// <param name="poliID"></param> /// <returns></returns> public LoketResponse GetListData(LoketRequest request, int poliID = 1) { List <LoketModel> lists = new List <LoketModel>(); List <QueuePoli> qry = null; var searchPredicate = PredicateBuilder.New <QueuePoli>(true); // add default filter to show today queue only if (poliID == 1) { searchPredicate = searchPredicate.And(p => p.TransactionDate.Year == DateTime.Today.Year && p.TransactionDate.Month == DateTime.Today.Month && p.TransactionDate.Day == DateTime.Today.Day); } else { searchPredicate = searchPredicate.And(p => p.TransactionDate.Year == DateTime.Today.Year && p.TransactionDate.Month == DateTime.Today.Month && p.TransactionDate.Day == DateTime.Today.Day && p.PoliTo == poliID); } if (!String.IsNullOrEmpty(request.SearchValue) && !String.IsNullOrWhiteSpace(request.SearchValue)) { searchPredicate = searchPredicate.And(p => p.Patient.Name.Contains(request.SearchValue)); } if (!(string.IsNullOrEmpty(request.SortColumn) && string.IsNullOrEmpty(request.SortColumnDir))) { if (request.SortColumnDir == "asc") { switch (request.SortColumn.ToLower()) { case "patientname": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Patient.Name)); break; default: qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.ID)); break; } } else { switch (request.SortColumn.ToLower()) { case "patientname": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Patient.Name)); break; default: qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.ID)); break; } } } else { qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, null); } foreach (var item in qry) { LoketModel prData = Mapper.Map <QueuePoli, LoketModel>(item); // get the doctor name if (prData.DoctorID != 0) { Doctor doctor = _unitOfWork.DoctorRepository.GetById(prData.DoctorID); if (doctor != null) { prData.DoctorStr = doctor.Name; } } // format the registration type prData.TypeStr = prData.TypeStr.Replace("WalkIn", "Walk-In"); // format the queue code if (item.Type == (int)RegistrationTypeEnum.MCU) { prData.SortNumberCode = "M-" + string.Format("{0:D3}", item.SortNumber); } else { prData.SortNumberCode = item.Poli1.Code.Trim() + "-" + string.Format("{0:D3}", item.SortNumber); } lists.Add(prData); } int totalRequest = lists.Count(); int take = request.PageSize == 0 ? totalRequest : request.PageSize; var data = lists.Skip(request.Skip).Take(take).ToList(); var response = new LoketResponse { Draw = request.Draw, RecordsFiltered = totalRequest, RecordsTotal = totalRequest, Data = data }; return(response); }
public List <LoketModel> GetbaseLoketData(LoketRequest request, Expression <Func <QueuePoli, bool> > searchCriteria = null) { List <LoketModel> lists = new List <LoketModel>(); dynamic qry = null; var searchPredicate = PredicateBuilder.New <QueuePoli>(true); searchPredicate = searchPredicate.And(searchCriteria); if (request.Data.PoliToID != 0) { searchPredicate = searchPredicate.And(p => p.PoliTo == request.Data.PoliToID); } if (request.Data.ClinicID != 0) { searchPredicate = searchPredicate.And(p => p.ClinicID == request.Data.ClinicID); } if (request.Data.Status != -1) { searchPredicate = searchPredicate.And(p => p.Status == request.Data.Status); } if (request.Data.strIsPreExamine != string.Empty) { bool _isAlreadyPreExamine = Convert.ToBoolean(request.Data.strIsPreExamine); searchPredicate = searchPredicate.And(p => p.IsPreExamine == _isAlreadyPreExamine); } if (!String.IsNullOrEmpty(request.SearchValue) && !String.IsNullOrWhiteSpace(request.SearchValue)) { searchPredicate = searchPredicate.And(p => p.Patient.Name.Contains(request.SearchValue) || p.Doctor.Name.Contains(request.SearchValue) || p.Patient.MRNumber.Contains(request.SearchValue)); } if (!(string.IsNullOrEmpty(request.SortColumn) && string.IsNullOrEmpty(request.SortColumnDir))) { if (request.SortColumnDir == "asc") { switch (request.SortColumn.ToLower()) { case "patientname": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Patient.Name)); break; case "doctorstr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Doctor.Name)); break; case "transactiondatestr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.TransactionDate)); break; default: qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.ID)); break; } } else { switch (request.SortColumn.ToLower()) { case "patientname": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Patient.Name)); break; case "doctorstr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Doctor.Name)); break; case "transactiondatestr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.TransactionDate)); break; default: qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.ID)); break; } } } else { qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, null); } foreach (var item in qry) { LoketModel lokmdl = Mapper.Map <QueuePoli, LoketModel>(item); if (item.Type == (int)RegistrationTypeEnum.MCU) { lokmdl.SortNumberCode = "M-" + string.Format("{0:D3}", item.SortNumber); } else { lokmdl.SortNumberCode = item.Poli1.Code.Trim() + "-" + string.Format("{0:D3}", item.SortNumber); } lists.Add(lokmdl); } DateTime _start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0); DateTime _end = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59); lists = lists.Where(x => x.TransactionDate >= _start && x.TransactionDate <= _end).ToList(); int totalRequest = lists.Count(); var data = lists.Skip(request.Skip).Take(request.PageSize).ToList(); return(data); }
public List <LoketModel> GetFarmasiBaseLoketData(LoketRequest request, Expression <Func <QueuePoli, bool> > searchCriteria = null) { List <LoketModel> lists = new List <LoketModel>(); dynamic qry = null; var searchPredicate = PredicateBuilder.New <QueuePoli>(true); searchPredicate = searchPredicate.And(searchCriteria); if (request.Data.PoliToID != 0) { searchPredicate = searchPredicate.And(p => p.PoliTo == request.Data.PoliToID); } if (request.Data.ClinicID != 0) { searchPredicate = searchPredicate.And(p => p.ClinicID == request.Data.ClinicID); } if (!(string.IsNullOrEmpty(request.SortColumn) && string.IsNullOrEmpty(request.SortColumnDir))) { if (request.SortColumnDir == "asc") { switch (request.SortColumn.ToLower()) { case "patientname": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Patient.Name)); break; case "doctorstr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Doctor.Name)); break; case "transactiondatestr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.TransactionDate)); break; default: qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.ID)); break; } } else { switch (request.SortColumn.ToLower()) { case "patientname": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Patient.Name)); break; case "doctorstr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Doctor.Name)); break; case "transactiondatestr": qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.TransactionDate)); break; default: qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.ID)); break; } } } else { qry = _unitOfWork.RegistrationRepository.Get(searchPredicate, null); } foreach (var item in qry) { // original loket long formMedicalID = ((QueuePoli)item).FormMedicalID.Value; QueuePoli sourcePoli = _unitOfWork.RegistrationRepository.GetFirstOrDefault(x => x.FormMedicalID == formMedicalID); LoketModel lokmdl = Mapper.Map <QueuePoli, LoketModel>(item); if (sourcePoli != null && sourcePoli.DoctorID != null) { lokmdl.DoctorID = sourcePoli.DoctorID.Value; lokmdl.DoctorStr = sourcePoli.Doctor != null ? sourcePoli.Doctor.Name : string.Empty; } if (item.Type == (int)RegistrationTypeEnum.MCU) { lokmdl.SortNumberCode = "M-" + string.Format("{0:D3}", item.SortNumber); } else { lokmdl.SortNumberCode = item.Poli1.Code.Trim() + "-" + string.Format("{0:D3}", item.SortNumber); } // modify the status lokmdl.StatusStr = ((PharmacyStatusEnum)lokmdl.Status).ToString(); lists.Add(lokmdl); } DateTime _start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0); DateTime _end = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59); lists = lists.Where(x => x.TransactionDate >= _start && x.TransactionDate <= _end).ToList(); int totalRequest = lists.Count(); var data = lists.Skip(request.Skip).Take(request.PageSize).ToList(); return(data); }