Esempio n. 1
0
        public ActionResult CreateOrEditPreExamine()
        {
            PreExamineResponse _response = new PreExamineResponse();

            if (Request.QueryString["id"] != null)
            {
                var request = new PreExamineRequest
                {
                    Data = new PreExamineModel
                    {
                        LoketData = new LoketModel
                        {
                            Id = long.Parse(Request.QueryString["id"].ToString()),
                        },
                    }
                };
                if (Session["UserLogon"] != null)
                {
                    request.Data.Account = (AccountModel)Session["UserLogon"];
                }

                PreExamineResponse resp = new PreExamineHandler(_unitOfWork).GetDetailNotPreExamine(request);

                PreExamineModel _model = resp.Entity;

                ViewBag.Doctors = BindDropDownDokter();
                return(View(_model));
            }
            else
            {
                ViewBag.Doctors = BindDropDownDokter();
                return(View());
            }
        }
Esempio n. 2
0
        public PreExamineResponse Validate(PreExamineRequest request)
        {
            var  response        = new PreExamineResponse();
            bool isHavePrivilege = true;

            if (String.IsNullOrEmpty(request.Data.strTransDate) || String.IsNullOrWhiteSpace(request.Data.strTransDate))
            {
                errorFields.Add("Transaction Date");
            }

            if (errorFields.Any())
            {
                response.Status  = false;
                response.Message = string.Format(Messages.ValidationErrorFields, String.Join(",", errorFields));
            }
            //cek gender
            var _gender = _unitOfWork.RegistrationRepository.GetById(request.Data.LoketData.Id);

            if (_gender != null)
            {
                if (_gender.Patient.Gender.ToLower() == "m")
                {
                    if (request.Data.strMenstrualDate != null || request.Data.strKBDate != null)
                    {
                        response.Status  = false;
                        response.Message = Messages.MenstrualDataProhibited;
                    }
                }
            }
            else
            {
                response.Status  = false;
                response.Message = Messages.PatientNotRegistered;
            }

            if (request.Data.Id == 0)
            {
                isHavePrivilege = IsHaveAuthorization(ADD_PRIVILEGE_NAME, request.Data.Account.Privileges.PrivilegeIDs);
            }
            else
            {
                isHavePrivilege = IsHaveAuthorization(EDIT_PRIVILEGE_NAME, request.Data.Account.Privileges.PrivilegeIDs);
            }

            if (!isHavePrivilege)
            {
                response.Status  = false;
                response.Message = Messages.UnauthorizedAccess;
            }

            if (response.Status == true)
            {
                response = new PreExamineHandler(_unitOfWork).CreateOrEdit(request);
            }
            return(response);
        }
Esempio n. 3
0
        public PreExamineResponse GetDetailNotPreExamine(PreExamineRequest request)
        {
            var  _getdetailQueuePoli = _unitOfWork.RegistrationRepository.GetById(request.Data.LoketData.Id);
            long formMedicalID       = _getdetailQueuePoli.FormMedicalID.Value;

            var _preexmodel = new PreExamineModel
            {
                DoctorID      = _getdetailQueuePoli.DoctorID ?? 0,
                FormMedicalID = formMedicalID,
                strTransDate  = _getdetailQueuePoli.TransactionDate.ToString("dd/MM/yyyy"),
            };

            //cek data preexamine
            var _preExamineData = _unitOfWork.FormPreExamineRepository.GetFirstOrDefault(x => x.FormMedicalID == formMedicalID);

            if (_preExamineData != null)
            {
                _preexmodel = Mapper.Map <FormPreExamine, PreExamineModel>(_preExamineData);
                if (_preexmodel.strTransDate == "" || _preexmodel.strTransDate == null)
                {
                    _preexmodel.strTransDate = _getdetailQueuePoli.TransactionDate.ToString("dd/MM/yyyy");
                }

                if (_preExamineData.MenstrualDate != null)
                {
                    _preexmodel.strMenstrualDate = _preExamineData.MenstrualDate.Value.ToString("dd/MM/yyyy").Contains("1900") ? "" : _preExamineData.MenstrualDate.Value.ToString("dd/MM/yyyy");
                }

                if (_preExamineData.KBDate != null)
                {
                    _preexmodel.strKBDate = _preExamineData.KBDate.Value.ToString("dd/MM/yyyy").Contains("1900") ? "" : _preExamineData.KBDate.Value.ToString("dd/MM/yyyy");
                }
            }

            _preexmodel.LoketData = Mapper.Map <QueuePoli, LoketModel>(_getdetailQueuePoli);

            var response = new PreExamineResponse
            {
                Entity = _preexmodel
            };

            return(response);
        }
