/// <summary> /// 根据传入的医嘱对象表创建医嘱对象集合 /// </summary> /// <param name="table"></param> internal OrderCollection(OrderTable table) { _maxSerialNo = 0; m_Table = table; _orderList = new List <Order>(); Order newOrder; List <Order> newOrders = new List <Order>(); // 先处理其它状态的医嘱,将新医嘱插在医嘱表的最后 foreach (DataRow row in m_Table.OrderDataTable.Rows) { if (m_Table.IsTempOrder) { newOrder = new TempOrder(row); } else { newOrder = new LongOrder(row); } if (newOrder.State != OrderState.New) { _orderList.Add(newOrder); } else { newOrders.Add(newOrder); } } foreach (Order tempOrde in newOrders) { _orderList.Add(tempOrde); } //// 先处理分组信息,然后再绑定事件 //ResetOrderGroupInfo(); foreach (Order temp in _orderList) { // 绑定创建输出内容的委托 temp.Content.ProcessCreateOutputeInfo = new OrderContent.GenerateOutputInfo(CustomDrawOperation.CreateOutputeInfo); if (temp.Content.Item != null) { temp.BeginInit(); temp.Content.Item.ReInitializeProperties(); temp.Content.EndInit(); temp.EndInit(); } temp.OrderChanged += new EventHandler <OrderChangedEventArgs>(m_Table.AfterOrderChanged); } ResetViewList(); }
/// <summary> /// 生成新医嘱行 /// </summary> /// <returns></returns> public Order NewOrder() { Order newOrder; if (IsTempOrder) { newOrder = new TempOrder(); } else { newOrder = new LongOrder(); } //只设置基本属性,其它属性的初始设置由外部设置 newOrder.SerialNo = Orders.MaxSerialNo + 1; // 最大序号 newOrder.GroupPosFlag = GroupPositionKind.SingleOrder; newOrder.GroupSerialNo = newOrder.SerialNo; return(newOrder); }
/// <summary> /// 重置属性的值 /// </summary> public void ResetProperties() { if (_orderCache == null) { ClearProperties(); } else { _serialNo = _orderCache.SerialNo; _groupSerialNo = _orderCache.GroupSerialNo; _groupPosFlag = _orderCache.GroupPosFlag; _startDate = UILogic.ConvertToDateString(_orderCache.StartDateTime); _startTime = UILogic.ConvertToTimeString(_orderCache.StartDateTime.TimeOfDay); // 以下信息并不一定存在 if ((_orderCache.CreateInfo != null) && (_orderCache.CreateInfo.HadInitialized)) { _creator = _orderCache.CreateInfo.Executor.ToString(); } if (_orderCache.Content == null) { _content = ""; } else { _content = _orderCache.Content.ToString(); } if ((_orderCache.AuditInfo != null) && (_orderCache.AuditInfo.HadInitialized)) { _auditDate = UILogic.ConvertToDateString(_orderCache.AuditInfo.ExecuteTime); _auditTime = UILogic.ConvertToTimeString(_orderCache.AuditInfo.ExecuteTime.TimeOfDay); _auditor = _orderCache.AuditInfo.Executor.ToString(); } if ((_orderCache.CancelInfo != null) && (_orderCache.CancelInfo.HadInitialized)) { _cancellor = _orderCache.CancelInfo.Executor.ToString(); } if ((_orderCache.ExecuteInfo != null) && (_orderCache.ExecuteInfo.HadInitialized)) { _executeDate = UILogic.ConvertToDateString(_orderCache.ExecuteInfo.ExecuteTime); _executeTime = UILogic.ConvertToTimeString(_orderCache.ExecuteInfo.ExecuteTime.TimeOfDay); _executor = _orderCache.ExecuteInfo.Executor.ToString(); } _state = _orderCache.State; _hadSynch = _orderCache.HadSync; TempOrder tempTemp = _orderCache as TempOrder; if (tempTemp != null) { _applySerialNo = tempTemp.ApplySerialNo; } else { _applySerialNo = -1; } LongOrder tempLong = _orderCache as LongOrder; if (tempLong != null) { if ((tempLong.CeaseInfo != null) && (tempLong.CeaseInfo.HadInitialized)) { _ceaseDate = UILogic.ConvertToDateString(tempLong.CeaseInfo.ExecuteTime); _ceaseTime = UILogic.ConvertToTimeString(tempLong.CeaseInfo.ExecuteTime.TimeOfDay); _ceasor = tempLong.CeaseInfo.Executor.ToString(); } if ((tempLong.CeaseAuditInfo != null) && (tempLong.CeaseAuditInfo.HadInitialized)) { _ceaseAuditorDate = UILogic.ConvertToDateString(tempLong.CeaseAuditInfo.ExecuteTime); _ceaseAuditorTime = UILogic.ConvertToTimeString(tempLong.CeaseAuditInfo.ExecuteTime.TimeOfDay); _ceaseAuditor = tempLong.CeaseAuditInfo.Executor.ToString(); } } } }