医疗文书未排程列表 点击主复制药品 剂量也复制 在空白行之上 添加多个子药往后新增行 刷新手术间台次逻辑 药品判断相同新增通路 考虑模板 通路 版本号 是否限制用药 自备药品 是否皮试
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;
|
|
}
|
|
}
|
|
}
|