/// <summary>
        /// 检查是否合法
        /// </summary>
        private bool isValid( )
        {
            bool isValid = false;

            for (int i = 0; i < this.neuSpread1_Sheet1.Rows.Count; i++)
            {
                string memo = this.neuSpread1_Sheet1.Cells[i, 5].Text;
                if (!Neusoft.FrameWork.Public.String.ValidMaxLengh(memo, 50))
                {
                    MessageBox.Show(Language.Msg("第" + (i + 1).ToString() + " 行记录 备注字段录入超长 请适当简略"));
                    return(false);
                }

                Neusoft.HISFC.Models.Pharmacy.DrugTerminal info = this.drugStore.GetDrugTerminalById(this.neuSpread1_Sheet1.Cells[i, 2].Text);
                if (info.TerminalProperty == Neusoft.HISFC.Models.Pharmacy.EnumTerminalProperty.普通)
                {
                    isValid = true;
                }
            }
            if (!isValid)
            {
                MessageBox.Show(Language.Msg("不允许在一个模版内只维护特殊配药台 需至少增加一普通配药台"));
            }
            return(isValid);
        }
Пример #2
0
        /// <summary>
        /// 获取终端名称
        /// </summary>
        /// <param name="drugTerminal">终端实体</param>
        /// <param name="type">类型0发药窗口1替代终端</param>
        /// <returns>名称</returns>
        private string GetTerminalName(Neusoft.HISFC.Models.Pharmacy.DrugTerminal drugTerminal, string type)
        {
            string tempStr;

            if (type == "0")
            {
                tempStr = drugTerminal.SendWindow.ID;
            }
            else
            {
                tempStr = drugTerminal.ReplaceTerminal.ID;
            }

            if (!string.IsNullOrEmpty(tempStr))
            {
                int index = tempStr.IndexOf(">");
                if (index == -1)
                {
                    Neusoft.HISFC.Models.Pharmacy.DrugTerminal temp = new Neusoft.HISFC.Models.Pharmacy.DrugTerminal( );
                    temp = this.drugStore.GetDrugTerminalById(tempStr);
                    if (temp != null)
                    {
                        tempStr = "<" + temp.ID + ">" + temp.Name;
                    }
                }
                else
                {
                    //<编号> 名称
                    tempStr = drugTerminal.SendWindow.ID;
                }
            }
            return(tempStr);
        }
Пример #3
0
 /// <summary>
 /// 配药台选择
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void neuListView2_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (this.lvDrugTerminal.SelectedItems.Count > 0)
     {
         Neusoft.HISFC.Models.Pharmacy.DrugTerminal info = this.lvDrugTerminal.SelectedItems[0].Tag as Neusoft.HISFC.Models.Pharmacy.DrugTerminal;
         this.SetTerminalProperty(info);
     }
 }
Пример #4
0
 /// <summary>
 /// 双击添加终端事件
 /// </summary>
 /// <param name="drugTerminal">选中的终端实体</param>
 void ucDrugTerminalList1_SelectTerminalDoubleClickedEvent(Neusoft.HISFC.Models.Pharmacy.DrugTerminal drugTerminal)
 {
     if (drugTerminal != null)
     {
         this.currDrugTerminal = drugTerminal;
         this.AddTerminal();
     }
 }
