/// <summary> /// 如果已经审核或执行,则停止附材 /// </summary> /// <returns></returns> public int DCSub(Neusoft.HISFC.Models.Order.Inpatient.Order order) { Neusoft.HISFC.BizLogic.Order.Order odManager = new Neusoft.HISFC.BizLogic.Order.Order(); //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(odManager.Connection); //t.BeginTransaction(); Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); odManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans); order.DCOper.ID = this.Operator.ID; order.DCOper.Name = this.Operator.Name; order.EndTime = odManager.GetDateTimeFromSysDateTime(); order.Status = 3; order.DcReason.Name = "护士站审核查询停止"; if (odManager.DcOneOrder(order) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack();; MessageBox.Show("删除医嘱失败!" + odManager.Err); return(-1); } Neusoft.FrameWork.Management.PublicTrans.Commit(); return(0); }
/// <summary> /// /// </summary> /// <param name="i"></param> /// <param name="SheetIndex"></param> /// <param name="OrderManagement"></param> /// <returns></returns> public Neusoft.HISFC.Models.Order.Inpatient.Order GetObjectFromFarPoint(int i, int SheetIndex, Neusoft.HISFC.BizLogic.Order.Order OrderManagement) { Neusoft.HISFC.Models.Order.Inpatient.Order order = null; if (this.fpSpread1.Sheets[SheetIndex].Rows[i].Tag != null) { order = this.fpSpread1.Sheets[SheetIndex].Rows[i].Tag as Neusoft.HISFC.Models.Order.Inpatient.Order; } #region {1AF0EB93-27A8-462f-9A1E-E1A3ECA54ADE} 再从哈希表中取值 else if (this.htOrder != null && this.htOrder.ContainsKey(this.fpSpread1.Sheets[SheetIndex].Cells[i, iColumns[2]].Text)) { order = this.htOrder[this.fpSpread1.Sheets[SheetIndex].Cells[i, iColumns[2]].Text] as Neusoft.HISFC.Models.Order.Inpatient.Order; } #endregion else { #region 付值 order = OrderManagement.QueryOneOrder(this.fpSpread1.Sheets[SheetIndex].Cells[i, iColumns[2]].Text); #endregion } return(order); }
/// <summary> /// 数据打印 /// </summary> /// <returns></returns> protected virtual int Print() { #region 管理变量 ArrayList al = new ArrayList(); //数值数组 Neusoft.HISFC.BizLogic.Order.Order orderManager = new Neusoft.HISFC.BizLogic.Order.Order(); //管理类 #endregion foreach (Control c in this.panelContainer.Controls) { #region 事务设置 //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(orderManager.Connection); //t.BeginTransaction(); //orderManager.SetTrans(t.Trans); //itemManager.SetTrans(t.Trans); Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); orderManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans); #endregion if (((ucLisApplyControl)c).IsSelected)//选择打印的检验单 { #region 打印状态更新 al.Add(((ucLisApplyControl)c).ControlValue); //添加控制打印条码 //置打印标记 //保存检验条码 Neusoft.HISFC.Models.RADT.PatientInfo p = ((ucLisApplyControl)c).ControlValue as Neusoft.HISFC.Models.RADT.PatientInfo; List <Neusoft.HISFC.Models.Order.ExecOrder> execList = null; if (this.ILisDBInstance != null) { execList = new List <ExecOrder>(); } try { string[] strExeOrderID = p.User01.Split(','); for (int m = 0; m < strExeOrderID.Length; m++) { #region 如果ILisDB接口已实现 则获取医嘱执行档信息 if (this.ILisDBInstance != null) { Neusoft.HISFC.Models.Order.ExecOrder exeOrder = orderManager.QueryExecOrderByExecOrderID(strExeOrderID[m], "2"); if (exeOrder == null) { //t.RollBack(); Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("获得执行档信息出错!" + orderManager.Err); return(-1); } execList.Add(exeOrder); } #endregion #region 更新本地医嘱信息 if (orderManager.UpdateExecOrderLisBarCode(strExeOrderID[m], "") == -1) { //t.RollBack(); Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("无法更新条码!" + orderManager.Err); return(-1); } if (orderManager.UpdateExecOrderLisPrint(strExeOrderID[m]) == -1)//更新巡回卡打印标记 { //t.RollBack(); Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("无法更新打印标记!" + orderManager.Err); return(-1); } #endregion } #region 如果ILisDB接口已实现 则传输Lis数据 if (this.ILisDBInstance != null) { string err = ""; if (this.ILisDBInstance.TransDataToLisDB(p, execList, ref err) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show(p.Name + " 患者的Lis数据传输失败! " + err); return(-1); } } #endregion } catch (Exception ex) { //t.RollBack(); Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("无法打印条码!" + ex.Message); return(-1); } #endregion } //t.Commit(); Neusoft.FrameWork.Management.PublicTrans.Commit(); } #region 打印检验申请单 Panel panel = new Panel(); panel.BackColor = Color.White; if (al.Count > 0) //打印 { ArrayList alNew = new ArrayList(); foreach (Neusoft.HISFC.Models.RADT.PatientInfo pa in al)//查询数量,打印多张检验申请单 { string strLisID = ""; for (int i = 0; i < Neusoft.FrameWork.Function.NConvert.ToInt32(pa.PVisit.Memo); i++) { if (strLisID == "") { strLisID = pa.User01; } pa.User01 = strLisID + "-" + (i + 1).ToString(); alNew.Add(pa.Clone()); } } Neusoft.FrameWork.WinForms.Classes.Function.AddControlToPanel(alNew, this.printControl, panel, new System.Drawing.Size(800, 353), 1); Neusoft.FrameWork.WinForms.Classes.Print p = new Neusoft.FrameWork.WinForms.Classes.Print(); try { Control c = panel; p.SetPageSize(new System.Drawing.Printing.PaperSize("", 800, 1000)); //Neusoft.UFC.Common.Classes.Function.GetPageSize("jyd", ref p); p.IsPrintBackImage = false; p.PrintPreview(8, 1, c); } catch (Exception ex) { MessageBox.Show(ex.Message); } this.Query(); return(0); } else //没选择不打印 { return(-1); } #endregion }
/// <summary> /// 判断组合医嘱 /// </summary> /// <param name="fpSpread1"></param> /// <returns></returns> public int ValidComboOrder(Neusoft.HISFC.BizLogic.Order.Order orderManagement) { Neusoft.HISFC.Models.Order.Frequency frequency = null; Neusoft.FrameWork.Models.NeuObject usage = null; Neusoft.FrameWork.Models.NeuObject exeDept = null; string sample = ""; decimal amount = 0; int sysclass = -1; string sysClassID = string.Empty; DateTime dtBegin = new DateTime(); for (int i = 0; i < fpSpread1.ActiveSheet.Rows.Count; i++) { if (fpSpread1.ActiveSheet.IsSelected(i, 0)) { Neusoft.HISFC.Models.Order.Inpatient.Order o = this.GetObjectFromFarPoint(i, fpSpread1.ActiveSheetIndex, orderManagement); if (o.Status != 0) { MessageBox.Show(string.Format("不符合组合条件,项目{0}状态不允许修改,请重新选择!", o.Item.Name)); return(-1); } if (frequency == null) { frequency = o.Frequency.Clone(); usage = o.Usage.Clone(); sysclass = o.Item.SysClass.ID.GetHashCode(); sysClassID = o.Item.SysClass.ID.ToString(); exeDept = o.ExeDept.Clone(); sample = o.Sample.Name; amount = o.Qty; dtBegin = o.BeginTime; } else { o.BeginTime = dtBegin; if (o.Frequency.ID != frequency.ID) { MessageBox.Show("频次不同,不可以组合用!"); return(-1); } //if (o.Item.IsPharmacy) //只对药品判断用法是否相同 if (o.Item.ItemType == Neusoft.HISFC.Models.Base.EnumItemType.Drug) //只对药品判断用法是否相同 { if (o.Item.SysClass.ID.ToString() != "PCC" && o.Usage.ID != usage.ID) { MessageBox.Show("用法不同,不可以组合用!"); return(-1); } #region {B423CB4A-8E22-4aad-B847-76AAC7F9AD74} if (sysClassID == "PCC") { if (o.Item.SysClass.ID.ToString() != sysClassID) { MessageBox.Show("草药不可以和其他药品组合用!"); return(-1); } } else { if (o.Item.SysClass.ID.ToString() == "PCC") { MessageBox.Show("草药不可以和其他药品组合用!"); return(-1); } } #endregion } else { if (o.Item.SysClass.ID.ToString() == "UL")//检验 { if (o.Qty != amount) { MessageBox.Show("检验数量不同,不可以组合用!"); return(-1); } if (o.Sample.Name != sample) { MessageBox.Show("检验样本不同,不可以组合用!"); return(-1); } } } if (o.ExeDept.ID != exeDept.ID) { MessageBox.Show("执行科室不同,不能组合使用!", "提示"); return(-1); } } } } return(0); }
/// <summary> /// 医嘱保存 /// </summary> protected int Save() { if (this.Valid() == -1) { return(-1); } Neusoft.HISFC.BizLogic.Order.Order orderManager = new Neusoft.HISFC.BizLogic.Order.Order(); string comboID = ""; try { comboID = orderManager.GetNewOrderComboID();//添加组合号; } catch (Exception ex) { MessageBox.Show("获取医嘱组合号出错" + ex.Message); return(-1); } Neusoft.FrameWork.Models.NeuObject usageObj = null; //{D42BEEA5-1716-4be4-9F0A-4AF8AAF88988} this.AlOrder = new ArrayList(); for (int i = 0; i < this.fpEnter1_Sheet1.Rows.Count; i++) { if (!this.isClinic) { Neusoft.HISFC.Models.Order.Inpatient.Order order; order = new Neusoft.HISFC.Models.Order.Inpatient.Order(); order.Item = this.fpEnter1_Sheet1.Rows[i].Tag as Neusoft.HISFC.Models.Pharmacy.Item; if (order.Item == null) { continue; } //患者信息 order.Patient = this.patient; //医嘱组合号 order.Combo.ID = comboID; //医嘱类型 order.OrderType = this.orderTypeHelper.GetObjectFromID(this.cmbOrderType.SelectedValue.ToString()) as Neusoft.HISFC.Models.Order.OrderType; //用法 usageObj = this.fpEnter1_Sheet1.Cells[i, (int)ColumnSet.ColUsage].Tag as Neusoft.FrameWork.Models.NeuObject; order.Usage.ID = usageObj.ID; order.Usage.Name = usageObj.Name; //单位 {AE53ACB5-3684-42e8-BF28-88C2B4FF2360} order.Unit = (order.Item as Neusoft.HISFC.Models.Pharmacy.Item).MinUnit; //剂数 order.HerbalQty = Neusoft.FrameWork.Function.NConvert.ToInt32(this.txtNum.Text); //煎药方式 order.Memo = this.cmbMemo.Text; //频次 order.Frequency = this.frequencyHelper.GetObjectFromID(this.cmbFrequency.Tag.ToString()) as Neusoft.HISFC.Models.Order.Frequency;//{57C91E41-6803-4c83-9B61-00F75FD04255} //每次量 if (this.orderType == Neusoft.HISFC.Models.Order.EnumType.LONG) { order.DoseOnce = Neusoft.FrameWork.Function.NConvert.ToDecimal(this.fpEnter1_Sheet1.Cells[i, (int)ColumnSet.ColNum].Text); } else { order.Qty = Neusoft.FrameWork.Function.NConvert.ToDecimal(this.fpEnter1_Sheet1.Cells[i, (int)ColumnSet.ColNum].Text); } order.BeginTime = Neusoft.FrameWork.Function.NConvert.ToDateTime(this.dtBegin.Text); if (this.dtEnd.Checked) { order.EndTime = Neusoft.FrameWork.Function.NConvert.ToDateTime(this.dtEnd.Text); } //取药药房 order.StockDept.ID = order.Item.User02; this.alOrder.Add(order); } else if (this.isClinic) { Neusoft.HISFC.Models.Order.OutPatient.Order order; order = new Neusoft.HISFC.Models.Order.OutPatient.Order(); order.Item = this.fpEnter1_Sheet1.Rows[i].Tag as Neusoft.HISFC.Models.Pharmacy.Item; if (order.Item == null) { continue; } //患者信息 order.Patient = this.patient; //{D42BEEA5-1716-4be4-9F0A-4AF8AAF88988} if (this.openType == "M") //修改 { //医嘱组合号 order.Combo.ID = comboID; } else //开立 { //医嘱组合号 order.Combo.ID = comboID; } //医嘱类型 //order.OrderType = this.orderTypeHelper.GetObjectFromID(this.cmbOrderType.SelectedValue.ToString()) as Neusoft.HISFC.Models.Order.OrderType; //用法 usageObj = this.fpEnter1_Sheet1.Cells[i, (int)ColumnSet.ColUsage].Tag as Neusoft.FrameWork.Models.NeuObject; order.Usage.ID = usageObj.ID; order.Usage.Name = usageObj.Name; //单位 {AE53ACB5-3684-42e8-BF28-88C2B4FF2360} order.Unit = (order.Item as Neusoft.HISFC.Models.Pharmacy.Item).MinUnit; //剂数 order.HerbalQty = Neusoft.FrameWork.Function.NConvert.ToInt32(this.txtNum.Text); //煎药方式 order.Memo = this.cmbMemo.Text; //频次 order.Frequency = this.frequencyHelper.GetObjectFromID(this.cmbFrequency.Tag.ToString()) as Neusoft.HISFC.Models.Order.Frequency;//{57C91E41-6803-4c83-9B61-00F75FD04255} //每次量 if (this.orderType == Neusoft.HISFC.Models.Order.EnumType.LONG) { order.DoseOnce = Neusoft.FrameWork.Function.NConvert.ToDecimal(this.fpEnter1_Sheet1.Cells[i, (int)ColumnSet.ColNum].Text); } else { order.Qty = Neusoft.FrameWork.Function.NConvert.ToDecimal(this.fpEnter1_Sheet1.Cells[i, (int)ColumnSet.ColNum].Text); } order.BeginTime = Neusoft.FrameWork.Function.NConvert.ToDateTime(this.dtBegin.Text); if (this.dtEnd.Checked) { order.EndTime = Neusoft.FrameWork.Function.NConvert.ToDateTime(this.dtEnd.Text); } //取药药房 order.StockDept.ID = order.Item.User02; this.alOrder.Add(order); } } return(1); }