예제 #1
0
        public async Task <ObjectResultModule> CreateLable([FromBody] LableManage LableManageInfo)
        {
            if (!Commons.CheckSecret(LableManageInfo.Secret))
            {
                this.ObjectResultModule.StatusCode = 422;
                this.ObjectResultModule.Message    = "Wrong Secret";
                this.ObjectResultModule.Object     = "";
                return(this.ObjectResultModule);
            }
            var userid = _IabpSession.UserId > 0 ? (int)_IabpSession.UserId : 0;
            //var User = _userManagerService.UserManager(userid);
            var usermanager = JsonHelper.FromJson <UserMemory>(_IabpSession.GetUserData());
            var doctor      = await _yaeherDoctorService.YaeherDoctorByUserID(userid);

            LableManageIn lableManageIn = new LableManageIn();

            lableManageIn.AndAlso(a => !a.IsDelete && a.LableName == LableManageInfo.LableName);
            var LableList = await _lableManageService.LableManageList(lableManageIn);

            DoctorRelation doctorRelation = new DoctorRelation();
            int            LableID        = 0;
            string         LableName      = string.Empty;

            using (var unitOfWork = _unitOfWorkManager.Begin())
            {
                if (LableList.Count() > 0)
                {
                    if ((!usermanager.IsAdmin && usermanager.IsDoctor) || (usermanager.MobileRoleName == "doctor"))
                    {
                        DoctorRelationIn doctorRelationIn = new DoctorRelationIn();
                        doctorRelationIn.AndAlso(a => a.IsDelete == false);
                        doctorRelationIn.AndAlso(a => a.DoctorID == doctor.Id);
                        doctorRelationIn.AndAlso(a => a.LableID == LableList[0].Id);
                        var doctorRelationList = await _doctorRelationService.DoctorClinicRelationList(doctorRelationIn);

                        if (doctorRelationList.Count == 0)
                        {
                            var rel = new DoctorRelation();
                            rel.DoctorName = doctor.DoctorName;
                            rel.DoctorID   = doctor.Id;
                            rel.LableID    = LableList[0].Id;
                            rel.LableName  = LableList[0].LableName;
                            rel.LableJSON  = JsonHelper.ToJson(LableList);
                            rel.CreatedBy  = userid;
                            LableID        = LableList[0].Id;
                            LableName      = LableList[0].LableName;
                            doctorRelation = await _doctorRelationService.CreateDoctorRelation(rel);
                        }
                        else
                        {
                            this.ObjectResultModule.Object     = "";
                            this.ObjectResultModule.StatusCode = 201;
                            this.ObjectResultModule.Message    = "已存在该标签,不用重复提交!";
                        }
                    }
                }
                else
                {
                    var CreateLable = new LableManage()
                    {
                        LableName   = LableManageInfo.LableName,
                        LableRemark = LableManageInfo.LableRemark,
                        OrderSort   = LableManageInfo.OrderSort,
                        CreatedBy   = userid,
                        CreatedOn   = DateTime.Now,
                    };
                    var result = await _lableManageService.CreateLableManage(CreateLable);

                    #region 判断是否为医生  当为医生新建时 绑定给到新医生
                    if ((!usermanager.IsAdmin && usermanager.IsDoctor) || (usermanager.MobileRoleName == "doctor"))
                    {
                        var rel = new DoctorRelation();
                        rel.DoctorName = doctor.DoctorName;
                        rel.DoctorID   = doctor.Id;
                        rel.LableID    = result.Id;
                        rel.LableName  = result.LableName;
                        rel.LableJSON  = JsonHelper.ToJson(result);
                        rel.CreatedBy  = userid;
                        LableID        = result.Id;
                        LableName      = result.LableName;
                        doctorRelation = await _doctorRelationService.CreateDoctorRelation(rel);
                    }
                    #endregion
                    if (result.Id > 0)
                    {
                        this.ObjectResultModule.Object     = result;
                        this.ObjectResultModule.StatusCode = 200;
                        this.ObjectResultModule.Message    = "success";
                    }
                    else
                    {
                        this.ObjectResultModule.Object     = "";
                        this.ObjectResultModule.StatusCode = 400;
                        this.ObjectResultModule.Message    = "error!";
                    }
                }
                #region 增加医生与标签关系
                if ((!usermanager.IsAdmin && usermanager.IsDoctor) || (usermanager.MobileRoleName == "doctor"))
                {
                    RelationLabelList relationLabel = new RelationLabelList();
                    relationLabel.RelationCode = "Doctor";
                    relationLabel.BusinessID   = doctor.Id;
                    relationLabel.BusinessName = doctor.DoctorName;
                    relationLabel.LableID      = LableID;
                    relationLabel.LableName    = LableName;
                    relationLabel.CreatedBy    = userid;
                    relationLabel.CreatedOn    = DateTime.Now;
                    var Lableresul = await _relationLabelListService.CreateRelationLabelList(relationLabel);
                }
                #endregion
                #region 操作日志
                var CreateYaeherOperList = new YaeherOperList()
                {
                    OperExplain = "CreateLable",
                    OperContent = JsonHelper.ToJson(LableManageInfo),
                    OperType    = "CreateLable",
                    CreatedBy   = userid,
                    CreatedOn   = DateTime.Now
                };
                var resultLog = await _yaeherOperListService.CreateYaeherOperList(CreateYaeherOperList);

                #endregion
                unitOfWork.Complete();
            }
            return(ObjectResultModule);
        }
        public async Task <ObjectResultModule> QualityYaeherDoctorSearch([FromBody] YaeherDoctorSearch YaeherDoctorSearch)
        {
            if (!Commons.CheckSecret(YaeherDoctorSearch.Secret))
            {
                this.ObjectResultModule.StatusCode = 422;
                this.ObjectResultModule.Message    = "Wrong Secret";
                this.ObjectResultModule.Object     = "";
                return(this.ObjectResultModule);
            }
            var userid = _IabpSession.UserId > 0 ? (int)_IabpSession.UserId : 0;

            var param1 = new SystemParameterIn()
            {
                SystemType = "newdoctor"
            };
            var paramlist1 = await _systemParameterService.ParameterList(param1);

            var consul = new DoctorNewIn();

            consul.RecordCount = int.Parse(paramlist1[0].ItemValue);
            var NewDoctor = await _consultationService.DoctorNewList(consul);

            if (NewDoctor.Count < 1)
            {
                this.ObjectResultModule.Object = new List <ClinicDoctorsView>();
                return(this.ObjectResultModule);
            }
            DoctorRelationIn doctorRelationIn = new DoctorRelationIn();

            doctorRelationIn.AndAlso(a => a.IsDelete == false);
            if (!string.IsNullOrEmpty(YaeherDoctorSearch.KeyWord))
            {
                doctorRelationIn.AndAlso(a => a.LableName.Contains(YaeherDoctorSearch.KeyWord) || a.DoctorName.Contains(YaeherDoctorSearch.KeyWord));
            }
            var lableList = await _DoctorRelationService.DoctorRelationList(doctorRelationIn);

            var docrel = new DoctorRelationIn();

            docrel.AndAlso(t => (!t.IsDelete));
            if (!string.IsNullOrEmpty(YaeherDoctorSearch.KeyWord))
            {
                docrel.AndAlso(t => (t.DoctorName.Contains(YaeherDoctorSearch.KeyWord) || t.LableName.Contains(YaeherDoctorSearch.KeyWord)));
            }
            var labelrel = await _DoctorRelationService.DoctorClinicRelationList(docrel);

            if (labelrel.Count < 1)
            {
                this.ObjectResultModule.Object = new List <ClinicDoctorsView>();
                return(this.ObjectResultModule);
            }
            var seach = new ClinicInfomationIn()
            {
                MaxResultCount = YaeherDoctorSearch.MaxResultCount, SkipTotal = YaeherDoctorSearch.SkipTotal
            };
            var ClinicInfo = await _clinicInfomationService.QualityDoctorInformation(YaeherDoctorSearch, labelrel, NewDoctor);

            // 查询科室信息
            if (ClinicInfo != null && ClinicInfo.TotalCount > 0)
            {
                foreach (var item in ClinicInfo.Items)
                {
                    item.Doctorslable = lableList.Where(t => t.DoctorID == item.Id).ToList();
                }
            }
            if (ClinicInfo.TotalCount < 0)
            {
                this.ObjectResultModule.StatusCode = 204;
                this.ObjectResultModule.Message    = "NoContent";
                this.ObjectResultModule.Object     = "";
            }
            else
            {
                var ClinicDoctorsViewLists = ClinicInfo;
                this.ObjectResultModule.Object     = new ClinicDoctorInfoOut(ClinicDoctorsViewLists, YaeherDoctorSearch);
                this.ObjectResultModule.Message    = "sucess";
                this.ObjectResultModule.StatusCode = 200;
            }
            #region 操作日志
            var CreateYaeherOperList = new YaeherOperList()
            {
                OperExplain = "QualityYaeherDoctorSearch",
                OperContent = JsonHelper.ToJson(YaeherDoctorSearch),
                OperType    = "QualityYaeherDoctorSearch",
                CreatedBy   = userid,
                CreatedOn   = DateTime.Now
            };
            var resultLog = await _yaeherOperListService.CreateYaeherOperList(CreateYaeherOperList);

            #endregion
            return(this.ObjectResultModule);
        }