/// <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); }
/// <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); } }