/// <summary> /// 更新看诊限额 /// </summary> /// <param name="SchMgr"></param> /// <param name="regType"></param> /// <param name="seeNo"></param> /// <param name="Err"></param> /// <returns></returns> private int UpdateSchema(Neusoft.HISFC.Models.Base.EnumRegType regType, ref int seeNo, ref string Err, Neusoft.HISFC.Models.Registration.RegLevel level) { int rtn = 1; //挂号级别 if (level.IsFaculty || level.IsExpert)//专家、专科,扣挂号限额 { //判断限额是否允许挂号 if (this.IsPermitOverrun(regType, (this.dtBookingDate.Tag as Neusoft.HISFC.Models.Registration.Schema).Templet.ID, level, ref seeNo, ref Err) == -1) { return(-1); } } else if (level.IsSpecial)//特诊扣特诊限额 { rtn = SchemaMgr.Increase( (this.dtBookingDate.Tag as Neusoft.HISFC.Models.Registration.Schema).Templet.ID, false, false, false, true); //判断限额是否允许挂号 if (this.IsPermitOverrun(regType, (this.dtBookingDate.Tag as Neusoft.HISFC.Models.Registration.Schema).Templet.ID, level, ref seeNo, ref Err) == -1) { return(-1); } } if (rtn == -1) { Err = "更新排班看诊限额时出错!" + SchemaMgr.Err; return(-1); } if (rtn == 0) { Err = "医生排班信息已经改变,请重新选择看诊时段!"; return(-1); } return(0); }
/// <summary> /// 判断超出挂号限额是否允许挂号 /// </summary> /// <param name="schMgr"></param> /// <param name="regType"></param> /// <param name="schemaID"></param> /// <param name="level"></param> /// <param name="seeNo"></param> /// <param name="Err"></param> /// <returns></returns> private int IsPermitOverrun(Neusoft.HISFC.Models.Base.EnumRegType regType, string schemaID, Neusoft.HISFC.Models.Registration.RegLevel level, ref int seeNo, ref string Err) { bool isOverrun = false;//是否超额 Neusoft.HISFC.Models.Registration.Schema schema = this.SchemaMgr.GetByID(schemaID); if (schema == null || schema.Templet.ID == "") { Err = "查询排班信息出错!" + SchemaMgr.Err; return(-1); } if (level.IsExpert || level.IsFaculty)//专家、专科判断限额是否大于已挂号 { if (schema.Templet.RegQuota - schema.RegedQTY < 0) { isOverrun = true; } seeNo = schema.SeeNO; } else if (level.IsSpecial)//特诊判断特诊限额是否超表 { if (schema.Templet.SpeQuota - schema.SpedQTY < 0) { isOverrun = true; } seeNo = schema.SeeNO; } if (isOverrun) { //加号不用提示 if (schema.Templet.IsAppend) { return(0); } Err = "已经超出出诊排班限额,不能挂号!"; return(-1); } return(0); }