Example #1
0
        /// <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();
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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();
                    }
                }
            }
        }