示例#1
0
        public ActionResult CreateItemLab()
        {
            LabResponse response = new LabResponse();

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

                LabResponse         resp   = new LabHandler(_unitOfWork).GetDetailPatient(request.Data.LoketData.Id);
                FormExamineLabModel _model = resp.Entity;
                Session["QueuePoliId"] = resp.Entity.LoketData.Id;
                _model.LabItemsId      = LabHandler.GetSelectedLabItem(request.Data.LoketData.Id);
                return(View(_model));
            }
            ViewBag.LabCategory = BindLabCategory(Constants.NameConstant.Laboratorium);
            return(View());
        }
示例#2
0
        public JsonResult AddLabItem()
        {
            LabResponse         response = new LabResponse();
            FormExamineLabModel _model   = new FormExamineLabModel();

            if (Request.Form["FormMedicalID"] != null)
            {
                _model.FormMedicalID = Convert.ToInt64(Request.Form["FormMedicalID"].ToString());
            }
            if (Request.Form["LabItems"] != null)
            {
                _model.LabItemsId = JsonConvert.DeserializeObject <List <int> >(Request.Form["LabItems"]);
            }
            if (Session["UserLogon"] != null)
            {
                _model.Account = (AccountModel)Session["UserLogon"];
            }
            if (Session["QueuePoliId"] != null)
            {
                if (_model.LoketData == null)
                {
                    _model.LoketData = new LoketModel();
                }
                _model.LoketData.Id = Convert.ToInt64(Session["QueuePoliId"].ToString());
            }

            var request = new LabRequest
            {
                Data = _model
            };

            new LabValidator(_unitOfWork, _context).Validate(request, out response);
            return(Json(new { Status = response.Status, Message = response.Message }, JsonRequestBehavior.AllowGet));
        }
示例#3
0
        public JsonResult AddLabRadiologiResult()
        {
            RadiologiResponse   response = new RadiologiResponse();
            FormExamineLabModel _model   = new FormExamineLabModel();

            if (Request.Form["FormMedicalID"] != null)
            {
                _model.FormMedicalID = Convert.ToInt64(Request.Form["FormMedicalId"].ToString());
            }
            if (Request.Form["LabResults"] != null)
            {
                _model.LabItemCollsJs = JsonConvert.DeserializeObject <List <LabItemResultJS> >(Request.Form["LabResults"]);
            }
            if (Session["UserLogon"] != null)
            {
                _model.Account = (AccountModel)Session["UserLogon"];
            }
            _model.FormExamine = new FormExamineModel
            {
                DoctorID = Request.Form["Doctor"] == null ? 0 : Convert.ToInt32(Request.Form["Doctor"].ToString()),
                Result   = Request.Form["Conclusion"]
            };

            if (Session["QueuePoliId"] != null)
            {
                if (_model.LoketData == null)
                {
                    _model.LoketData = new LoketModel();
                }
                _model.LoketData.Id = Convert.ToInt64(Session["QueuePoliId"].ToString());
            }

            var request = new RadiologiRequest
            {
                Data = _model
            };

            new RadiologiValidator(_unitOfWork, _context).ValidateAddResult(request, out response);
            return(Json(new { Status = response.Status, Message = response.Message }, JsonRequestBehavior.AllowGet));
        }
示例#4
0
        public ActionResult InputLabResult()
        {
            LabResponse response = new LabResponse();
            var         _model   = new FormExamineLabModel {
            };

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

                LabResponse resp = new LabHandler(_unitOfWork).GetDetailPatient(request.Data.LoketData.Id);
                _model = resp.Entity;
                LabResponse resp2 = new LabHandler(_unitOfWork).GetDataExamine(request.Data.LoketData.Id);
                if (_model.FormExamine == null)
                {
                    _model.FormExamine = new FormExamineModel();
                }
                _model.FormExamine.Result   = resp2.Entity.FormExamine.Result;
                _model.FormExamine.DoctorID = resp2.Entity.FormExamine.DoctorID;
                Session["QueuePoliId"]      = resp.Entity.LoketData.Id;
            }
            ViewBag.DoctorList = BindDropDownDokter();
            return(View(_model));
        }
