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()); }
/// <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()); } }
/// <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)); }
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)); }
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(); } }
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)); }
/// <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); }
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); }
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为空则无需检索,直接返回 } }
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); }
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; } }
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); } }
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; }
/// <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); }