Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
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);
 }
Esempio n. 3
0
        /// <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
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 5
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);
        }