示例#5
0
        private PoliExamineModel GeneratePoliExamineModel(
            string formExamineID,
            string loketID,
            string anamnesa,
            string diagnose,
            string therapy,
            string receipt,
            string finalState,
            string icdInformation,
            string poliToID,
            string doctorToID,
            List <string> concoctionMedicineList,
            List <string> medicineList,
            List <string> injectionList,
            List <string> labList,
            List <string> radiologyList,
            List <string> serviceList)
        {
            QueuePoli queue = _unitOfWork.RegistrationRepository.GetById(int.Parse(loketID));

            PoliExamineModel model = new PoliExamineModel();

            // For new registration data
            if (!string.IsNullOrEmpty(doctorToID))
            {
                model.DoctorToID = int.Parse(doctorToID);
            }

            model.PoliToID = int.Parse(poliToID);

            // Registration
            model.LoketData = Mapper.Map <QueuePoli, LoketModel>(queue);

            // FormExamine
            model.ExamineData.Anamnesa       = anamnesa;
            model.ExamineData.Diagnose       = diagnose;
            model.ExamineData.Therapy        = therapy;
            model.ExamineData.Result         = finalState;
            model.ExamineData.PoliID         = queue.PoliTo;
            model.ExamineData.DoctorID       = queue.DoctorID;
            model.ExamineData.FormMedicalID  = queue.FormMedicalID;
            model.ExamineData.ICDInformation = icdInformation;

            // FormExamineMedicine
            foreach (var item in medicineList)
            {
                string[] values = item.Split('|');
                FormExamineMedicineModel medModel = new FormExamineMedicineModel
                {
                    ProductID     = int.Parse(values[0]),
                    FormExamineID = long.Parse(formExamineID),
                    Dose          = values[1],
                    Qty           = int.Parse(values[2]),
                    RemarkUse     = values[3],
                    TypeID        = ((int)MedicineTypeEnum.Medicine).ToString()
                };

                model.MedicineDataList.Add(medModel);
            }

            //concoction Medicine
            foreach (var item in concoctionMedicineList)
            {
                string[] values = item.Split('|');
                FormExamineMedicineModel medModel = new FormExamineMedicineModel
                {
                    ConcoctionMedicine = values[0],
                    FormExamineID      = long.Parse(formExamineID),
                    Dose          = values[1],
                    MedicineJenis = values[2],
                    RemarkUse     = values[3],
                    Qty           = Convert.ToDouble(values[4]),
                    TypeID        = ((int)MedicineTypeEnum.Concoction).ToString()
                };

                model.MedicineDataList.Add(medModel);
            }

            // FormExamineInjection
            foreach (var item in injectionList)
            {
                string[] values = item.Split('|');
                FormExamineMedicineModel medModel = new FormExamineMedicineModel
                {
                    ProductID     = int.Parse(values[0]),
                    FormExamineID = long.Parse(formExamineID),
                    RemarkUse     = values[2],
                    TypeID        = ((int)MedicineTypeEnum.Injection).ToString()
                };

                model.MedicineDataList.Add(medModel);
            }

            if (!string.IsNullOrEmpty(receipt))
            {
                FormExamineMedicineModel medModel = new FormExamineMedicineModel
                {
                    FormExamineID      = long.Parse(formExamineID),
                    ConcoctionMedicine = receipt,
                    TypeID             = ((int)MedicineTypeEnum.Concoction).ToString()
                };

                model.MedicineDataList.Add(medModel);
            }

            // FormExamineLab
            foreach (var item in labList)
            {
                FormExamineLabModel labModel = new FormExamineLabModel
                {
                    LabItemID = int.Parse(item),
                    LabType   = ((int)LabTypeEnum.Laboratorium).ToString()
                };

                model.LabDataList.Add(labModel);
            }

            // FormExamineRadiology
            foreach (var item in radiologyList)
            {
                FormExamineLabModel labModel = new FormExamineLabModel
                {
                    LabItemID = int.Parse(item),
                    LabType   = ((int)LabTypeEnum.Radiology).ToString()
                };

                model.LabDataList.Add(labModel);
            }

            // FormExamineRadiology
            foreach (var item in serviceList)
            {
                FormExamineServiceModel serviceModel = new FormExamineServiceModel
                {
                    ServiceID = int.Parse(item)
                };

                model.ServiceDataList.Add(serviceModel);
            }

            return(model);
        }
示例#6
0
        public LabResponse CreateLabResult(LabRequest request)
        {
            var response = new LabResponse {
            };
            FormExamineLabModel model = new FormExamineLabModel();

            if (model.LabItemColls == null)
            {
                model.LabItemColls = new List <FormExamineLabModel>();
            }
            try
            {
                foreach (var item in request.Data.LabItemCollsJs.Where(x => x.name.StartsWith("Result_")))
                {
                    string[] temp = item.name.Split('_');
                    if (temp[0].ToLower() == "result")
                    {
                        //pertama Id FormExLab kedua Lab Item
                        string[] _ids = temp[1].Split('|');

                        long   _Id              = Convert.ToInt64(_ids[0]);
                        int    _LabItemID       = Convert.ToInt32(_ids[1]);
                        string _result          = item.value;
                        string _resultIndicator = request.Data.LabItemCollsJs.Where(x => x.name == "ResultIndicator_" + temp[1]).FirstOrDefault().value;

                        var _existing = _unitOfWork.FormExamineLabRepository.Get(x => x.ID == _Id && x.LabItemID == _LabItemID).FirstOrDefault();
                        if (_existing != null)
                        {
                            _existing.Result          = _result;
                            _existing.ResultIndicator = _resultIndicator;
                            _existing.ModifiedBy      = request.Data.Account.UserName;
                            _existing.ModifiedDate    = DateTime.Now;
                            _unitOfWork.FormExamineLabRepository.Update(_existing);
                        }
                    }
                }

                var _existingExam = _unitOfWork.FormExamineRepository.GetFirstOrDefault(x => x.FormMedicalID == request.Data.FormMedicalID);
                if (_existingExam != null)
                {
                    _existingExam.Result       = request.Data.FormExamine.Result;
                    _existingExam.DoctorID     = request.Data.FormExamine.DoctorID;
                    _existingExam.ModifiedBy   = request.Data.Account.UserName;
                    _existingExam.ModifiedDate = DateTime.Now;
                    _unitOfWork.FormExamineRepository.Update(_existingExam);
                }


                var _editQueuePoli = _unitOfWork.RegistrationRepository.GetById(request.Data.LoketData.Id);
                if (_editQueuePoli != null)
                {
                    _editQueuePoli.Status       = (int)RegistrationStatusEnum.Finish;
                    _editQueuePoli.ModifiedBy   = request.Data.Account.UserName;
                    _editQueuePoli.ModifiedDate = DateTime.Now;
                    _unitOfWork.RegistrationRepository.Update(_editQueuePoli);
                }

                int result_affected = _unitOfWork.Save();
                if (result_affected > 0)
                {
                    response.Status  = true;
                    response.Message = Messages.LabResultUpdated;
                }
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = Messages.GeneralError;
            }
            return(response);
        }