Пример #1
0
        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);
        }
Пример #2
0
        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);
        }