Пример #5
0
        /// <summary>
        /// 判断终端信息是否有效并进行修改
        /// </summary>
        /// <param name="drugTerminal">门诊终端实体</param>
        /// <returns>成功返回True 无效返回False</returns>
        private bool IsValidAndModify(ref Neusoft.HISFC.Models.Pharmacy.DrugTerminal drugTerminal)
        {
            if (drugTerminal == null)
            {
                return(false);
            }

            if (drugTerminal.TerminalType == Neusoft.HISFC.Models.Pharmacy.EnumTerminalType.发药窗口)
            {
                if (drugTerminal.IsClose)
                {
                    MessageBox.Show(Language.Msg("不能对发药窗口进行关闭"));
                    drugTerminal.IsClose = false;
                    return(false);
                }
            }

            if (!Neusoft.FrameWork.Public.String.ValidMaxLengh(drugTerminal.Name, 32))
            {
                MessageBox.Show(Language.Msg("终端名称过长 请适当简略"));
                drugTerminal.Name = drugTerminal.Name.Substring(0, 32);
                return(false);
            }
            if (!Neusoft.FrameWork.Public.String.ValidMaxLengh(drugTerminal.Memo, 50))
            {
                MessageBox.Show(Language.Msg("终端备注过长 请适当简略"));
                drugTerminal.Memo = drugTerminal.Memo.Substring(0, 32);
                return(false);
            }
            if (drugTerminal.RefreshInterval1 > 999 || drugTerminal.RefreshInterval1 <= 0)
            {
                MessageBox.Show(Language.Msg("刷新间隔应介于0与999之间"));
                drugTerminal.RefreshInterval1 = 10;
                return(false);
            }
            if (drugTerminal.RefreshInterval2 > 999 || drugTerminal.RefreshInterval2 <= 0)
            {
                MessageBox.Show(Language.Msg("刷新间隔应介于0与999之间"));
                drugTerminal.RefreshInterval2 = 55;
                return(false);
            }
            if (drugTerminal.AlertQty > 99 || drugTerminal.AlertQty <= 0)
            {
                MessageBox.Show(Language.Msg("警戒线应介于0与99之间"));
                drugTerminal.AlertQty = 15;
                return(false);
            }
            if (drugTerminal.ShowQty > 99 || drugTerminal.ShowQty <= 0)
            {
                MessageBox.Show(Language.Msg("显示人数应介于0与99之间"));
                drugTerminal.ShowQty = 20;
                return(false);
            }

            return(true);
        }
Пример #6
0
        /// <summary>
        /// 设置ListView
        /// </summary>
        /// <param name="info">当前的DrugTerminal实体</param>
        /// <param name="item">当前的ListViewItem</param>
        private void SetItem(Neusoft.HISFC.Models.Pharmacy.DrugTerminal info, ListViewItem item)
        {
            if (info == null)
            {
                return;
            }

            //清空
            item.SubItems.Clear( );
            //终端名称
            item.Name            = info.ID;
            item.Text            = info.Name;
            item.Tag             = info;
            item.ImageIndex      = 0;
            item.StateImageIndex = 1;
            //终端性质
            item.SubItems.Add(((Neusoft.HISFC.Models.Pharmacy.EnumTerminalProperty)NConvert.ToInt32(info.TerminalProperty)).ToString( ));
            //是否关闭
            item.SubItems.Add(info.IsClose ? "是" : "否");
            //警戒线
            item.SubItems.Add(info.AlertQty.ToString( ));
            //发药窗口
            if (info.TerminalType == Neusoft.HISFC.Models.Pharmacy.EnumTerminalType.配药台) //配药台
            {
                item.SubItems.Add(this.GetTerminalName(info, "0"));
            }
            //替代终端
            item.SubItems.Add(this.GetTerminalName(info, "1"));
            //程序刷行间隔
            item.SubItems.Add(info.RefreshInterval1.ToString( ));
            //发药窗口
            if (info.TerminalType == Neusoft.HISFC.Models.Pharmacy.EnumTerminalType.发药窗口)
            {
                //大屏幕显示间隔
                item.SubItems.Add(info.RefreshInterval2.ToString( ));
            }
            else //配药台
            {
                //是否自动打印
                item.SubItems.Add(info.IsAutoPrint ? "是" : "否");
            }
            //显示人数
            item.SubItems.Add(info.ShowQty.ToString( ));
            //备注
            item.SubItems.Add(info.Memo);
            //关闭的终端用红色显示
            if (info.IsClose)
            {
                item.ForeColor = System.Drawing.Color.Red;
            }
        }
Пример #7
0
        /// <summary>
        /// 设置ListView
        /// </summary>
        /// <param name="info">当前的DrugTerminal实体</param>
        private void SetItem(Neusoft.HISFC.Models.Pharmacy.DrugTerminal info)
        {
            ListViewItem item = new ListViewItem( );

            this.SetItem(info, item);
            //发药窗口
            if (info.TerminalType == Neusoft.HISFC.Models.Pharmacy.EnumTerminalType.发药窗口)
            {
                this.lvSendTerminal.Items.Add(item).Selected = true;
            }
            else //配药台
            {
                this.lvDrugTerminal.Items.Add(item).Selected = true;
            }
        }