Esempio n. 4
0
        public PreExamineResponse CreateOrEdit(PreExamineRequest request)
        {
            int resultAffected          = 0;
            PreExamineResponse response = new PreExamineResponse();

            try
            {
                var _cekExistById = _unitOfWork.FormPreExamineRepository.GetById(request.Data.Id);
                if (_cekExistById != null)
                {
                    _cekExistById.FormMedicalID = request.Data.FormMedicalID;
                    _cekExistById.TransDate     = reformatDate(request.Data.strTransDate);
                    _cekExistById.DoctorID      = request.Data.DoctorID;
                    _cekExistById.Temperature   = request.Data.Temperature;
                    _cekExistById.Weight        = request.Data.Weight;
                    _cekExistById.Height        = request.Data.Height;
                    _cekExistById.Respiratory   = request.Data.Respiratory;
                    _cekExistById.Pulse         = request.Data.Pulse;
                    _cekExistById.Systolic      = request.Data.Systolic;
                    _cekExistById.Diastolic     = request.Data.Diastolic;
                    _cekExistById.Others        = request.Data.Others;
                    _cekExistById.RightEye      = request.Data.RightEye;
                    _cekExistById.LeftEye       = request.Data.LeftEye;
                    _cekExistById.ColorBlind    = request.Data.ColorBlind;
                    if (!String.IsNullOrEmpty(request.Data.strMenstrualDate))
                    {
                        _cekExistById.MenstrualDate = reformatDate(request.Data.strMenstrualDate);
                    }


                    if (!String.IsNullOrEmpty(request.Data.strKBDate))
                    {
                        _cekExistById.KBDate = reformatDate(request.Data.strKBDate);
                    }


                    _cekExistById.DailyGlasses   = request.Data.DailyGlasses;
                    _cekExistById.ExamineGlasses = request.Data.ExamineGlasses;
                    _cekExistById.ModifiedBy     = request.Data.Account.UserName;
                    _cekExistById.ModifiedDate   = DateTime.Now;

                    _unitOfWork.FormPreExamineRepository.Update(_cekExistById);
                    resultAffected = _unitOfWork.Save();
                    if (resultAffected <= 0)
                    {
                        response.Status  = false;
                        response.Message = string.Format(Messages.UpdateObjectFailed, "Pre examine Data");
                    }
                    else
                    {
                        response.Status  = true;
                        response.Message = string.Format(Messages.ObjectHasBeenUpdated2, "Update Pre Examine Data", request.Data.Id);
                    }
                }
                else
                {
                    var entiti = Mapper.Map <PreExamineModel, FormPreExamine>(request.Data);
                    entiti.TransDate = reformatDate(request.Data.strTransDate);
                    if (!String.IsNullOrEmpty(request.Data.strMenstrualDate))
                    {
                        entiti.MenstrualDate = reformatDate(request.Data.strMenstrualDate);
                    }
                    else
                    {
                        entiti.MenstrualDate = Convert.ToDateTime("1900-01-01");
                    }

                    if (!String.IsNullOrEmpty(request.Data.strKBDate))
                    {
                        entiti.KBDate = reformatDate(request.Data.strKBDate);
                    }
                    else
                    {
                        entiti.KBDate = Convert.ToDateTime("1900-01-01");
                    }

                    entiti.CreatedBy   = request.Data.Account.UserName;
                    entiti.CreatedDate = DateTime.Now;
                    _unitOfWork.FormPreExamineRepository.Insert(entiti);
                    var _updatePoli = _unitOfWork.RegistrationRepository.GetById(request.Data.LoketData.Id);
                    if (_updatePoli != null)
                    {
                        _updatePoli.IsPreExamine = true;
                        _unitOfWork.RegistrationRepository.Update(_updatePoli);
                    }
                    resultAffected = _unitOfWork.Save();
                    if (resultAffected <= 0)
                    {
                        response.Status  = false;
                        response.Message = string.Format(Messages.AddObjectFailed, "Pre examine Data");
                    }
                    else
                    {
                        response.Status  = true;
                        response.Message = string.Format(Messages.ObjectPreExamineDataAdded, request.Data.LoketData.PatientName, entiti.ID.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = Messages.GeneralError;

                if (request.Data != null && request.Data.Id > 0)
                {
                    ErrorLog(ClinicEnums.Module.FormPreExamine, Constants.Command.EDIT_FORM_PREEXAMINE, request.Data.Account, ex);
                }
                else
                {
                    ErrorLog(ClinicEnums.Module.MASTER_DOCTOR, Constants.Command.ADD_NEW_FORM_PREEXAMINE, request.Data.Account, ex);
                }
            }

            finally
            {
                var _entity = GetDetailNotPreExamine(request.Data.LoketData.Id);
                if (response.Entity == null)
                {
                    response.Entity = new PreExamineModel();
                }
                response.Entity = _entity;
            }
            return(response);
        }