/// <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); }
/// <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); }
/// <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); } }
/// <summary> /// 双击添加终端事件 /// </summary> /// <param name="drugTerminal">选中的终端实体</param> void ucDrugTerminalList1_SelectTerminalDoubleClickedEvent(Neusoft.HISFC.Models.Pharmacy.DrugTerminal drugTerminal) { if (drugTerminal != null) { this.currDrugTerminal = drugTerminal; this.AddTerminal(); } }
/// <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); }
/// <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; } }
/// <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; } }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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; } }
/// <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); }
/// <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; } }
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); }
/// <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); }
/// <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); }
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( ); }
/// <summary> /// 设置当前操作终端 /// </summary> /// <param name="winTerminal">传入门诊终端实体信息</param> public virtual void SetTerminal(Neusoft.HISFC.Models.Pharmacy.DrugTerminal winTerminal) { this.terminal = winTerminal; }
/// <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]); } } }
/// <summary> /// 终端单击事件 /// </summary> /// <param name="drugTerminal">选中的终端实体</param> void ucDrugTerminalList1_SelectTerminalEvent(Neusoft.HISFC.Models.Pharmacy.DrugTerminal drugTerminal) { this.currDrugTerminal = drugTerminal; }
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)); }
/// <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); } }