Пример #8
0
 /// <summary>
 /// 终端初始化  暂时写死使用配药台
 /// </summary>
 protected int InitTerminal()
 {
     if (this.funMode == Neusoft.HISFC.Components.DrugStore.OutpatientFun.Drug)
     {
         this.Terminal = Neusoft.HISFC.Components.DrugStore.Function.TerminalSelect(this.OperDept.ID, Neusoft.HISFC.Models.Pharmacy.EnumTerminalType.配药台, true);
     }
     else
     {
         this.Terminal = Neusoft.HISFC.Components.DrugStore.Function.TerminalSelect(this.OperDept.ID, Neusoft.HISFC.Models.Pharmacy.EnumTerminalType.发药窗口, true);
     }
     if (this.Terminal == null)
     {
         return(-1);
     }
     return(1);
 }
Пример #9
0
        /// <summary>
        /// 配药台对应发药窗口是否有效
        /// </summary>
        /// <returns></returns>
        private bool IsSendWindowValid(string sendTerminalID)
        {
            for (int i = 0; i < this.lvDrugTerminal.Items.Count; i++)
            {
                Neusoft.HISFC.Models.Pharmacy.DrugTerminal info = this.lvDrugTerminal.Items[i].Tag as Neusoft.HISFC.Models.Pharmacy.DrugTerminal;

                //配药台已存在发药窗口时才进行此项判断
                if (info.SendWindow.ID == sendTerminalID)
                {
                    MessageBox.Show(Language.Msg("该发药窗口已设置对应 [" + info.Name + " ]配药台 请对该配药台重新设置发药窗口 然后删除发药窗口"));
                    return(false);
                }
            }

            return(true);
        }
Пример #10
0
        /// <summary>
        /// 更新配药台
        /// </summary>
        /// <returns></returns>
        private bool SaveTerminalParam(  )
        {
            Neusoft.HISFC.Models.Pharmacy.DrugTerminal info = null;

            decimal sendQty    = 0;
            decimal drugQty    = 0;
            decimal averageNum = 0;

            for (int i = 0; i < this.neuSpread1_Sheet1.Rows.Count; i++)
            {
                info = this.neuSpread1_Sheet1.Rows[i].Tag as Neusoft.HISFC.Models.Pharmacy.DrugTerminal;
                //已发送品种数
                sendQty = Neusoft.FrameWork.Function.NConvert.ToDecimal(this.neuSpread1_Sheet1.Cells[i, 3].Text) - info.SendQty;
                if (sendQty > 999)
                {
                    MessageBox.Show(Language.Msg(info.Name + " 已发送数量必须介于0与999之间"));
                    return(false);
                }
                //待配药品种数
                drugQty = Neusoft.FrameWork.Function.NConvert.ToDecimal(this.neuSpread1_Sheet1.Cells[i, 4].Text) - info.DrugQty;
                if (drugQty > 999)
                {
                    MessageBox.Show(Language.Msg(info.Name + " 待配药品种数必须介于0与999之间"));
                    return(false);
                }
                //竞争调剂的均分次数
                averageNum = Neusoft.FrameWork.Function.NConvert.ToDecimal(this.neuSpread1_Sheet1.Cells[i, 5].Text) - info.Average;
                if (averageNum > 999)
                {
                    MessageBox.Show(Language.Msg(info.Name + " 竞争调剂的均分次数必须介于0与999之间"));
                    return(false);
                }
                //更新配药台信息
                if (this.drugStoreManager.UpdateTerminalAdjustInfo(info.ID, sendQty, drugQty, averageNum) == -1)
                {
                    MessageBox.Show(Language.Msg("更新第") + (i + 1).ToString( ) + Language.Msg("条配药台记录失败") + this.drugStoreManager.Err);
                    return(false);
                }
            }


            return(true);
        }
Пример #11
0
 /// <summary>
 /// 增加终端
 /// </summary>
 private void AddTerminal( )
 {
     Neusoft.HISFC.Models.Pharmacy.DrugTerminal info = new Neusoft.HISFC.Models.Pharmacy.DrugTerminal( );
     //配药台
     if (this.neuTabControl1.SelectedTab == this.tpSend)
     {
         info.Name         = "新建发药窗口";
         info.TerminalType = Neusoft.HISFC.Models.Pharmacy.EnumTerminalType.发药窗口;
         info.User01       = "New";
     }
     else
     {
         info.Name         = "新建配药台";
         info.TerminalType = Neusoft.HISFC.Models.Pharmacy.EnumTerminalType.配药台;
         info.User01       = "New";
     }
     //添加节点
     this.SetItem(info);
 }
