using AIMSExtension; using DCSoft.Writer.Data; using HelperDB; using System; using System.Collections.Generic; using System.Data; using System.Text; using System.Xml; namespace DocumentManagement { public class DocumentDAL { private static DocumentDAL _Instance = null; /// /// 对象静态实例 /// public static DocumentDAL Instance { get { if (_Instance == null) { _Instance = DocumentDAL.Instance; } return _Instance; } } static DocumentDAL() { LoadKBLibaray(); } //public static string OperatorNo = ""; public static DCSoft.Writer.Data.KBLibrary Lib; /// /// 系统时间 /// /// 系统时间 public DateTime SystemDate() { string sqlStr = "select getdate() as SysDate"; DataTable dt = DbHelperSQL.GetDataTable(sqlStr); return DateTime.Parse(dt.Rows[0]["SysDate"].ToString()); } /// /// 知识树节点排序 /// /// 节点list public static void SetOrders(List ls) { try { StringBuilder strSql = new StringBuilder(); for (int i = 0; i < ls.Count; i++) { strSql.Append(" Update KB_LIST set "); strSql.Append(" LISTINDEX = '" + (i + 1) + "'"); strSql.Append(" where KB_SEQ ='" + ls[i] + "' "); } DbHelperSQL.ExecuteTrasaction(strSql.ToString()); } catch (Exception ex) { DbHelperSQL.RollbackTrans(); throw new Exception(ex.Message); } } /// /// 模板节点排序 /// /// 节点list public static void SetTempOrders(List ls) { try { StringBuilder strSql = new StringBuilder(); for (int i = 0; i < ls.Count; i++) { strSql.Append(" Update PrintTemplate set "); strSql.Append(" TemplateOrder = " + (i + 1) + ""); strSql.Append(" where Id =" + ls[i] + " "); } DbHelperSQL.ExecuteTrasaction(strSql.ToString()); } catch (Exception ex) { DbHelperSQL.RollbackTrans(); throw new Exception(ex.Message); } } /// /// 查询文档目录 /// /// public static List LoadTemplateTree() { List result = new List(); StringBuilder sb = new StringBuilder(); sb.Append("Select "); sb.Append(" [Id] ,"); sb.Append(" ParentId,"); sb.Append(" XmlFileName"); sb.Append(" From PrintTemplate"); sb.Append(" where IsValid = 1"); sb.Append(" Order By TemplateOrder"); sb.Append(" "); DataTable dt = DbHelperSQL.GetDataTable(sb.ToString()); for (int i = 0; i < dt.Rows.Count; i++) { result.Add(new PrintTemplate() { Id = int.Parse(dt.Rows[i]["Id"].ToString()), ParentId = int.Parse(dt.Rows[i]["ParentId"].ToString()), XmlFileName = dt.Rows[i]["XmlFileName"].ToString() }); } return result; } /// /// 根据工号权限、患者id查询文档目录 /// /// 工号 /// 患者id /// public static List LoadTemplateTree(int patientId) { PrintTemplate model = new PrintTemplate(); StringBuilder sb = new StringBuilder(); sb.Append(" Select "); sb.Append(" pt.[Id] ,"); sb.Append(" ParentId,"); sb.Append(" pt.XmlFileName"); if (patientId > 0) { sb.Append(" ,b.Id PrintDocumentId"); } sb.Append(" From PrintTemplate pt"); sb.Append(" left join UserTempPurview u"); sb.Append(" on pt.Id = u.TemplateId"); sb.Append(" left join [Role] r"); sb.Append(" on r.Id = u.RoleId"); sb.Append(" left join Person p"); sb.Append(" on p.RoleId = r.Id"); if (patientId > 0) { sb.Append(" outer apply (select pd.Id from PrintDocument pd "); sb.Append(" where pd.TemplateId = pt.Id"); sb.Append(" and pd.PatientId = " + patientId); sb.Append(" and pd.Isvalid = 1"); sb.Append(" ) b"); } sb.Append(" where "); sb.Append(" 1=1"); sb.Append(" and p.No = '" + AIMSExtension.PublicMethod.OperatorNo + "'"); sb.Append(" and pt.IsValid = 1"); sb.Append(" and r.IsValid = 1"); sb.Append(" and p.IsValid = 1"); sb.Append(" Order By TemplateOrder"); DataTable dt = DbHelperSQL.GetDataTable(sb.ToString()); List result = new List(); for (int i = 0; i < dt.Rows.Count; i++) { result.Add(new PrintTemplate() { Id = int.Parse(dt.Rows[i]["Id"].ToString()), ParentId = int.Parse(dt.Rows[i]["ParentId"].ToString()), XmlFileName = dt.Rows[i]["XmlFileName"].ToString(), PrintDocumentId = (dt.Columns.Count > 3 && !dt.Rows[i]["PrintDocumentId"].ToString().Equals(string.Empty)) ? int.Parse(dt.Rows[i]["PrintDocumentId"].ToString()) : 0 }); } return result; } /// /// 从数据库中加载知识库 /// public static void LoadKBLibaray() { try { //if (Lib != null) //{ // return; //} Lib = new KBLibrary(); DataTable dt = DbHelperSQL.GetDataTable(@"Select KB_SEQ , KB_PARENT , KB_NAME , KB_VALUE , KB_Reflection, KB_STYLE , ListIndex , Reload From KB_List where IsValid = 1 Order By KB_PARENT , LISTINDEX , KB_NAME"); List list = new List(); for (int i = 0; i < dt.Rows.Count; i++) { KBEntry item = new KBEntry(); item.ID = dt.Rows[i][0].ToString(); item.ParentID = dt.Rows[i][1].ToString(); item.Text = dt.Rows[i][2].ToString(); item.Value = dt.Rows[i][3].ToString().Replace("''", "'"); item.Text2 = dt.Rows[i][4].ToString(); if (Enum.IsDefined(typeof(KBEntryStyle), Convert.ToInt32(dt.Rows[i][5]))) { item.Style = (KBEntryStyle)Convert.ToInt32(dt.Rows[i][5]); } else { item.Style = KBEntryStyle.List; } item.SpellCode = dt.Rows[i][7].ToString(); //if (dt.Rows[i][5].ToString() == KBEntryStyle.ListSQL.ToString()) //{ // item.Style = KBEntryStyle.ListSQL; //} //else //{ // item.Style = KBEntryStyle.List; //} list.Add(item); } using (IDataReader reader = DbHelperSQL.GetDataReader(@" Select * FROM KB_ITEM where IsValid = 1 ORDER BY KB_SEQ , LISTINDEX , ITEM_TEXT ")) { //IDataReader reader = cmd.ExecuteReader(); KBEntry currentEnty = null; string bad_kb_seq = null; while (reader.Read()) { string kb_seq = reader.GetString(1); if (kb_seq == bad_kb_seq) { // 错误的知识点节点编号,跳过记录 continue; } if (currentEnty == null || currentEnty.ID != kb_seq) { // 查找当前知识点 currentEnty = null; bad_kb_seq = null; foreach (KBEntry entry in list) { if (entry.ID == kb_seq) { currentEnty = entry; break; } }//foreach } if (currentEnty == null) { bad_kb_seq = kb_seq; continue; } if (reader.IsDBNull(4) == false) { int itemStyle = Convert.ToInt32(reader.GetValue(4)); if (itemStyle == 100) { // 遇到模板节点,添加知识库子节点 if (currentEnty.SubEntries == null) { currentEnty.SubEntries = new KBEntryList(); } KBEntry subEntry = new KBEntry(); subEntry.Style = KBEntryStyle.Template; subEntry.Text = Convert.ToString(reader.GetValue(2)); subEntry.Value = Convert.ToString(reader.GetValue(3)); currentEnty.SubEntries.Add(subEntry); continue; } } if (currentEnty.ListItems == null) { currentEnty.ListItems = new ListItemCollection(); } DCSoft.Writer.Data.ListItem item = new ListItem(); item.Text = reader.GetString(2); item.Value = reader.GetString(3); currentEnty.ListItems.Add(item); } reader.Close(); // 对知识点进行排列,达成上下级关系 KBEntry currentParent = null; string rootID = null; Lib.KBEntries = new KBEntryList(); //this.KBEntries.AddRange(list); foreach (KBEntry item in list) { if (item.ParentID == rootID) { Lib.KBEntries.Add(item); continue; } if (currentParent == null || currentParent.ID != item.ParentID) { currentParent = null; // 找到 foreach (KBEntry item2 in list) { if (item2.ID == item.ParentID) { currentParent = item2; break; } } if (currentParent == null) { // 没有找到上级节点,则为根节点 rootID = item.ParentID; Lib.KBEntries.Add(item); continue; } } if (currentParent.SubEntries == null) { currentParent.SubEntries = new KBEntryList(); } currentParent.SubEntries.Add(item); }//foreach } } catch (Exception ex) { PublicMethod.WriteLog(ex); } } /// /// 返回视图映射列表 /// /// public static DataTable GetReflectionList(string Vw_Info) { StringBuilder strSql = new StringBuilder(); strSql.Append(" Select name,isnull(kb.KB_SEQ,'')as KB_SEQ,kb.ReLoad FROM SysColumns syscn "); strSql.Append(" left join (select KB_SEQ,KB_Reflection,ReLoad from KB_LIST where isvalid =1) kb "); strSql.Append(" on syscn.name = kb.KB_Reflection "); strSql.Append(" Where id=Object_Id('" + Vw_Info + "') "); DataTable dt = DbHelperSQL.GetDataTable(strSql.ToString()); return dt; } public static DataTable GetPatientDoc(string PatientId) { StringBuilder strSql = new StringBuilder(); strSql.Append(" SELECT * FROM [dbo].[PrintDocument] where PatientId='" + PatientId + "' "); DataTable dt = DbHelperSQL.GetDataTable(strSql.ToString()); return dt; } public static void InsertEntry(KBEntry entry) { try { StringBuilder strSql = new StringBuilder(); strSql.Append(" Insert into [KB_LIST]"); strSql.Append(" values( "); strSql.Append(" '" + entry.ID + "',"); strSql.Append(" '" + entry.ParentID + "',"); strSql.Append(" '" + entry.Text + "',"); strSql.Append(" '" + entry.Value.Replace("'", "''") + "',"); strSql.Append(" '" + entry.Text2 + "',"); strSql.Append(" '" + Convert.ToInt32(entry.Style) + "',"); strSql.Append(" (select isnull(MAX(listindex),0)+1 from [KB_LIST] where KB_PARENT = '" + entry.ParentID + "' and IsValid = 1),"); strSql.Append(" 1,"); strSql.Append(" '" + AIMSExtension.PublicMethod.OperatorNo + "',"); strSql.Append(" getdate(),"); strSql.Append(" '" + entry.SpellCode + "'"); strSql.Append(" )"); DbHelperSQL.ExecNonQuery(strSql.ToString()); if (entry.Style != KBEntryStyle.ListSQL && entry.ListItems != null) { RefreshListItems(entry); } } catch (Exception ex) { throw ex; } } private static void RefreshListItems(KBEntry entry) { ListItemCollection list = entry.ListItems; foreach (ListItem item in list) { StringBuilder strSql = new StringBuilder(); strSql.Append(" Insert into [KB_ITEM]"); strSql.Append(" values( "); strSql.Append(" '" + entry.ID + "',"); strSql.Append(" '" + item.Text + "',"); strSql.Append(" '" + item.Value + "',"); strSql.Append(" (select isnull(MAX(listindex),0)+1 from [KB_ITEM] where [KB_SEQ] = '" + entry.ID + "' and IsValid = 1) ,"); strSql.Append(" null ,"); strSql.Append(" 1 ,"); strSql.Append(" '" + AIMSExtension.PublicMethod.OperatorNo + "',"); strSql.Append(" getdate()"); strSql.Append(" )"); DbHelperSQL.ExecNonQuery(strSql.ToString()); } } public static void UpdateEntry(KBEntry entry) { try { StringBuilder strSql = new StringBuilder(); strSql.Append(" update [KB_LIST] set "); strSql.Append(" [KB_PARENT] = '" + entry.ParentID + "',"); strSql.Append(" [KB_NAME] = '" + entry.Text + "',"); strSql.Append(" [KB_VALUE] = '" + entry.Value.Replace("'", "''") + "',"); strSql.Append(" [KB_Reflection] = '" + entry.Text2 + "',"); strSql.Append(" [KB_STYLE] = '" + Convert.ToInt32(entry.Style) + "',"); strSql.Append("OperatorNo='" + AIMSExtension.PublicMethod.OperatorNo + "',"); strSql.Append("OperateDate= getdate(),"); strSql.Append("Reload='" + entry.SpellCode + "'"); strSql.Append(" where KB_SEQ = '" + entry.ID + "'"); DbHelperSQL.ExecNonQuery(strSql.ToString()); if (entry.Style != KBEntryStyle.ListSQL) { strSql = new StringBuilder(); strSql.Append(" update [KB_ITEM] set "); strSql.Append(" [IsValid] = 0,"); strSql.Append("OperatorNo='" + AIMSExtension.PublicMethod.OperatorNo + "',"); strSql.Append("OperateDate= getdate()"); strSql.Append(" where KB_SEQ = '" + entry.ID + "'"); DbHelperSQL.ExecNonQuery(strSql.ToString()); if (entry.ListItems != null) { RefreshListItems(entry); } } } catch (Exception ex) { throw ex; } } public static void DeleteEntry(string id) { try { StringBuilder strSql = new StringBuilder(); strSql.Append(" update [KB_LIST] set "); strSql.Append(" [IsValid] = 0,"); strSql.Append("OperatorNo='" + AIMSExtension.PublicMethod.OperatorNo + "',"); strSql.Append("OperateDate= getdate()"); strSql.Append(" where KB_SEQ = '" + id + "'"); DbHelperSQL.ExecNonQuery(strSql.ToString()); strSql = new StringBuilder(); strSql.Append(" update [KB_ITEM] set "); strSql.Append(" [IsValid] = 0,"); strSql.Append("OperatorNo='" + AIMSExtension.PublicMethod.OperatorNo + "',"); strSql.Append("OperateDate= getdate()"); strSql.Append(" where KB_SEQ = '" + id + "'"); DbHelperSQL.ExecNonQuery(strSql.ToString()); DataTable dt = DbHelperSQL.GetDataTable(" select KB_SEQ from KB_LIST where KB_PARENT = '" + id + "'"); for (int i = 0; i < dt.Rows.Count; i++) { DeleteEntry(dt.Rows[i][0].ToString()); } } catch (Exception ex) { throw ex; } } public static string GetEventXml(int templateId) { string result = string.Empty; try { DataTable dt = DbHelperSQL.GetDataTable("select [XmlStatic] from PrintTemplate where [Id] = '" + templateId + "' and IsValid=1 "); if (dt.Rows.Count > 0) { result = dt.Rows[0]["XmlStatic"].ToString(); //model.OperatorDate = DateTime.Parse(dt.Rows[0]["OperatorDate"].ToString("")); } } catch (Exception ex) { throw ex; } return result; } public static PrintTemplate GetTemplatebyId(int templateId) { PrintTemplate model = new PrintTemplate(); string result = string.Empty; try { DataTable dt = DbHelperSQL.GetDataTable("select * from [PrintTemplate] where [Id] = '" + templateId + "' and IsValid=1 "); if (dt.Rows.Count > 0) { model.Id = int.Parse(dt.Rows[0]["Id"].ToString()); model.ParentId = int.Parse(dt.Rows[0]["ParentId"].ToString()); model.XmlFileName = dt.Rows[0]["XmlFileName"].ToString(); model.XmlFile = dt.Rows[0]["XmlFile"].ToString(); model.XmlStatic = dt.Rows[0]["XmlStatic"].ToString(); model.TemplateOrder = Convert.ToInt16(dt.Rows[0]["TemplateOrder"]); model.OperatorNo = dt.Rows[0]["OperatorNo"].ToString(); //model.OperatorDate = DateTime.Parse(dt.Rows[0]["OperatorDate"].ToString("")); } } catch (Exception ex) { throw ex; } return model; } public static PrintDocument GetDocumentbyId(int docId) { PrintDocument model = new PrintDocument(); string result = string.Empty; try { DataTable dt = DbHelperSQL.GetDataTable("select * from [PrintDocument] where [Id] = '" + docId + "' and IsValid=1 "); if (dt.Rows.Count > 0) { model.Id = int.Parse(dt.Rows[0]["Id"].ToString()); model.PatientId = int.Parse(dt.Rows[0]["PatientId"].ToString()); model.TemplateId = int.Parse(dt.Rows[0]["TemplateId"].ToString()); model.XmlFileName = dt.Rows[0]["XmlFileName"].ToString(); model.XmlFile = dt.Rows[0]["XmlFile"].ToString(); model.XmlStatic = dt.Rows[0]["XmlStatic"].ToString(); model.OperatorNo = dt.Rows[0]["OperatorNo"].ToString(); //model.OperatorDate = DateTime.Parse(dt.Rows[0]["OperatorDate"].ToString("")); } } catch (Exception ex) { throw ex; } return model; } /// /// 根据模板名称查询文档 /// /// 模板名称 /// 患者Id /// public static PrintDocument GetDocumentbyName(string tempName, int patientId) { PrintDocument model = new PrintDocument(); string result = string.Empty; try { StringBuilder sb = new StringBuilder(); sb.Append("select "); sb.Append(" pd.Id,"); sb.Append(" pd.PatientId,"); sb.Append(" pd.TemplateId,"); sb.Append(" pd.XmlFileName,"); sb.Append(" pd.XmlFile,"); sb.Append(" pd.XmlStatic,"); sb.Append(" pd.IsValid,"); sb.Append(" pd.OperatorNo,"); sb.Append(" pd.OperatorDate"); sb.Append(" from PrintDocument pd"); sb.Append(" where "); sb.Append(" pd.PatientId = " + patientId); sb.Append(" and pd.XmlFileName = '" + tempName + "'"); sb.Append(" and pd.IsValid = 1"); sb.Append(" union all"); sb.Append(" select "); sb.Append(" 0,"); sb.Append(" 0,"); sb.Append(" Id,"); sb.Append(" pt.XmlFileName,"); sb.Append(" pt.XmlFile,"); sb.Append(" null,"); sb.Append(" '',"); sb.Append(" null,"); sb.Append(" null"); sb.Append(" from PrintTemplate pt"); sb.Append(" where pt.IsValid = 1"); sb.Append(" and pt.XmlFileName = '" + tempName + "'"); DataTable dt = DbHelperSQL.GetDataTable(sb.ToString()); if (dt.Rows.Count > 0) { model.Id = int.Parse(dt.Rows[0]["Id"].ToString()); model.PatientId = int.Parse(dt.Rows[0]["PatientId"].ToString()); model.TemplateId = int.Parse(dt.Rows[0]["TemplateId"].ToString()); model.XmlFileName = dt.Rows[0]["XmlFileName"].ToString(); model.XmlFile = dt.Rows[0]["XmlFile"].ToString(); model.XmlStatic = dt.Rows[0]["XmlStatic"].ToString(); model.OperatorNo = dt.Rows[0]["OperatorNo"].ToString(); //model.OperatorDate = DateTime.Parse(dt.Rows[0]["OperatorDate"].ToString("")); } } catch (Exception ex) { throw ex; } return model; } public static void InsertTemplate(PrintTemplate model) { try { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into [PrintTemplate]("); strSql.Append("[ParentId],[XmlFileName],[XmlFile],[XmlStatic],TemplateOrder,"); //strSql.Append(" [PermissionLv],"); strSql.Append(" [IsValid],[OperatorNo],[OperatorDate]"); strSql.Append(")"); strSql.Append(" values ("); strSql.Append("'" + model.ParentId + "',"); strSql.Append("'" + model.XmlFileName + "',"); strSql.Append("'" + model.XmlFile + "',"); strSql.Append("'" + model.XmlStatic + "',"); //strSql.Append("" + model.PermissionLv + ","); //strSql.Append("" + model.TemplateOrder + ","); strSql.Append(" (select isnull(max(TemplateOrder)+1,1) from PrintTemplate where IsValid = 1 and ParentId = " + model.ParentId + "),"); strSql.Append(" 1,"); strSql.Append("'" + model.OperatorNo + "',"); strSql.Append(" getdate() "); strSql.Append(")"); strSql.Append(" select Id from [PrintTemplate] where Id = @@Identity"); DataTable dt = DbHelperSQL.GetDataTable(strSql.ToString()); if (dt.Rows.Count > 0) { model.Id = int.Parse(dt.Rows[0]["Id"].ToString()); } } catch (Exception ex) { throw ex; } } public static void InsertPrintDocument(PrintDocument model) { try { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into [PrintDocument]("); strSql.Append("[PatientId],TemplateId,[XmlFileName],[XmlFile],[XmlStatic],"); strSql.Append(" [IsValid],[OperatorNo],[OperatorDate]"); strSql.Append(")"); strSql.Append(" values ("); strSql.Append("" + model.PatientId + ","); strSql.Append("" + model.TemplateId + ","); strSql.Append("'" + model.XmlFileName + "',"); strSql.Append("'" + model.XmlFile + "',"); strSql.Append("'" + model.XmlStatic + "',"); strSql.Append(" 1,"); strSql.Append("'" + model.OperatorNo + "',"); strSql.Append(" getdate() "); strSql.Append(")"); strSql.Append(" select Id from [PrintDocument] where Id = @@Identity"); DataTable dt = DbHelperSQL.GetDataTable(strSql.ToString()); if (dt.Rows.Count > 0) { model.Id = int.Parse(dt.Rows[0]["Id"].ToString()); } } catch (Exception ex) { throw ex; } } public static void UpdateTemplate(PrintTemplate model) { try { StringBuilder strSql = new StringBuilder(); strSql.Append("update [PrintTemplate] set"); strSql.Append(" ParentId=" + model.ParentId + ","); strSql.Append(" XmlFileName='" + model.XmlFileName + "',"); strSql.Append(" XmlFile='" + model.XmlFile + "',"); strSql.Append(" XmlStatic='" + model.XmlStatic + "',"); strSql.Append(" OperatorNo='" + model.OperatorNo + "',"); strSql.Append(" OperatorDate= getdate()"); strSql.Append(" where Id=" + model.Id + " "); DbHelperSQL.ExecNonQuery(strSql.ToString()); } catch (Exception ex) { throw ex; } } public static void UpdatePrintDocument(PrintDocument model) { try { StringBuilder strSql = new StringBuilder(); strSql.Append("update [PrintDocument] set"); strSql.Append(" PatientId=" + model.PatientId + ","); strSql.Append(" TemplateId=" + model.TemplateId + ","); strSql.Append(" XmlFileName='" + model.XmlFileName + "',"); strSql.Append(" XmlFile='" + model.XmlFile + "',"); strSql.Append(" XmlStatic='" + model.XmlStatic + "',"); strSql.Append(" OperatorNo='" + model.OperatorNo + "',"); strSql.Append(" OperatorDate= getdate()"); strSql.Append(" where Id=" + model.Id + " "); DbHelperSQL.ExecNonQuery(strSql.ToString()); } catch (Exception ex) { throw ex; } } public static void UpdateTemplateName(PrintTemplate model) { try { StringBuilder strSql = new StringBuilder(); strSql.Append("update [PrintTemplate] set"); strSql.Append(" XmlFileName='" + model.XmlFileName + "',"); strSql.Append(" OperatorNo='" + model.OperatorNo + "',"); strSql.Append(" OperatorDate= getdate()"); strSql.Append(" where Id=" + model.Id + " "); DbHelperSQL.ExecNonQuery(strSql.ToString()); } catch (Exception ex) { throw ex; } } public static void DeleteTemplate(PrintTemplate model) { try { StringBuilder strSql = new StringBuilder(); strSql.Append("update [PrintTemplate] set"); strSql.Append(" isvalid = 0,"); strSql.Append(" OperatorNo='" + model.OperatorNo + "',"); strSql.Append(" OperatorDate= getdate()"); strSql.Append(" where Id=" + model.Id + " or ParentId=" + model.Id); DbHelperSQL.ExecNonQuery(strSql.ToString()); } catch (Exception ex) { throw ex; } } /// /// 根据姓名或者住院号获取患者信息 /// /// sql条件 /// public static DataTable GetPatients(string sql) { try { StringBuilder strSql = new StringBuilder(); strSql.Append(" select *"); strSql.Append(" from V_OperationRecordALL where 1=1"); strSql.Append(sql); return DbHelperSQL.GetDataTable(strSql.ToString()); } catch (Exception ex) { throw ex; } } public static DataTable GetLisResultNos(string patientNo) { try { StringBuilder strSql = new StringBuilder(); strSql.Append(" select APPLY_NO ,APPLY_NAME ,APPLY_TIME from LisResult where"); strSql.Append(" PATIENT_ID = '" + patientNo + "' group by APPLY_NO ,APPLY_NAME ,APPLY_TIME "); return DbHelperSQL.GetDataTable(strSql.ToString()); } catch (Exception ex) { throw ex; } } public static DataTable GetLisResultItems(string patientNo, string LIS_ITEM_CODE) { try { StringBuilder strSql = new StringBuilder(); strSql.Append(" select * from LisResult where"); strSql.Append(" PATIENT_ID = '" + patientNo + "' and APPLY_NO= '" + LIS_ITEM_CODE + "' "); return DbHelperSQL.GetDataTable(strSql.ToString()); } catch (Exception ex) { throw ex; } } public static DataTable GetPacsResultItems(string patientNo) { try { StringBuilder strSql = new StringBuilder(); strSql.Append(" select * from PacsResult where"); strSql.Append(" PATIENTID = '" + patientNo + "' "); return DbHelperSQL.GetDataTable(strSql.ToString()); } catch (Exception ex) { throw ex; } } /// /// 根据模板名称查询文档 /// /// 模板名称 /// 患者Id /// public static PrintDocument GetDocumentbyName2(string tempName, int patientId) { PrintDocument model = new PrintDocument(); string result = string.Empty; try { StringBuilder sb = new StringBuilder(); sb.Append("select "); sb.Append(" pd.Id,"); sb.Append(" pd.PatientId,"); sb.Append(" pd.TemplateId,"); sb.Append(" pd.XmlFileName,"); sb.Append(" pd.XmlFile,"); sb.Append(" pd.XmlStatic,"); sb.Append(" pd.IsValid,"); sb.Append(" pd.OperatorNo,"); sb.Append(" pd.OperatorDate"); sb.Append(" from PrintDocument pd"); sb.Append(" where "); sb.Append(" pd.PatientId = " + patientId); sb.Append(" and pd.XmlFileName = '" + tempName + "'"); sb.Append(" and pd.IsValid = 1"); DataTable dt = DbHelperSQL.GetDataTable(sb.ToString()); if (dt.Rows.Count > 0) { model.Id = int.Parse(dt.Rows[0]["Id"].ToString()); model.PatientId = int.Parse(dt.Rows[0]["PatientId"].ToString()); model.TemplateId = int.Parse(dt.Rows[0]["TemplateId"].ToString()); model.XmlFileName = dt.Rows[0]["XmlFileName"].ToString(); model.XmlFile = dt.Rows[0]["XmlFile"].ToString(); model.XmlStatic = dt.Rows[0]["XmlStatic"].ToString(); model.OperatorNo = dt.Rows[0]["OperatorNo"].ToString(); } } catch (Exception ex) { throw ex; } return model; } public static XmlDocument GetPrintDocumentXml(string tempName, int patientId) { PrintDocument model = GetDocumentbyName2(tempName, patientId); XmlDocument doc = new XmlDocument(); if (model.XmlStatic != null && model.XmlStatic.Length > 0) { doc.LoadXml(model.XmlStatic); } return doc; } public static string GetDocumentXmlStatic(string tempName, int patientId, string dictName) { string Value = ""; XmlDocument doc = GetPrintDocumentXml(tempName, patientId); XmlElement root = doc.DocumentElement; if (root != null) { foreach (XmlNode row in root.ChildNodes) { if (row.Attributes["Name"].InnerText == dictName) Value = row.InnerText.Trim();//测试方法 } } return Value; } public static PrintDocument GetDocumentbyName(string tempName, int patientId, int RecordId) { PrintDocument model = new PrintDocument(); string result = string.Empty; try { StringBuilder sb = new StringBuilder(); sb.Append("select "); sb.Append(" pd.Id,"); sb.Append(" pd.PatientId,"); sb.Append(" pd.TemplateId,"); sb.Append(" pd.XmlFileName,"); sb.Append(" pd.XmlFile,"); sb.Append(" pd.XmlStatic,"); sb.Append(" pd.IsValid,"); sb.Append(" pd.OperatorNo,"); sb.Append(" pd.OperatorDate,"); sb.Append(" pd.RecordId,"); sb.Append(" pd.Remark,"); sb.Append(" pd.OrderNo"); sb.Append(" from PrintDocument pd"); sb.Append(" where "); sb.Append(" pd.PatientId = " + patientId); sb.Append(" and pd.XmlFileName = '" + tempName + "'"); sb.Append(" and pd.RecordId = '" + RecordId + "'"); sb.Append(" and pd.IsValid = 1"); sb.Append(" union all"); sb.Append(" select "); sb.Append(" 0,"); sb.Append(" 0,"); sb.Append(" Id,"); sb.Append(" pt.XmlFileName,"); sb.Append(" pt.XmlFile,"); sb.Append(" null,"); sb.Append(" '',"); sb.Append(" null,"); sb.Append(" null,"); sb.Append(" null,"); sb.Append(" null,"); sb.Append(" null"); sb.Append(" from PrintTemplate pt"); sb.Append(" where pt.IsValid = 1"); sb.Append(" and pt.XmlFileName = '" + tempName + "'"); DataTable dt = DbHelperSQL.GetDataTable(sb.ToString()); if (dt.Rows.Count > 0) { model.Id = int.Parse(dt.Rows[0]["Id"].ToString()); model.PatientId = int.Parse(dt.Rows[0]["PatientId"].ToString()); model.TemplateId = int.Parse(dt.Rows[0]["TemplateId"].ToString()); model.XmlFileName = dt.Rows[0]["XmlFileName"].ToString(); model.XmlFile = dt.Rows[0]["XmlFile"].ToString(); model.XmlStatic = dt.Rows[0]["XmlStatic"].ToString(); model.OperatorNo = dt.Rows[0]["OperatorNo"].ToString(); //model.OperatorDate = DateTime.Parse(dt.Rows[0]["OperatorDate"].ToString("")); model.RecordId = dt.Rows[0]["RecordId"].ToString(); model.Remark = dt.Rows[0]["Remark"].ToString(); model.OrderNo = dt.Rows[0]["OrderNo"].ToString(); } } catch (Exception ex) { throw ex; } return model; } public static void InsertPrintDocument2(PrintDocument model) { try { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into [PrintDocument]("); strSql.Append("[PatientId],TemplateId,[XmlFileName],[XmlFile],[XmlStatic],"); strSql.Append(" [IsValid],[OperatorNo],[OperatorDate],[RecordId],[Remark],[OrderNo]"); strSql.Append(")"); strSql.Append(" values ("); strSql.Append("" + model.PatientId + ","); strSql.Append("" + model.TemplateId + ","); strSql.Append("'" + model.XmlFileName + "',"); strSql.Append("'" + model.XmlFile + "',"); strSql.Append("'" + model.XmlStatic + "',"); strSql.Append(" 1,"); strSql.Append("'" + model.OperatorNo + "',"); strSql.Append(" getdate(), "); strSql.Append("'" + model.RecordId + "',"); strSql.Append("'" + model.Remark + "',"); strSql.Append("'" + model.OrderNo + "'"); strSql.Append(")"); strSql.Append(" select Id from [PrintDocument] where Id = @@Identity"); DataTable dt = DbHelperSQL.GetDataTable(strSql.ToString()); if (dt.Rows.Count > 0) { model.Id = int.Parse(dt.Rows[0]["Id"].ToString()); } } catch (Exception ex) { throw ex; } } public static void UpdatePrintDocument2(PrintDocument model) { try { StringBuilder strSql = new StringBuilder(); strSql.Append("update [PrintDocument] set"); strSql.Append(" PatientId=" + model.PatientId + ","); strSql.Append(" TemplateId=" + model.TemplateId + ","); strSql.Append(" XmlFileName='" + model.XmlFileName + "',"); strSql.Append(" XmlFile='" + model.XmlFile + "',"); strSql.Append(" XmlStatic='" + model.XmlStatic + "',"); strSql.Append(" OperatorNo='" + model.OperatorNo + "',"); strSql.Append(" OperatorDate= getdate(),"); strSql.Append(" RecordId='" + model.RecordId + "',"); strSql.Append(" Remark='" + model.Remark + "',"); strSql.Append(" OrderNo='" + model.OrderNo + "'"); strSql.Append(" where Id=" + model.Id + " "); DbHelperSQL.ExecNonQuery(strSql.ToString()); } catch (Exception ex) { throw ex; } } public static void DeletePrintDocument(PrintDocument model) { try { StringBuilder strSql = new StringBuilder(); strSql.Append("delete from [PrintDocument] "); strSql.Append(" where Id=" + model.Id); DbHelperSQL.ExecNonQuery(strSql.ToString()); } catch (Exception ex) { throw ex; } } public static void DeletePrintDocument2(PrintDocument model) { try { StringBuilder strSql = new StringBuilder(); strSql.Append("update [PrintDocument] set"); strSql.Append(" isvalid = 0,"); strSql.Append(" OperatorNo='" + model.OperatorNo + "',"); strSql.Append(" OperatorDate= getdate()"); strSql.Append(" where Id=" + model.Id); DbHelperSQL.ExecNonQuery(strSql.ToString()); } catch (Exception ex) { throw ex; } } public static void DeletePrintDocument3(string FileName, int PatientId, string OperatorNo) { try { StringBuilder strSql = new StringBuilder(); strSql.Append("update [PrintDocument] set"); strSql.Append(" isvalid = 0,"); strSql.Append(" OperatorNo='" + OperatorNo + "',"); strSql.Append(" OperatorDate= getdate()"); strSql.Append(" where PatientId=" + PatientId); strSql.Append(" and XmlFileName='" + FileName + "'"); DbHelperSQL.ExecNonQuery(strSql.ToString()); } catch (Exception ex) { throw ex; } } } }