/// <summary>
        /// 按患者姓名查询患者挂号信息
        /// </summary>
        /// <param name="Name"></param>
        /// <returns></returns>
        public int QueryByName(string Name)
        {
            Neusoft.HISFC.BizProcess.Integrate.RADT Mgr = new Neusoft.HISFC.BizProcess.Integrate.RADT();

            ArrayList al = Mgr.QueryPatientByName(Name);

            if (al == null)
            {
                MessageBox.Show("查询患者挂号信息时出错!" + Mgr.Err, "提示");
                return(-1);
            }

            if (this.fpSpread1_Sheet1.RowCount > 0)
            {
                this.fpSpread1_Sheet1.Rows.Remove(0, this.fpSpread1_Sheet1.RowCount);
            }

            foreach (Neusoft.HISFC.Models.RADT.PatientInfo obj in al)
            {
                this.fpSpread1_Sheet1.Rows.Add(this.fpSpread1_Sheet1.RowCount, 1);

                int row = this.fpSpread1_Sheet1.RowCount - 1;

                this.fpSpread1_Sheet1.SetValue(row, 0, obj.PID.CardNO, false);
                this.fpSpread1_Sheet1.SetValue(row, 1, obj.Name, false);
                this.fpSpread1_Sheet1.SetValue(row, 2, obj.Sex.Name, false);
                this.fpSpread1_Sheet1.SetValue(row, 3, obj.PhoneHome, false);
                this.fpSpread1_Sheet1.SetValue(row, 4, obj.AddressHome, false);
            }

            return(0);
        }
Exemple #2
0
        /// <summary>
        /// 刷新
        /// </summary>
        public void Refresh(string deptCode, string beginTime, string endTime)
        {
            if (beginTime == null)
            {
                beginTime = System.DateTime.Now.AddDays(-3).ToShortDateString();
            }
            if (endTime == null)
            {
                endTime = System.DateTime.Now.AddDays(4).ToShortDateString();
            }
            this.BeginUpdate();
            this.Nodes.Clear();
            if (manager == null)
            {
                manager = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            }


            ArrayList al = new ArrayList();//患者列表

            //显示出院登记未过有效召回期的患者
            al.Add("未过有效召回期患者|" + EnumPatientState.InVaildDayPatient.ToString());
            addPatientList(al, deptCode, beginTime, endTime, EnumPatientState.InVaildDayPatient);

            //显示出院登记已过有效召回期的患者
            al.Add("已过有效召回期患者|" + EnumPatientState.OutVaildDayPatient.ToString());
            addPatientList(al, deptCode, beginTime, endTime, EnumPatientState.OutVaildDayPatient);

            //显示所有患者列表
            this.SetPatient(al);
            this.EndUpdate();
        }
        /// <summary>
        /// 保存设置
        /// </summary>
        public virtual int Save()
        {
            //取婴儿接珍时的信息信息
            //Neusoft.HISFC.Models.RADT.PatientInfo PatientInfo = null;

            //取患者最新的住院主表信息
            //PatientInfo = this.Inpatient.QueryPatientInfoByInpatientNO(this.patientInfo.ID);
            if (this.patientInfo == null)
            {
                MessageBox.Show("请选择住院患者");
                return(-1);
            }

            //取变动信息:取医生、护士、科室等信息
            //this.GetPatientInfo(PatientInfo);

            //判断是否已选择床位
            if (this.cmbBedNo.Text.Trim() == "" &&
                patientInfo.IsBaby == false)
            {
                MessageBox.Show("未选择床位!");
                return(-1);
            }

            //取处理时的床位信息
            Neusoft.HISFC.Models.Base.Bed bed = new Neusoft.HISFC.Models.Base.Bed();
            bed.ID          = this.cmbBedNo.Tag.ToString(); //床号
            bed.InpatientNO = patientInfo.ID;               //床位上患者住院流水号


            #region 业务处理
            Neusoft.HISFC.BizProcess.Integrate.RADT managerRADT = new Neusoft.HISFC.BizProcess.Integrate.RADT();

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

            //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance);
            //t.BeginTransaction();

            managerRADT.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            if (managerRADT.CallBack(patientInfo, bed) == -1)//调用召回业务
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show(managerRADT.Err);
                return(-1);
            }
            else
            {
            }
            #endregion

            Neusoft.FrameWork.Management.PublicTrans.Commit();
            MessageBox.Show(managerRADT.Err);
            this.Refresh();
            this.ClearPatintInfo();
            return(1);
        }
Exemple #4
0
        public void SetExecOrder(System.Collections.ArrayList alExecOrder)
        {
            this.neuSpread1_Sheet1.Rows.Count = 0;

            System.Collections.Hashtable hsPatientName      = new System.Collections.Hashtable();
            System.Collections.Hashtable hsPatientOrderItem = new System.Collections.Hashtable();
            foreach (Neusoft.HISFC.Models.Order.ExecOrder info in alExecOrder)
            {
                string patientName = "";
                if (hsPatientName.ContainsKey(info.Order.Patient.ID))
                {
                    patientName = hsPatientName[info.Order.Patient.ID] as string;
                }
                else
                {
                    Neusoft.HISFC.BizProcess.Integrate.RADT radtIntegrate = new Neusoft.HISFC.BizProcess.Integrate.RADT();
                    Neusoft.HISFC.Models.RADT.PatientInfo   p             = radtIntegrate.GetPatientInfoByPatientNO(info.Order.Patient.ID);

                    patientName = p.PVisit.PatientLocation.Bed.ID + p.Name;

                    hsPatientName.Add(p.ID, patientName);
                }

                if (hsPatientOrderItem.ContainsKey(info.Order.Patient.ID + info.Order.Item.ID))
                {
                    Neusoft.HISFC.Models.Order.ExecOrder execOrder = hsPatientOrderItem[info.Order.Patient.ID + info.Order.Item.ID] as Neusoft.HISFC.Models.Order.ExecOrder;

                    execOrder.Order.Qty = execOrder.Order.Qty + info.Order.Qty;
                }
                else
                {
                    Neusoft.HISFC.Models.Order.ExecOrder execOrder = info.Clone();
                    execOrder.Order.Patient.Name = patientName;

                    hsPatientOrderItem.Add(execOrder.Order.Patient.ID + info.Order.Item.ID, execOrder);
                }
            }

            int iRow = 0;

            foreach (Neusoft.HISFC.Models.Order.ExecOrder totalExecOrder in hsPatientOrderItem.Values)
            {
                this.neuSpread1_Sheet1.Rows.Add(iRow, 1);

                this.neuSpread1_Sheet1.Cells[iRow, 0].Text = totalExecOrder.Order.Patient.Name;

                Neusoft.HISFC.Models.Pharmacy.Item item = totalExecOrder.Order.Item as Neusoft.HISFC.Models.Pharmacy.Item;

                this.neuSpread1_Sheet1.Cells[iRow, 1].Text  = item.Name + "[" + item.Specs + "]";
                this.neuSpread1_Sheet1.Cells[iRow, 2].Text  = totalExecOrder.Order.Qty.ToString();
                this.neuSpread1_Sheet1.Cells[iRow, 3].Text  = totalExecOrder.Order.Unit;
                this.neuSpread1_Sheet1.Cells[iRow, 4].Value = item.PriceCollection.RetailPrice / item.PackQty;
                this.neuSpread1_Sheet1.Cells[iRow, 5].Value = totalExecOrder.Order.Qty * item.PriceCollection.RetailPrice / item.PackQty;
            }
        }