Пример #12
0
        /// <summary>
        /// 初始化配药台信息
        /// </summary>
        public void ShowTerminalInfo( )
        {
            //查询终端处方状态数新处方调剂方式by Sunjh 2010-12-9 {61D29CAF-7EA1-4949-B9D6-F14C54AD9B2F}
            //ArrayList al = this.drugStoreManager.QueryDrugTerminalByDeptCode( this.privDept.ID , Neusoft.FrameWork.Function.NConvert.ToInt32(Neusoft.HISFC.Models.Pharmacy.EnumTerminalType.配药台).ToString());
            ArrayList al = this.drugStoreManager.QueryDrugTerminalByDeptCodeNew(this.privDept.ID, Neusoft.FrameWork.Function.NConvert.ToInt32(Neusoft.HISFC.Models.Pharmacy.EnumTerminalType.配药台).ToString());

            if (al == null)
            {
                MessageBox.Show(Language.Msg("获取配药台列表出错") + this.drugStoreManager.Err);
                return;
            }

            this.neuSpread1_Sheet1.Rows.Count = al.Count;
            Neusoft.HISFC.Models.Pharmacy.DrugTerminal info = null;
            for (int i = 0; i < al.Count; i++)
            {
                info = al[i] as Neusoft.HISFC.Models.Pharmacy.DrugTerminal;
                //配药台编码
                this.neuSpread1_Sheet1.Cells[i, 0].Text = info.ID;
                //配药台名称
                this.neuSpread1_Sheet1.Cells[i, 1].Text = info.Name;
                //是否关闭
                this.neuSpread1_Sheet1.Cells[i, 2].Text = info.IsClose ? "是" : "否";

                if (info.IsClose)
                {
                    this.neuSpread1_Sheet1.Rows[i].ForeColor = System.Drawing.Color.Red;
                }
                else
                {
                    this.neuSpread1_Sheet1.Rows[i].ForeColor = System.Drawing.SystemColors.WindowText;
                }
                //已发送品种数
                this.neuSpread1_Sheet1.Cells[i, 3].Text = info.SendQty.ToString( );
                //待配药品种数
                this.neuSpread1_Sheet1.Cells[i, 4].Text = info.DrugQty.ToString( );
                //竞争调剂的均分次数
                this.neuSpread1_Sheet1.Cells[i, 5].Text = info.Average.ToString( );

                this.neuSpread1_Sheet1.Rows[i].Tag = info;
            }
        }
Пример #13
0
        /// <summary>
        /// 终端初始化  暂时写死使用配药台
        /// </summary>
        protected int InitTerminal()
        {
            if (this.funMode == Neusoft.HISFC.Components.DrugStore.OutpatientFun.Drug)
            {
                this.Terminal = Neusoft.HISFC.Components.DrugStore.Function.TerminalSelect(this.OperDept.ID, Neusoft.HISFC.Models.Pharmacy.EnumTerminalType.配药台, true);
            }
            else
            {
                this.Terminal = Neusoft.HISFC.Components.DrugStore.Function.TerminalSelect(this.OperDept.ID, Neusoft.HISFC.Models.Pharmacy.EnumTerminalType.发药窗口, true);
            }

            if (this.Terminal == null)
            {
                return(-1);
            }

            if (this.funMode == Neusoft.HISFC.Components.DrugStore.OutpatientFun.Drug)
            {
                if (this.Terminal.Memo == "1")
                {
                    DialogResult rs = MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("该终端已在其他电脑登陆,不能再次使用,您确认登陆此配药终端吗?\n 注意:如果强行登陆后容易造成配药清单打印混乱!"), "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                    if (rs == DialogResult.No)
                    {
                        this.isCancel = true;
                        return(-1);
                    }
                }
                Neusoft.HISFC.BizLogic.Pharmacy.DrugStore drugStoreManager = new Neusoft.HISFC.BizLogic.Pharmacy.DrugStore();
                this.Terminal.Memo = "1";
                if (drugStoreManager.UpdateDrugTerminal(this.Terminal) == -1)
                {
                    MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("更新配药终端为已在用标记失败"));
                    this.isCancel = true;
                    return(-1);
                }
            }

            this.statusBar1.Panels[3].Text = this.statusBar1.Panels[3].Text + " - " + this.OperDept.Name + this.Terminal.Name + "[" + this.Terminal.ID + "]";

            return(1);
        }
