private static void GetCnNameSignCode(MedDocInfo docInfo, VirtualSubItem subItem) { if (string.IsNullOrEmpty(docInfo.SIGN_CODE)) { subItem.Text = MedDocSys.DataLayer.SystemData.SignState.CREATOR_SAVE_CH; } else if (docInfo.SIGN_CODE == MedDocSys.DataLayer.SystemData.SignState.CREATOR_SAVE) { subItem.Text = MedDocSys.DataLayer.SystemData.SignState.CREATOR_SAVE_CH; } else if (docInfo.SIGN_CODE == MedDocSys.DataLayer.SystemData.SignState.CREATOR_COMMIT) { subItem.Text = MedDocSys.DataLayer.SystemData.SignState.CREATOR_COMMIT_CH; } else if (docInfo.SIGN_CODE == MedDocSys.DataLayer.SystemData.SignState.PARENT_SAVE) { subItem.Text = MedDocSys.DataLayer.SystemData.SignState.PARENT_SAVE_CH; } else if (docInfo.SIGN_CODE == MedDocSys.DataLayer.SystemData.SignState.SUPER_SAVE) { subItem.Text = MedDocSys.DataLayer.SystemData.SignState.SUPER_SAVE_CH; } else if (docInfo.SIGN_CODE == MedDocSys.DataLayer.SystemData.SignState.CREATOR_COMMIT) { subItem.Text = MedDocSys.DataLayer.SystemData.SignState.CREATOR_COMMIT_CH; } else if (docInfo.SIGN_CODE == MedDocSys.DataLayer.SystemData.SignState.PARENT_COMMIT) { subItem.Text = MedDocSys.DataLayer.SystemData.SignState.PARENT_COMMIT_CH; } else if (docInfo.SIGN_CODE == MedDocSys.DataLayer.SystemData.SignState.SUPER_COMMIT) { subItem.Text = MedDocSys.DataLayer.SystemData.SignState.SUPER_COMMIT_CH; } else if (docInfo.SIGN_CODE == MedDocSys.DataLayer.SystemData.SignState.PARENT_ROLLBACK) { subItem.Text = MedDocSys.DataLayer.SystemData.SignState.PARENT_ROLLBACK_CH; } else if (docInfo.SIGN_CODE == MedDocSys.DataLayer.SystemData.SignState.SUPER_ROLLBACK) { subItem.Text = MedDocSys.DataLayer.SystemData.SignState.SUPER_ROLLBACK_CH; } else if (docInfo.SIGN_CODE == MedDocSys.DataLayer.SystemData.SignState.QC_ROLLBACK) { subItem.Text = MedDocSys.DataLayer.SystemData.SignState.QC_ROLLBACK_CH; } }
/// <summary> /// /// </summary> public override void OnRefreshView() { base.OnRefreshView(); this.Update(); if (this.virtualTree1.Nodes.Count > 0) { this.virtualTree1.Nodes.Clear(); } GlobalMethods.UI.SetCursor(this, Cursors.WaitCursor); this.ShowStatusMessage("正在加载文档类型列表,请稍候..."); this.LoadDocTypeList(); this.ShowStatusMessage("正在加载待审核模板列表,请稍候..."); List <TempletInfo> lstTempletInfo = null; short shRet = TempletAccess.Instance.GetUserTempletInfos("0", ref lstTempletInfo); if (shRet != SystemData.ReturnValue.OK) { MessageBoxEx.Show("获取待审核模板列表失败"); GlobalMethods.UI.SetCursor(this, Cursors.Default); this.ShowStatusMessage(null); return; } if (lstTempletInfo == null) { GlobalMethods.UI.SetCursor(this, Cursors.Default); this.ShowStatusMessage("未找到待审核的模板"); return; } //查询医生已修正确认的模板列表 List <TempletInfo> lstModifyTempletInfos = null; shRet = TempletAccess.Instance.GetUserTempletInfos("2", ref lstModifyTempletInfos); if (shRet != SystemData.ReturnValue.OK && shRet != SystemData.ReturnValue.RES_NO_FOUND) { MessageBoxEx.Show("获取医生已确认修正待审核模板列表失败"); GlobalMethods.UI.SetCursor(this, Cursors.Default); this.ShowStatusMessage(null); return; } if (lstModifyTempletInfos != null) { lstTempletInfo.AddRange(lstModifyTempletInfos); } lstTempletInfo.Sort(new Comparison <TempletInfo>(this.Compare)); //模板时间显示格式 string szDocTimeFormat = "yyyy-MM-dd HH:mm"; string szDeptCode = string.Empty; VirtualNode deptNode = null; for (int index = 0; index < lstTempletInfo.Count; index++) { TempletInfo templetInfo = lstTempletInfo[index]; if (templetInfo == null) { continue; } if (templetInfo.IsFolder) { continue; } //添加科室名称显示行 if (templetInfo.DeptCode != szDeptCode) { deptNode = new VirtualNode(templetInfo.DeptName); deptNode.ForeColor = Color.Blue; deptNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); this.virtualTree1.Nodes.Add(deptNode); deptNode.Expand(); } szDeptCode = templetInfo.DeptCode; VirtualNode templetNode = new VirtualNode(templetInfo.TempletName); templetNode.Data = templetInfo; templetNode.ForeColor = Color.Black; templetNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); string szDocTypeName = string.Empty; DocTypeInfo docTypeInfo = this.m_htDocTypeList[templetInfo.DocTypeID] as DocTypeInfo; if (docTypeInfo == null) { szDocTypeName = templetInfo.DocTypeID; } else { szDocTypeName = docTypeInfo.DocTypeName; } VirtualSubItem subItem = null; subItem = new VirtualSubItem(szDocTypeName); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; templetNode.SubItems.Add(subItem); subItem = new VirtualSubItem(templetInfo.CreatorName); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; templetNode.SubItems.Add(subItem); subItem = new VirtualSubItem(templetInfo.ModifyTime.ToString(szDocTimeFormat)); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; templetNode.SubItems.Add(subItem); string szShareLevel = string.Empty; if (templetInfo.ShareLevel == SystemData.ShareLevel.HOSPITAL) { szShareLevel = "全院"; } else if (templetInfo.ShareLevel == SystemData.ShareLevel.DEPART) { szShareLevel = "科室"; } else { szShareLevel = "个人"; } subItem = new VirtualSubItem(szShareLevel); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; templetNode.SubItems.Add(subItem); string szCheckStatus = string.Empty; if (templetInfo.CheckStatus == TempletCheckStatus.None) { szCheckStatus = "未审核"; } else if (templetInfo.CheckStatus == TempletCheckStatus.Affirm) { szCheckStatus = "已确认"; } subItem = new VirtualSubItem(szCheckStatus); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; templetNode.SubItems.Add(subItem); deptNode.Nodes.Add(templetNode); } this.ShowStatusMessage(null); GlobalMethods.UI.SetCursor(this, Cursors.Default); }
private void LoadPastDocList(EMRDBLib.PatVisitInfo patVisitLog, VirtualNode patientNode) { if (this.MainForm == null || this.MainForm.IsDisposed || patVisitLog == null) { return; } string szPatientID = patVisitLog.PATIENT_ID; string szVisitID = patVisitLog.VISIT_ID; if (GlobalMethods.Misc.IsEmptyString(szPatientID) || GlobalMethods.Misc.IsEmptyString(szVisitID)) { return; } MedDocList lstPastDocInfos = null; short shRet = EMRDBAccess.Instance.GetPastDocList(szPatientID, szVisitID, ref lstPastDocInfos); if (shRet != SystemData.ReturnValue.OK && shRet != SystemData.ReturnValue.RES_NO_FOUND) { MessageBoxEx.Show("获取旧病程记录列表失败!"); return; } if (lstPastDocInfos == null || lstPastDocInfos.Count <= 0) { return; } lstPastDocInfos.Sort(); //文档时间显示格式 string szDocTimeFormat = "yyyy-MM-dd HH:mm"; VirtualNode oldDocRootNode = new VirtualNode("以往旧病历"); oldDocRootNode.Data = lstPastDocInfos; oldDocRootNode.ImageIndex = 1; oldDocRootNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); oldDocRootNode.Expand(); Hashtable htDocType = new Hashtable(); //加载已有文档列表到指定的容器 for (int index = 0; index < lstPastDocInfos.Count; index++) { MedDocInfo pastDocInfo = lstPastDocInfos[index]; if (pastDocInfo == null) { continue; } string szDocTitle = "无主题"; if (!GlobalMethods.Misc.IsEmptyString(pastDocInfo.DOC_TITLE)) { szDocTitle = pastDocInfo.DOC_TITLE; } VirtualNode docInfoNode = new VirtualNode(szDocTitle); docInfoNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); docInfoNode.Data = pastDocInfo; docInfoNode.Tag = patVisitLog; docInfoNode.ForeColor = Color.Black; VirtualSubItem subItem = null; subItem = new VirtualSubItem(pastDocInfo.DOC_TIME.ToString(szDocTimeFormat)); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(pastDocInfo.CREATOR_NAME); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(pastDocInfo.MODIFY_TIME.ToString(szDocTimeFormat)); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(pastDocInfo.MODIFIER_NAME); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); string szReadTime = string.Empty; if (this.m_htQCActionLog.Contains(pastDocInfo.DOC_SETID)) { szReadTime = this.m_htQCActionLog[pastDocInfo.DOC_SETID].ToString(); } subItem = new VirtualSubItem(); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; if (!string.IsNullOrEmpty(szReadTime)) { subItem.Text = "是"; } else { subItem.Text = "否"; } docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(szReadTime); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); //如果病历被阅读过,则子项的字体颜色分为绿色 if (!string.IsNullOrEmpty(szReadTime)) { docInfoNode.ForeColor = Color.Green; for (int nIndex = 0; nIndex < docInfoNode.SubItems.Count; nIndex++) { docInfoNode.SubItems[nIndex].ForeColor = Color.Green; } } oldDocRootNode.Nodes.Add(docInfoNode); } patientNode.Nodes.Add(oldDocRootNode); }
private void LoadMedDocList(EMRDBLib.PatVisitInfo patVisitLog, VirtualNode patientNode) { if (patVisitLog == null) { return; } string szPatientID = patVisitLog.PATIENT_ID; string szVisitID = patVisitLog.VISIT_ID; if (GlobalMethods.Misc.IsEmptyString(szPatientID) || GlobalMethods.Misc.IsEmptyString(szVisitID)) { return; } string szVisitType = MedDocSys.DataLayer.SystemData.VisitType.IP; MedDocList lstDocInfos = null; short shRet = EmrDocAccess.Instance.GetDocInfos(szPatientID, szVisitID, szVisitType, DateTime.Now, string.Empty, ref lstDocInfos); if (shRet != SystemData.ReturnValue.OK && shRet != SystemData.ReturnValue.RES_NO_FOUND) { MessageBoxEx.Show("获取新格式病程记录失败!"); return; } if (lstDocInfos == null || lstDocInfos.Count <= 0) { return; } lstDocInfos.Sort(); //文档时间显示格式 string szDocTimeFormat = "yyyy-MM-dd HH:mm"; this.virtualTree1.SuspendLayout(); this.virtualTree1.Tag = lstDocInfos; VirtualNode lastDocRootNode = new VirtualNode(); lastDocRootNode.Text = "医生的病历"; lastDocRootNode.ImageIndex = 0; lastDocRootNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); lastDocRootNode.Data = DOCTOR_NODE_TAG; lastDocRootNode.Expand(); VirtualNode LastNurRootNode = new VirtualNode(); LastNurRootNode.Text = "护士的病历"; LastNurRootNode.ImageIndex = 0; LastNurRootNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); LastNurRootNode.Data = NURSE_NODE_TAG; LastNurRootNode.CollapseAll(); VirtualNode otherDocRootNode = new VirtualNode("未被归类的病历"); otherDocRootNode.ImageIndex = 1; otherDocRootNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); otherDocRootNode.Data = UNKNOWN_NODE_TAG; otherDocRootNode.Expand(); Hashtable htDocType = new Hashtable(); //加载已有文档列表到指定的容器 for (int index = 0; index < lstDocInfos.Count; index++) { MedDocInfo docInfo = lstDocInfos[index]; if (docInfo == null) { continue; } VirtualNode docInfoNode = new VirtualNode(docInfo.DOC_TITLE); docInfoNode.Data = docInfo; docInfoNode.Tag = patVisitLog; docInfoNode.ForeColor = Color.Black; docInfoNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); VirtualSubItem subItem = null; DateTime dtDocTime = docInfo.DOC_TIME; dtDocTime = docInfo.DOC_TIME; subItem = new VirtualSubItem(dtDocTime.ToString(szDocTimeFormat)); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(docInfo.CREATOR_NAME); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(docInfo.MODIFY_TIME.ToString(szDocTimeFormat)); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(docInfo.MODIFIER_NAME); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); string szReadTime = string.Empty; if (this.m_htQCActionLog.Contains(docInfo.DOC_SETID)) { szReadTime = this.m_htQCActionLog[docInfo.DOC_SETID].ToString(); } subItem = new VirtualSubItem(); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; if (!string.IsNullOrEmpty(szReadTime)) { subItem.Text = "是"; } else { subItem.Text = "否"; } docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(szReadTime); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); //如果病历被阅读过,则子项的字体颜色分为绿色 if (!string.IsNullOrEmpty(szReadTime)) { docInfoNode.ForeColor = Color.Green; for (int nIndex = 0; nIndex < docInfoNode.SubItems.Count; nIndex++) { docInfoNode.SubItems[nIndex].ForeColor = Color.Green; } } DocTypeInfo currDocType = null; DocTypeAccess.Instance.GetDocTypeInfo(docInfo.DOC_TYPE, ref currDocType); if (currDocType == null) { otherDocRootNode.Nodes.Add(docInfoNode); continue; } DocTypeInfo hostDocType = null; DocTypeAccess.Instance.GetDocTypeInfo(currDocType.HostTypeID, ref hostDocType); if (hostDocType == null) { otherDocRootNode.Nodes.Add(docInfoNode); continue; } VirtualNode hostDocRootNode = null; if (!htDocType.Contains(hostDocType.DocTypeID)) { hostDocRootNode = new VirtualNode(); hostDocRootNode.Text = hostDocType.DocTypeName; hostDocRootNode.Tag = hostDocType.DocTypeName; hostDocRootNode.Data = COMBIN_NODE_TAG; hostDocRootNode.HitExpand = HitExpandMode.Click; hostDocRootNode.Expand(); hostDocRootNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); hostDocRootNode.ImageIndex = 1; if (hostDocType.DocRight != MedDocSys.DataLayer.SystemData.UserType.NURSE) { lastDocRootNode.Nodes.Add(hostDocRootNode); } else if (hostDocType.DocRight == MedDocSys.DataLayer.SystemData.UserType.NURSE) { LastNurRootNode.Nodes.Add(hostDocRootNode); } else { this.virtualTree1.Nodes.Add(hostDocRootNode); } htDocType.Add(hostDocType.DocTypeID, hostDocRootNode); } else { hostDocRootNode = htDocType[hostDocType.DocTypeID] as VirtualNode; } hostDocRootNode.Nodes.Add(docInfoNode); } htDocType.Clear(); this.m_DoctorNode = lastDocRootNode; this.m_NurseNode = LastNurRootNode; if (otherDocRootNode.Nodes.Count > 0) { patientNode.Nodes.Add(otherDocRootNode); } if (lastDocRootNode.Nodes.Count > 0) { patientNode.Nodes.Add(lastDocRootNode); } if (LastNurRootNode.Nodes.Count > 0) { patientNode.Nodes.Add(LastNurRootNode); } }
private void LoadHerenMedDocList() { if (SystemParam.Instance.PatVisitInfo == null) { return; } string szPatientID = SystemParam.Instance.PatVisitInfo.PATIENT_ID; string szVisitID = SystemParam.Instance.PatVisitInfo.VISIT_ID; if (GlobalMethods.Misc.IsEmptyString(szPatientID) || GlobalMethods.Misc.IsEmptyString(szVisitID)) { return; } this.virtualTree1.SuspendLayout(); this.virtualTree1.Tag = null; this.virtualTree1.Nodes.Clear(); this.virtualTree1.PerformLayout(); string szVisitType = MedDocSys.DataLayer.SystemData.VisitType.IP; MedDocList lstDocInfos = null; short shRet = EmrDocAccess.Instance.GetDocInfos(szPatientID, szVisitID, szVisitType, DateTime.Now, string.Empty, ref lstDocInfos); if (shRet != SystemData.ReturnValue.OK && shRet != SystemData.ReturnValue.RES_NO_FOUND) { MessageBoxEx.Show("获取新格式病程记录失败!"); return; } if (lstDocInfos == null || lstDocInfos.Count <= 0) { return; } lstDocInfos.Sort(); //文档时间显示格式 string szDocTimeFormat = "yyyy-MM-dd HH:mm"; this.virtualTree1.SuspendLayout(); this.virtualTree1.Tag = lstDocInfos; VirtualNode lastDocRootNode = new VirtualNode(); lastDocRootNode.Text = "医生的病历"; lastDocRootNode.ForeColor = Color.Blue; lastDocRootNode.ImageIndex = 0; lastDocRootNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); lastDocRootNode.Data = DOCTOR_NODE_TAG; lastDocRootNode.Expand(); VirtualNode LastNurRootNode = new VirtualNode(); LastNurRootNode.Text = "护士的病历"; LastNurRootNode.ForeColor = Color.Blue; LastNurRootNode.ImageIndex = 0; LastNurRootNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); LastNurRootNode.Data = NURSE_NODE_TAG; LastNurRootNode.CollapseAll(); VirtualNode otherDocRootNode = new VirtualNode("未被归类的病历"); otherDocRootNode.ForeColor = Color.Blue; otherDocRootNode.ImageIndex = 1; otherDocRootNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); otherDocRootNode.Data = UNKNOWN_NODE_TAG; otherDocRootNode.Expand(); Hashtable htDocType = new Hashtable(); List <VirtualNode> childDocNodes = new List <VirtualNode>(); //加载已有文档列表到指定的容器 for (int index = 0; index < lstDocInfos.Count; index++) { MedDocInfo docInfo = lstDocInfos[index]; if (docInfo == null) { continue; } VirtualNode docInfoNode = new VirtualNode(docInfo.DOC_TITLE); if (!htDocType.ContainsKey(docInfo.DOC_ID)) { htDocType.Add(docInfo.DOC_ID, docInfoNode); } docInfoNode.HitExpand = HitExpandMode.None; docInfoNode.Expand(); docInfoNode.Data = docInfo; docInfoNode.ForeColor = Color.Black; if (m_htQCMsgInfs != null && m_htQCMsgInfs.ContainsKey(docInfo.DOC_SETID)) { docInfoNode.ForeColor = Color.OrangeRed; } docInfoNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); VirtualSubItem subItem = null; DateTime dtDocTime = docInfo.DOC_TIME; { dtDocTime = docInfo.RECORD_TIME; } subItem = new VirtualSubItem(dtDocTime.ToString(szDocTimeFormat)); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(dtDocTime.ToString(szDocTimeFormat)); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(docInfo.CREATOR_NAME); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(docInfo.MODIFY_TIME.ToString(szDocTimeFormat)); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(docInfo.MODIFIER_NAME); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; docInfoNode.SubItems.Add(subItem); string szReadTime = string.Empty; if (this.m_htQCActionLog.Contains(docInfo.DOC_SETID)) { szReadTime = this.m_htQCActionLog[docInfo.DOC_SETID].ToString(); } subItem = new VirtualSubItem(); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; if (!string.IsNullOrEmpty(szReadTime)) { subItem.Text = "是"; } else { subItem.Text = "否"; } docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(szReadTime); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; subItem.ForeColor = Color.Blue; docInfoNode.SubItems.Add(subItem); subItem = new VirtualSubItem(); subItem.Font = new Font("宋体", 10.5f, FontStyle.Regular); subItem.Alignment = Alignment.Middle; GetCnNameSignCode(docInfo, subItem); docInfoNode.SubItems.Add(subItem); DocTypeInfo currDocType = null; DocTypeAccess.Instance.GetDocTypeInfo(docInfo.DOC_TYPE, ref currDocType); if (currDocType == null) { otherDocRootNode.Nodes.Add(docInfoNode); continue; } //病历类型不需要审签 if (string.IsNullOrEmpty(currDocType.SignFlag) || currDocType.SignFlag == SystemData.SignType.NONE) { subItem.Text = string.Empty; } if (currDocType.NeedCombin && !currDocType.IsHostType) { childDocNodes.Add(docInfoNode); continue; } DocTypeInfo hostDocType = null; DocTypeAccess.Instance.GetDocTypeInfo(currDocType.HostTypeID, ref hostDocType); if (hostDocType == null) { hostDocType = currDocType; } VirtualNode hostDocRootNode = null; if (htDocType.ContainsKey(hostDocType.DocTypeID)) { hostDocRootNode = htDocType[hostDocType.DocTypeID] as VirtualNode; } if (hostDocRootNode == null) { hostDocRootNode = new VirtualNode(); hostDocRootNode.Text = hostDocType.DocTypeName; hostDocRootNode.Tag = hostDocType.DocTypeName; hostDocRootNode.Data = COMBIN_NODE_TAG; hostDocRootNode.HitExpand = HitExpandMode.Click; hostDocRootNode.Expand(); hostDocRootNode.Font = new Font("宋体", 10.5f, FontStyle.Regular); hostDocRootNode.ImageIndex = 0; if (hostDocType.DocRight != MedDocSys.DataLayer.SystemData.UserType.NURSE) { lastDocRootNode.Nodes.Add(hostDocRootNode); } else if (hostDocType.DocRight == MedDocSys.DataLayer.SystemData.UserType.NURSE) { LastNurRootNode.Nodes.Add(hostDocRootNode); } else { this.virtualTree1.Nodes.Add(hostDocRootNode); } htDocType.Add(hostDocType.DocTypeID, hostDocRootNode); } hostDocRootNode.Nodes.Add(docInfoNode); } foreach (VirtualNode node in childDocNodes) { if (node.Parent != null) { continue; } MedDocInfo docInfo = node.Data as MedDocInfo; if (docInfo == null) { continue; } if (htDocType.ContainsKey(docInfo.DOC_SETID)) { VirtualNode parent = htDocType[docInfo.DOC_SETID] as VirtualNode; if (parent != null && parent != node) { parent.Nodes.Add(node); } } } htDocType.Clear(); this.m_DoctorNode = lastDocRootNode; this.m_NurseNode = LastNurRootNode; if (otherDocRootNode.Nodes.Count > 0) { this.virtualTree1.Nodes.Add(otherDocRootNode); } if (lastDocRootNode.Nodes.Count > 0) { this.virtualTree1.Nodes.Add(lastDocRootNode); } if (LastNurRootNode.Nodes.Count > 0) { this.virtualTree1.Nodes.Add(LastNurRootNode); } this.virtualTree1.PerformLayout(); }