/// <summary> /// 设置节点颜色 /// </summary> /// <param name="templates"></param> /// <param name="node"></param> public void setNodeColor(Class_Follow_Patients templates, TreeNode node) { if (templates != null) { if (Temp_Sections.Tables[0].Select("ISDEFAULT='Y' and TEMPLATE_ID='" + templates.Tid.ToString() + "'").Length > 0) { //科室级默认模板 node.ForeColor = Color.Blue; } else if (templates.TempPlate_Level == 'H' && templates.IsDefault == 'Y') { //全院默认模板 node.ForeColor = Color.Green; } else if (Temp_Sections.Tables[0].Select("ISDEFAULT='N' and TEMPLATE_ID='" + templates.Tid.ToString() + "'").Length > 0 && Temp_Sections.Tables[0].Select("ISDEFAULT='Y' and TEMPLATE_ID='" + templates.Tid.ToString() + "'").Length == 0) { //科室模板 node.ForeColor = Color.Crimson; } else if (templates.TempPlate_Level == 'H' && templates.IsDefault == 'N') { //全院默认模板 node.ForeColor = Color.DarkGoldenrod; } else { //什么都不是 node.ForeColor = Color.Black; } } }
//鼠标右键打开时触发事件 private void ctmTreeViewMenu_Opening(object sender, CancelEventArgs e) { if (trvModel.SelectedNode.Tag.GetType().ToString().Contains("Class_Follow_Patients")) { Class_Follow_Patients pdoc = (Class_Follow_Patients)trvModel.SelectedNode.Tag; Class_Follow_Text parent = (Class_Follow_Text)trvModel.SelectedNode.Parent.Tag; //判断是否为该类型下全院默认模板 string defaultSql = "select * from T_FOLLOW_TEMPPLATE where tid=" + pdoc.Tid + " and isdefault='Y' and tempplate_level='H' and Text_type=" + parent.Id + ""; //判断全院级模板 string sql = "select * from T_FOLLOW_TEMPPLATE where tid=" + pdoc.Tid + " and tempplate_level='H' "; DataSet dsTest1 = App.GetDataSet(sql); if (dsTest1 != null) { //判断默认模板 if (dsTest1.Tables[0].Rows.Count != 0) { tsmiModel.Enabled = false; DataSet dsTest2 = App.GetDataSet(defaultSql); if (dsTest2 != null) { if (dsTest2.Tables[0].Rows.Count != 0) { tsmiDefaultModel.Enabled = false; } } } } else { tsmiDefaultModel.Enabled = true; } } }
/// <summary> /// 实例化文书模版 /// </summary> /// <param name="temp"></param> /// <returns></returns> public Class_Follow_Patients[] GetPatients(DataSet temp) { if (temp != null) { if (temp.Tables[0].Rows.Count != 0) { int sum = temp.Tables[0].Rows.Count; Class_Follow_Patients[] des = new Class_Follow_Patients[sum]; for (int i = 0; i < sum; i++) { des[i] = new Class_Follow_Patients(); des[i].Tid = Convert.ToInt32(temp.Tables[0].Rows[i]["tid"].ToString()); des[i].TName = temp.Tables[0].Rows[i]["TName"].ToString(); des[i].TextKind = temp.Tables[0].Rows[i]["text_type"].ToString(); des[i].TempPlate_Level = Convert.ToChar(temp.Tables[0].Rows[i]["TempPlate_Level"].ToString()); des[i].Section_ID = temp.Tables[0].Rows[i]["Section_ID"].ToString(); des[i].Creator_ID = Convert.ToInt32(temp.Tables[0].Rows[i]["Creator_ID"].ToString()); des[i].Create_Time = temp.Tables[0].Rows[i]["Create_Time"].ToString(); des[i].Enable_Flag = Convert.ToChar(temp.Tables[0].Rows[i]["Enable_Flag"].ToString()); des[i].IsDefault = Convert.ToChar(temp.Tables[0].Rows[i]["IsDefault"].ToString()); des[i].Creator_Role = temp.Tables[0].Rows[i]["Creator_Role"].ToString(); } return(des); } else { return(null); } } else { return(null); } }
private static void setTreeView3(Class_Follow_Patients templates, TreeNodeCollection nodes) { if (templates != null) { foreach (TreeNode node in nodes) { if (node.Tag.GetType().ToString().Contains("Class_Follow_Text")) { Class_Follow_Text cunrrentDir = node.Tag as Class_Follow_Text; if (templates.TextKind == cunrrentDir.Id.ToString()) { TreeNode tn = new TreeNode(); if (Temp_Sections.Tables[0].Select("ISDEFAULT='Y' and TEMPLATE_ID='" + templates.Tid.ToString() + "'").Length > 0) { //科室级默认模板 tn.ForeColor = Color.Blue; } else if (templates.TempPlate_Level == 'H' && templates.IsDefault == 'Y') { //全院默认模板 tn.ForeColor = Color.Green; } else if (Temp_Sections.Tables[0].Select("ISDEFAULT='N' and TEMPLATE_ID='" + templates.Tid.ToString() + "'").Length > 0 && Temp_Sections.Tables[0].Select("ISDEFAULT='Y' and TEMPLATE_ID='" + templates.Tid.ToString() + "'").Length == 0) { //科室模板 tn.ForeColor = Color.Crimson; } else if (templates.TempPlate_Level == 'H' && templates.IsDefault == 'N') { //全院默认模板 tn.ForeColor = Color.DarkGoldenrod; } else { //什么都不是 tn.ForeColor = Color.Black; } tn.Tag = templates; tn.Text = templates.TName; tn.Name = templates.Tid.ToString(); tn.ImageIndex = 13; tn.SelectedImageIndex = 13; node.Nodes.Add(tn); tn.Parent.SelectedImageIndex = 6; tn.Parent.ImageIndex = 6; SetParentNodeExpand(tn); } } if (node.Nodes.Count > 0) { setTreeView3(templates, node.Nodes); } } } }
/// <summary> /// 双击相关文书树 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void trvRelatedDoc_DoubleClick(object sender, EventArgs e) { if (trvRelatedDoc.SelectedNode != null) { try { Class_Follow_Patients template = trvRelatedDoc.SelectedNode.Tag as Class_Follow_Patients; string temp = "select content from T_FOLLOW_TEMPPLATE_CONT where tid=" + template.Tid + ""; DataSet dsTemp = App.GetDataSet(temp); if (dsTemp != null) { DataTable dtTemp = dsTemp.Tables[0]; string content = ""; if (dtTemp.Rows.Count != 0) { for (int k = 0; k < dtTemp.Rows.Count; k++) { content = content + dtTemp.Rows[k][0].ToString(); } xmlDoc = new XmlDocument();//加入XML的声明段落 xmlDoc.PreserveWhitespace = true; if (content.Contains("emrtextdoc")) { xmlDoc.LoadXml(content); } else { string strXml = GetXmlContent(); xmlDoc.LoadXml(strXml); xmlNode = xmlDoc.SelectSingleNode("emrtextdoc");//查找<body> foreach (XmlNode bodyNode in xmlNode.ChildNodes) { if (bodyNode.Name == "body") { bodyNode.InnerXml = content; } } } frmText tempEditor = tctlDoc.SelectedPanel.Controls[0] as frmText; if (tempEditor != null) { tempEditor.MyDoc.FromXML(xmlDoc.DocumentElement); tempEditor.MyDoc.ContentChanged(); } } } } catch (Exception ex) { App.MsgErr(ex.Message); } } }
//设置为全院默认模板 private void tsmiDefaultModel_Click(object sender, EventArgs e) { if (trvModel.SelectedNode.Tag.GetType().ToString().Contains("Class_Follow_Patients")) { Class_Follow_Patients pdoc = (Class_Follow_Patients)trvModel.SelectedNode.Tag; TreeNode selectedNode = trvModel.SelectedNode; TreeNode parentNode = selectedNode.Parent; string[] sqls = new string[3]; int x = 0; //取消老模板 string oldSql = "select * from T_Follow_TempPlate where ISDEFAULT='Y' and tempplate_level='H' and text_type=" + parentNode.Name + ""; string oldId = App.ReadSqlVal(oldSql, 0, "TID"); foreach (TreeNode node in parentNode.Nodes) { if (node.Name == oldId) { node.ForeColor = SystemColors.ControlText; //老模板 } } //默认模板的取消 if (oldId != null) { sqls[0] = "update T_Follow_TempPlate set ISDEFAULT='N' where tid=" + oldId + ""; } else { sqls[0] = ""; } //设置默认模板 sqls[1] = "update T_Follow_TempPlate set tempplate_level='H',ISDEFAULT='Y' where tid =" + pdoc.Tid; //删除所有的科室模板设置 sqls[2] = "delete from t_Follow_tempplate_section where TEMPLATE_ID=" + pdoc.Tid + ""; x = App.ExecuteBatch(sqls); selectedNode.ForeColor = Color.Green; //新模板 if (x > 0) { App.Msg("设置成功!"); } } }
/// <summary> /// 实例化查询结果 Class_Template /// </summary> /// <param name="text"></param> /// <returns></returns> public Class_Follow_Patients[] GetTemplates(string msg) { string sql = ""; if (msg != "") { sql = "select * from t_follow_tempplate where " + msg;// where Text_type = " + textId; } else { sql = "select * from t_follow_tempplate";// where Text_type = " + textId; } DataSet ds = App.GetDataSet(sql); if (ds != null) { Class_Follow_Patients[] templates = new Class_Follow_Patients[ds.Tables[0].Rows.Count]; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { templates[i] = new Class_Follow_Patients(); templates[i].Tid = Convert.ToInt32(ds.Tables[0].Rows[i]["TID"]); templates[i].TName = ds.Tables[0].Rows[i]["TNAME"].ToString(); if (ds.Tables[0].Rows[i]["TEXT_TYPE"].ToString().Trim() != "") { templates[i].TextKind = ds.Tables[0].Rows[i]["TEXT_TYPE"].ToString(); } if (ds.Tables[0].Rows[i]["TEMPPLATE_LEVEL"].ToString().Trim() != "") { templates[i].TempPlate_Level = Convert.ToChar(ds.Tables[0].Rows[i]["TEMPPLATE_LEVEL"]); } if (ds.Tables[0].Rows[i]["ISDEFAULT"].ToString().Trim() != "") { templates[i].IsDefault = Convert.ToChar(ds.Tables[0].Rows[i]["ISDEFAULT"]); } templates[i].Default_sec_id = ds.Tables[0].Rows[i]["DEFAULT_SEC_ID"].ToString(); } return(templates); } else { return(null); } }
/// <summary> /// 加载模板 /// </summary> private void LeftMouseClick() { if (trvFollowType.SelectedNode.Tag.GetType().ToString().Contains("Class_Follow_Patients")) { Class_Follow_Patients doc = (Class_Follow_Patients)trvFollowType.SelectedNode.Tag; //current_id = doc.Tid.ToString(); string temp = "select Content from T_Follow_TempPlate_Cont where tid=" + doc.Tid; DataSet dsTemp = App.GetDataSet(temp); DataTable dtTemp = dsTemp.Tables[0]; string content = ""; for (int i = 0; i < dtTemp.Rows.Count; i++) { content = content + dtTemp.Rows[i][0].ToString(); } xmlDoc = new XmlDocument();//加入XML的声明段落 xmlDoc.PreserveWhitespace = true; if (content.Contains("emrtextdoc")) { xmlDoc.LoadXml(content); } else { string strXml = GetXmlContent(); xmlDoc.LoadXml(strXml); xmlNode = xmlDoc.SelectSingleNode("emrtextdoc");//查找<body> foreach (XmlNode bodyNode in xmlNode.ChildNodes) { if (bodyNode.Name == "body") { bodyNode.InnerXml = content; } } } Template.fmT.MyDoc.FromXML(xmlDoc.DocumentElement); Template.fmT.MyDoc.ContentChanged(); } }
/// <summary> /// 清除文书模板 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void 除文书模版ToolStripMenuItem_Click(object sender, EventArgs e) { bool result = App.Ask("确认要删除吗?"); if (result) { Class_Follow_Patients pdoc = (Class_Follow_Patients)trvModel.SelectedNode.Tag; string delPatients_Doc = "delete from t_follow_tempplate where tid=" + pdoc.Tid; string delModel_Lable = "delete from t_follow_tempplate_cont where tid=" + pdoc.Tid; string[] strSqls = { delPatients_Doc, delModel_Lable }; int i = App.ExecuteBatch(strSqls); if (i > 0) { MessageBox.Show("删除成功"); this.trvModel.SelectedNode.Remove(); Template.fmT.MyDoc.ClearContent(); } else { MessageBox.Show("删除失败"); } } }
/// <summary> /// 无效文书 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void 无效ToolStripMenuItem_Click(object sender, EventArgs e) { if (trvModel.SelectedNode.Tag.GetType().ToString().Contains("Class_Follow_Patients")) { Class_Follow_Patients pdoc = (Class_Follow_Patients)trvModel.SelectedNode.Tag; string sql = "update T_FOLLOW_TEMPPLATE set enable_flag='N' where tid=" + pdoc.Tid + ""; if (App.Ask("确定无效化文书?")) { try { App.ExecuteSQL(sql); trvModel.SelectedNode.Remove(); } catch (Exception ex) { App.Msg(ex.Message); } } else { return; } } }
/// <summary> /// 设置为全院模板 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tsmiModel_Click(object sender, EventArgs e) { if (trvModel.SelectedNode.Tag.GetType().ToString().Contains("Class_Follow_Patients")) { Class_Follow_Patients pdoc = (Class_Follow_Patients)trvModel.SelectedNode.Tag; TreeNode selectedNode = trvModel.SelectedNode; TreeNode parentNode = selectedNode.Parent; string[] sqls = new string[2]; int x = 0; //设置默认模板 sqls[0] = "update T_Follow_TempPlate set tempplate_level='H',ISDEFAULT='N' where tid =" + pdoc.Tid; //删除所有的科室模板设置 sqls[1] = "delete from t_Follow_tempplate_section t where TEMPLATE_ID=" + pdoc.Tid + ""; x = App.ExecuteBatch(sqls); selectedNode.ForeColor = Color.DarkGoldenrod; //新模板 if (x > 0) { App.Msg("设置成功!"); } } }
//保存模板 private void btnOK_Click(object sender, EventArgs e) { Class_Follow_Patients cpd = new Class_Follow_Patients(); if (InputValid()) { //模版Id cpd.Tid = App.GenId("T_Follow_TempPlate", "TID"); //使用范围 if (this.rdoPersonal.Checked == true) { cpd.TempPlate_Level = 'P'; //个人 } if (this.rdoSection.Checked == true) { cpd.TempPlate_Level = 'S'; //科室 } if (this.rdoHospital.Checked == true) { cpd.TempPlate_Level = 'H'; //全院 } cpd.TName = txtAutoTPName.Text; //模板名称 //科室ID if (App.UserAccount.CurrentSelectRole.Section_Id != string.Empty) { cpd.Section_ID = App.UserAccount.CurrentSelectRole.Section_Id; } cpd.TextKind = ucFollowTemplateManagement.text_kind.ToString(); //创建人ID cpd.Creator_ID = Convert.ToInt32(App.UserAccount.UserInfo.User_id); cpd.Create_Time = App.GetSystemTime().ToShortDateString(); ArrayList Sqls = new ArrayList(); //设置默认模板 string ISDEFAULT = "N"; if (this.rdbYes.Checked) { //默认模板 //Sqls.Add("update T_Follow_TempPlate set ISDEFAULT='Y' where text_type='" + cpd.TextKind + "'"); ISDEFAULT = "Y"; } else { ISDEFAULT = "N"; } string temp = ""; DataSet samedocs = App.GetDataSet("select tid from T_Follow_TempPlate where tname='" + cpd.TName + "'"); if (samedocs.Tables[0] != null) { if (samedocs.Tables[0].Rows.Count > 0) { App.MsgWaring("已经存在相同名称的文书,请先修改名称"); return; } } //插入模版表 if (App.UserAccount.CurrentSelectRole.Section_Id != "") { temp = "insert into T_Follow_TempPlate(tid, tname, text_type, tempplate_level, creator_id, enable_flag,ISDEFAULT,SECTION_ID,create_time,creator_role) " + "values(" + cpd.Tid + ",'" + cpd.TName + "'," + "'" + cpd.TextKind + "','" + cpd.TempPlate_Level + "'," + "" + cpd.Creator_ID + "" + ",'Y','" + ISDEFAULT + "'," + App.UserAccount.CurrentSelectRole.Section_Id + ",to_date('" + cpd.Create_Time + "','yyyy-MM-dd'),'" + App.UserAccount.CurrentSelectRole.Role_name + "')"; } else { temp = "insert into T_Follow_TempPlate(tid, tname, , text_type, tempplate_level, enable_flag,ISDEFAULT,create_time) values(" + cpd.Tid + ",'" + cpd.TName + "'," + "'" + cpd.TextKind + "','" + cpd.TempPlate_Level + "'," + "'N','" + ISDEFAULT + "',to_date('" + cpd.Create_Time + "','yyyy-MM-dd'))"; } Sqls.Add(temp); if (App.UserAccount.CurrentSelectRole.Role_type == "D") { //科室医生保存模板 if (cpd.TempPlate_Level == 'S') { Sqls.Add("insert into T_Follow_TEMPPLATE_SECTION(TEMPLATE_ID,SECTION_ID,ISDEFAULT)values(" + cpd.Tid + ",'" + App.UserAccount.CurrentSelectRole.Section_Id + "','N')"); } } /* * 移除含有timeTitle属性的div节点 */ XmlNode root = xmldoc.FirstChild; bool atrribue = false; foreach (XmlNode firstNode in root.ChildNodes) { if (firstNode.Name == "body") { foreach (XmlNode secondNode in firstNode.ChildNodes) { if (secondNode.Name == "div") { if (secondNode != null) { for (int i = 0; i < secondNode.Attributes.Count; i++) { if (secondNode.Attributes[i].Name.Trim().ToLower() == "timetitle") { atrribue = true; } } if (atrribue) { firstNode.RemoveChild(secondNode); break; } } } } } if (atrribue) { break; } } //过滤模板文件 DataInit.filterInfo(xmldoc.DocumentElement, Convert.ToInt32(cpd.TextKind)); string temp3 = InsertLableContent(cpd.Tid, xmldoc.OuterXml); if (temp3.Trim() == "") { App.MsgErr("保存失败!"); Template.fmT.MyDoc.ClearContent(); this.Close(); return; } string[] AddSqls = new string[Sqls.Count]; for (int i = 0; i < Sqls.Count; i++) { AddSqls[i] = Sqls[i].ToString(); } int x = App.ExecuteBatch(AddSqls); if (x > 0) { App.Msg("模版保存成功!"); this.Close(); if (treeView1 != null) { TreeNode node = new TreeNode(); node.Tag = cpd; if (txtAutoTPName.Text.Trim() == "") { node.Text = cpd.Create_Time; } else { node.Text = txtAutoTPName.Text; } node.ImageIndex = 13; node.SelectedImageIndex = 13; treeView1.SelectedNode.ImageIndex = 6; treeView1.SelectedNode.SelectedImageIndex = 6; treeView1.SelectedNode.Nodes.Add(node); treeView1.Refresh(); } } else { App.MsgErr("保存失败!"); } } }
/// <summary> /// 加载模板 /// </summary> private void LeftMouseClick() { ctmTreeViewMenu.Enabled = true; if (trvModel.SelectedNode.Tag.GetType().ToString().Contains("Class_Follow_Patients")) { 添加文书模板toolStripMenuItem.Enabled = false; 除文书模版ToolStripMenuItem.Enabled = true; tsmiRename.Enabled = true; tsmiModel.Enabled = true; tsmiDefaultModel.Enabled = true; tsmiSetSectionModel.Enabled = true; btnSave.Enabled = true; Class_Follow_Patients doc = (Class_Follow_Patients)trvModel.SelectedNode.Tag; Class_Follow_Text parent = trvModel.SelectedNode.Parent.Tag as Class_Follow_Text; current_id = doc.Tid.ToString(); text_kind = Convert.ToInt32(doc.TextKind); sid = parent.Sid; string temp = "select Content from T_Follow_TempPlate_Cont where tid=" + doc.Tid; DataSet dsTemp = App.GetDataSet(temp); DataTable dtTemp = dsTemp.Tables[0]; string content = ""; for (int i = 0; i < dtTemp.Rows.Count; i++) { content = content + dtTemp.Rows[i][0].ToString(); } xmlDoc = new XmlDocument();//加入XML的声明段落 xmlDoc.PreserveWhitespace = true; if (content.Contains("emrtextdoc")) { xmlDoc.LoadXml(content); } else { string strXml = GetXmlContent(); xmlDoc.LoadXml(strXml); xmlNode = xmlDoc.SelectSingleNode("emrtextdoc");//查找<body> foreach (XmlNode bodyNode in xmlNode.ChildNodes) { if (bodyNode.Name == "body") { bodyNode.InnerXml = content; } } } Template.fmT.MyDoc.FromXML(xmlDoc.DocumentElement); Template.fmT.MyDoc.ContentChanged(); } else { if (trvModel.SelectedNode.Parent == null) { ctmTreeViewMenu.Enabled = false; } else { ctmTreeViewMenu.Enabled = true; if (trvModel.SelectedNode.Nodes.Count > 0) { //文书类型的叶节点 if (trvModel.SelectedNode.Nodes[0].Tag.GetType().ToString().Contains("Class_Follow_Patients")) { 添加文书模板toolStripMenuItem.Enabled = true; 除文书模版ToolStripMenuItem.Enabled = false; tsmiRename.Enabled = false; tsmiDefaultModel.Enabled = false; tsmiModel.Enabled = false; tsmiSetSectionModel.Enabled = false; btnSave.Enabled = false; } else { ctmTreeViewMenu.Enabled = false; btnSave.Enabled = false; } } else { 添加文书模板toolStripMenuItem.Enabled = true; 除文书模版ToolStripMenuItem.Enabled = false; tsmiRename.Enabled = false; tsmiModel.Enabled = false; tsmiSetSectionModel.Enabled = false; tsmiDefaultModel.Enabled = false; btnSave.Enabled = false; } } } }