Пример #14
0
        /// <summary>
        /// 设置终端属性
        /// </summary>
        /// <param name="drugTerminalClass">终端实体</param>
        private void SetTerminalProperty(Neusoft.HISFC.Models.Pharmacy.DrugTerminal drugTerminal)
        {
            try
            {
                if (drugTerminal == null)
                {
                    this.propertyGrid1.SelectedObject = null;
                    return;
                }
                DrugTerminalClass property = new DrugTerminalClass(this.privDept.ID, drugTerminal.TerminalType.GetHashCode( ).ToString( ));

                property.称  = drugTerminal.Name;
                property.类别 = drugTerminal.TerminalType;
                property.性质 = drugTerminal.TerminalProperty;

                //获取替代终端名称
                property.替代终端 = GetTerminalName(drugTerminal, "1");
                //获取发药窗口名称
                property.发药窗口 = GetTerminalName(drugTerminal, "0");

                property.是否关闭   = drugTerminal.IsClose ? "是" : "否";
                property.是否自动打印 = drugTerminal.IsAutoPrint ? "是" : "否";
                property.序刷新间隔  = drugTerminal.RefreshInterval1;
                property.显示刷新间隔 = drugTerminal.RefreshInterval2;
                property.警戒线    = drugTerminal.AlertQty;
                property.显示人数   = drugTerminal.ShowQty;
                property.备注     = drugTerminal.Memo;
                property.打印类型   = drugTerminal.TerimalPrintType;

                //属性控件赋值
                this.propertyGrid1.SelectedObject = property;
                this.propertyGrid1.Focus( );
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }
        }
Пример #15
0
        public Neusoft.HISFC.BizProcess.Interface.Pharmacy.IDrugPrint GetInstance(Neusoft.HISFC.Models.Pharmacy.DrugTerminal terminal)
        {
            switch (terminal.TerimalPrintType)
            {
            case Neusoft.HISFC.Models.Pharmacy.EnumClinicPrintType.标签:

                // return new Neusoft.WinForms.Report.DrugStore.DrugLabelPrint();

                return(new Neusoft.WinForms.Report.DrugStore.ucRecipeLabelFY());   //{EB6E8006-7228-46ea-9C01-D0832563178D} sel 配药清单打印

            case Neusoft.HISFC.Models.Pharmacy.EnumClinicPrintType.扩展:

                return(new Neusoft.WinForms.Report.DrugStore.ZLInjectPrintInstance());

            case Neusoft.HISFC.Models.Pharmacy.EnumClinicPrintType.清单:

                //return new Neusoft.WinForms.Report.DrugStore.ucZLHerbalBill();
                return(new Neusoft.WinForms.Report.DrugStore.ucOutHerbalBill());
            }

            return(null);
        }
Пример #16
0
        /// <summary>
        /// 切换配药台、发药窗口
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void neuTabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
            Neusoft.HISFC.Models.Pharmacy.DrugTerminal info = null;
            if (this.neuTabControl1.SelectedTab == tpSend)
            {
                if (this.lvSendTerminal.Items.Count > 0)
                {
                    this.lvSendTerminal.Items[0].Selected = true;
                    info = this.lvSendTerminal.Items[0].Tag as Neusoft.HISFC.Models.Pharmacy.DrugTerminal;
                }
            }
            else
            {
                if (this.lvDrugTerminal.Items.Count > 0)
                {
                    this.lvDrugTerminal.Items[0].Selected = true;
                    info = this.lvDrugTerminal.Items[0].Tag as Neusoft.HISFC.Models.Pharmacy.DrugTerminal;
                }
            }

            this.SetTerminalProperty(info);
        }