Exemple #5
0
        /// <summary>
        /// 打印病案首页
        /// </summary>
        /// <param name="info"></param>
        /// <returns>0正常  ,-1 出错</returns>
        public static int PrintCaseFirstPage(Neusoft.HISFC.Models.RADT.PatientInfo info)
        {
            HealthRecord.ucCasePrint casePrint = new HealthRecord.ucCasePrint();
            casePrint.LoadInfo();
            Neusoft.HISFC.BizLogic.HealthRecord.Base baseDml       = new Neusoft.HISFC.BizLogic.HealthRecord.Base();
            Neusoft.HISFC.BizProcess.Integrate.RADT  RadtInpatient = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            Neusoft.HISFC.Models.HealthRecord.Base   caseBase      = new Neusoft.HISFC.Models.HealthRecord.Base();
            //判断是否有该患者
            if (info.ID == null || info.ID == "")
            {
                MessageBox.Show("住院流水号不能为空");
                return(-1);
            }
            //获取住院号赋值给实体
            Neusoft.HISFC.Models.RADT.PatientInfo patientInfo = RadtInpatient.GetPatientInfoByPatientNO(info.ID);
            if (patientInfo == null)
            {
                MessageBox.Show("获取人员信息出错");
                return(-1);
            }
            caseBase.PatientInfo = patientInfo;
            //casePrint.contro = caseBase;
            //获取默认打印机
            string    errStr    = "";
            ArrayList alSetting = Neusoft.FrameWork.WinForms.Classes.Function.GetDefaultValue("BAPrinter", out errStr);

            if (alSetting == null)
            {
                MessageBox.Show(errStr);
                return(-1);
            }
            if (alSetting.Count == 0)
            {
                MessageBox.Show("请填写打印机名称配置文件");
                Neusoft.FrameWork.WinForms.Classes.Function.SaveDefaultValue("BAPrinter");
                return(-1);
            }
            string printerSetting = alSetting[0] as string;

            Neusoft.FrameWork.WinForms.Classes.Print p = new Neusoft.FrameWork.WinForms.Classes.Print();

            for (int i = 0; i < System.Drawing.Printing.PrinterSettings.InstalledPrinters.Count; i++)
            {
                if (System.Drawing.Printing.PrinterSettings.InstalledPrinters[i].IndexOf(printerSetting) != -1)
                {
                    p.PrintDocument.PrinterSettings.PrinterName = System.Drawing.Printing.PrinterSettings.InstalledPrinters[i];
                }
            }

            p.IsPrintInputBox = true;
            Common.Classes.Function.GetPageSize("case1", ref p);
            p.PrintPage(20, 80, casePrint);
            return(0);
        }
        /// <summary>
        /// ³õʼ»¯Ê÷
        /// </summary>
        public void Init()
        {
            Neusoft.HISFC.BizProcess.Integrate.RADT radt     = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            Neusoft.HISFC.Models.Base.Employee      employee = Neusoft.FrameWork.Management.Connection.Operator as Neusoft.HISFC.Models.Base.Employee;
            ArrayList operDept = this.GetDepts(employee.Nurse.ID);

            foreach (Neusoft.FrameWork.Models.NeuObject objDept in operDept)
            {
                ArrayList al = radt.QueryPatient(objDept.ID, Neusoft.HISFC.Models.Base.EnumInState.I);
                al.Insert(0, objDept.Name);

                this.SetPatient(al);
            }
        }
        /// <summary>
        /// 向Fp内加入信息
        /// </summary>
        /// <param name="execOrder">医嘱执行挡信息</param>
        /// <param name="iRowIndex">行索引</param>
        /// <returns>成功返回1 失败返回-1</returns>
        protected int AddDataToFp(Neusoft.HISFC.Models.Order.ExecOrder execOrder, int iRowIndex)
        {
            this.neuSpread1_Sheet1.Rows.Add(iRowIndex, 1);

            string patientName = "";

            if (this.hsPatientInfo.ContainsKey(execOrder.Order.Patient.ID))
            {
                Neusoft.HISFC.Models.RADT.PatientInfo patient = this.hsPatientInfo[execOrder.Order.Patient.ID] as Neusoft.HISFC.Models.RADT.PatientInfo;

                patientName = "[" + patient.PVisit.PatientLocation.Bed.ID + "]" + patient.Name;
            }
            else
            {
                Neusoft.HISFC.BizProcess.Integrate.RADT radtIntegrate = new Neusoft.HISFC.BizProcess.Integrate.RADT();
                Neusoft.HISFC.Models.RADT.PatientInfo   patient       = radtIntegrate.GetPatientInfoByPatientNO(execOrder.Order.Patient.ID);

                if (patient == null)
                {
                    MessageBox.Show(Language.Msg("根据患者流水号获取患者信息发生错误") + radtIntegrate.Err);
                    return(-1);
                }

                patientName = "[" + patient.PVisit.PatientLocation.Bed.ID + "]" + patient.Name;

                this.hsPatientInfo.Add(patient.ID, patient);
            }


            this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColName].Text   = patientName;
            this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColCheck].Value = true;

            Neusoft.HISFC.Models.Pharmacy.Item item = ((Neusoft.HISFC.Models.Pharmacy.Item)execOrder.Order.Item);
            this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColTradeNameSpecs].Text = item.Name + "[" + item.Specs + "]";

            //组标记  ...
            this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColDoseonce].Text   = execOrder.Order.DoseOnce.ToString();
            this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColFrequency].Text  = execOrder.Order.Frequency.Name;
            this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColUsage].Text      = execOrder.Order.Usage.Name;
            this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColQty].Text        = execOrder.Order.Qty.ToString() + execOrder.Order.Unit;
            this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColEmergency].Value = execOrder.Order.IsEmergency;
            this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColRecipeDoc].Text  = execOrder.Order.ReciptDoctor.Name;
            this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColMemo].Text       = execOrder.Order.Memo;
            this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColSortID].Text     = execOrder.Order.SortID.ToString();
            this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColExecID].Text     = execOrder.ID;
            this.neuSpread1_Sheet1.Cells[iRowIndex, (int)ColumnSet.ColComboNO].Text    = execOrder.Order.Combo.ID + execOrder.DateUse.ToString();

            this.neuSpread1_Sheet1.Rows[iRowIndex].Tag = execOrder;
            return(1);
        }
