public MedicalHistoryResponse getEmployeeBaseOnEmpNo(MedicalHistoryRequest request)
        {
            var response = new MedicalHistoryResponse();
            List <EmployeeModel> employees = new List <EmployeeModel>();
            var qryOnlyEmployee            = _unitOfWork.EmployeeRepository.GetFirstOrDefault(x => x.EmpID == request.Data.EmployeeData.EmpID);
            var qryForSpouse = _unitOfWork.EmployeeRepository.Get(x => x.ReffEmpID == request.Data.EmployeeData.EmpID && x.EmpType > 1);

            if (qryOnlyEmployee != null)
            {
                employees.Add(Mapper.Map <Employee, EmployeeModel>(qryOnlyEmployee));
            }

            response.Employees       = employees;
            response.RecordsTotal    = employees.Count;
            response.RecordsFiltered = employees.Count;
            return(response);
        }
Beispiel #2
0
        public ActionResult GetEmployeeByNik(string nik)
        {
            var _draw          = Request.Form.GetValues("draw").FirstOrDefault();
            var _start         = Request.Form.GetValues("start").FirstOrDefault();
            var _length        = Request.Form.GetValues("length").FirstOrDefault();
            var _sortColumn    = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault();
            var _sortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault();
            var _searchValue   = Request.Form.GetValues("search[value]").FirstOrDefault();

            int _pageSize = _length != null?Convert.ToInt32(_length) : 0;

            int _skip = _start != null?Convert.ToInt32(_start) : 0;

            var employee = new EmployeeModel
            {
                EmpID = nik
            };

            var request = new MedicalHistoryRequest
            {
                Draw          = _draw,
                SearchValue   = _searchValue,
                SortColumn    = _sortColumn,
                SortColumnDir = _sortColumnDir,
                PageSize      = _pageSize,
                Skip          = _skip,
                Data          = new MedicalHistoryModel
                {
                    EmployeeData = employee
                }
            };

            if (Session["UserLogon"] != null)
            {
                request.Data.Account = (AccountModel)Session["UserLogon"];
            }

            var response = new MedicalHistoryHandler(_unitOfWork).getEmployeeBaseOnEmpNo(request);

            return(Json(new { data = response.Employees, recordsFiltered = response.RecordsFiltered, recordsTotal = response.RecordsTotal, draw = response.Draw }, JsonRequestBehavior.AllowGet));
        }
        public MedicalHistoryResponse getMedicalActivityHist(MedicalHistoryRequest request)
        {
            var response = new MedicalHistoryResponse();
            List <MedicalHistoryModel> members = null;

            long _employeeId = 0;

            if ((request.Data.EmployeeData.Id != 0))
            {
                if (members == null)
                {
                    members = new List <MedicalHistoryModel>();
                }
                _employeeId = request.Data.EmployeeData.Id;

                var tempRelationship = _unitOfWork.FamilyRelationshipRepository.Get(x => x.RowStatus == 0);
                var tempNecesity     = _unitOfWork.MasterRepository.Get(x => x.Type == Constants.MasterType.NECESSITY_TYPE);

                var _qry = _unitOfWork.PatientRepository.Get(x => x.EmployeeID == _employeeId);
                foreach (var item in _qry)
                {
                    var _idRelationship = item.FamilyRelationshipID == null ? 0 : item.FamilyRelationshipID;
                    members.Add(new MedicalHistoryModel
                    {
                        IDPatient    = item.ID,
                        PatientName  = item.Name,
                        Relationship = tempRelationship.FirstOrDefault(x => x.ID == _idRelationship) == null ? "" : tempRelationship.FirstOrDefault(x => x.ID == _idRelationship).Name,
                    });
                }

                List <long> idPatients = new List <long>();
                idPatients = members.Select(x => x.IDPatient).Distinct().ToList();
                //get data formMedical with existing PatientID
                var _qryFormMed = _unitOfWork.FormMedicalRepository.Get(x => idPatients.Contains(x.PatientID ?? 0)).Select(x => x.ID).Distinct().ToList();
                var _qryFrmExm  = _unitOfWork.FormExamineRepository.Get(x => _qryFormMed.Contains(x.FormMedicalID ?? 0));
                if (_qryFrmExm != null && _qryFrmExm.Count > 0)
                {
                    members = new List <MedicalHistoryModel>();
                }

                foreach (var itm in _qryFrmExm)
                {
                    members.Add(new MedicalHistoryModel
                    {
                        Id            = itm.ID,
                        PatientName   = itm.FormMedical.Patient.Name,
                        ClinicName    = itm.FormMedical.Clinic.Name,
                        PoliName      = itm.Poli.Name,
                        Keperluan     = tempNecesity.Where(x => x.Value == itm.FormMedical.Necessity).FirstOrDefault() == null ? "" : tempNecesity.Where(x => x.Value == itm.FormMedical.Necessity).FirstOrDefault().Name,
                        Relationship  = tempRelationship.FirstOrDefault(x => x.ID == itm.FormMedical.Patient.FamilyRelationshipID) == null ? "" : tempRelationship.FirstOrDefault(x => x.ID == itm.FormMedical.Patient.FamilyRelationshipID).Name,
                        FormMedicalId = itm.FormMedical.ID,
                        Tanggal       = itm.FormMedical.StartDate.HasValue ? itm.FormMedical.StartDate.Value.ToShortDateString() : ""
                    });
                }
            }

            if (!String.IsNullOrEmpty(request.SearchValue) && !String.IsNullOrWhiteSpace(request.SearchValue))
            {
                members = members.Where(x => x.ClinicName.Contains(request.SearchValue) || x.PatientName.Contains(request.SearchValue) || x.PoliName.Contains(request.SearchValue)).ToList();
            }

            if (!(string.IsNullOrEmpty(request.SortColumn) && string.IsNullOrEmpty(request.SortColumnDir)))
            {
                if (request.SortColumnDir == "asc")
                {
                    switch (request.SortColumn.ToLower())
                    {
                    case "Tanggal":
                        members = members.OrderBy(x => Convert.ToDateTime(x.Tanggal)).ToList();
                        break;

                    case "PatientName":
                        members = members.OrderBy(x => x.PatientName).ToList();
                        break;

                    case "ClinicName":
                        members = members.OrderBy(x => x.ClinicName).ToList();
                        break;

                    case "PoliName":
                        members = members.OrderBy(x => x.PoliName).ToList();
                        break;
                    }
                }
                else
                {
                    switch (request.SortColumn.ToLower())
                    {
                    case "Tanggal":
                        members = members.OrderByDescending(x => Convert.ToDateTime(x.Tanggal)).ToList();
                        break;

                    case "PatientName":
                        members = members.OrderByDescending(x => x.PatientName).ToList();
                        break;

                    case "ClinicName":
                        members = members.OrderByDescending(x => x.ClinicName).ToList();
                        break;

                    case "PoliName":
                        members = members.OrderByDescending(x => x.PoliName).ToList();
                        break;
                    }
                }
            }
            response.MedicalHistories = members;
            var data = members.Skip(request.Skip).Take(request.PageSize).ToList();

            response.Data            = data;
            response.RecordsTotal    = members.Count;
            response.RecordsFiltered = members.Count;

            return(response);
        }