Пример #17
0
        /// <summary>
        /// 判断终端部分信息是否有效
        /// </summary>
        /// <param name="drugTerminal">门诊终端实体</param>
        /// <returns>成功返回True 无效返回False</returns>
        private bool IsValid(Neusoft.HISFC.Models.Pharmacy.DrugTerminal drugTerminal)
        {
            if (drugTerminal == null)
            {
                return(false);
            }

            if (drugTerminal.TerminalType == Neusoft.HISFC.Models.Pharmacy.EnumTerminalType.发药窗口)
            {
                if (drugTerminal.IsClose)
                {
                    MessageBox.Show(Language.Msg("不能对发药窗口进行关闭"));
                    return(false);
                }
            }

            if (!Neusoft.FrameWork.Public.String.ValidMaxLengh(drugTerminal.Name, 32))
            {
                MessageBox.Show(Language.Msg("终端名称过长 请适当简略"));
                return(false);
            }
            if (!Neusoft.FrameWork.Public.String.ValidMaxLengh(drugTerminal.Memo, 50))
            {
                MessageBox.Show(Language.Msg("终端备注过长 请适当简略"));
                return(false);
            }
            if (drugTerminal.RefreshInterval1 > 999)
            {
                MessageBox.Show(Language.Msg("刷新间隔应小于999"));
                return(false);
            }
            if (drugTerminal.RefreshInterval2 > 999)
            {
                MessageBox.Show(Language.Msg("刷新间隔小于999"));
                return(false);
            }

            return(true);
        }
Пример #18
0
        private void propertyGrid1_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
        {
            //发药窗口
            if (this.neuTabControl1.SelectedTab == this.tpSend)
            {
                if (this.lvSendTerminal.SelectedItems.Count > 0)
                {
                    Neusoft.HISFC.Models.Pharmacy.DrugTerminal sendTerminal = this.GetTerminalProperty();

                    if (!this.IsValidAndModify(ref sendTerminal))
                    {
                        this.SetTerminalProperty(sendTerminal);
                    }
                    this.SetItem(sendTerminal, this.lvSendTerminal.SelectedItems[0]);
                }
                else
                {
                    MessageBox.Show(Language.Msg("请选择需修改终端"));
                }
            }
            else //配药台
            {
                if (this.lvDrugTerminal.SelectedItems.Count > 0)
                {
                    Neusoft.HISFC.Models.Pharmacy.DrugTerminal drugTerminal = this.GetTerminalProperty();

                    if (!this.IsValidAndModify(ref drugTerminal))
                    {
                        this.SetTerminalProperty(drugTerminal);
                    }
                    this.SetItem(drugTerminal, this.lvDrugTerminal.SelectedItems[0]);
                }
                else
                {
                    MessageBox.Show(Language.Msg("请选择需修改终端"));
                }
            }
        }
 /// <summary>
 /// 终端双击事件
 /// </summary>
 /// <param name="drugTerminal">选中的终端实体</param>
 private void ucDrugTerminalList1_SelectTerminalDoubleClickedEvent(Neusoft.HISFC.Models.Pharmacy.DrugTerminal drugTerminal)
 {
     currTerminal = drugTerminal;
     this.AddTerminal(  );
 }
Пример #20
0
 /// <summary>
 /// 设置当前操作终端
 /// </summary>
 /// <param name="winTerminal">传入门诊终端实体信息</param>
 public virtual void SetTerminal(Neusoft.HISFC.Models.Pharmacy.DrugTerminal winTerminal)
 {
     this.terminal = winTerminal;
 }