Exemple #8
0
        /// <summary>
        /// 根据药品申请,判断患者是否已出院,返回不允许继续进行摆药收费的患者信息
        /// </summary>
        /// <param name="arrayApplyOut">药品申请</param>
        /// <param name="noPrivPatient">不在院的患者信息</param>
        /// <returns>成功返回1 失败返回-1</returns>
        internal static int JudgeInStatePatient(ArrayList arrayApplyOut, System.Data.IDbTransaction trans, ref string noPrivPatient)
        {
            System.Collections.Hashtable            hsPatient     = new Hashtable();
            Neusoft.HISFC.BizProcess.Integrate.RADT radtIntegrate = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            if (trans != null)
            {
                radtIntegrate.SetTrans(trans);
            }

            foreach (Neusoft.HISFC.Models.Pharmacy.ApplyOut info in arrayApplyOut)
            {
                if (info.IsCharge)      //对已经收费的记录不进行判断处理
                {
                    continue;
                }
                if (hsPatient.ContainsKey(info.PatientNO))
                {
                    continue;
                }
                else
                {
                    Neusoft.HISFC.Models.RADT.PatientInfo p = radtIntegrate.GetPatientInfomation(info.PatientNO);
                    if (p != null)
                    {
                        if (p.PVisit.InState.ID.ToString() != Neusoft.HISFC.Models.Base.EnumInState.I.ToString())
                        {
                            if (noPrivPatient == "")
                            {
                                noPrivPatient = p.Name;
                            }
                            else
                            {
                                noPrivPatient += "," + p.Name;
                            }
                        }
                    }

                    hsPatient.Add(info.PatientNO, null);
                }
            }

            if (noPrivPatient != "")
            {
                noPrivPatient += "已不在院,不能进行摆药扣费操作。";
            }

            return(1);
        }
