2023-03-30 11:34:46 +08:00

1050 lines
42 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;
}
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;
}
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;
}
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]");
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 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;
}
}
}
}