Пример #21
0
        /// <summary>
        /// 删除终端
        /// </summary>
        private void DeleteTerminal( )
        {
            Neusoft.HISFC.Models.Pharmacy.DrugTerminal drugTerminal;
            //如果没有选中节点,则返回
            //发药窗口
            if (neuTabControl1.SelectedTab == this.tpSend)
            {
                if (this.lvSendTerminal.Items.Count == 1)
                {
                    MessageBox.Show(Language.Msg("系统内应至少保留一个发药窗口 不能全部删除"));
                    return;
                }
                if (this.lvSendTerminal.SelectedItems.Count > 0)
                {
                    drugTerminal = this.lvSendTerminal.SelectedItems[0].Tag as Neusoft.HISFC.Models.Pharmacy.DrugTerminal;
                    //判断该发药窗口是否已设置对应其它配药台
                    if (!this.IsSendWindowValid(drugTerminal.ID))
                    {
                        return;
                    }
                }
                else
                {
                    return;
                }
            }
            else //配药台
            {
                if (this.lvDrugTerminal.Items.Count == 1)
                {
                    MessageBox.Show(Language.Msg("系统内应至少保留一个配药台 不能全部删除"));
                    return;
                }

                if (this.lvDrugTerminal.SelectedItems.Count > 0)
                {
                    drugTerminal = this.lvDrugTerminal.SelectedItems[0].Tag as Neusoft.HISFC.Models.Pharmacy.DrugTerminal;
                    //当本台开放时 检查是否其他台全部关闭 如果全部关闭应至少开放一个台
                    if (!drugTerminal.IsClose)
                    {
                        bool isAllClose = true;
                        for (int i = 0; i < this.lvDrugTerminal.Items.Count; i++)
                        {
                            Neusoft.HISFC.Models.Pharmacy.DrugTerminal tempTerminal = this.lvDrugTerminal.Items[i].Tag as Neusoft.HISFC.Models.Pharmacy.DrugTerminal;
                            if (tempTerminal.ID != drugTerminal.ID && !tempTerminal.IsClose)
                            {
                                isAllClose = false;
                                break;
                            }
                        }
                        if (isAllClose)
                        {
                            MessageBox.Show(Language.Msg("删除本台后 其它台全部处于关闭状态 应至少开放一台后再关闭本台"));
                            return;
                        }
                    }
                }
                else
                {
                    return;
                }
            }

            if (this.drugStore.IsHaveRecipe(drugTerminal.ID))
            {
                MessageBox.Show(Language.Msg("该终端还存在未取药处方 不能进行删除操作"));
                return;
            }

            //确认删除
            DialogResult result = MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("删除后将不能恢复,是否继续?"), Neusoft.FrameWork.Management.Language.Msg("提示"), MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);

            if (result == DialogResult.No)
            {
                return;
            }
            //判断是否已经保存的数据
            if (!(drugTerminal.User01 == "New"))
            {
                int parm;
                //判断该终端是否为其他终端的替代终端、提示操作员
                parm = this.drugStore.IsReplaceFlag(drugTerminal.ID);
                if (parm == -1)
                {
                    return;
                }
                if (parm == 1)
                {
                    //提示用户是否确认删除
                    DialogResult res = MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("该条记录为其他终端的替代终端、确认进行删除吗?"), Neusoft.FrameWork.Management.Language.Msg("提示"), MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign);
                    if (res == DialogResult.No)
                    {
                        return;
                    }
                }

                //定义数据库事务
                Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();
                //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction( Neusoft.FrameWork.Management.Connection.Instance );
                //t.BeginTransaction( );

                try
                {
                    this.drugStore.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
                    //删除数据
                    if (this.drugStore.DeleteDrugTerminal(drugTerminal.ID) == -1)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show(this.drugStore.Err);
                        return;
                    }
                }
                catch (Exception ex)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show(ex.Message);
                    return;
                }

                Neusoft.FrameWork.Management.PublicTrans.Commit();
                MessageBox.Show("删除成功");
            }

            //从列表中删除
            // 发药窗口
            if (neuTabControl1.SelectedTab == this.tpSend)
            {
                if (this.lvSendTerminal.SelectedItems.Count > 0)
                {
                    this.lvSendTerminal.Items.Remove(this.lvSendTerminal.SelectedItems[0]);
                }
            }
            else //配药台
            {
                if (this.lvDrugTerminal.SelectedItems.Count > 0)
                {
                    this.lvDrugTerminal.Items.Remove(this.lvDrugTerminal.SelectedItems[0]);
                }
            }
        }
Пример #22
0
 /// <summary>
 /// 终端单击事件
 /// </summary>
 /// <param name="drugTerminal">选中的终端实体</param>
 void ucDrugTerminalList1_SelectTerminalEvent(Neusoft.HISFC.Models.Pharmacy.DrugTerminal drugTerminal)
 {
     this.currDrugTerminal = drugTerminal;
 }