Exemple #9
0
        protected override void OnLoad(EventArgs e)
        {
            Department dept = this.integrateManager.GetDepartment(Environment.OperatorDeptID);

            if (dept.SpecialFlag == "1")    //手术科室,生成该手术室的全部申请单
            {
                this.RefreshApply(Environment.OperatorDept);
            }
            else                           //非手术科室,生成该科室下申请单
            {
                Neusoft.HISFC.BizProcess.Integrate.RADT manager = new Neusoft.HISFC.BizProcess.Integrate.RADT();
                string    deptID     = dept.ID;
                ArrayList alPatients = manager.QueryPatient(deptID, Neusoft.HISFC.Models.Base.EnumInState.I);

                this.tvApply.Nodes.Clear();
                TreeNode root = new TreeNode();
                root.Text = "本科患者";
                this.tvApply.Nodes.Add(root);
                foreach (Neusoft.HISFC.Models.RADT.PatientInfo patient in alPatients)
                {
                    TreeNode node = new TreeNode();


                    string bedNO     = "[" + patient.PVisit.PatientLocation.Bed.ID.Substring(4, patient.PVisit.PatientLocation.Bed.ID.Length - 4) + "]";
                    string patientNO = "[" + patient.PID.PatientNO + "]";

                    node.Text = bedNO + "-" + patientNO + patient.Name;

                    if (patient.Sex.ID.ToString() == "M")
                    {
                        node.ImageIndex         = 1;
                        node.SelectedImageIndex = 1;
                    }
                    else
                    {
                        node.ImageIndex         = 3;
                        node.SelectedImageIndex = 3;
                    }
                    node.Tag = patient;
                    root.Nodes.Add(node);
                }
                this.AddApply(Environment.OperatorDept);
                tvApply.ExpandAll();
            }

            base.OnLoad(e);
        }
        /// <summary>
        /// 列表显示
        /// </summary>
        /// <returns></returns>
        public int RefreshTree()
        {
            Neusoft.HISFC.BizProcess.Integrate.Order   orderManager   = new Neusoft.HISFC.BizProcess.Integrate.Order();
            Neusoft.HISFC.BizProcess.Integrate.Manager deptManager    = new Neusoft.HISFC.BizProcess.Integrate.Manager();
            Neusoft.HISFC.BizProcess.Integrate.RADT    patientManager = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            if (string.IsNullOrEmpty(operDept))
            {
                operDept = oper.Dept.ID;
            }
            ArrayList alDept = orderManager.QueryPatientDeptByConfirmDeptID(operDept);

            this.Nodes.Clear();

            System.Windows.Forms.TreeNode deptNode = new System.Windows.Forms.TreeNode();

            foreach (Neusoft.FrameWork.Models.NeuObject dept in alDept)
            {
                deptNode = new System.Windows.Forms.TreeNode();

                deptNode.Text               = this.deptHelper.GetName(dept.ID);
                deptNode.ImageIndex         = 0;
                deptNode.SelectedImageIndex = 1;
                deptNode.Tag = deptManager.GetDepartment(dept.ID);

                this.Nodes.Add(deptNode);

                ArrayList alPatient = orderManager.QueryPatientByConfirmDeptAndPatDept(operDept, dept.ID);
                foreach (Neusoft.FrameWork.Models.NeuObject patient in alPatient)
                {
                    System.Windows.Forms.TreeNode         patientNode = new System.Windows.Forms.TreeNode();
                    Neusoft.HISFC.Models.RADT.PatientInfo patientInfo = patientManager.QueryPatientInfoByInpatientNO(patient.ID);
                    patientNode.Text               = patientInfo.Name;
                    patientNode.ImageIndex         = 6;
                    patientNode.SelectedImageIndex = 7;
                    patientNode.Tag = patientInfo;

                    deptNode.Nodes.Add(patientNode);
                }
            }

            return(1);
        }
        /// <summary>
        /// 刷新
        /// </summary>
        public new void Refresh()
        {
            //{707F2343-20AC-445b-9ACB-2B707C8EA249}
            InitControlParam();
            this.BeginUpdate();
            this.Nodes.Clear();
            if (manager == null)
                manager = new Neusoft.HISFC.BizProcess.Integrate.RADT();

            
            ArrayList al =  new ArrayList();//患者列表

            //节点说明: 本区患者\待接诊患者\转入患者\转出患者\出院登记患者
            //显示本护理站在院的患者
            al.Add("本区患者|"+EnumPatientType.In.ToString());

            addPatientList(al,Neusoft.HISFC.Models.Base.EnumInState.I, EnumPatientType.In);

            //显示本护理站待接珍患者
            al.Add("待接诊患者|" + EnumPatientType.Arrive.ToString());
            
            addPatientList(al,Neusoft.HISFC.Models.Base.EnumInState.R, EnumPatientType.Arrive);

            //显示转入本护理站待接珍患者
            al.Add("转入患者|" + EnumPatientType.ShiftIn.ToString());
            addPatientList(al,Neusoft.HISFC.Models.Base.EnumInState.I, EnumPatientType.ShiftIn);

            //显示本护理站转科申请的患者
            al.Add("转出患者|" + EnumPatientType.ShiftOut.ToString());
            addPatientList(al, Neusoft.HISFC.Models.Base.EnumInState.I, EnumPatientType.ShiftOut);

            //显示本护理站出院登记的患者
            al.Add("出院登记患者|" + EnumPatientType.Out.ToString());
            addPatientList(al, Neusoft.HISFC.Models.Base.EnumInState.B, EnumPatientType.Out);

            //显示所有患者列表
            this.SetPatient(al);
       
            this.EndUpdate();
			
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (this.cmbNewDept.Tag == null || this.cmbNewDept.Tag.ToString() == "")
            {
                MessageBox.Show("请选择要转入的病区!");
                return;
            }

            Neusoft.FrameWork.Models.NeuObject nurseCell = new Neusoft.FrameWork.Models.NeuObject();

            nurseCell.ID   = this.cmbNewDept.Tag.ToString();
            nurseCell.Name = this.cmbNewDept.Text;
            nurseCell.Memo = this.txtNote.Text;

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

            Neusoft.HISFC.BizProcess.Integrate.RADT radt = new Neusoft.HISFC.BizProcess.Integrate.RADT();

            //{F0BF027A-9C8A-4bb7-AA23-26A5F3539586}
            if (radt.ShiftOut(this.patientInfo, this.patientInfo.PVisit.PatientLocation.Dept, nurseCell, this.patientInfo.User03, this.isCancel) == -1)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
            }
            else
            {
                #region addby xuewj
                if (this.adt == null)
                {
                    this.adt = Neusoft.FrameWork.WinForms.Classes.UtilInterface.CreateObject(this.GetType(), typeof(Neusoft.HISFC.BizProcess.Interface.IHE.IADT)) as Neusoft.HISFC.BizProcess.Interface.IHE.IADT;
                }
                if (this.adt != null && patientInfo != null)
                {
                    this.adt.CancelTransferPatient(patientInfo);
                }
                #endregion
                Neusoft.FrameWork.Management.PublicTrans.Commit();
            }
            MessageBox.Show(radt.Err);

            base.OnRefreshTree();//刷新树
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (this.cmbNewDept.Tag == null || this.cmbNewDept.Tag.ToString() == "")
            {
                MessageBox.Show("请选择要转入的科室!");
                return;
            }
            Neusoft.FrameWork.Models.NeuObject dept = new Neusoft.FrameWork.Models.NeuObject();
            dept.ID   = this.cmbNewDept.Tag.ToString();
            dept.Name = this.cmbNewDept.Text;
            dept.Memo = this.txtNote.Text;

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

            //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance);

            Neusoft.HISFC.BizProcess.Integrate.RADT radt = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            //t.BeginTransaction();

            //radt.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            //{F0BF027A-9C8A-4bb7-AA23-26A5F3539586}
            if (radt.ShiftOut(this.patientInfo, dept, null, this.patientInfo.User03, this.isCancel) == -1)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
            }
            else
            {
                Neusoft.FrameWork.Management.PublicTrans.Commit();
                if (bSaveAndClose)
                {
                    dialogResult = DialogResult.OK;
                    this.FindForm().Close();
                    return;
                }
            }
            MessageBox.Show(radt.Err);

            base.OnRefreshTree();//刷新树
        }
        protected override int OnSave(object sender, object neuObject)
        {
            if (adt == null)
            {
                adt = Neusoft.FrameWork.WinForms.Classes.UtilInterface.CreateObject(this.GetType(), typeof(Neusoft.HISFC.BizProcess.Interface.IHE.IADT)) as Neusoft.HISFC.BizProcess.Interface.IHE.IADT;
            }

            if (adt == null)
            {
                return(-1);
            }

            Neusoft.HISFC.BizProcess.Integrate.RADT radtBll = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            Neusoft.HISFC.BizProcess.Integrate.Registration.Registration regBll = new Neusoft.HISFC.BizProcess.Integrate.Registration.Registration();


            Neusoft.HISFC.Models.RADT.PatientInfo      patient = radtBll.GetPatientInfomation(this.patientInfo.ID);
            Neusoft.HISFC.Models.Registration.Register r       = adt.ProduceInpatientToOutPatientMessage(this.patientInfo);

            if (r == null)
            {
                MessageBox.Show("生成挂号实体出错!");
                return(-1);
            }
            int resultValue = radtBll.UnregisterNoFee(patient);

            if (resultValue != 1)
            {
                throw new Exception(radtBll.Err);
            }
            if (regBll.InsertByDoct(r) == -1)
            {
                throw new Exception(regBll.Err);
            }

            adt.InPatientToOutpatient(this.patientInfo);
            return(base.OnSave(sender, neuObject));
        }
