Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
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);
        }