private void butSure_Click(object sender, EventArgs e)
        {
            try
            {
                if (_lineupInfo == null)
                {
                    return;
                }

                _lineupInfo.患者姓名    = txtName.Text;
                _lineupInfo.附加信息.性别 = cbxSex.Text;
                _lineupInfo.附加信息.年龄 = txtAge.Text;

                _lineupInfo.附加信息.备注 = txtMemo.Text;

                _lineupInfo.附加信息.CopyBasePro(_lineupInfo);

                _qm.UpdateLineupInfo(_lineupInfo);

                _isOk = true;

                this.Close();
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }
        private void butSure_Click(object sender, EventArgs e)
        {
            try
            {
                if (_lineupInfo == null)
                {
                    return;
                }

                if (listQueue.SelectedItems.Count <= 0)
                {
                    MessageBox.Show("请选择需要插入的位置。", "提示");
                    return;
                }

                if (listQueue.SelectedItems[0].Text == "禁止插入" || listQueue.SelectedItems[0].Tag != null)
                {
                    MessageBox.Show("插入位置无效,请重新选择。", "提示");
                    return;
                }

                int index = listQueue.SelectedItems[0].Index;

                string firstOrder = "";
                string endOrder   = "";

                if (index - 1 >= 0)
                {
                    LineUpData lineFirst = listQueue.Items[index - 1].Tag as LineUpData;
                    firstOrder = lineFirst.排队序号;
                }

                if (index + 1 < listQueue.Items.Count)
                {
                    LineUpData lineEnd = listQueue.Items[index + 1].Tag as LineUpData;
                    endOrder = lineEnd.排队序号;
                }

                if (string.IsNullOrEmpty(firstOrder) && string.IsNullOrEmpty(endOrder))
                {
                    MessageBox.Show("队列排队序号无效,不允许插入。", "提示");
                    return;
                }

                _lineupInfo.附加信息.备注 = comboBox1.Text;
                _lineupInfo.排队序号    = GetNewOrder(firstOrder, endOrder);

                _qm.UpdateLineupInfo(_lineupInfo);

                _isOk = true;

                this.Close();
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }
        private void DoLineupCall(LineUpData lineupInfo, QueueData queueData)
        {
            DateTime callTime = _qm.GetServerStamp();

            lineupInfo.检查房间 = _stationInfo.RoomName;

            if (lineupInfo.附加信息.首次呼叫时间 == default(DateTime))
            {
                lineupInfo.附加信息.首次呼叫时间 = callTime;
            }
            lineupInfo.附加信息.末次呼叫时间 = callTime;
            lineupInfo.附加信息.播放站点   = queueData.队列信息.播放站点;

            if (lineupInfo.排队状态 == LineUpState.qsQueueing)
            {
                lineupInfo.排队状态 = LineUpState.qsWaitCall;
            }

            lineupInfo.附加信息.CopyBasePro(lineupInfo);


            LineCallData callInfo = new LineCallData();

            callInfo.呼叫ID = SqlHelper.GetNumGuid();
            callInfo.排队ID = lineupInfo.排队ID;
            callInfo.队列ID = lineupInfo.队列ID;
            callInfo.生成日期 = callTime;
            callInfo.呼叫站点 = queueData.队列信息.播放站点;


            callInfo.呼叫信息.原始内容 = queueData.队列信息.呼叫格式.Replace("[排队号码]", lineupInfo.号码前缀 + lineupInfo.排队号码).Replace("[患者姓名]", lineupInfo.患者姓名).Replace("[检查房间]", lineupInfo.检查房间).Replace("[科室名称]", lineupInfo.科室名称);
            callInfo.呼叫信息.格式内容 = queueData.队列信息.呼叫格式.Replace("[排队号码]", lineupInfo.号码前缀 + lineupInfo.排队号码).Replace("[患者姓名]", PYConvert.FormatCallSurname(lineupInfo.患者姓名)).Replace("[检查房间]", lineupInfo.检查房间).Replace("[科室名称]", lineupInfo.科室名称);

            callInfo.呼叫信息.CopyBasePro(callInfo);


            _qm.TransactionBegin();

            try
            {
                _qm.UpdateLineupInfo(lineupInfo);

                _qm.NewCall(callInfo);

                _qm.TransactionCommit();
            }
            catch (Exception ex)
            {
                _qm.TransactionRollback();

                throw ex;
            }
        }
        private void butSure_Click(object sender, EventArgs e)
        {
            try
            {
                if (cbxQueueName.Items.Count <= 0)
                {
                    MessageBox.Show("尚无队列信息,不能入队。", "提示");
                    return;
                }

                if (txtQueueNo.Tag == null)
                {
                    MessageBox.Show("尚未产生排队号码,不能入队。", "提示");
                    return;
                }

                QueueData queueData = (cbxQueueName.SelectedItem as ItemBind).Tag as QueueData;


                DateTime serverDate = _qm.GetServerDate();

                string orderNum = serverDate.DayOfYear + "" + serverDate.TimeOfDay.Ticks;


                if (_qm.HasNo(Convert.ToInt32(txtQueueNo.Tag), queueData.队列ID, dtpIntoQueue.Value))
                {
                    MessageBox.Show("排队号码 [" + txtQueueNo.Text + "] 存在重复,需重新产生。", "提示");

                    int queueNo = GetQueueNo(cbxQueueName.Text, dtpIntoQueue.Value);
                    txtQueueNo.Text = queueData.队列信息.号码前缀 + queueNo;
                    txtQueueNo.Tag  = queueNo;

                    return;
                }

                _lineupInfo.队列ID = queueData.队列ID;
                _lineupInfo.队列名称 = queueData.队列名称;

                _lineupInfo.排队日期 = dtpIntoQueue.Value;
                _lineupInfo.排队号码 = Convert.ToString(txtQueueNo.Tag).PadLeft(queueData.队列信息.号码长度, '0');
                _lineupInfo.号码前缀 = queueData.队列信息.号码前缀;

                _lineupInfo.排队状态 = LineUpState.qsQueueing;

                _lineupInfo.附加信息.备注 = cbxMemo.Text;

                _lineupInfo.排队序号 = orderNum.ToString();


                _lineupInfo.附加信息.CopyBasePro(_lineupInfo);

                _qm.UpdateLineupInfo(_lineupInfo);

                _isOk = true;

                this.Close();
            }
            catch (Exception ex)
            {
                MsgBox.ShowException(ex, this);
            }
        }