Exemple #15
0
        private void ucQueryInpatientNo1_myEvent()
        {
            string patientNO = this.ucQueryInpatientNo1.InpatientNo;

            if (patientNO == null || patientNO == "")
            {
                MessageBox.Show(Language.Msg("住院号不存在"));
                return;
            }

            Neusoft.HISFC.BizProcess.Integrate.RADT radtIntegrate = new Neusoft.HISFC.BizProcess.Integrate.RADT();

            this.applyPatient = radtIntegrate.QueryPatientInfoByInpatientNO(patientNO);
            if (this.applyPatient == null)
            {
                MessageBox.Show(Language.Msg("根据住院流水号查找住院患者信息失败") + radtIntegrate.Err);
                return;
            }

            this.SetPatientInfo();

            this.QueryApply();
        }
        /// <summary>
        /// 刷新
        /// </summary>
        public new void Refresh()
        {
            this.BeginUpdate();
            this.Nodes.Clear();
            if (manager == null)
            {
                manager = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            }


            ArrayList al = new ArrayList();//患者列表

            //节点说明: 本区患者\待接诊患者\转入患者\转出患者\出院登记患者
            //显示本护理站在院的患者
            al.Add("本区患者|" + EnumPatientType.In.ToString());

            addPatientList(al, Neusoft.HISFC.Models.Base.EnumInState.I, EnumPatientType.In);


            //显示所有患者列表
            this.SetPatient(al);

            this.EndUpdate();
        }
        /// <summary>
        /// 保存设置
        /// </summary>
        public virtual int Save()
        {
            //取婴儿接珍时的信息信息
            //Neusoft.HISFC.Models.RADT.PatientInfo PatientInfo = null;

            //取患者最新的住院主表信息
            //PatientInfo = this.Inpatient.QueryPatientInfoByInpatientNO(this.patientInfo.ID);
            if (this.patientInfo == null)
            {
                MessageBox.Show(this.Inpatient.Err);
                return(-1);
            }

            //取变动信息:取医生、护士、科室等信息
            //this.GetPatientInfo(PatientInfo);

            //判断是否已选择床位
            if (this.cmbBedNo.Text.Trim() == "" &&
                patientInfo.IsBaby == false)
            {
                MessageBox.Show("未选择床位!");
                return(-1);
            }

            //取处理时的床位信息
            Neusoft.HISFC.Models.Base.Bed bed = new Neusoft.HISFC.Models.Base.Bed();
            bed.ID          = this.cmbBedNo.Tag.ToString(); //床号
            bed.InpatientNO = patientInfo.ID;               //床位上患者住院流水号


            #region 业务处理

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

            Neusoft.HISFC.BizProcess.Integrate.RADT managerRADT = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance);
            //t.BeginTransaction();
            //managerRADT.SetTrans(t.Trans);

            if (managerRADT.CallBack(patientInfo, bed) == -1)//调用召回业务
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show(managerRADT.Err);
                return(-1);
            }
            else
            {
            }
            #endregion

            #region addby xuewj 2010-3-15

            if (this.adt == null)
            {
                this.adt = Neusoft.FrameWork.WinForms.Classes.UtilInterface.CreateObject(this.GetType(), typeof(Neusoft.HISFC.BizProcess.Interface.IHE.IADT)) as Neusoft.HISFC.BizProcess.Interface.IHE.IADT;
            }
            if (this.adt != null)
            {
                this.adt.CancelDischargePatientMessage(patientInfo);
            }

            #endregion

            Neusoft.FrameWork.Management.PublicTrans.Commit();
            MessageBox.Show(managerRADT.Err);
            this.Refresh();
            this.ClearPatintInfo();
            return(1);
        }
        ///// <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("取消成功");
        }
Exemple #19
0
        /// <summary>
        /// 对传入的申请数据打印门诊标签
        /// </summary>
        /// <param name="alOutData">申请数据</param>
        /// <returns>成功返回1 出错返回-1</returns>
        internal static int PrintLabelForOutpatient(ArrayList alOutData)
        {
            if (Function.IDrugPrint == null)
            {
                System.Windows.Forms.MessageBox.Show("未正确设置摆药单打印接口.");
                return(-1);
            }
            if (alOutData.Count <= 0)
            {
                return(1);
            }

            string strPID = "";

            ArrayList al = new ArrayList( );

            Neusoft.HISFC.Models.Registration.Register patiRegister = new Neusoft.HISFC.Models.Registration.Register( );
            Neusoft.HISFC.Models.RADT.PatientInfo      patiPerson   = new Neusoft.HISFC.Models.RADT.PatientInfo( );

            Neusoft.HISFC.BizProcess.Integrate.RADT     radtManager = new Neusoft.HISFC.BizProcess.Integrate.RADT( );
            Neusoft.FrameWork.Management.DataBaseManger dataManager = new Neusoft.FrameWork.Management.DataBaseManger( );

            foreach (Neusoft.HISFC.Models.Pharmacy.ApplyOut temp in alOutData)
            {
                temp.User01 = "";
                if (temp.PatientNO == strPID)
                {
                    al.Add(temp);
                }
                else
                {
                    if (al.Count > 0)
                    {
                        #region 标签打印赋值
                        patiPerson          = radtManager.GetPatientInfomation(strPID);
                        patiRegister.Name   = patiPerson.Name;
                        patiRegister.Sex    = patiPerson.Sex;
                        patiRegister.Age    = dataManager.GetAge(patiPerson.Birthday);
                        patiRegister.User02 = al.Count.ToString( );

                        Function.IDrugPrint.OutpatientInfo = patiRegister;
                        Function.IDrugPrint.LabelTotNum    = al.Count;
                        Function.IDrugPrint.DrugTotNum     = al.Count;

                        string privCombo = "";

                        ArrayList alCombo = new ArrayList( );

                        foreach (Neusoft.HISFC.Models.Pharmacy.ApplyOut info in al)
                        {
                            if (privCombo == "-1" || (privCombo == info.CombNO && info.CombNO != ""))
                            {
                                alCombo.Add(info);
                                privCombo = info.CombNO;
                                continue;
                            }
                            else                        //不同处方号
                            {
                                if (alCombo.Count > 0)
                                {
                                    if (alCombo.Count == 1)
                                    {
                                        Function.IDrugPrint.AddSingle(alCombo[0] as Neusoft.HISFC.Models.Pharmacy.ApplyOut);
                                    }
                                    else
                                    {
                                        Function.IDrugPrint.AddCombo(alCombo);
                                    }
                                    Function.IDrugPrint.Print( );
                                }

                                privCombo = info.CombNO;
                                alCombo   = new ArrayList( );

                                alCombo.Add(info);
                            }
                        }
                        if (alCombo.Count == 0)
                        {
                            return(1);
                        }
                        if (alCombo.Count > 1)
                        {
                            Function.IDrugPrint.AddCombo(alCombo);
                        }
                        else
                        {
                            Function.IDrugPrint.AddSingle(alCombo[0] as Neusoft.HISFC.Models.Pharmacy.ApplyOut);
                        }

                        Function.IDrugPrint.Print( );

                        #endregion
                    }

                    al = new ArrayList( );
                    al.Add(temp);
                    strPID = temp.PatientNO;
                }
            }

            if (al.Count > 0)
            {
                #region 标签打印赋值
                patiPerson          = radtManager.GetPatientInfomation(strPID);
                patiRegister.Name   = patiPerson.Name;
                patiRegister.Sex    = patiPerson.Sex;
                patiRegister.Age    = dataManager.GetAge(patiPerson.Birthday);
                patiRegister.User02 = al.Count.ToString( );

                Function.IDrugPrint.OutpatientInfo = patiRegister;
                Function.IDrugPrint.LabelTotNum    = al.Count;
                Function.IDrugPrint.DrugTotNum     = al.Count;

                string privCombo = "-1";

                ArrayList alCombo = new ArrayList( );

                foreach (Neusoft.HISFC.Models.Pharmacy.ApplyOut info in al)
                {
                    if (privCombo == "-1" || (privCombo == info.CombNO && info.CombNO != ""))
                    {
                        alCombo.Add(info);
                        privCombo = info.CombNO;
                        continue;
                    }
                    else                        //不同处方号
                    {
                        if (alCombo.Count == 1)
                        {
                            Function.IDrugPrint.AddSingle(alCombo[0] as Neusoft.HISFC.Models.Pharmacy.ApplyOut);
                        }
                        else
                        {
                            Function.IDrugPrint.AddCombo(alCombo);
                        }
                        Function.IDrugPrint.Print( );

                        privCombo = info.CombNO;
                        alCombo   = new ArrayList( );

                        alCombo.Add(info);
                    }
                }
                if (alCombo.Count == 0)
                {
                    return(1);
                }
                if (alCombo.Count > 1)
                {
                    Function.IDrugPrint.AddCombo(alCombo);
                }
                else
                {
                    Function.IDrugPrint.AddSingle(alCombo[0] as Neusoft.HISFC.Models.Pharmacy.ApplyOut);
                }

                Function.IDrugPrint.Print( );

                #endregion
            }

            return(1);
        }
Exemple #20
0
        /// <summary>
        /// 门诊号 住院号
        /// </summary>
        /// <param name="InpatientNo"></param>
        /// <returns></returns>
        public int LoadInfo(string InpatientNo)
        {
            if (InpatientNo == null || InpatientNo == "")
            {
                patientInfo = null;
                MessageBox.Show("传入的住院流水号为空");
                return(-1);
            }

            Neusoft.HISFC.BizProcess.Integrate.RADT radtIntegrate = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            Neusoft.HISFC.BizProcess.Integrate.Registration.Registration registerIntegrate = new Neusoft.HISFC.BizProcess.Integrate.Registration.Registration();

            //{8BC09475-C1D9-4765-918B-299E21E04C74} 诊断录入增加医生站、门诊医生站、病案室属性
            if (Enumdiaginput == enumDiagInput.order)//住院医生
            {
                //从住院主表中查旬
                patientInfo = radtIntegrate.GetPatientInfomation(InpatientNo);
                if (patientInfo == null)
                {
                    Neusoft.HISFC.Models.Registration.Register obj = registerIntegrate.GetByClinic(InpatientNo);
                    if (obj == null)
                    {
                        MessageBox.Show("查询病人信息出错");
                        return(-1);
                    }
                    patientInfo           = new Neusoft.HISFC.Models.RADT.PatientInfo();
                    patientInfo.ID        = obj.ID;
                    patientInfo.CaseState = "1";
                }
                //this.ucDiagNoseInput1.LoadInfo(patientInfo, Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.DOC);
                this.ucDiagNoseInput1.LoadInfo(patientInfo, Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.DOC, enumdiaginput.ToString());
            }
            else if (Enumdiaginput == enumDiagInput.outPatientOrder)//门诊医生
            {
                Neusoft.HISFC.Models.Registration.Register obj = registerIntegrate.GetByClinic(InpatientNo);
                if (obj == null)
                {
                    MessageBox.Show("查询病人信息出错");
                    return(-1);
                }
                patientInfo            = new Neusoft.HISFC.Models.RADT.PatientInfo();
                patientInfo.ID         = obj.ID;
                patientInfo.PID.CardNO = obj.PID.CardNO;
                patientInfo.CaseState  = "1";
                this.ucDiagNoseInput1.LoadInfo(patientInfo, Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.DOC, enumdiaginput.ToString());
            }
            else if (Enumdiaginput == enumDiagInput.cas)
            {
                //从住院主表中查旬
                patientInfo = radtIntegrate.GetPatientInfomation(InpatientNo);
                if (patientInfo == null)
                {
                    Neusoft.HISFC.Models.Registration.Register obj = registerIntegrate.GetByClinic(InpatientNo);
                    if (obj == null)
                    {
                        MessageBox.Show("查询病人信息出错");
                        return(-1);
                    }
                    patientInfo           = new Neusoft.HISFC.Models.RADT.PatientInfo();
                    patientInfo.ID        = obj.ID;
                    patientInfo.CaseState = "1";
                }
                this.ucDiagNoseInput1.LoadInfo(patientInfo, Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.CAS, enumdiaginput.ToString());
            }

            this.ucDiagNoseInput1.fpEnterSaveChanges();
            if (this.ucDiagNoseInput1.GetfpSpreadRowCount() == 0)
            {
                this.ucDiagNoseInput1.AddRow();
            }
            return(1);
        }
Exemple #21
0
        /// <summary>
        /// {CB2F6DC4-F9C6-4756-A118-CEDB907C39EC}
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        private int ValidInstate(Neusoft.FrameWork.Models.NeuObject obj)
        {
            Neusoft.HISFC.BizProcess.Integrate.RADT radtIntegrate = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            Neusoft.HISFC.Models.RADT.PatientInfo   patientInfo   = null;


            if (obj is OperationRecord)
            {
                OperationRecord tempObj = obj as OperationRecord;

                if (tempObj.OperationAppllication.PatientSouce == "2")
                {
                    patientInfo = radtIntegrate.GetPatientInfomation(tempObj.OperationAppllication.PatientInfo.ID);

                    if (patientInfo == null)
                    {
                        MessageBox.Show(radtIntegrate.Err);

                        return(-1);
                    }



                    //if ((Neusoft.HISFC.Models.Base.EnumInState)this.patientInfo.PVisit.InState.ID == Neusoft.HISFC.Models.Base.EnumInState.N
                    //    || (Neusoft.HISFC.Models.Base.EnumInState)this.patientInfo.PVisit.InState.ID == Neusoft.HISFC.Models.Base.EnumInState.O)
                    if (patientInfo.PVisit.InState.ID.ToString() == Neusoft.HISFC.Models.Base.EnumInState.N.ToString() || patientInfo.PVisit.InState.ID.ToString() == Neusoft.HISFC.Models.Base.EnumInState.O.ToString())
                    {
                        Neusoft.FrameWork.WinForms.Classes.Function.Msg("该患者已经出院!", 111);

                        return(-1);
                    }
                }
            }
            if (obj is OperationAppllication)
            {
                OperationAppllication tempOA = obj as OperationAppllication;

                if (tempOA.PatientSouce == "2")
                {
                    patientInfo = radtIntegrate.GetPatientInfomation(tempOA.PatientInfo.ID);

                    if (patientInfo == null)
                    {
                        MessageBox.Show(radtIntegrate.Err);

                        return(-1);
                    }



                    //if ((Neusoft.HISFC.Models.Base.EnumInState)this.patientInfo.PVisit.InState.ID == Neusoft.HISFC.Models.Base.EnumInState.N
                    //    || (Neusoft.HISFC.Models.Base.EnumInState)this.patientInfo.PVisit.InState.ID == Neusoft.HISFC.Models.Base.EnumInState.O)
                    if (patientInfo.PVisit.InState.ID.ToString() == Neusoft.HISFC.Models.Base.EnumInState.N.ToString() || patientInfo.PVisit.InState.ID.ToString() == Neusoft.HISFC.Models.Base.EnumInState.O.ToString())
                    {
                        Neusoft.FrameWork.WinForms.Classes.Function.Msg("该患者已经出院!", 111);

                        return(-1);
                    }
                }
            }

            return(1);
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (this.cmbNewDept.Tag == null || this.cmbNewDept.Tag.ToString() == "")
            {
                MessageBox.Show("请选择要转入的科室!");
                return;
            }
            //{F0BF027A-9C8A-4bb7-AA23-26A5F3539586}
            if (this.cmbNewNurse.Tag == null || this.cmbNewNurse.Tag.ToString() == "")
            {
                MessageBox.Show("请选择要转入的科室!");
                return;
            }

            Neusoft.FrameWork.Models.NeuObject dept = new Neusoft.FrameWork.Models.NeuObject();
            dept.ID   = this.cmbNewDept.Tag.ToString();
            dept.Name = this.cmbNewDept.Text;
            dept.Memo = this.txtNote.Text;

            //{F0BF027A-9C8A-4bb7-AA23-26A5F3539586}
            Neusoft.FrameWork.Models.NeuObject nurseCell = new Neusoft.FrameWork.Models.NeuObject();
            nurseCell.ID   = this.cmbNewNurse.Tag.ToString();
            nurseCell.Name = this.cmbNewNurse.Text;

            #region add by xuewj 2010-10-19 临床路径接口 {10962AE3-C0B9-4cf7-91B6-CA956C1AFC2D}
            if (this.iClinicPath != null)
            {
                if (this.iClinicPath.PatientIsSelectedPath(this.patientInfo.ID))
                {
                    MessageBox.Show("该患者在临床路径中,请先退出路径!");
                    return;
                }
            }
            #endregion

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

            //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance);
            Neusoft.HISFC.BizProcess.Integrate.RADT radt = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            //t.BeginTransaction();
            //radt.SetTrans(t.Trans);
            //{F0BF027A-9C8A-4bb7-AA23-26A5F3539586}
            if (radt.ShiftOut(this.patientInfo, dept, nurseCell, this.patientInfo.User03, this.isCancel) == -1)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
            }
            else
            {
                Neusoft.FrameWork.Management.PublicTrans.Commit();
                if (bSaveAndClose)
                {
                    dialogResult = DialogResult.OK;
                    this.FindForm().Close();
                    return;
                }
            }

            MessageBox.Show(radt.Err);

            base.OnRefreshTree();//刷新树
        }
        /// <summary>
        /// 保存设置
        /// </summary>
        public virtual int Save()
        {
            //取婴儿接珍时的信息信息
            Neusoft.HISFC.Models.RADT.PatientInfo PatientInfo = null;

            //取患者最新的住院主表信息
            PatientInfo = this.Inpatient.QueryPatientInfoByInpatientNO(this.patientInfo.ID);
            if (this.patientInfo == null)
            {
                MessageBox.Show(this.Inpatient.Err);
                return(-1);
            }

            //换医生时,如果患者已不在本科,则清空数据---当患者转科后,如果本窗口没有关闭,会出现此种情况
            if (PatientInfo.PVisit.PatientLocation.NurseCell.ID != this.NurseCell.ID &&
                this.arrivetype == ArriveType.ChangeDoc)
            {
                MessageBox.Show("患者已不在本病区,请刷新当前窗口");
                return(-1);
            }

            //如果患者已不是在院状态,则不允许操作
            if (PatientInfo.PVisit.InState.ID.ToString() != this.patientInfo.PVisit.InState.ID.ToString())
            {
                MessageBox.Show("患者信息已发生变化,请刷新当前窗口");
                return(-1);
            }

            //取变动信息:取医生、护士、科室等信息
            this.GetPatientInfo(PatientInfo);

            //判断是否已选择床位
            if (this.cmbBedNo.Text.Trim() == "" &&
                patientInfo.IsBaby == false)
            {
                MessageBox.Show("未选择床位!");
                return(-1);
            }

            //取处理时的床位信息
            Neusoft.HISFC.Models.Base.Bed bed = new Neusoft.HISFC.Models.Base.Bed();
            bed.ID          = this.cmbBedNo.Tag.ToString(); //床号
            bed.InpatientNO = patientInfo.ID;               //床位上患者住院流水号


            #region 业务处理
            Neusoft.HISFC.BizProcess.Integrate.RADT managerRADT = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance);
            Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();
            managerRADT.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

            //转科
            if (this.arrivetype == ArriveType.ShiftIn)
            {
                if (managerRADT.ShiftIn(PatientInfo, this.NurseCell, this.cmbBedNo.Tag.ToString()) == -1)//调用转科业务
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show(managerRADT.Err);
                    return(-1);
                }
                else
                {
                }
            }

            //接珍护理站为当前护理站(转入操作时,需要保留原护理站信息,所以在此处处理)
            PatientInfo.PVisit.PatientLocation.NurseCell = this.NurseCell;
            PatientInfo.PVisit.PatientLocation.Bed       = bed;

            //接诊
            if (this.arrivetype == ArriveType.Regedit)
            {
                if (managerRADT.ArrivePatient(PatientInfo, bed) == -1)//调用接诊业务
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show(managerRADT.Err);
                    return(-1);
                }
                else
                {
                }
            }

            //召回
            if (this.arrivetype == ArriveType.CallBack)
            {
                if (managerRADT.CallBack(PatientInfo, bed) == -1)//调用召回业务
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show(managerRADT.Err);
                    return(-1);
                }
                else
                {
                }
            }

            //换医师
            if (this.arrivetype == ArriveType.ChangeDoc)
            {
                if (managerRADT.ChangeDoc(PatientInfo) == -1)//调用换医生业务
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show(managerRADT.Err);
                    return(-1);
                }
                else
                {
                }
            }
            #endregion

            Neusoft.FrameWork.Management.PublicTrans.Commit();
            MessageBox.Show(managerRADT.Err);
            base.OnRefreshTree();//刷新树
            return(1);
        }
