Beispiel #1
0
        public ActionResult FormExamine()
        {
            var id = Request.QueryString["id"];

            if (id == null)
            {
                return(View("Index", "Home", null));
            }

            var request = new LoketRequest
            {
                Data = new LoketModel
                {
                    Id = long.Parse(id.ToString())
                }
            };

            LoketResponse resp = new LoketHandler(_unitOfWork).GetDetail(request);

            PoliExamineModel model = new PoliExamineModel();

            try
            {
                model.LoketData  = resp.Entity;
                model.PatientAge = CommonUtils.GetPatientAge(model.LoketData.PatientBirthDateStr);

                var necessityTypeList = GetGeneralMasterByType(Constants.MasterType.NECESSITY_TYPE);
                var paymentTypeList   = GetGeneralMasterByType(Constants.MasterType.PAYMENT_TYPE);

                model.NecessityTypeStr = necessityTypeList.FirstOrDefault(x => x.Value == model.LoketData.NecessityType.ToString()).Text;
                model.PaymentTypeStr   = paymentTypeList.FirstOrDefault(x => x.Value == model.LoketData.PaymentType.ToString()).Text;

                // get default services
                List <PoliService> poliServicelist = _unitOfWork.PoliServicesRepository.Get(x => x.PoliID == model.LoketData.PoliToID && x.RowStatus == 0).ToList();
                foreach (var item in poliServicelist)
                {
                    ServiceModel servModel = Mapper.Map <Service, ServiceModel>(item.Service);
                    model.DefaultServiceList.Add(servModel);
                }

                // get form examine if any
                FormPreExamine formPreExamine = _unitOfWork.FormPreExamineRepository.GetFirstOrDefault(x => x.FormMedicalID == model.LoketData.FormMedicalID);
                if (formPreExamine != null)
                {
                    model.PreExamineData = Mapper.Map <FormPreExamine, PreExamineModel>(formPreExamine);
                }

                // get form examine if any
                FormExamine formExamine = _unitOfWork.FormExamineRepository.GetFirstOrDefault(x => x.FormMedicalID == model.LoketData.FormMedicalID);
                if (formExamine != null)
                {
                    model.ExamineData = Mapper.Map <FormExamine, FormExamineModel>(formExamine);
                    if (model.ExamineData.ICDInformation != null)
                    {
                        string[] arrIcds = model.ExamineData.ICDInformation.Split('|');
                        if (arrIcds.Length > 0)
                        {
                            model.ICDInformation1 = arrIcds[0];
                            model.ICDInformation2 = arrIcds[1];
                            model.ICDInformation3 = arrIcds[2];
                        }
                    }
                    // get form examine medicine if any
                    List <FormExamineMedicine> formExamineMedicines = _unitOfWork.FormExamineMedicineRepository.Get(x => x.FormExamineID == formExamine.ID);
                    foreach (var formExamineMedicine in formExamineMedicines)
                    {
                        if (formExamineMedicine.TypeID == ((int)MedicineTypeEnum.Medicine).ToString() || formExamineMedicine.TypeID == ((int)MedicineTypeEnum.Concoction).ToString())
                        {
                            model.MedicineDataList.Add(Mapper.Map <FormExamineMedicine, FormExamineMedicineModel>(formExamineMedicine));
                        }
                        else if (formExamineMedicine.TypeID == ((int)MedicineTypeEnum.Injection).ToString())
                        {
                            model.InjectionDataList.Add(Mapper.Map <FormExamineMedicine, FormExamineMedicineModel>(formExamineMedicine));
                        }
                        //else if (formExamineMedicine.TypeID == ((int)MedicineTypeEnum.Concoction).ToString())
                        //    model.ConcoctionMedicine = formExamineMedicine.ConcoctionMedicine;
                    }

                    // get form examine lab and radiology if any
                    List <FormExamineLab> formExamineLabs = _unitOfWork.FormExamineLabRepository.Get(x => x.FormMedicalID == formExamine.FormMedicalID);
                    foreach (var formExamineLab in formExamineLabs)
                    {
                        if (formExamineLab.LabType == ((int)LabTypeEnum.Laboratorium).ToString())
                        {
                            model.LabDataList.Add(Mapper.Map <FormExamineLab, FormExamineLabModel>(formExamineLab));
                        }
                        else if (formExamineLab.LabType == ((int)LabTypeEnum.Radiology).ToString())
                        {
                            model.RadiologyDataList.Add(Mapper.Map <FormExamineLab, FormExamineLabModel>(formExamineLab));
                        }
                    }

                    // get form examine service if any
                    List <FormExamineService> formExamineServices = _unitOfWork.FormExamineServiceRepository.Get(x => x.FormExamineID == formExamine.ID);
                    foreach (var formExamineService in formExamineServices)
                    {
                        if (!model.DefaultServiceList.Any(x => x.Id == formExamineService.ServiceID))
                        {
                            model.ServiceDataList.Add(Mapper.Map <FormExamineService, FormExamineServiceModel>(formExamineService));
                        }
                    }
                }
                else
                {
                    model.ExamineData.DoctorID = model.LoketData.DoctorID;
                    model.ExamineData.PoliID   = model.LoketData.PoliToID;
                }

                var tempPoliList = BindDropDownPoliList(model.LoketData.PoliToID);
                ViewBag.PoliList       = tempPoliList;
                ViewBag.DoctorList     = BindDropDownDoctorList(int.Parse(tempPoliList[0].Value));
                ViewBag.FinalStateList = BindDropDownFinalStateList();
                ViewBag.ICDInfo        = BindDropDownICDInfo();
            }
            catch
            {
                return(BadRequestResponse);
            }

            return(View(model));
        }
Beispiel #2
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);
        }
Beispiel #3
0
        public ActionResult FormExamine(
            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)
        {
            if (concoctionMedicineList == null)
            {
                concoctionMedicineList = new List <string>();
            }
            if (medicineList == null)
            {
                medicineList = new List <string>();
            }
            if (injectionList == null)
            {
                injectionList = new List <string>();
            }
            if (labList == null)
            {
                labList = new List <string>();
            }
            if (radiologyList == null)
            {
                radiologyList = new List <string>();
            }
            if (serviceList == null)
            {
                serviceList = new List <string>();
            }

            PoliExamineModel model = GeneratePoliExamineModel(formExamineID, loketID, anamnesa, diagnose, therapy, receipt, finalState, icdInformation, poliToID, doctorToID, concoctionMedicineList, medicineList, injectionList, labList, radiologyList, serviceList);

            model.Account = Account;

            var request = new FormExamineRequest {
                Data = model,
            };

            FormExamineResponse _response = new FormExamineValidator(_unitOfWork, _context).Validate(request);

            if (_response.Status)
            {
                // Notify to all
                RegistrationHub.BroadcastDataToAllClients();
            }

            ViewBag.Response = $"{_response.Status};{_response.Message}";
            var tempPoliList = BindDropDownPoliList(model.LoketData.PoliToID);

            ViewBag.PoliList       = tempPoliList;
            ViewBag.DoctorList     = BindDropDownDoctorList(int.Parse(tempPoliList[0].Value));
            ViewBag.FinalStateList = BindDropDownFinalStateList();
            ViewBag.ICDInfo        = BindDropDownICDInfo();
            return(Json(new { Status = _response.Status, Message = _response.Message }, JsonRequestBehavior.AllowGet));
        }