医疗文书未排程列表 点击主复制药品 剂量也复制 在空白行之上 添加多个子药往后新增行 刷新手术间台次逻辑 药品判断相同新增通路 考虑模板 通路 版本号 是否限制用药 自备药品 是否皮试
		
			
				
	
	
		
			879 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			879 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using System.Data;
 | |
| using HelperDB;
 | |
| using DCSoft.Writer.Data;
 | |
| using System.Threading.Tasks;
 | |
| using System.Xml;
 | |
| 
 | |
| namespace DocumentManagement
 | |
| {
 | |
|     public class DocumentDAL
 | |
|     {
 | |
|         private static DocumentDAL _Instance = null;
 | |
|         /// <summary>
 | |
|         /// 对象静态实例
 | |
|         /// </summary>
 | |
|         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;
 | |
| 
 | |
|         /// <summary>
 | |
|         ///  系统时间
 | |
|         /// </summary>
 | |
|         /// <returns>系统时间</returns>
 | |
|         public DateTime SystemDate()
 | |
|         {
 | |
|             string sqlStr = "select getdate() as SysDate";
 | |
|             DataTable dt = DbHelperSQL.GetDataTable(sqlStr);
 | |
|             return DateTime.Parse(dt.Rows[0]["SysDate"].ToString());
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 知识树节点排序
 | |
|         /// </summary>
 | |
|         /// <param name="ls">节点list</param>
 | |
|         internal static void SetOrders(List<string> 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);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 模板节点排序
 | |
|         /// </summary>
 | |
|         /// <param name="ls">节点list</param>
 | |
|         public static void SetTempOrders(List<string> 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);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 查询文档目录
 | |
|         /// </summary>
 | |
|         /// <returns></returns>
 | |
|         public static List<PrintTemplate> LoadTemplateTree()
 | |
|         {
 | |
|             List<PrintTemplate> result = new List<PrintTemplate>();
 | |
|             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;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据工号权限、患者id查询文档目录
 | |
|         /// </summary>
 | |
|         /// <param name="operatorNo">工号</param>
 | |
|         /// <param name="patientId">患者id</param>
 | |
|         /// <returns></returns>
 | |
|         public static List<PrintTemplate> 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<PrintTemplate> result = new List<PrintTemplate>();
 | |
|             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;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 从数据库中加载知识库
 | |
|         /// </summary>
 | |
|         public static void LoadKBLibaray()
 | |
|         {
 | |
|             //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<KBEntry> list = new List<KBEntry>();
 | |
|             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
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 返回视图映射列表
 | |
|         /// </summary>
 | |
|         /// <returns></returns>
 | |
|         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;
 | |
|         }
 | |
| 
 | |
|         internal 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());
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         internal 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;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         internal 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;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据模板名称查询文档
 | |
|         /// </summary>
 | |
|         /// <param name="tempName">模板名称</param>
 | |
|         /// <param name="patientId">患者Id</param>
 | |
|         /// <returns></returns>
 | |
|         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;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据姓名或者住院号获取患者信息
 | |
|         /// </summary>
 | |
|         /// <param name="sql">sql条件</param>
 | |
|         /// <returns></returns>
 | |
|         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 LIS_ITEM_CODE,LIS_ITEM_CODEName,UpdateTime  from LisResult where");
 | |
|                 strSql.Append("   PATIENT_ID = '" + patientNo + "' group by LIS_ITEM_CODE,LIS_ITEM_CODEName,UpdateTime ");
 | |
|                 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 LIS_ITEM_CODE= '" + LIS_ITEM_CODE + "' ");
 | |
|                 return DbHelperSQL.GetDataTable(strSql.ToString());
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 throw ex;
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 根据模板名称查询文档
 | |
|         /// </summary>
 | |
|         /// <param name="tempName">模板名称</param>
 | |
|         /// <param name="patientId">患者Id</param>
 | |
|         /// <returns></returns>
 | |
|         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;
 | |
|         } 
 | |
|     }
 | |
| }
 |