Exemple #24
0
        public void RefreshInfo()
        {
            this.Nodes.Clear();
            if (manager == null)
            {
                manager = new Neusoft.HISFC.BizProcess.Integrate.RADT();
            }

            ArrayList al = new ArrayList();

            Neusoft.HISFC.Models.Base.Employee per = Neusoft.FrameWork.Management.Connection.Operator as Neusoft.HISFC.Models.Base.Employee;

            //节点说明
            al.Add("分管患者|patient");
            try
            {
                ArrayList al1 = new ArrayList();

                al1 = this.manager.QueryPatientByHouseDoc(per, Neusoft.HISFC.Models.Base.EnumInState.I, per.Dept.ID);
                foreach (Neusoft.HISFC.Models.RADT.PatientInfo PatientInfo1 in al1)
                {
                    al.Add(PatientInfo1);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("查找分管患者出错\n!" + ex.Message + this.manager.Err);
            }

            al.Add("本科室患者|DeptPatient");
            addPatientList(al, Neusoft.HISFC.Models.Base.EnumInState.I);

            al.Add("会诊患者|ConsultationPatient");

            try
            {
                ArrayList al1 = new ArrayList();
                Neusoft.FrameWork.Management.DataBaseManger dbManager = new Neusoft.FrameWork.Management.DataBaseManger();
                DateTime dt  = dbManager.GetDateTimeFromSysDateTime();
                DateTime dt1 = new DateTime(dt.Year, dt.Month, dt.Day, 0, 0, 0, 0);
                DateTime dt2 = new DateTime(dt.Year, dt.AddDays(1).Month, dt.AddDays(1).Day, 0, 0, 0, 0);
                al1 = this.manager.QueryPatientByConsultation(dbManager.Operator, dt1, dt2, per.Dept.ID);
                foreach (Neusoft.HISFC.Models.RADT.PatientInfo PatientInfo1 in al1)
                {
                    al.Add(PatientInfo1);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("查找会诊患者出错\n!" + ex.Message + this.manager.Err);
            }

            al.Add("授权患者|PermissionPatient");

            try
            {
                ArrayList al1 = new ArrayList();
                al1 = this.manager.QueryPatientByPermission(Neusoft.FrameWork.Management.Connection.Operator);
                foreach (Neusoft.HISFC.Models.RADT.PatientInfo PatientInfo1 in al1)
                {
                    al.Add(PatientInfo1);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("查找授权患者出错\n!" + ex.Message + this.manager.Err);
            }

            try
            {
                al.Add("查找患者|QueryPatient");
            }
            catch (Exception ex)
            {
                MessageBox.Show("查找患者出错\n!" + ex.Message + this.manager.Err);
            }
            //{AC6A5576-BA29-4dba-8C39-E7C5EBC7671E} 增加医疗组处理
            al.Add("医疗组内患者|TeamPatient");

            if (this.medicalTeamForDoctBizlogic == null)
            {
                this.medicalTeamForDoctBizlogic = new Neusoft.HISFC.BizLogic.Order.MedicalTeamForDoct();
            }


            List <Neusoft.HISFC.Models.Order.Inpatient.MedicalTeamForDoct> medicalTeamForDoctList =
                this.medicalTeamForDoctBizlogic.QueryQueryMedicalTeamForDoctInfo(per.Dept.ID, per.ID);

            if (medicalTeamForDoctList == null)
            {
                MessageBox.Show("查询医疗组失败!\n" + this.medicalTeamForDoctBizlogic.Err);
            }

            if (medicalTeamForDoctList.Count > 0)
            {
                Neusoft.HISFC.Models.Order.Inpatient.MedicalTeamForDoct medcialObj = medicalTeamForDoctList[0];

                addPatientListMedialTeam(al, Neusoft.HISFC.Models.Base.EnumInState.I, medcialObj.MedcicalTeam.ID);
            }

            this.SetPatient(al);
        }
        /// <summary>
        /// 根据输入的住院号/门诊号 查询诊断信息
        /// </summary>
        /// <param name="patientInfo"></param>
        /// <param name="Type"></param>
        /// <returns>-1 出错 0 传入的病人信息为空,不作处理,1 不允许有病案,2病案已经封存,不允许医生修改和查阅 3 查询有数据 4查询没有数据  </returns>
        public int LoadInfo(string InpatientNO) //Neusoft.HISFC.Models.RADT.PatientInfo patientInfo, Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes Type)
        {
            try
            {
                if (this.fpEnter1_Sheet1.RowCount > 0)
                {
                    this.fpEnter1_Sheet1.Rows.Remove(0, this.fpEnter1_Sheet1.RowCount);
                }
                if (InpatientNO == null || InpatientNO == "")
                {
                    //没有该病人的信息
                    MessageBox.Show("请选择病人");
                    return(0);
                }
                this.inpatientNo = InpatientNO;
                Neusoft.HISFC.Models.RADT.PatientInfo   patient = new Neusoft.HISFC.Models.RADT.PatientInfo();
                Neusoft.HISFC.BizProcess.Integrate.RADT pa      = new Neusoft.HISFC.BizProcess.Integrate.RADT();// Neusoft.HISFC.BizLogic.RADT.InPatient();
                Neusoft.HISFC.BizProcess.Integrate.Registration.Registration register = new Neusoft.HISFC.BizProcess.Integrate.Registration.Registration();
                //从住院主表中查旬
                patient = pa.GetPatientInfoByPatientNO(InpatientNO);
                if (patient == null)
                {
                    Neusoft.HISFC.Models.Registration.Register obj = register.GetByClinic(InpatientNO);
                    if (obj == null)
                    {
                        MessageBox.Show("查询病人信息出错");
                        return(-1);
                    }
                    patient           = new Neusoft.HISFC.Models.RADT.PatientInfo();
                    patient.ID        = obj.ID;
                    patient.CaseState = "1";
                }

                if (patient.CaseState == "0")
                {
                    //不允许有病案
                    return(1);
                }
                //定义业务层的类

                Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase diag = new Neusoft.HISFC.BizProcess.Integrate.HealthRecord.HealthRecordBase();
                diagList = new ArrayList();

                if (frmType == Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.DOC) // 医生站录入病历
                {
                    #region  医生站录入病历


                    //目前允许有病历 并且目前没有录入病历  或者标志位位空(默认是允许录入病历)
                    // 医生站录入病例

                    if (patient.CaseState == null || patient.CaseState == "1" || patient.CaseState == "2")
                    {
                        //从医生站录入的信息中查询
                        diagList = diag.QueryCaseDiagnose(patient.ID, "%", Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.DOC);
                    }
                    else
                    {
                        // 病案已经封存已经不允许医生修改和查阅
                        return(2);
                    }

                    #endregion
                }
                else if (frmType == Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.CAS)//病案室录入病历
                {
                    #region 病案室录入病历

                    //目前允许有病历 并且目前没有录入病历  或者标志位位空(默认是允许录入病历)
                    if (patient.CaseState == null || patient.CaseState == "1" || patient.CaseState == "2")
                    {
                        //医生站已经录入病案

                        diagList = diag.QueryCaseDiagnose(patient.ID, "%", Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.DOC);
                    }
                    else if (patient.CaseState == "3")
                    {
                        //病案室已经录入病案

                        diagList = diag.QueryCaseDiagnose(patient.ID, "%", Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.CAS);
                    }
                    else if (patient.CaseState == "4")
                    {
                        //病案已经封存 不允许修改。

                        diagList = diag.QueryCaseDiagnose(patient.ID, "%", Neusoft.HISFC.Models.HealthRecord.EnumServer.frmTypes.CAS);
                        this.fpEnter1_Sheet1.OperationMode = FarPoint.Win.Spread.OperationMode.ReadOnly;
                    }

                    #endregion
                }
                else
                {
                    //没有传入参数 不作任何处理
                }

                if (diagList != null)
                {
                    //查询有数据

                    AddInfoToFP(diagList);
                    return(3);
                }
                else
                {//查询没有数据
                    return(4);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(-1);
            }
        }