Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }
Exemple #4
0
 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>();
 }
Exemple #5
0
        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));
        }
Exemple #6
0
        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));
        }
Exemple #7
0
        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));
        }
Exemple #8
0
        /// <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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }