protected override int OnDrawTree()
        {
            if (tvLeft == null)
            {
                return(-1);
            }

            Neusoft.HISFC.Models.RADT.InStateEnumService inState = new Neusoft.HISFC.Models.RADT.InStateEnumService();

            inState.ID = Neusoft.HISFC.Models.Base.EnumInState.I.ToString();

            ArrayList emplList = managerIntegrate.QueryPatientBasic(base.employee.Dept.ID, inState);

            TreeNode parentTreeNode = new TreeNode("±¾¿Æ»¼Õß");

            tvLeft.Nodes.Add(parentTreeNode);
            foreach (Neusoft.HISFC.Models.RADT.PatientInfo empl in emplList)
            {
                TreeNode emplNode = new TreeNode();
                emplNode.Tag  = empl.ID;
                emplNode.Text = empl.Name;
                parentTreeNode.Nodes.Add(emplNode);
            }

            parentTreeNode.ExpandAll();

            return(base.OnDrawTree());
        }
Exemplo n.º 2
0
        /// <summary>
        /// 根据科室刷新患者列表
        /// </summary>
        /// <param name="deptObj"></param>
        private void RefreshListPatient(Neusoft.FrameWork.Models.NeuObject deptObj)
        {
            Neusoft.HISFC.Models.RADT.InStateEnumService enumState = new Neusoft.HISFC.Models.RADT.InStateEnumService();
            //在院状态
            enumState.ID = Neusoft.HISFC.Models.Base.EnumInState.I.ToString();
            ArrayList al = radtInteger.QueryPatientByDeptCode(deptObj.ID, enumState);

            //预约出院状态
            enumState.ID = Neusoft.HISFC.Models.Base.EnumInState.P.ToString();
            ArrayList al1 = radtInteger.QueryPatientByDeptCode(deptObj.ID, enumState);

            if (al == null)
            {
                al = al1;
            }
            else
            {
                if (al1 != null)
                {
                    al.AddRange(al1);
                }
            }
            listPatient.Items.Clear();
            if (al != null)
            {
                this.listPatient.Items.AddRange(al.ToArray());
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 患者查询-根据输入在院状态参数查询全院所有患者
        /// </summary>
        /// <param name="State">住院状态</param>
        /// <returns></returns>
        public ArrayList PatientQueryByState(Neusoft.HISFC.Models.RADT.InStateEnumService State)
        {
            #region 接口说明
            //RADT.Inpatient.PatientQuery.where.6
            //传入:科室编码,住院状态
            //传出:患者信息
            #endregion
            ArrayList al = new ArrayList();
            string    sql1 = "", sql2 = "";
            sql1 = PatientQuerySelect();
            if (sql1 == null)
            {
                return(null);
            }

            if (this.Sql.GetSql("RADT.Inpatient.PatientQuery.WebQuery.ByState", ref sql2) == -1)
            {
                this.Err     = "没有找到RADT.Inpatient.PatientQuery.WebQuery.ByState字段!";
                this.ErrCode = "-1";
                this.WriteErr();
                return(null);
            }
            sql2 = " " + string.Format(sql2, State.ID.ToString());
            return(this.myPatientQuery(sql1 + sql2));
        }
Exemplo n.º 4
0
 public virtual System.Collections.ArrayList QueryPatientByDept(string deptCode)
 {
     Neusoft.HISFC.BizLogic.RADT.InPatient manager = new Neusoft.HISFC.BizLogic.RADT.InPatient();
     this.SetDB(manager);
     Neusoft.HISFC.Models.RADT.InStateEnumService instate = new Neusoft.HISFC.Models.RADT.InStateEnumService();
     instate.ID = "I";
     return(manager.PatientQuery(deptCode, instate));
 }
Exemplo n.º 5
0
        private void btSearch_Click(object sender, EventArgs e)
        {
            if (this.neuFpEnter1_Sheet1.Rows.Count > 0)
            {
                this.neuFpEnter1_Sheet1.Rows.Remove(0, this.neuFpEnter1_Sheet1.Rows.Count);; //.ClearRange(0, 0, this.neuFpEnter1_Sheet1.Rows.Count, this.neuFpEnter1_Sheet1.Columns.Count, true);
            }
            if (this.radDept.Checked)
            {
                if (this.cmbDept.Tag == null || this.cmbState.SelectedItem == null)
                {
                    MessageBox.Show("请选择科室和状态!");
                    this.cmbDept.Focus();
                    return;
                }
                else
                {
                    Neusoft.HISFC.Models.RADT.InStateEnumService state = new Neusoft.HISFC.Models.RADT.InStateEnumService();
                    state.ID = this.cmbState.SelectedItem.ID;
                    //this.QueryByDept(this.cmbDept.Tag.ToString(), this.cmbState.SelectedItem as Neusoft.HISFC.Models.RADT.InStateEnumService);
                    this.QueryByDept(this.cmbDept.Tag.ToString(), state);
                }
            }

            else if (this.radInDate.Checked)
            {
                if (this.dtpBegin.Value > this.dtpEnd.Value)
                {
                    MessageBox.Show("查询起始时间不能大于结束时间!");
                    this.dtpBegin.Focus();
                    return;
                }
                else
                {
                    this.QueryByInDate();
                }
            }

            else if (this.radInpatientNo.Checked)
            {
                if (this.txtInpatientNo.Text == "")
                {
                    MessageBox.Show("请输入住院号!");
                    this.txtInpatientNo.Focus();
                    return;
                }
                else
                {
                    this.QueryByPatientNO();
                }
            }
            else if (this.radAll.Checked)
            {
                this.QueryAll();
            }
        }
Exemplo n.º 6
0
        protected override int OnQuery(object sender, object neuObject)
        {
            if (this.radDept.Checked)
            {
                if (this.cmbDept.Tag == null)
                {
                    MessageBox.Show("请选择科室!");
                    this.cmbDept.Focus();
                    return(-1);
                }
                else
                {
                    //modify by pantiejun 2008-4-8
                    Neusoft.HISFC.Models.RADT.InStateEnumService state = new Neusoft.HISFC.Models.RADT.InStateEnumService();
                    state.ID = this.cmbState.SelectedItem.ID;
                    //if (this.QueryByDept(this.cmbDept.Tag.ToString(), this.cmbState.SelectedItem as Neusoft.HISFC.Models.RADT.InStateEnumService) == -1)
                    if (this.QueryByDept(this.cmbDept.Tag.ToString(), state) == -1)
                    {
                        MessageBox.Show("没有符合条件的患者!");
                        this.cmbDept.Focus();
                        return(-1);
                    }
                }
            }

            else if (this.radInDate.Checked)
            {
                if (this.dtpBegin.Value > this.dtpEnd.Value)
                {
                    MessageBox.Show("查询起始时间不能大于结束时间!");
                    this.dtpBegin.Focus();
                    return(-1);
                }
                if (this.QueryByInDate() == -1)
                {
                    MessageBox.Show("没有符合条件的患者!");
                    this.dtpBegin.Focus();
                    return(-1);
                }
            }

            else if (this.radInpatientNo.Checked)
            {
                if (this.txtInpatientNo.Text == "")
                {
                    MessageBox.Show("请输入住院号!");
                    this.txtInpatientNo.Focus();
                    return(-1);
                }
                this.QueryByPatientNo();
            }

            return(base.OnQuery(sender, neuObject));
        }
Exemplo n.º 7
0
        /// <summary>
        /// 按科室查询
        /// </summary>
        /// <param name="deptCode"></param>
        /// <param name="state"></param>
        /// <returns>0 成功; -1 失败 ; -2 没有符合的患者</returns>
        private int  QueryByDept(string deptCode, Neusoft.HISFC.Models.RADT.InStateEnumService state)
        {
            this.fpSheetView.Columns[0].Label = "住院号";
            this.fpSheetView.Columns[1].Label = "姓名";
            ArrayList alPatients = Neusoft.HISFC.BizProcess.Factory.Function.IntegrateRADT.QueryPatientByDept(deptCode, state);

            if (alPatients == null || alPatients.Count == 0)
            {
                return(-1);
            }

            this.QueryQcDate(alPatients);
            return(0);
        }
Exemplo n.º 8
0
        protected override void OnLoad(EventArgs e)
        {
            if (!DesignMode)
            {
                this.alDepts = Neusoft.HISFC.BizProcess.Factory.Function.IntegrateManager.GetDeptment(Neusoft.HISFC.Models.Base.EnumDepartmentType.I);
                this.cmbDept.AddItems(this.alDepts);
                Neusoft.HISFC.Models.RADT.InStateEnumService instate = new Neusoft.HISFC.Models.RADT.InStateEnumService();

                this.cmbState.AddItems(Neusoft.HISFC.Models.RADT.InStateEnumService.List());

                this.alConditions = Neusoft.HISFC.BizProcess.Factory.Function.IntegrateEPR.GetQCConditionList();
                string conditionXml = Neusoft.HISFC.BizProcess.Factory.Function.IntegrateEPR.GetSetting("1");
                if (!string.IsNullOrEmpty(conditionXml))
                {
                    try
                    {
                        System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(ArrayList), new Type[] { typeof(Neusoft.HISFC.Models.EPR.QCCondition), typeof(Neusoft.HISFC.Models.EPR.QCConditions), typeof(Neusoft.FrameWork.Models.NeuObject) });
                        System.IO.StringReader sr = new System.IO.StringReader(conditionXml);
                        this.alSelectedConditions = xs.Deserialize(sr) as ArrayList;
                    }
                    catch { }
                }
                if (this.alConditions != null)
                {
                    this.alConditionIDs = new ArrayList();
                    this.neuFpEnter1_Sheet1.ColumnHeader.Rows[0].Height = 59F;
                    this.neuFpEnter1_Sheet1.ColumnCount         = this.alConditions.Count + 3;
                    this.neuFpEnter1_Sheet1.Columns[0].Label    = "患者编码";
                    this.neuFpEnter1_Sheet1.Columns[0].CellType = new FarPoint.Win.Spread.CellType.TextCellType();
                    this.neuFpEnter1_Sheet1.Columns[1].Label    = "患者姓名";
                    this.neuFpEnter1_Sheet1.Columns[1].CellType = new FarPoint.Win.Spread.CellType.TextCellType();
                    this.neuFpEnter1_Sheet1.Columns[2].Label    = "统计时间";
                    for (int i = 0; i < this.alConditions.Count; i++)
                    {
                        this.neuFpEnter1_Sheet1.Columns[i + 3].Label = this.alConditions[i].ToString();
                        this.alConditionIDs.Add((this.alConditions[i] as Neusoft.HISFC.Models.EPR.QCConditions).ID);
                    }
                    //this.neuFpEnter1_Sheet1.Columns[2].Width = 0;
                    //this.neuFpEnter1_Sheet1.Columns[2].Visible = false;
                }
                this.timer.Interval = 1000;//1秒
                this.timer.Tick    += new EventHandler(timer_Tick);
            }
            base.OnLoad(e);
        }
Exemplo n.º 9
0
        private void QueryByDept(string deptCode, Neusoft.HISFC.Models.RADT.InStateEnumService state)
        {
            ArrayList alPatients = Neusoft.HISFC.BizProcess.Factory.Function.IntegrateRADT.QueryPatientByDept(deptCode, state);
            string    patienNOs  = string.Empty;

            foreach (Neusoft.HISFC.Models.RADT.Patient patient in alPatients)
            {
                patienNOs += ",'" + patient.ID + "'";
            }
            if (!string.IsNullOrEmpty(patienNOs))
            {
                patienNOs = patienNOs.Substring(1); //去掉前面的","
                ArrayList al = Neusoft.HISFC.BizProcess.Factory.Function.IntegrateEPR.QueryQCStatByPatientNO(patienNOs);
                this.FillPF(al);
            }
            else
            {
                MessageBox.Show("没有检索到相关数据!");
                return; //如果部门内的patien为空则无需检索,直接返回
            }
        }
Exemplo n.º 10
0
        private ArrayList alSelectedCondition;//add by pantiejun 2008-4-1
        #endregion

        #region 初始化
        protected override void OnLoad(EventArgs e)
        {
            this.alDepts = Neusoft.HISFC.BizProcess.Factory.Function.IntegrateManager.GetDeptment(Neusoft.HISFC.Models.Base.EnumDepartmentType.I);
            this.cmbDept.AddItems(this.alDepts);
            Neusoft.HISFC.Models.RADT.InStateEnumService instate = new Neusoft.HISFC.Models.RADT.InStateEnumService();

            this.cmbState.AddItems(Neusoft.HISFC.Models.RADT.InStateEnumService.List());

            this.alConditions = Neusoft.HISFC.BizProcess.Factory.Function.IntegrateEPR.GetQCConditionList();

            #region modified by pantiejun 2008-4-1 begin

            string conditionXml = Neusoft.HISFC.BizProcess.Factory.Function.IntegrateEPR.GetSetting("1");
            if (!string.IsNullOrEmpty(conditionXml))
            {
                try
                {
                    XmlSerializer          xs = new XmlSerializer(typeof(ArrayList), new Type[] { typeof(Neusoft.HISFC.Models.EPR.QCCondition), typeof(Neusoft.HISFC.Models.EPR.QCConditions), typeof(Neusoft.FrameWork.Models.NeuObject) });
                    System.IO.StringReader sr = new System.IO.StringReader(conditionXml);
                    this.alSelectedCondition = xs.Deserialize(sr) as ArrayList;
                    this.InitFp();
                }catch {}
            }
            else
            {
                if (this.alConditions != null)
                {
                    this.InitFp();
                }
                else
                {
                    MessageBox.Show("获取质控条件错误!");
                }
            }
            #endregion modified by pantiejun 2008-4-1 end
            base.OnLoad(e);
        }
Exemplo n.º 11
0
        private void btSave_Click(object sender, System.EventArgs e)
        {
            //取患者主表中最新的信息,用来判断并发
            Neusoft.HISFC.Models.RADT.PatientInfo patient = this.inpatientManager.QueryPatientInfoByInpatientNO(this.MomInfo.ID);
            if (patient == null)
            {
                MessageBox.Show(this.inpatientManager.Err);
                return;
            }
            //如果患者已不是在院状态,则不允许操作
            if (patient.PVisit.InState.ID.ToString() != this.MomInfo.PVisit.InState.ID.ToString())
            {
                MessageBox.Show("患者信息已发生变化,请刷新当前窗口", "提示");
                return;
            }

            #region 判断是否是数字{E6D400EC-44C8-42f7-B4EE-E4D05A7D1E2C}
            try
            {
                Convert.ToDecimal(this.txtHeight.Text);
                Convert.ToDecimal(this.txtWeight.Text);
            }
            catch (Exception)
            {
                MessageBox.Show("身高,体重只能录入数字");
                return;
            }
            #endregion
            //控制只有母亲才能做婴儿登记
            if (this.MomInfo.Sex.ID.ToString() != "F" || this.MomInfo.ID.Substring(4, 1) == "B")
            {
                MessageBox.Show("只有母亲才能做婴儿登记!", "提示");
                return;
            }

            if (cmbSex.Text == "")
            {
                MessageBox.Show("请选择性别", "提示");
                return;
            }

            //取控件中填写的婴儿信息
            //Neusoft.HISFC.Models.RADT.PatientInfo  objBaby = new Neusoft.HISFC.Models.RADT.PatientInfo();
            this.GetBabyInfo();

            if (Neusoft.FrameWork.Public.String.ValidMaxLengh(this.BabyInfo.Name, 20) == false)
            {
                MessageBox.Show("名称不能超过10个汉字或者20个英文字符,请重新输入!", "名称过长");
                return;
            }
            ////判断身高是否为数字
            //for (int i = 0, j = this.txtHeight.Text.Length; i < j; i++)
            //{
            //    if (!char.IsDigit(this.txtHeight.Text, i))
            //    {
            //        //可以说明是第几个字符错误了
            //        MessageBox.Show("身高必须是数字", "提示", MessageBoxButtons.OK);
            //        return;
            //    }
            //}
            ////判断体重是否为数字
            //for (int i = 0, j = this.txtWeight.Text.Length; i < j; i++)
            //{
            //    if (!char.IsDigit(this.txtWeight.Text, i))
            //    {
            //        //可以说明是第几个字符错误了
            //        MessageBox.Show("体重必须是数字", "提示", MessageBoxButtons.OK);
            //        return;
            //    }
            //}
            //性别不为空时

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

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

            this.inpatientManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

            try
            {
                this.InpatientNo = this.BabyInfo.ID;
                //如果是新登记的婴儿,则登记婴儿表和患者住院主表信息,否则更新婴儿表和患者住院主表
                if (this.isNew)
                {
                    //登记婴儿表
                    if (this.inpatientManager.InsertNewBabyInfo(this.BabyInfo) != 1)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("保存失败!" + this.inpatientManager.Err, "提示");
                        return;
                    }

                    //登记患者主表
                    if (this.inpatientManager.InsertPatient(this.BabyInfo) == -1)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("保存失败!" + this.inpatientManager.Err, "提示");
                        return;
                    }

                    //更新变更记录主表
                    if (this.inpatientManager.SetShiftData(this.BabyInfo.ID, Neusoft.HISFC.Models.Base.EnumShiftType.B, "入院登记",
                                                           this.BabyInfo.PVisit.PatientLocation.Dept, this.BabyInfo.PVisit.PatientLocation.Dept) < 0)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("保存失败!" + this.inpatientManager.Err, "提示");
                        return;
                    }

                    //更新变更记录
                    this.BabyInfo.PVisit.PatientLocation.Bed.Name = this.BabyInfo.PVisit.PatientLocation.Bed.ID;
                    if (this.inpatientManager.SetShiftData(this.BabyInfo.ID, Neusoft.HISFC.Models.Base.EnumShiftType.K, "接诊",
                                                           this.BabyInfo.PVisit.PatientLocation.NurseCell, this.BabyInfo.PVisit.PatientLocation.Bed) < 0)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("保存失败!" + this.inpatientManager.Err, "提示");
                        return;
                    }

                    //更新病案标记,婴儿不登记病案
                    if (this.inpatientManager.UpdateCaseSend(this.BabyInfo.ID, false) != 1)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("保存失败!" + this.inpatientManager.Err, "提示");
                        return;
                    }

                    //更新母亲是否有婴儿标记
                    if (this.inpatientManager.UpdateMumBabyFlag(this.MomInfo.ID, true) != 1)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("保存失败!" + this.inpatientManager.Err, "提示");
                        return;
                    }

                    //登记婴儿住院主表中的在院状态
                    Neusoft.HISFC.Models.RADT.InStateEnumService status = new Neusoft.HISFC.Models.RADT.InStateEnumService();
                    status.ID = "I"; //住院登记
                    if (this.inpatientManager.UpdatePatientStatus(this.BabyInfo, status) != 1)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("保存失败!" + this.inpatientManager.Err, "提示");
                        return;
                    }

                    #region addby xuewj 2010-10-9 婴儿登记根据参数是否更新婴儿警戒线 {4759B4FB-BA7B-4ec1-BCAA-BB456A714776}
                    if (this.isUpdatePatientAlert == "1" && this.patientAlert != 0m)
                    {
                        if (this.inpatientManager.UpdatePatientAlert(this.BabyInfo.ID, patientAlert, "M", DateTime.MinValue, DateTime.MinValue) == -1)
                        {
                            Neusoft.FrameWork.Management.PublicTrans.RollBack();
                            MessageBox.Show("保存失败!" + this.inpatientManager.Err, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                        }
                    }
                    #endregion
                }
                else
                {
                    //更新患者住院主表(更新主表的同时,会更新婴儿表)
                    if (this.inpatientManager.UpdatePatient(this.BabyInfo) != 1)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("保存失败!" + this.inpatientManager.Err, "提示");
                        return;
                    }
                }

                //提交数据库
                Neusoft.FrameWork.Management.PublicTrans.Commit();
                //如果是新登记婴儿,则在患者列表中插入一个新节点,否则更新节点
                if (this.isNew)
                {
                    this.tv.AddTreeNode(0, this.BabyInfo);
                }
                else
                {
                    //查找婴儿所在的节点,并修改此节点
                    TreeNode node = this.tv.FindNode(0, this.BabyInfo);
                    if (node != null)
                    {
                        this.tv.ModifiyNode(node, this.BabyInfo);
                    }
                }
                MessageBox.Show("保存成功!");

                //刷新婴儿列表
                RefreshList(this.MomInfo.ID);

                ShowBabyInfo(this.BabyInfo);
                base.OnRefreshTree();
            }
            catch (Exception ex)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show(ex.Message);
                return;
            }
        }
Exemplo n.º 12
0
        private void btCancel_Click(object sender, System.EventArgs e)
        {
            if (this.txtInpatientNo.Text == "")
            {
                MessageBox.Show("请选择预取消的婴儿!", "提示");
                return;
            }

            try
            {
                string sPatientNo = this.MomInfo.PID.PatientNO;
                sPatientNo = "B" + this.txtInpatientNo.Tag.ToString() + sPatientNo.Substring(2);
                sPatientNo = MomInfo.ID.Substring(0, 4) + sPatientNo;

                Neusoft.HISFC.Models.RADT.PatientInfo p = this.inpatientManager.QueryPatientInfoByInpatientNO(sPatientNo);
                if ((p.FT.TotCost + p.FT.BalancedCost) > 0)
                {
                    MessageBox.Show("该婴儿已经发生费用,不能取消!");
                    return;
                }

                #region {23EE5EA6-27CB-49c9-810A-310A1515D85E}
                if (p.FT.PrepayCost > 0)
                {
                    MessageBox.Show("该婴儿预交金额大于0,不能取消!");
                    return;
                }
                #endregion

                //取消婴儿

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

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

                this.inpatientManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

                if (this.inpatientManager.DiscardBabyRegister(this.BabyInfo.ID) < 0)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show("取消失败!" + this.inpatientManager.Err);
                }
                else
                {
                    Neusoft.HISFC.Models.RADT.InStateEnumService status = new Neusoft.HISFC.Models.RADT.InStateEnumService();
                    status.ID = "C";
                    p.ID      = sPatientNo;
                    if (this.inpatientManager.UpdatePatientStatus(p, status) == -1)
                    {//更新为住院
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show("取消登记失败!" + this.inpatientManager.Err);
                    }
                    else
                    {
                        Neusoft.FrameWork.Management.PublicTrans.Commit();
                        //查找婴儿所在的节点,并删除此节点
                        TreeNode node = this.tv.FindNode(0, this.BabyInfo);
                        if (node != null)
                        {
                            node.Remove();
                        }

                        //刷新婴儿列表
                        RefreshList(this.MomInfo.ID);
                        this.BabyInfo = null;
                        MessageBox.Show("取消登记成功!", "提示");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemplo n.º 13
0
        private void SelectPatient()
        {
            lst      = new ListBox();
            lst.Dock = System.Windows.Forms.DockStyle.Fill;

            this.listform = new System.Windows.Forms.Form();
            //用窗口显示
            try
            {
                //this.listform.Close();
            }
            catch { }
            listform.Size            = new Size(200, 100);
            listform.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
            Neusoft.HISFC.Models.Base.Employee        user        = new Neusoft.HISFC.Models.Base.Employee();
            Neusoft.HISFC.BizLogic.Manager.Department managerDept = new Neusoft.HISFC.BizLogic.Manager.Department();
            for (int i = 0; i < this.alInpatientNos.Count; i++)
            {
                Neusoft.FrameWork.Models.NeuObject obj;
                obj = (Neusoft.FrameWork.Models.NeuObject) this.alInpatientNos[i];
                Neusoft.HISFC.Models.RADT.InStateEnumService VisitStatus = new Neusoft.HISFC.Models.RADT.InStateEnumService();
                VisitStatus.ID = obj.Memo;
                bool b = false;
                switch (this.myShowState)//过滤患者状态
                {
                case enuShowState.InHos:
                    if (obj.Memo == "I")
                    {
                        b = true;
                    }
                    break;

                case enuShowState.OutHos:
                    if (obj.Memo == "B" || obj.Memo == "O" || obj.Memo == "P" || obj.Memo == "N")
                    {
                        b = true;
                    }
                    break;

                case enuShowState.BeforeArrived:
                    if (obj.Memo == "R")
                    {
                        b = true;
                    }
                    break;

                case enuShowState.AfterArrived:
                    if (obj.Memo != "R")
                    {
                        b = true;
                    }
                    break;

                case enuShowState.InhosBeforBalanced:
                    if (obj.Memo == "B" || obj.Memo == "I" || obj.Memo == "P" || obj.Memo == "R")
                    {
                        b = true;
                    }
                    break;

                case enuShowState.InhosAfterBalanced:
                    if (obj.Memo == "O")
                    {
                        b = true;
                    }
                    break;

                case enuShowState.InBalanced:
                    if (obj.Memo == "B")
                    {
                        b = true;
                    }
                    break;

                default:
                    b = true;
                    break;
                }
                if (b && this.isRestrictOwnDept)//过滤病区-科室
                {
                    b = false;
                    if (user.EmployeeType.ID.ToString() == "N")//护士站
                    {
                        Neusoft.FrameWork.Models.NeuObject dept = new Neusoft.FrameWork.Models.NeuObject();
                        ArrayList alDept = managerDept.GetDeptFromNurseStation(user.Nurse);
                        if (alDept == null)
                        {
                        }
                        else
                        {
                            for (int k = 0; k < alDept.Count; i++)
                            {
                                dept = alDept[k] as Neusoft.FrameWork.Models.NeuObject;
                                if (dept.ID == obj.User01)
                                {
                                    b = true;
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        if (user.Dept.ID == obj.User01)//科室对应上
                        {
                            b = true;
                        }
                    }
                }
                if (b)
                {
                    //显示住院流水号,姓名,在院状态
                    try
                    {
                        lst.Items.Add(obj.ID + "  " + obj.Name + "  " + VisitStatus.Name);
                    }
                    catch
                    {
                        lst.Items.Add(obj.ID + "  " + obj.Name + "  " + obj.Memo);
                    }
                    this.strInpatientNo = obj.ID;
                }
            }
            if (lst.Items.Count == 1)
            {
                try
                {
                    this.listform.Close();
                }
                catch { }
                try
                {
                    this.Text = this.strInpatientNo.Substring(4, 10);
                    this.myEvent();
                }
                catch { }
                return;
            }

            //			if(lst.Items.Count <=0) return;
            if (lst.Items.Count <= 0)
            {
                this.strInpatientNo = "";
                this.myEvent();
                return;
            }

            lst.Visible      = true;
            lst.DoubleClick += new EventHandler(lst_DoubleClick);
            lst.KeyDown     += new KeyEventHandler(lst_KeyDown);
            lst.Show();

            listform.Controls.Add(lst);

            listform.TopMost = true;

            listform.Show();
            listform.Location = this.txtInputCode.PointToScreen(new Point(this.txtInputCode.Width / 2 + this.txtInputCode.Left, this.txtInputCode.Height + this.txtInputCode.Top));
            try
            {
                lst.SelectedIndex = 0;
                lst.Focus();
                lst.LostFocus += new EventHandler(lst_LostFocus);
            }
            catch { }
            return;
        }
Exemplo n.º 14
0
        /// <summary>
        ///初始化树
        /// </summary>
        /// <returns></returns>
        protected override int OnDrawTree()
        {
            if (tvLeft == null)
            {
                return(-1);
            }
            base.OnDrawTree();

            this.tvLeft.Nodes.Clear();

            //左侧多选
            this.tvLeft.CheckBoxes = true;

            if (isShowAllInDeptPatient == false)
            {
                //在院患者
                Neusoft.HISFC.Models.RADT.InStateEnumService inState = new Neusoft.HISFC.Models.RADT.InStateEnumService();
                inState.ID = Neusoft.HISFC.Models.Base.EnumInState.I.ToString();

                ArrayList emplList = managerIntegrate.QueryPatientBasic(base.employee.Dept.ID, inState);

                TreeNode parentTreeNode = new TreeNode("本科患者");
                parentTreeNode.Checked = false;
                parentTreeNode.Tag     = "ROOT";
                tvLeft.Nodes.Add(parentTreeNode);
                foreach (Neusoft.HISFC.Models.RADT.PatientInfo empl in emplList)
                {
                    TreeNode emplNode = new TreeNode();
                    emplNode.Tag  = empl;
                    emplNode.Text = empl.Name;
                    parentTreeNode.Nodes.Add(emplNode);
                }

                parentTreeNode.ExpandAll();
                parentTreeNode.Checked = false;
            }
            else
            {
                Neusoft.FrameWork.WinForms.Classes.Function.ShowWaitForm("正在加载全院患者列表,请稍等......");
                Application.DoEvents();


                //全院患者列表
                //在院患者
                ArrayList emplList = managerIntegrate.QueryPatient(Neusoft.HISFC.Models.Base.EnumInState.I);

                //构建树列表
                Dictionary <string, TreeNode> deptDic = new Dictionary <string, TreeNode>();

                TreeNode parentTreeNode = new TreeNode("全院患者");

                parentTreeNode.Tag = "ROOT";
                tvLeft.Nodes.Add(parentTreeNode);
                int index = 0;
                foreach (Neusoft.HISFC.Models.RADT.PatientInfo empl in emplList)
                {
                    if (deptDic.ContainsKey(empl.PVisit.PatientLocation.Dept.ID))
                    {
                        TreeNode patient = new TreeNode();
                        patient.Tag  = empl;
                        patient.Text = empl.Name + "【" + empl.PID.PatientNO.ToString() + "】";

                        patient.Checked = false;
                        deptDic[empl.PVisit.PatientLocation.Dept.ID].Nodes.Add(patient);
                    }
                    else
                    {
                        TreeNode dept = new TreeNode();
                        dept.ForeColor = Color.Blue;
                        dept.Tag       = empl.PVisit.PatientLocation.Dept;
                        dept.Text      = empl.PVisit.PatientLocation.Dept.Name + "【" + empl.PVisit.PatientLocation.Dept.ID.ToString() + "】";

                        TreeNode patient = new TreeNode();
                        patient.Tag     = empl;
                        patient.Text    = empl.Name + "【" + empl.PID.PatientNO.ToString() + "】";
                        patient.Checked = false;
                        dept.Nodes.Add(patient);
                        deptDic.Add(empl.PVisit.PatientLocation.Dept.ID, dept);

                        dept.Checked = false;
                        parentTreeNode.Nodes.Add(dept);
                    }
                    index++;
                }
                parentTreeNode.ExpandAll();
                parentTreeNode.Checked = false;


                Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm();
            }



            this.tvLeft.AfterSelect -= new TreeViewEventHandler(tvLeft_AfterSelect);
            this.tvLeft.AfterSelect += new TreeViewEventHandler(tvLeft_AfterSelect);
            this.tvLeft.AfterCheck  -= new TreeViewEventHandler(tvLeft_AfterCheck);
            this.tvLeft.AfterCheck  += new TreeViewEventHandler(tvLeft_AfterCheck);

            return(1);
        }