Exemple #1
0
        /// <summary>更改审核者权限内科室的结果审核状态
        /// 更改审核者权限内科室的结果审核状态
        /// </summary>
        /// <param name="ordernum"></param>
        /// <returns></returns>
        public bool UpdateOrderlabdeptresultState(Hashtable ht, out bool flag)
        {
            flag = false;
            //1,改权限内科室小结状态
            bool isOk = this.update("Order.UpdateOrderlabdeptresultState", ht) > 0;
            //2, 判断是否全部审核通过,如果通过,则标记orders表状态为待总检
            Hashtable hashtable = new Hashtable();

            hashtable.Add("OrderNum", ht["OrderNum"].ToString());
            DataTable dt  = new OrderTestService().GetOrdertestByOrdernumGroupBy(hashtable);
            int       num = 0;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                Hashtable htTo = new Hashtable();
                htTo.Add("ordernum", ht["OrderNum"].ToString());
                htTo.Add("dictlabdeptid", dt.Rows[i]["Dictlabdeptid"]);
                num += SelectOrderlabdeptresultLstByOrderNum(htTo);
            }
            if (num == dt.Rows.Count)
            {
                if (isOk && SelectIsAudioByOrderNum(ht))
                {
                    Hashtable newht = new Hashtable();
                    newht.Add("OrderNum", ht["OrderNum"].ToString());
                    newht.Add("Status", (int)ParamStatus.OrdersStatus.WaitCheck);
                    new OrdersService().EditStatus(newht);
                    flag = true;
                }
            }
            return(isOk);
        }
Exemple #2
0
        /// <summary>接收后更改Orderlabdeptresult表状态为已小结,如果是自动接收,一并做审核
        ///接收后更改Orderlabdeptresult表状态为已小结,如果是自动接收,一并做审核
        ///操作顺序
        ///1,直接标记科室小结为已审核,忽略已小结状态
        ///2,判断是否全是检验项目,如果是则下一步,否则结束
        ///3,更改orders表状态为待总检
        /// </summary>
        /// <param name="sqlLst"></param>
        /// <param name="strOrdernum"></param>
        /// <param name="isAuto">是否自动接收结果  True自动 false手动</param>
        private bool UpdateState(SortedList sqlLst, string strOrdernum, bool isAuto)
        {
            Hashtable htPara = new Hashtable();

            htPara.Add("OrderNum", strOrdernum);
            htPara.Add("Status", (int)ParamStatus.Orderlabdepstatus.Audited);

            ////审核全部科室小结
            Hashtable htUpdateState = new Hashtable();

            htUpdateState.Add("UPDATE", "Order.UpdateOrderlabdeptresultStateAuto");
            sqlLst.Add(htUpdateState, htPara);

            if (this.ExecuteSqlTran(sqlLst))
            {
                //判断所有科室是否有小结,并已审核,如果审核,则改orders状态为待总检
                bool iHaveLabResult = true;//最后结果为true时改orders状态为待总检

                //1,获取体检号对应的检查项目
                List <Ordertest> orderTestListPara = new OrderTestService().GetAllOrderLabdeptresultList(strOrdernum);
                //做为参数取全部科室,供审核时使用。
                var labdepidList = (from o in orderTestListPara
                                    select o.Dictlabdeptid).Distinct();
                foreach (double labdepid in labdepidList)
                {
                    Hashtable htLabdeptPara = new Hashtable();
                    htLabdeptPara.Add("ordernum", strOrdernum);
                    htLabdeptPara.Add("dictlabdeptid", labdepid);
                    iHaveLabResult = IsOrderlabdeptresultHaveAudio(htLabdeptPara);
                    if (!iHaveLabResult)
                    {
                        break;
                    }
                }
                if (iHaveLabResult)
                {
                    Hashtable htUpdateOrderState = new Hashtable();
                    htUpdateOrderState.Add("OrderNum", strOrdernum);
                    htUpdateOrderState.Add("Status", (int)ParamStatus.OrdersStatus.WaitCheck);

                    if (this.update("Order.EditStatus", htUpdateOrderState) > 0)
                    {
                        //写日志
                        new BaseService().AddOperationLog(strOrdernum, "", "自动数据接收", "对[" + strOrdernum + "]自动小结并进入待总检", "修改留痕", "");
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }