///// <summary>
        ///// 初始化事件


        ///// </summary>
        ///// <param name="sender"></param>
        ///// <param name="neuObject"></param>
        ///// <param name="param"></param>
        ///// <returns></returns>
        //protected override Neusoft.FrameWork.WinForms.Forms.ToolBarService OnInit(object sender, object neuObject, object param)
        //{
        //    if (this.DesignMode)
        //    {
        //        return null;
        //    }
        //    if (this.isQueryForm)
        //    {
        //        this.neuButtonOK.Visible = false;
        //    }
        //    else
        //    {
        //        this.neuButtonOK.Visible = true;
        //    }

        //    return null;
        //}



        #endregion

        #region 取消终端确认
        private void CancelConfirm()
        {
            if (this.neuSpreadItemDetail_SheetItemDetail.RowCount == 0)
            {
                return;
            }
            if (MessageBox.Show("是否取消该次确认", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                return;
            }

            if (this.neuSpreadItemDetail_SheetItemDetail.Rows[this.neuSpreadItemDetail_SheetItemDetail.ActiveRowIndex].Tag == null)
            {
                MessageBox.Show("获取终端确认明细出错");
                return;
            }

            Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();

            Neusoft.HISFC.BizLogic.Terminal.TerminalConfirm terminalConfim = new Neusoft.HISFC.BizLogic.Terminal.TerminalConfirm();
            Neusoft.HISFC.BizProcess.Integrate.PhysicalExamination.ExamiManager examiMgr = new Neusoft.HISFC.BizProcess.Integrate.PhysicalExamination.ExamiManager();
            Neusoft.HISFC.BizProcess.Integrate.Fee  feeMgr           = new Neusoft.HISFC.BizProcess.Integrate.Fee();
            Neusoft.HISFC.BizProcess.Integrate.RADT serviceInpatient = new Neusoft.HISFC.BizProcess.Integrate.RADT();

            //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(terminalConfim.Connection);
            //t.BeginTransaction();
            //terminalConfim.SetTrans(t.Trans);
            //examiMgr.SetTrans(t.Trans);
            //feeMgr.SetTrans(t.Trans);
            //serviceInpatient.SetTrans(t.Trans);

            Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail detail = (Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail) this.neuSpreadItemDetail_SheetItemDetail.Rows[this.neuSpreadItemDetail_SheetItemDetail.ActiveRowIndex].Tag;
            Neusoft.HISFC.Models.Terminal.TerminalApply         apply  = terminalConfim.GetItemListBySequence(detail.Apply.Order.ID, detail.Apply.ID);

            Neusoft.HISFC.Models.Base.Employee employee = (Neusoft.HISFC.Models.Base.Employee)terminalConfim.Operator;
            if (detail.OperInfo.ID != terminalConfim.Operator.ID)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show("只能取消自己做过的终端确认");
                return;
            }
            if (detail == null)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show("获取终端确认明细出错");
                return;
            }
            int BackQty = Neusoft.FrameWork.Function.NConvert.ToInt32(detail.Apply.Item.ConfirmedQty);

            if (terminalConfim.UpdateConfirmDetail(detail.Sequence, "1") <= 0)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show("作废终端确认明细表出错" + terminalConfim.Err);
                return;
            }
            if (terminalConfim.UpdateTerminalConfirmByMoOrder(detail.Apply.Order.ID, BackQty) <= 0)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show("更新终端确认主表失败" + terminalConfim.Err);
                return;
            }
            string confirmFlag = "1";

            if (apply.AlreadyConfirmCount - BackQty == 0)
            {
                confirmFlag = "0";
            }
            if (apply.PatientType != "5" && (apply.PatientType == "1" || apply.PatientType == "4"))
            {
                if (terminalConfim.UpdateFeeConfirmQty(detail.Apply.Order.ID, confirmFlag, -BackQty) <= 0)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show("更新费用表失败" + terminalConfim.Err);
                    return;
                }
                #region 扣门诊账户


                if (detail.Apply.SpecalFlag == "1")
                {   //退费用到门诊账户 ,目前门诊账户项目不能分开多次确认
                    decimal totCost = decimal.Round(apply.Item.Item.Price * apply.Item.Item.Qty, 2);
                    if (feeMgr.AccountCancelPay(apply.Patient, totCost, "终端退费", employee.Dept.ID, "") < 0)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("退门诊账户失败 :" + feeMgr.Err);
                        return;
                    }
                    #region 更新费用表


                    if (feeMgr.UpdateAccountByMoOrderAndItemCode(apply.Item.Item.ID, apply.Order.ID, false) <= 0)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("门诊收费表扣费标志失败 :" + feeMgr.Err);
                        return;
                    }
                    #endregion

                    #region 更新执行标志到划价状态


                    if (terminalConfim.UpdateConfirmSendFlag(detail.Apply.Order.ID, detail.Apply.Item.Item.ID, "0") <= 0)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("更新终端确认表执行标志失败 :" + terminalConfim.Err);
                        return;
                    }
                    #endregion
                }
                #endregion
            }
            if (apply.PatientType == "4" || apply.PatientType == "5")
            {
                //体检中心的可退数量
                int NoBackQty = Neusoft.FrameWork.Function.NConvert.ToInt32(apply.Item.Item.Qty - apply.Item.ConfirmedQty + BackQty);
                if (examiMgr.UpdateConfirmInfo(detail.Apply.Order.ID, confirmFlag, NoBackQty) <= 0)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show("更新体检表失败:" + examiMgr.Err);
                    return;
                }
            }
            if (apply.PatientType == "2" && detail.Apply.SpecalFlag == "2") //回退住院费用
            {
                #region 构建住院患者实体


                Neusoft.HISFC.Models.RADT.PatientInfo patientInfo = serviceInpatient.QueryPatientInfoByInpatientNO(apply.Patient.PID.ID);
                if (patientInfo == null)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show("获取住院患者信息失败:" + serviceInpatient.Err);
                    return;
                }
                #endregion

                #region 构建住院费用实体
                Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList feeItemList   = new Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList();
                Neusoft.HISFC.Models.Terminal.TerminalApply    terminalApply = apply.Clone();
                feeItemList.Item           = terminalApply.Item.Item.Clone();
                feeItemList.Item.PriceUnit = terminalApply.Item.Item.PriceUnit;//计价单位
                if (terminalApply.Item.Order.DoctorDept.ID == null || terminalApply.Item.Order.DoctorDept.ID == "")
                {
                    feeItemList.RecipeOper.Dept = employee.Dept;
                }
                else
                {
                    feeItemList.RecipeOper.Dept = terminalApply.Item.Order.DoctorDept;
                }
                if (terminalApply.Item.Order.Doctor.ID == null || terminalApply.Item.Order.Doctor.ID == "")
                {
                    feeItemList.RecipeOper.ID   = employee.ID;
                    feeItemList.RecipeOper.Name = employee.Name;
                    feeItemList.ChargeOper.ID   = employee.ID;
                    feeItemList.ChargeOper.Name = employee.Name;
                    feeItemList.ChargeOper.Dept = employee.Dept;
                }
                else
                {
                    feeItemList.RecipeOper.ID   = terminalApply.Item.Order.Doctor.ID;
                    feeItemList.RecipeOper.Name = terminalApply.Item.Order.Doctor.Name;
                    feeItemList.ChargeOper.ID   = terminalApply.Item.Order.Doctor.ID;
                    feeItemList.ChargeOper.Name = terminalApply.Item.Order.Doctor.Name;
                }
                feeItemList.ExecOper.ID    = employee.ID;
                feeItemList.ExecOper.Name  = employee.Name;
                feeItemList.ExecOper.Dept  = employee.Dept;
                feeItemList.StockOper.Dept = employee.Dept;//药品的扣库存的科室


                feeItemList.Item.PackQty = terminalApply.Item.Item.PackQty;
                feeItemList.Item.Qty     = terminalApply.Item.Item.Price;
                feeItemList.Item.Qty     = terminalApply.Item.Item.Qty;

                if (feeItemList.Item.PackQty == 0)
                {
                    feeItemList.Item.PackQty = 1;
                }
                feeItemList.FT.TotCost     = Neusoft.FrameWork.Public.String.FormatNumber((feeItemList.Item.Price * feeItemList.Item.Qty / feeItemList.Item.PackQty), 2);
                feeItemList.FT.OwnCost     = feeItemList.FT.TotCost;
                feeItemList.IsBaby         = patientInfo.IsBaby;
                feeItemList.IsEmergency    = false;
                feeItemList.Order          = new Neusoft.HISFC.Models.Order.Inpatient.Order();
                feeItemList.ExecOrder.ID   = terminalApply.Item.Order.ID;
                feeItemList.NoBackQty      = 0;
                feeItemList.FTRate.OwnRate = 1;
                feeItemList.BalanceState   = "0";
                feeItemList.FeeOper.ID     = employee.ID;
                feeItemList.FeeOper.Name   = employee.Name;
                feeItemList.FeeOper.Dept   = employee.Dept;
                feeItemList.TransType      = TransTypes.Positive;
                #endregion

                if (feeMgr.QuitItem(patientInfo, feeItemList) <= 0)
                {
                    MessageBox.Show("退住院费用失败" + feeMgr.Err);
                    return;
                }
            }
            Neusoft.FrameWork.Management.PublicTrans.Commit();

            this.neuSpreadItemDetail_SheetItemDetail.Rows.Remove(this.neuSpreadItemDetail_SheetItemDetail.ActiveRowIndex, 1);
            #region  修改界面上的数量
            for (int i = 0; i < this.neuSpreadItem_SheetItem.RowCount; i++)
            {
                Neusoft.HISFC.Models.Terminal.TerminalApply obj = (Neusoft.HISFC.Models.Terminal.TerminalApply) this.neuSpreadItem_SheetItem.Rows[i].Tag;
                if (obj.Order.ID == detail.Apply.Order.ID)
                {
                    int freeQty = Neusoft.FrameWork.Function.NConvert.ToInt32(detail.Apply.Item.ConfirmedQty) + Neusoft.FrameWork.Function.NConvert.ToInt32(neuSpreadItem_SheetItem.Cells[i, (int)ApplyField.FreeQty].Text);
                    this.neuSpreadItem_SheetItem.Cells[i, (int)ApplyField.FreeQty].Text = freeQty.ToString();
                    break;
                }
            }
            #endregion
            MessageBox.Show("取消成功");
        }
Esempio n. 2
0
 /// <summary>
 /// 生成诊断列表
 /// </summary>
 /// <param name="arr"></param>
 private void FillList(ArrayList arr)
 {
     this.InitDiagnoseList();
     try
     {
         Neusoft.HISFC.Models.HealthRecord.Diagnose diagns = null;
         Neusoft.HISFC.Models.Base.Spell            dsType = null;
         Neusoft.HISFC.Models.Base.Employee         emp    = null;
         String    strDsType   = "";
         String    strDsTypeID = "";
         String    strDrName   = "";
         String    mainFlag    = "";
         ArrayList dsTypeList  = Neusoft.HISFC.Models.HealthRecord.DiagnoseType.SpellList();
         ArrayList drList      = this.managerIntegrate.QueryEmployee(Neusoft.HISFC.Models.Base.EnumEmployeeType.D);
         for (int i = 0; i < arr.Count; i++)
         {
             diagns = (Neusoft.HISFC.Models.HealthRecord.Diagnose)arr[i];
             //填入诊断类型中文名称
             for (int j = 0; j < dsTypeList.Count; j++)
             {
                 dsType = (Neusoft.HISFC.Models.Base.Spell)dsTypeList[j];
                 if (dsType.ID.ToString() == diagns.DiagInfo.DiagType.ID)
                 {
                     strDsType   = dsType.Name;
                     strDsTypeID = dsType.ID;
                     break;
                 }
             }
             //填入诊断医生姓名
             for (int j = 0; j < drList.Count; j++)
             {
                 emp = (Neusoft.HISFC.Models.Base.Employee)drList[j];
                 if (emp.ID.ToString() == diagns.DiagInfo.Doctor.ID)
                 {
                     strDrName = emp.Name;
                     break;
                 }
             }
             //是否主诊断
             if (diagns.DiagInfo.IsMain)
             {
                 mainFlag = "1";
             }
             else
             {
                 mainFlag = "0";
             }
             ListViewItem item1 = listView1.Items.Add("");
             item1.SubItems.Add(strDsType);                                    // 诊断类型
             item1.SubItems.Add(diagns.DiagInfo.ICD10.Name);                   // 诊断名称
             item1.SubItems.Add(strDrName);                                    // 诊断医师
             item1.SubItems.Add(diagns.DiagInfo.DiagDate.ToShortDateString()); // 诊断时间
             item1.SubItems.Add("");                                           // 状态?
             item1.SubItems.Add(diagns.DiagInfo.HappenNo.ToString());          // 发生序号
             item1.SubItems.Add(diagns.OperType);                              // 操作类型
             item1.SubItems.Add(diagns.DiagInfo.ICD10.ID);                     //ICD代码
             item1.SubItems.Add(diagns.DiagInfo.User03);                       //ICD类别 'ICD10';'医保(市)';'医保(省)'
             item1.SubItems.Add(mainFlag);                                     //MAIN_FLAG 是否主诊断1是0否
             if (strDsTypeID == "1" && mainFlag == "1" && diagns.DiagInfo.User03 == "医保")
             {
                 item1.ForeColor = Color.Red;
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(Language.Msg("生成诊断信息列表出错!" + ex.Message));
         this.listView1.Clear();
         return;
     }
 }
        /// <summary>
        /// 控件初始化
        /// </summary>
        public void InitCtrl()
        {
            this.Clear();
            this.imageList1.Images.Add(Neusoft.FrameWork.WinForms.Classes.Function.GetImage(Neusoft.FrameWork.WinForms.Classes.EnumImageList.R人员));
            //麻醉方式combox
            try
            {
                this.cmbAnaeType.Items.Clear();
                ArrayList alAnaeType = Environment.IntegrateManager.GetConstantList(EnumConstant.ANESTYPE);
                this.cmbAnaeType.AddItems(alAnaeType);
            }
            catch { }
            //麻醉效果combox
            try
            {
                this.cmbAnaeResult.Items.Clear();
                ArrayList alAnaeResult = Environment.IntegrateManager.GetConstantList(EnumConstant.EFFECT);
                this.cmbAnaeResult.AddItems(alAnaeResult);
            }
            catch { }
            //入(PACU)室状态combox
            try
            {
                this.cmbInStatus.Items.Clear();
                ArrayList alInStatus = Environment.IntegrateManager.GetConstantList(EnumConstant.PACUSTATUS);
                this.cmbInStatus.AddItems(alInStatus);
            }
            catch { }
            //出(PACU)室状态combox
            try
            {
                this.cmbOutStatus.Items.Clear();
                ArrayList alOutStatus = Environment.IntegrateManager.GetConstantList(EnumConstant.PACUSTATUS);
                this.cmbOutStatus.AddItems(alOutStatus);
            }
            catch { }
            //镇痛方式
            try
            {
                this.cmbDemuKind.Items.Clear();
                ArrayList alDemuKind = Environment.IntegrateManager.GetConstantList(EnumConstant.DEMUKIND);
                this.cmbDemuKind.AddItems(alDemuKind);
            }
            catch { }
            //泵型
            try
            {
                this.cmbDemuModel.Items.Clear();
                ArrayList alDemuModel = Environment.IntegrateManager.GetConstantList(EnumConstant.DEMUMODEL);
                this.cmbDemuModel.AddItems(alDemuModel);
            }
            catch { }
            //镇痛效果combox
            try
            {
                this.cmbDemuResult.Items.Clear();
                ArrayList alDemuResult = Environment.IntegrateManager.GetConstantList(EnumConstant.EFFECT);
                this.cmbDemuResult.AddItems(alDemuResult);
            }
            catch { }
            //一些标志Combox赋值
            ArrayList alFlag = new ArrayList();
            NeuObject obj    = new NeuObject();

            obj.ID   = "1";
            obj.Name = "是";
            alFlag.Add(obj.Clone());
            obj.ID   = "0";
            obj.Name = "否";
            alFlag.Add(obj.Clone());
            cmbCharge.AddItems((ArrayList)(alFlag.Clone()));            //是否记帐
            Neusoft.HISFC.BizProcess.Integrate.Manager      managerMgr = new Neusoft.HISFC.BizProcess.Integrate.Manager();
            Neusoft.HISFC.BizLogic.Operation.OpsTableManage opsTable   = new Neusoft.HISFC.BizLogic.Operation.OpsTableManage();
            Neusoft.HISFC.Models.Base.Employee objEmp = (Neusoft.HISFC.Models.Base.Employee)opsTable.Operator;

            //原来的
            //txtPullOutOpcd.AddItems(managerMgr.QueryEmployeeByDeptID(objEmp.Dept.ID));

            #region donggq--2010.10.04--{C5C20361-3B0F-4f36-AA28-D7861E9236D3}

            ArrayList alPullDoc = managerMgr.QueryEmployeeByDeptID("2600");
            alPullDoc.AddRange(managerMgr.QueryEmployeeByDeptID("2603"));
            txtPullOutOpcd.AddItems(alPullDoc);


            #endregion


            //初始化麻醉科人员列表
            //this.lvPersons.Dept = this.ParentForm.var.User.Dept.Clone();
            //this.lvPersons.ShowDeptPerson();
            //Neusoft.HISFC.Components.Common.Controls.l
            //this.UcCtrlEnabled(false);


            //this.lvPersons.DeptID = Environment.OperatorDeptID;

            //this.lvPersons.DeptID = "2600";
            //this.lvPersons.DeptID = "2603";
        }
        public void InitControl()
        {
            currentOperator = (Neusoft.HISFC.Models.Base.Employee)opsTableMgr.Operator;

            //手术规模
            ArrayList altype = Environment.IntegrateManager.GetConstantList(Neusoft.HISFC.Models.Base.EnumConstant.OPERATETYPE);

            if (altype == null)
            {
                altype = new ArrayList();
            }

            this.cmbOpType.AddItems(altype);
            //if (altype.Count >= 3)
            //{
            //    this.cmbOpType.Tag = (altype[0] as NeuObject).ID;
            //}

            this.cmbOpType.IsListOnly = true;

            //手术分类
            ArrayList alKind = Environment.IntegrateManager.GetConstantList("OPERATEKIND");

            if (alKind == null)
            {
                alKind = new ArrayList();
            }
            this.cmbOperKind.AddItems(alKind);
            //if (alKind.Count >= 3)
            //{
            //    this.cmbOperKind.Tag = (alKind[2] as NeuObject).ID;
            //}
            this.cmbOperKind.IsListOnly = true;

            //切口类型
            ArrayList alInci = Environment.IntegrateManager.GetConstantList(Neusoft.HISFC.Models.Base.EnumConstant.INCITYPE);

            if (alInci == null)
            {
                alInci = new ArrayList();
            }
            this.cmbIncityep.AddItems(alInci);
            //if (alInci.Count>= 3)
            //{
            //    this.cmbIncityep.Tag = (alInci[1] as NeuObject).ID;
            //}
            this.cmbIncityep.IsListOnly = true;


            //加载科室
            ArrayList alDept = Environment.IntegrateManager.QueryDeptmentsInHos(true);

            if (alDept == null)
            {
                alDept = new ArrayList();
            }
            this.comDept.AddItems(alDept);


            //
            ArrayList alDoc = Environment.IntegrateManager.QueryEmployee(Neusoft.HISFC.Models.Base.EnumEmployeeType.D);

            if (alDoc == null)
            {
                alDoc = new ArrayList();
            }

            //医生术者
            this.cmbDoctor.AddItems(alDoc);
            this.cmbDoctor.IsListOnly = true;

            //一助
            this.cmbHelper1.AddItems(alDoc);
            this.cmbHelper1.IsListOnly = true;

            //二助
            this.cmbHelper2.AddItems(alDoc);
            this.cmbHelper2.IsListOnly = true;


            //护士
            ArrayList alNurse = Environment.IntegrateManager.QueryEmployee(Neusoft.HISFC.Models.Base.EnumEmployeeType.N, currentOperator.Dept.ID);

            if (alNurse == null)
            {
                alNurse = new ArrayList();
            }

            //巡回1
            this.cmbXH1.AddItems(alNurse);
            this.cmbXH1.IsListOnly = true;

            //巡回2
            this.cmbXH2.AddItems(alNurse);
            this.cmbXH2.IsListOnly = true;

            //洗手1
            this.cmbWash1.AddItems(alNurse);
            this.cmbWash1.IsListOnly = true;

            //洗手2
            this.cmbWash2.AddItems(alNurse);
            this.cmbWash2.IsListOnly = true;
        }