/// <summary> /// Delete /// </summary> internal void Delete() { EntityEmrBasicInfo caseVo = GetCaseVo(); if (caseVo != null && caseVo.serNo > 0) { if (DialogBox.Msg("是否删除当前病历资料??\r\n\r\n" + "【" + caseVo.caseName + "】", MessageBoxIcon.Question) == DialogResult.Yes) { using (ProxyCommon proxy = new ProxyCommon()) { if (proxy.Service.DeleteCaseBasicInfo((int)caseVo.serNo, caseVo.caseCode)) { DialogBox.Msg("删除成功!"); this.New(); this.RefreshData(); } else { DialogBox.Msg("删除失败。"); } } } } else { this.New(); } }
/// <summary> /// 病历基础信息.保存 /// </summary> /// <param name="caseVo"></param> /// <param name="lstCaseDept"></param> /// <returns></returns> public bool SaveCaseBasicInfo(ref EntityEmrBasicInfo caseVo, List <EntityEmrDept> lstCaseDept) { using (BizEmr biz = new BizEmr()) { return(biz.SaveCaseBasicInfo(ref caseVo, lstCaseDept)); } }
/// <summary> /// NewFormDept /// </summary> internal void NewFormDept() { EntityEmrBasicInfo caseVo = GetCaseVo(); if (caseVo == null) { DialogBox.Msg("请先保存病历基础信息。"); return; } frmNew frm = new frmNew(EntityTools.ConvertToDataTable <EntityCodeDepartment>(GlobalDic.DataSourceDepartment), "deptCode", "deptCode", "deptName"); if (frm.ShowDialog() == DialogResult.OK) { if (frm.lstNo.Count > 0) { foreach (int index in frm.lstNo) { EntityEmrDept emrDept = new EntityEmrDept(); emrDept.caseCode = caseVo.caseCode; emrDept.deptCode = GlobalDic.DataSourceDepartment[index].deptCode; emrDept.attrFlag = 1; using (ProxyCommon proxy = new ProxyCommon()) { if (proxy.Service.SaveCaseDept(emrDept) < 0) { DialogBox.Msg("保存病历所属专科失败。"); return; } } } LoadCaseDept(caseVo.caseCode); } } }
/// <summary> /// 查找表单 /// </summary> /// <param name="val"></param> internal void FindForm(string val) { if (string.IsNullOrEmpty(val)) { return; } bool isFind = false; EntityEmrBasicInfo caseVo = null; for (int i = this.FindIndex; i < Viewer.tvForm.AllNodesCount; i++) { caseVo = (EntityEmrBasicInfo)Viewer.tvForm.GetDataRecordByNode(Viewer.tvForm.GetNodeByVisibleIndex(i)); //if (caseVo.isLeaf) //{ if (caseVo.pyCode.StartsWith(val) || caseVo.wbCode.StartsWith(val) || caseVo.caseName.StartsWith(val) || caseVo.caseCode.Equals(val)) { this.FindIndex = i + 1; Viewer.tvForm.SetFocusedNode(Viewer.tvForm.GetNodeByVisibleIndex(i)); isFind = true; break; } //} } if (isFind) { if (this.FindIndex < Viewer.tvForm.AllNodesCount && DialogBox.Msg("是否继续查找?", MessageBoxIcon.Question) == DialogResult.Yes) { FindForm(val); } } else { if (this.FindIndex == 0) { DialogBox.Msg("没有找到匹配项。"); } else { DialogBox.Msg("已找到末尾."); } } }
/// <summary> /// 加载病历树 /// </summary> void InitCatalog() { try { uiHelper.BeginLoading(Viewer); List <EntityEmrCatalog> dataSourceEmrCatalog = null; List <EntityEmrBasicInfo> dataSourceEmrBasicInfo = null; List <EntityProgressNoteType> dataSourceEmrPnType = null; using (ProxyEntityFactory proxy = new ProxyEntityFactory()) { EntityEmrCatalog vo1 = new EntityEmrCatalog(); vo1.caseScope = 2; vo1.status = 1; dataSourceEmrCatalog = EntityTools.ConvertToEntityList <EntityEmrCatalog>(proxy.Service.SelectSort(vo1, new List <string> { EntityEmrCatalog.Columns.caseScope, EntityEmrCatalog.Columns.status }, new List <string> { EntityEmrCatalog.Columns.sortNo })); EntityEmrBasicInfo vo2 = new EntityEmrBasicInfo(); vo2.attribute = -1; vo2.showType = -1; dataSourceEmrBasicInfo = EntityTools.ConvertToEntityList <EntityEmrBasicInfo>(proxy.Service.Select(vo2, new List <string> { EntityEmrBasicInfo.Columns.attribute, EntityEmrBasicInfo.Columns.showType }, "<>", new List <string> { EntityEmrBasicInfo.Columns.parentCode, EntityEmrBasicInfo.Columns.sortNo })); EntityProgressNoteType vo3 = new EntityProgressNoteType(); vo3.status = 1; dataSourceEmrPnType = EntityTools.ConvertToEntityList <EntityProgressNoteType>(proxy.Service.SelectSort(vo3, new List <string> { EntityProgressNoteType.Columns.status }, new List <string> { EntityProgressNoteType.Columns.sortNo })); } CreateCatalog(dataSourceEmrCatalog, dataSourceEmrBasicInfo, dataSourceEmrPnType); } finally { uiHelper.CloseLoading(Viewer); } }
/// <summary> /// Design /// </summary> internal void Design() { EntityEmrBasicInfo caseVo = GetCaseVo(); if (caseVo == null) { DialogBox.Msg("请选择表单。"); } else { if (string.IsNullOrEmpty(caseVo.caseCode)) { DialogBox.Msg("请先保存病历基本信息。"); return; } using (frmFormDesign frm = new frmFormDesign()) { //frm.FormType = 11; // 0412.临时 frm.FormType = 1; frm.FormId = Function.Int((Viewer.txtCaseCode.Tag as EntityEmrBasicInfo).formId); frm.ShowDialog(); } } }
/// <summary> /// 保存.电子申请单 /// </summary> /// <param name="formVo"></param> /// <param name="formId"></param> /// <returns></returns> public int SaveForm(EntityFormDesign formVo, out int formId) { int affectRows = 0; string Sql = string.Empty; SqlHelper svc = null; formId = 0; try { svc = new SqlHelper(EnumBiz.onlineDB); List <DacParm> lstPara = new List <DacParm>(); bool isExsit = true; if (formVo.Formid <= 0) { isExsit = false; formVo.Formid = svc.GetNextID(EntityTools.GetTableName(formVo), EntityTools.GetFieldName(formVo, EntityFormDesign.Columns.Formid)); } lstPara.Add(svc.GetInsertParm(formVo)); if (Function.Int(formVo.Formtype) < 3) { if (isExsit == false) { string tbName = "emrFormRtf" + formVo.Formid.ToString(); // 自动生成 EntityEmrBasicInfo vo = new EntityEmrBasicInfo(); vo.typeId = 1; vo.formId = formVo.Formid; vo.caseName = formVo.Formname; vo.caseCode = formVo.Formid.ToString(); vo.pyCode = SpellCodeHelper.GetPyCode(formVo.Formname); vo.wbCode = SpellCodeHelper.GetWbCode(formVo.Formname); vo.tableName = tbName; vo.attribute = 0; vo.showType = 0; vo.caseStyle = 0; vo.catalogId = 23; // 其他类 vo.fieldXml = EmrTool.GetBasicFieldXml(formVo.Layout); vo.status = 1; lstPara.Add(svc.GetInsertParm(vo)); if (svc.enumDBMS == EnumDBMS.Oracle) { } else { Sql = @"if exists (select 1 from sysobjects where id = object_id('{0}') and type = 'U') drop table {1}"; lstPara.Add(svc.GetDacParm(EnumExecType.ExecSql, string.Format(Sql, tbName, tbName))); Sql = @"create table {0} ( registerid varchar(20) not null, recorddate datetime not null, fieldname varchar(50) not null, rowindex numeric(10,0) not null, tablecode varchar(100) null, contentrtf image null, printrtf image null, isprint numeric(1,0) not null, constraint pk_{0} primary key (registerid, recorddate, fieldname, rowindex) )"; } lstPara.Add(svc.GetDacParm(EnumExecType.ExecSql, string.Format(Sql, tbName, tbName))); } else { EntityEmrBasicInfo vo = new EntityEmrBasicInfo(); vo.formId = formVo.Formid; vo.caseName = formVo.Formname; vo.pyCode = SpellCodeHelper.GetPyCode(formVo.Formname); vo.wbCode = SpellCodeHelper.GetWbCode(formVo.Formname); vo.fieldXml = EmrTool.GetBasicFieldXml(formVo.Layout); DataTable dt = svc.Select(vo, new List <string>() { EntityEmrBasicInfo.Columns.formId }); if (dt != null && dt.Rows.Count > 0) { //lstPara.Add(svc.GetUpdateParm(vo, new List<string>() { EntityEmrBasicInfo.Columns.caseName, EntityEmrBasicInfo.Columns.pyCode, // EntityEmrBasicInfo.Columns.wbCode, EntityEmrBasicInfo.Columns.fieldXml }, // new List<string>() { EntityEmrBasicInfo.Columns.formId })); Sql = @"update emrBasicInfo set caseName = ?, pyCode = ?, wbCode = ?, fieldXml = ? where formId = ?"; IDataParameter[] parms = svc.CreateParm(5); parms[0].Value = vo.caseName; parms[1].Value = vo.pyCode; parms[2].Value = vo.wbCode; parms[3].Value = vo.fieldXml; if (!string.IsNullOrEmpty(vo.fieldXml) && vo.fieldXml.Trim() != null) { parms[3].ParameterName = "xmltype"; } parms[4].Value = vo.formId; lstPara.Add(svc.GetDacParm(EnumExecType.ExecSql, Sql, parms)); } } } if (formVo.Formid > 0) { using (TransactionScope scope = svc.TransactionScope) { if (DelForm((int)formVo.Formid, (int)formVo.Version) < 0) { return(-1); } affectRows = svc.Commit(lstPara); scope.Complete(); } } else { affectRows = svc.Commit(lstPara); } formId = (int)formVo.Formid; if (formId > 0 && affectRows <= 0) { affectRows = 1; } } catch (Exception ex) { ExceptionLog.OutPutException(Function.GetExceptionCaption(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, System.Reflection.MethodBase.GetCurrentMethod().Name, ex.Message)); affectRows = -1; } finally { svc = null; } return(affectRows); }
/// <summary> /// 保存.电子申请单 /// </summary> /// <param name="formVo"></param> /// <param name="formId"></param> /// <returns></returns> public int SaveForm(EntityFormDesign formVo, out int formId) { int affectRows = 0; string Sql = string.Empty; SqlHelper svc = null; formId = 0; try { svc = new SqlHelper(EnumBiz.onlineDB); List <DacParm> lstPara = new List <DacParm>(); bool isExsit = true; if (formVo.Formid <= 0) { isExsit = false; formVo.Formid = svc.GetNextID(EntityTools.GetTableName(formVo), EntityTools.GetFieldName(formVo, EntityFormDesign.Columns.Formid)); } lstPara.Add(svc.GetInsertParm(formVo)); if (isExsit == false) { string tbName = "emrFormRtf" + formVo.Formid.ToString(); // 自动生成 EntityEmrBasicInfo vo = new EntityEmrBasicInfo(); vo.typeId = 1; vo.formId = formVo.Formid; vo.formName = formVo.Formname; vo.caseCode = formVo.Formid.ToString(); vo.pyCode = SpellCodeHelper.GetPyCode(formVo.Formname); vo.wbCode = SpellCodeHelper.GetWbCode(formVo.Formname); vo.tableName = tbName; vo.attribute = 0; vo.showType = 0; vo.caseStyle = 0; vo.catalogId = 23; // 其他类 vo.fieldXml = EmrTool.GetBasicFieldXml(formVo.Layout); vo.status = 1; lstPara.Add(svc.GetInsertParm(vo)); Sql = @"if exists (select 1 from sysobjects where id = object_id('{0}') and type = 'U') drop table {1}"; lstPara.Add(svc.GetDacParm(EnumExecType.ExecSql, string.Format(Sql, tbName, tbName))); Sql = @"create table {0} ( registerid varchar(20) not null, recorddate datetime not null, fieldname varchar(50) not null, rowindex numeric(10,0) not null, tablecode varchar(100) null, contentrtf image null, printrtf image null, isprint numeric(1,0) not null, constraint pk_{0} primary key (registerid, recorddate, fieldname, rowindex) )"; lstPara.Add(svc.GetDacParm(EnumExecType.ExecSql, string.Format(Sql, tbName, tbName))); } else { EntityEmrBasicInfo vo = new EntityEmrBasicInfo(); vo.formId = formVo.Formid; vo.formName = formVo.Formname; vo.pyCode = SpellCodeHelper.GetPyCode(formVo.Formname); vo.wbCode = SpellCodeHelper.GetWbCode(formVo.Formname); vo.fieldXml = EmrTool.GetBasicFieldXml(formVo.Layout); DataTable dt = svc.Select(vo, new List <string>() { EntityEmrBasicInfo.Columns.formId }); if (dt != null && dt.Rows.Count > 0) { lstPara.Add(svc.GetUpdateParm(vo, new List <string>() { EntityEmrBasicInfo.Columns.formName, EntityEmrBasicInfo.Columns.pyCode, EntityEmrBasicInfo.Columns.wbCode, EntityEmrBasicInfo.Columns.fieldXml }, new List <string>() { EntityEmrBasicInfo.Columns.formId })); } } if (formVo.Formid > 0) { using (TransactionScope scope = svc.TransactionScope) { if (DelForm((int)formVo.Formid, (int)formVo.Version) < 0) { return(-1); } affectRows = svc.Commit(lstPara); scope.Complete(); } } else { affectRows = svc.Commit(lstPara); } formId = (int)formVo.Formid; if (formId > 0 && affectRows <= 0) { affectRows = 1; } } catch (Exception e) { ExceptionLog.OutPutException(e); affectRows = -1; } finally { svc = null; } return(affectRows); }
/// <summary> /// Save /// </summary> internal void Save() { EntityEmrBasicInfo caseVo = new EntityEmrBasicInfo(); if (Viewer.txtCaseCode.Tag != null) { caseVo = Viewer.txtCaseCode.Tag as EntityEmrBasicInfo; } if (lueCataDatalog.Any(t => t.catalogId + "^" == caseVo.caseCode)) { DialogBox.Msg("病历目录,无需保存。"); return; } caseVo.caseCode = Viewer.txtCaseCode.Text; caseVo.caseName = Viewer.txtCaseName.Text; caseVo.formId = Function.Int(Viewer.lueFormTemplate.Properties.DBValue); caseVo.printTemplateId = Function.Int(Viewer.luePrintTemplate.Properties.DBValue); caseVo.typeId = Viewer.cboFormType.SelectedIndex; caseVo.status = Viewer.cboFormStatus.SelectedIndex; caseVo.catalogId = Function.Int(Viewer.lueCaseCata.Properties.DBValue); caseVo.caseStyle = Viewer.cboCaseStyle.SelectedIndex; caseVo.attribute = Viewer.cboCaseAttribute.SelectedIndex - 1; caseVo.showCaseStatus = Viewer.chkShowFormStatus1.Checked ? 1 : 0; caseVo.specialFlag = Viewer.chkExpert1.Checked ? 1 : 0; caseVo.multiPageFlag = Viewer.chkMultPage1.Checked ? 1 : 0; caseVo.referenceType = Viewer.chkRef1.Checked ? 1 : 0; caseVo.bandingFlag = Viewer.chkBanding1.Checked ? 1 : 0; caseVo.timeType = Viewer.cboDateType.SelectedIndex; caseVo.lockDateDirector = Function.Int(Viewer.txtHeadOfDeptTime.EditValue); caseVo.timeLimit = Function.Int(Viewer.txtWriteLimitTime.EditValue); caseVo.lockDateQcDept = Function.Int(Viewer.txtQcOfDeptTime.EditValue); caseVo.timePeriod = Function.Int(Viewer.txtTimePeriod.EditValue); caseVo.aheadTime = Function.Int(Viewer.txtPriorTime.EditValue); caseVo.signLevel = Viewer.cboSigLevel.SelectedIndex; caseVo.dirDoctSignFlag = Viewer.chkHeadOfDeptCheck1.Checked ? 1 : 0; caseVo.supDoctSignFlag = Viewer.chkSuperDoctCheck1.Checked ? 1 : 0; caseVo.caseScope = 2; // 1 门诊病历; 2 住院病历 if (string.IsNullOrEmpty(caseVo.caseCode) || caseVo.caseCode.Trim() == string.Empty) { DialogBox.Msg("请输入病历编码"); Viewer.txtCaseCode.Focus(); return; } if (string.IsNullOrEmpty(caseVo.caseName) || caseVo.caseName.Trim() == string.Empty) { DialogBox.Msg("请输入病历名称"); Viewer.txtCaseName.Focus(); return; } List <EntityEmrDept> lstEmrDept = new List <EntityEmrDept>(); using (ProxyCommon proxy = new ProxyCommon()) { bool isNew = caseVo.serNo <= 0 ? true : false; if (proxy.Service.SaveCaseBasicInfo(ref caseVo, lstEmrDept)) { Viewer.txtCaseCode.Tag = caseVo; if (isNew) { this.RefreshData(); } DialogBox.Msg("保存成功"); } else { DialogBox.Msg("保存失败"); } } }
/// <summary> /// LoadForm /// </summary> /// <param name="formVo"></param> void LoadFormData(EntityEmrBasicInfo caseVo) { try { uiHelper.BeginLoading(Viewer); Viewer.page1.Controls.Clear(); Panel pnl = new Panel(); pnl.BackColor = Color.FromArgb(196, 200, 205); pnl.Height = 30; pnl.Dock = DockStyle.Bottom; if (caseVo == null) { Viewer.txtCaseCode.Text = string.Empty; Viewer.txtCaseName.Text = string.Empty; Viewer.lueFormTemplate.Text = string.Empty; Viewer.luePrintTemplate.Text = string.Empty; Viewer.cboVersion.Text = string.Empty; Viewer.cboFormType.Text = string.Empty; Viewer.cboFormStatus.Text = string.Empty; Viewer.lueCaseCata.Text = string.Empty;; Viewer.cboCaseStyle.Text = string.Empty; Viewer.cboCaseAttribute.Text = string.Empty; Viewer.chkShowFormStatus1.Checked = false; Viewer.chkShowFormStatus2.Checked = false; Viewer.chkExpert1.Checked = false; Viewer.chkExpert2.Checked = false; Viewer.chkMultPage1.Checked = false; Viewer.chkMultPage2.Checked = false; Viewer.chkRef1.Checked = false; Viewer.chkRef2.Checked = false; Viewer.chkBanding1.Checked = false; Viewer.chkBanding2.Checked = false; Viewer.cboDateType.Text = string.Empty; Viewer.txtHeadOfDeptTime.EditValue = null; Viewer.txtWriteLimitTime.EditValue = null; Viewer.txtQcOfDeptTime.EditValue = null; Viewer.txtTimePeriod.EditValue = null; Viewer.txtPriorTime.EditValue = null; Viewer.cboSigLevel.Text = string.Empty; Viewer.chkHeadOfDeptCheck1.Checked = false; Viewer.chkHeadOfDeptCheck2.Checked = false; Viewer.chkSuperDoctCheck1.Checked = false; Viewer.chkSuperDoctCheck2.Checked = false; Viewer.gcDept.DataSource = null; } else { if (caseVo.formId > 0) { ShowPanelForm efPanel = new ShowPanelForm((int)caseVo.formId); efPanel.Location = new Point(12, 10); XtraScrollableControl scrollCtrl = new XtraScrollableControl(); scrollCtrl.Dock = DockStyle.Fill; scrollCtrl.BackColor = Color.FromArgb(196, 200, 205); scrollCtrl.Controls.Add(efPanel); scrollCtrl.Controls.Add(pnl); Viewer.page1.Controls.Add(scrollCtrl); } Viewer.txtCaseCode.Text = caseVo.caseCode; Viewer.txtCaseName.Text = caseVo.caseName; Viewer.lueFormTemplate.Properties.DBValue = caseVo.formId.ToString(); SetLueFormTemplate(caseVo.formId); Viewer.luePrintTemplate.Properties.DBValue = caseVo.printTemplateId.ToString(); SetLuePrintTemplate(caseVo.printTemplateId); Viewer.cboVersion.Text = "1"; Viewer.cboFormType.SelectedIndex = (int)caseVo.typeId; Viewer.cboFormStatus.SelectedIndex = caseVo.status; Viewer.lueCaseCata.Properties.DBValue = caseVo.catalogId.ToString(); SetLueCaseCata(caseVo.catalogId); Viewer.cboCaseStyle.SelectedIndex = caseVo.caseStyle; Viewer.cboCaseAttribute.SelectedIndex = Function.Int(caseVo.attribute) + 1; Viewer.chkShowFormStatus1.Checked = caseVo.showCaseStatus == 1 ? true : false; Viewer.chkShowFormStatus2.Checked = caseVo.showCaseStatus == 0 ? true : false; Viewer.chkExpert1.Checked = caseVo.specialFlag == 1 ? true : false; Viewer.chkExpert2.Checked = caseVo.specialFlag == 0 ? true : false; Viewer.chkMultPage1.Checked = caseVo.multiPageFlag == 1 ? true : false; Viewer.chkMultPage2.Checked = caseVo.multiPageFlag == 0 ? true : false; Viewer.chkRef1.Checked = caseVo.referenceType == 1 ? true : false; Viewer.chkRef2.Checked = caseVo.referenceType == 0 ? true : false; Viewer.chkBanding1.Checked = caseVo.bandingFlag == 1 ? true : false; Viewer.chkBanding2.Checked = caseVo.bandingFlag == 0 ? true : false; Viewer.cboDateType.SelectedIndex = caseVo.timeType; Viewer.txtHeadOfDeptTime.EditValue = caseVo.lockDateDirector; Viewer.txtWriteLimitTime.EditValue = caseVo.timeLimit; Viewer.txtQcOfDeptTime.EditValue = caseVo.lockDateQcDept; Viewer.txtTimePeriod.EditValue = caseVo.timePeriod; Viewer.txtPriorTime.EditValue = caseVo.aheadTime; Viewer.cboSigLevel.SelectedIndex = caseVo.signLevel; Viewer.chkHeadOfDeptCheck1.Checked = caseVo.dirDoctSignFlag == 1 ? true : false; Viewer.chkHeadOfDeptCheck2.Checked = caseVo.dirDoctSignFlag == 0 ? true : false; Viewer.chkSuperDoctCheck1.Checked = caseVo.supDoctSignFlag == 1 ? true : false; Viewer.chkSuperDoctCheck2.Checked = caseVo.supDoctSignFlag == 0 ? true : false; LoadCaseDept(caseVo.caseCode); } // form.Main Viewer.txtCaseCode.Tag = caseVo; } catch (System.Exception e) { DialogBox.Msg(e.Message); } finally { uiHelper.CloseLoading(Viewer); } }
/// <summary> /// 加载表单 /// </summary> void LoadForm(TreeListNode node) { EntityEmrBasicInfo caseVo = (EntityEmrBasicInfo)Viewer.tvForm.GetDataRecordByNode(node); LoadFormData(caseVo); }
/// <summary> /// CreateCatalog /// </summary> /// <param name="dataSourceEmrCatalog"></param> /// <param name="dataSourceEmrBasicInfo"></param> /// <param name="dataSourceEmrPnType"></param> /// <param name="caseType"></param> void CreateCatalog(List <EntityEmrCatalog> dataSourceEmrCatalog, List <EntityEmrBasicInfo> dataSourceEmrBasicInfo, List <EntityProgressNoteType> dataSourceEmrPnType) { // 树结构 Viewer.tvForm.Columns.Clear(); uiHelper.SetGridCol(Viewer.tvForm, new string[] { "caseName" }, new string[] { "病历列表" }, new int[] { 200 }); Viewer.tvForm.Columns["caseName"].AppearanceCell.Font = new Font("宋体", 9); Viewer.tvForm.KeyFieldName = "caseCode"; Viewer.tvForm.ParentFieldName = "parentCode"; Viewer.tvForm.ImageIndexFieldName = "tempSerNo"; Viewer.tvForm.OptionsView.ShowFocusedFrame = false; Viewer.tvForm.Appearance.FocusedRow.Options.UseBackColor = true; Viewer.tvForm.Appearance.FocusedRow.BackColor = Color.LightGreen; // Color.LightSkyBlue; Viewer.tvForm.Appearance.FocusedRow.BackColor2 = Color.White; Viewer.tvForm.Appearance.HideSelectionRow.Options.UseBackColor = true; Viewer.tvForm.Appearance.HideSelectionRow.BackColor = Color.LightGreen; // Color.LightSkyBlue; Viewer.tvForm.Appearance.HideSelectionRow.BackColor2 = Color.White; EntityEmrBasicInfo emrBasicInfo = null; List <decimal> lstCatalogID = new List <decimal>(); List <EntityEmrBasicInfo> lstCaseBasicInfo = new List <EntityEmrBasicInfo>(); // 主目录 foreach (EntityEmrCatalog catalog in dataSourceEmrCatalog) { emrBasicInfo = new EntityEmrBasicInfo(); emrBasicInfo.serNo = -1; emrBasicInfo.caseCode = catalog.catalogId.ToString() + "^"; // 避免文件夹的自增序号与casecode相同 emrBasicInfo.parentCode = string.Empty; emrBasicInfo.tableName = string.Empty; emrBasicInfo.tempSerNo = 2; emrBasicInfo.caseName = catalog.catalogName; emrBasicInfo.pyCode = SpellCodeHelper.GetPyCode(catalog.catalogName); emrBasicInfo.wbCode = SpellCodeHelper.GetWbCode(catalog.catalogName); if (lstCaseBasicInfo.Any(t => t.caseCode == emrBasicInfo.caseCode)) { continue; } if (lstCatalogID.IndexOf(catalog.catalogId) < 0) { lstCatalogID.Add(catalog.catalogId); } if (catalog.type == 0) { lstCaseBasicInfo.Add(emrBasicInfo); } else { if (catalog.type == 1) { //if (emrBasicInfo.caseName == "病程记录") emrBasicInfo.caseCode = progressNoteCaseCode; lstCaseBasicInfo.Add(emrBasicInfo); } else if (catalog.type == 2) { lstCaseBasicInfo.Add(emrBasicInfo); } } } List <string> lstExistsCaseCode = new List <string>(); // 记录不需要显示的表单 List <string> lstProgressCaseCode = new List <string>(); foreach (EntityEmrBasicInfo caseInfo in dataSourceEmrBasicInfo) { //if (caseInfo.catalogId != 0 && lstCatalogID.IndexOf(caseInfo.catalogId) < 0) continue; #region doct.Case // 公用、医生 if (caseInfo.attribute == 0 || caseInfo.attribute == 1) { if (lstCaseBasicInfo.Any(t => t.caseCode == caseInfo.caseCode)) { continue; } if (lstProgressCaseCode.IndexOf(caseInfo.caseCode) >= 0) { continue; } else { bool blnChk = false; foreach (EntityProgressNoteType pnType in dataSourceEmrPnType) { if (pnType.caseCode == caseInfo.caseCode) { blnChk = true; break; } } if (blnChk) { continue; } } caseInfo.parentCode = Function.Dec(caseInfo.catalogId).ToString() + "^"; caseInfo.tempSerNo = 1; caseInfo.pyCode = SpellCodeHelper.GetPyCode(caseInfo.caseName); caseInfo.wbCode = SpellCodeHelper.GetWbCode(caseInfo.caseName); lstCaseBasicInfo.Add(caseInfo); } #endregion #region nurse.Case if (caseInfo.attribute == 0 || caseInfo.attribute == 2) { if (lstCaseBasicInfo.Any(t => t.caseCode == caseInfo.caseCode)) { continue; } caseInfo.parentCode = caseInfo.catalogId.ToString() + "^"; caseInfo.tempSerNo = 1; caseInfo.pyCode = SpellCodeHelper.GetPyCode(caseInfo.caseName); caseInfo.wbCode = SpellCodeHelper.GetWbCode(caseInfo.caseName); lstCaseBasicInfo.Add(caseInfo); } #endregion } foreach (EntityEmrBasicInfo item in lstCaseBasicInfo) { if (item.multiPageFlag == 1) { item.tempSerNo = 2; } } Viewer.tvForm.BeginUpdate(); Viewer.tvForm.DataSource = lstCaseBasicInfo; //EntityEmrBasicInfo[] tmpArr = new EntityEmrBasicInfo[lstCaseBasicInfo.Count]; //lstCaseBasicInfo.CopyTo(tmpArr); Viewer.tvForm.FocusedNodeChanged -= new DevExpress.XtraTreeList.FocusedNodeChangedEventHandler(tvForm_FocusedNodeChanged); Viewer.tvForm.FocusedNodeChanged += new DevExpress.XtraTreeList.FocusedNodeChangedEventHandler(tvForm_FocusedNodeChanged); Viewer.tvForm.ExpandAll(); Viewer.tvForm.EndUpdate(); }