Пример #23
0
        public override int Print(object sender, object neuObject)
        {
            Neusoft.HISFC.BizLogic.Pharmacy.DrugStore drugManager = new Neusoft.HISFC.BizLogic.Pharmacy.DrugStore();
            Neusoft.HISFC.Models.Pharmacy.DrugRecipe  info        = drugManager.GetDrugRecipe(this.operDept.ID, this.neuSpread1_Sheet1.Cells[this.neuSpread1_Sheet1.ActiveRow.Index, 0].Text);
            string detailState = "0";

            if (info.RecipeState == "0" || info.RecipeState == "1")
            {
                detailState = "0";
            }
            else if (info.RecipeState == "2")
            {
                detailState = "1";
            }
            else
            {
                detailState = "2";
            }

            ArrayList alInfo = new ArrayList();

            alInfo = this.itemManager.QueryApplyOutListForClinic(this.operDept.ID, "M1", detailState, info.RecipeNO);
            if (alInfo == null)
            {
                MessageBox.Show(itemManager.Err);
                return(-1);
            }

            //{9FA792B0-A60F-48d8-A3F5-1C52450C44A5}  获取打印类型
            Neusoft.HISFC.Models.Pharmacy.DrugTerminal terminal = drugManager.GetDrugTerminal(info.DrugTerminal.ID);
            if (terminal == null)
            {
                MessageBox.Show("获取配药终端信息发生错误" + drugManager.Err);
                return(-1);
            }
            if (terminal.TerimalPrintType == Neusoft.HISFC.Models.Pharmacy.EnumClinicPrintType.标签)
            {
                this.isSendAllData = false;
            }
            else
            {
                this.isSendAllData = true;
            }

            if (this.factory == null)
            {
                MessageBox.Show("未设置配药台补打单据方式,无法进行打印", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(-1);
            }

            Neusoft.HISFC.Components.DrugStore.Function.IDrugPrint = factory.GetInstance(terminal);

            if (Neusoft.HISFC.Components.DrugStore.Function.IDrugPrint == null)
            {
                MessageBox.Show("未设置当前选择配药台的打印方式,无法进行打印", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(-1);
            }

            //{F1C6EB10-A23D-4249-BD0C-47329421B78B} 发药窗口号赋值
            string sendWindow = "";

            Neusoft.HISFC.Models.Pharmacy.DrugTerminal sendTerminal = drugManager.GetDrugTerminal(info.SendTerminal.ID);
            if (sendTerminal != null)
            {
                sendWindow = sendTerminal.Name;
            }
            ////{9FA792B0-A60F-48d8-A3F5-1C52450C44A5}  获取打印类型

            Print(info, alInfo, sendWindow);

            return(base.Print(sender, neuObject));
        }
Пример #24
0
        /// <summary>
        /// 由属性控件内读取更改的属性值
        /// </summary>
        private Neusoft.HISFC.Models.Pharmacy.DrugTerminal GetTerminalProperty( )
        {
            try
            {
                DrugTerminalClass info = (( DrugTerminalClass )this.propertyGrid1.SelectedObject);
                if (info == null)
                {
                    return(null);
                }

                Neusoft.HISFC.Models.Pharmacy.DrugTerminal temp = new Neusoft.HISFC.Models.Pharmacy.DrugTerminal( );
                //发药窗口
                if (this.neuTabControl1.SelectedTab == this.tpSend)
                {
                    temp = (Neusoft.HISFC.Models.Pharmacy.DrugTerminal) this.lvSendTerminal.SelectedItems[0].Tag;
                }
                else//配药台
                {
                    temp = (Neusoft.HISFC.Models.Pharmacy.DrugTerminal) this.lvDrugTerminal.SelectedItems[0].Tag;
                }

                temp.Name             = info.称;
                temp.TerminalType     = info.类别;
                temp.TerminalProperty = info.性质;
                //获取替代终端编号
                string tempStr = info.替代终端;
                if (tempStr != "" && tempStr != "无替代")
                {               //如tempStr 为初始设置时 为空
                    int index = tempStr.IndexOf(">");
                    temp.ReplaceTerminal.ID = tempStr.Substring(1, index - 1);
                }
                else
                {
                    temp.ReplaceTerminal.ID = "";
                }

                temp.IsClose          = info.是否关闭 == "是" ? true : false;
                temp.IsAutoPrint      = info.是否自动打印 == "是" ? true : false;
                temp.RefreshInterval1 = info.序刷新间隔;
                temp.RefreshInterval2 = info.显示刷新间隔;
                temp.AlertQty         = info.警戒线;
                temp.ShowQty          = info.显示人数;
                //获取发药窗口终端编号
                string temp1 = info.发药窗口;
                if (!string.IsNullOrEmpty(temp1))
                {
                    int index1 = temp1.IndexOf(">");
                    temp.SendWindow.ID = temp1.Substring(1, index1 - 1);
                }

                temp.Memo             = info.备注;
                temp.TerimalPrintType = info.打印类型;

                return(temp);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(null);
            }
        }