|
@@ -55,23 +55,20 @@ namespace MediII.Adapter.BizComponent.ADT
|
|
|
{
|
|
{
|
|
|
switch (evntType)
|
|
switch (evntType)
|
|
|
{
|
|
{
|
|
|
- case "ADT^A01": return new ADT_A01_Handler();// 住院患者
|
|
|
|
|
- case "ADT^A02": return new ADT_A02_Handler();//住院更新
|
|
|
|
|
- case "ADT^A05": return new ADT_A05_Handler();//门诊患者更新
|
|
|
|
|
- case "ADT^A04": return new ADT_A04_Handler();// 门诊患者入院
|
|
|
|
|
- //case "A08": return new ADT_A08_Handler();//患者信息修改:
|
|
|
|
|
- //case "A10": return new ADT_A10_Handler();//入科
|
|
|
|
|
- //case "A11": return new ADT_A11_Handler();//取消入院
|
|
|
|
|
- //case "A13": return new ADT_A13_Handler();//取消出院(ADT^A13)
|
|
|
|
|
- //case "A16": return new ADT_A16_Handler();//患者预出院
|
|
|
|
|
- //case "A25": return new ADT_A25_Handler();//患者取消预出院
|
|
|
|
|
- //case "A28": return new ADT_A28_Handler();//患者建档
|
|
|
|
|
- //case "A31": return new ADT_A31_Handler();//患者基本信息修改(ADT^A31)
|
|
|
|
|
- //case "A29": return new ADT_A29_Handler();//删除婴儿信息(ADT^A29^ADT_A21)
|
|
|
|
|
- //case "A54": return new ADT_A54_Handler();//修改主治医生
|
|
|
|
|
- //case "A60": return new ADT_A60_Handler();//患者副作用信息修改
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+ case "ADT^A01[B01]": return new ADT_A01B01_Handler();// 住院就诊信息登记、相关明细任务生成
|
|
|
|
|
+ case "ADT^A01[B02]": return new ADT_A01B02_Handler();// 住院处方单
|
|
|
|
|
+ case "ADT^A01[B03]": return new ADT_A01B03_Handler();// 住院收费明细
|
|
|
|
|
+ case "ADT^A01[B04]": return new ADT_A01B04_Handler();// 住院转科转床
|
|
|
|
|
+ case "ADT^A03": return new ADT_A03_Handler();//患者出院信息
|
|
|
|
|
+ case "ADT^A04[B01]": return new ADT_A04B01_Handler();// 门诊处方单
|
|
|
|
|
+ case "ADT^A04[B02]": return new ADT_A04B02_Handler();//门诊收费明细
|
|
|
|
|
+ case "ADT^A04[B03]": return new ADT_A04B03_Handler();//门诊挂号
|
|
|
|
|
+ case "ADT^A08[B01]": return new ADT_A08B01_Handler();//门急诊诊断信息
|
|
|
|
|
+ case "ADT^A08[B02]": return new ADT_A08B02_Handler();//住院诊断信息
|
|
|
|
|
+ case "ADT^A31": return new ADT_A31_Handler();//患者基本信息
|
|
|
|
|
+ case "ADT^A90": return new ADT_A90_Handler();//病案首页信息
|
|
|
|
|
+ case "ADT^A91": return new ADT_A91_Handler();//发票金额
|
|
|
|
|
+ case "ADT^A92": return new ADT_A92_Handler();//药品领用出库信息
|
|
|
|
|
|
|
|
|
|
|
|
|
default: throw new NotImplementedException();
|
|
default: throw new NotImplementedException();
|
|
@@ -92,7 +89,7 @@ namespace MediII.Adapter.BizComponent.ADT
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
/// <param name="m">传入的消息结构</param>
|
|
/// <param name="m">传入的消息结构</param>
|
|
|
/// <returns>ACK</returns>
|
|
/// <returns>ACK</returns>
|
|
|
- public abstract void Handler(string m);
|
|
|
|
|
|
|
+ public abstract void Handler(TaskMessage m);
|
|
|
|
|
|
|
|
#region 获取字典信息
|
|
#region 获取字典信息
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -103,8 +100,8 @@ namespace MediII.Adapter.BizComponent.ADT
|
|
|
{
|
|
{
|
|
|
var ntb = new DataTable();
|
|
var ntb = new DataTable();
|
|
|
var sql = string.Format("SELECT CodeID,CodeName,HisCodeID,MedCodeID FROM HealthCare.dbo.[{0}] WHERE IsDel=0", viewName);
|
|
var sql = string.Format("SELECT CodeID,CodeName,HisCodeID,MedCodeID FROM HealthCare.dbo.[{0}] WHERE IsDel=0", viewName);
|
|
|
- var cmd = SqlDataAccess.GetSqlStringCommand(ctx, sql);
|
|
|
|
|
- ntb.Load(SqlDataAccess.ExecuteReader(ctx, cmd));
|
|
|
|
|
|
|
+ var cmd = MySqlDataAccess.GetSqlStringCommand(ctx, sql);
|
|
|
|
|
+ ntb.Load(MySqlDataAccess.ExecuteReader(ctx, cmd));
|
|
|
return ntb;
|
|
return ntb;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -118,8 +115,8 @@ namespace MediII.Adapter.BizComponent.ADT
|
|
|
protected string GetZone(Database ctx, string hisZone)
|
|
protected string GetZone(Database ctx, string hisZone)
|
|
|
{
|
|
{
|
|
|
var sql = string.Format("SELECT top 1 Zone FROM HealthCare.dbo.HisInfo WHERE HisZone='{0}'", hisZone);
|
|
var sql = string.Format("SELECT top 1 Zone FROM HealthCare.dbo.HisInfo WHERE HisZone='{0}'", hisZone);
|
|
|
- var cmd = SqlDataAccess.GetSqlStringCommand(ctx, sql);
|
|
|
|
|
- var val = StrHelepr.Obj2StrTrim(SqlDataAccess.ExecuteScalar(ctx, cmd));
|
|
|
|
|
|
|
+ var cmd = MySqlDataAccess.GetSqlStringCommand(ctx, sql);
|
|
|
|
|
+ var val = StrHelepr.Obj2StrTrim(MySqlDataAccess.ExecuteScalar(ctx, cmd));
|
|
|
if (string.IsNullOrEmpty(val))
|
|
if (string.IsNullOrEmpty(val))
|
|
|
{
|
|
{
|
|
|
return hisZone;
|
|
return hisZone;
|
|
@@ -135,8 +132,8 @@ namespace MediII.Adapter.BizComponent.ADT
|
|
|
protected string GetSeq(Database ctx, string seqName)
|
|
protected string GetSeq(Database ctx, string seqName)
|
|
|
{
|
|
{
|
|
|
string sql = string.Format("SELECT NEXT VALUE FOR {0}", seqName);
|
|
string sql = string.Format("SELECT NEXT VALUE FOR {0}", seqName);
|
|
|
- var cmd = SqlDataAccess.GetSqlStringCommand(ctx, sql);
|
|
|
|
|
- object obj = SqlDataAccess.ExecuteScalar(ctx, cmd);
|
|
|
|
|
|
|
+ var cmd = MySqlDataAccess.GetSqlStringCommand(ctx, sql);
|
|
|
|
|
+ object obj = MySqlDataAccess.ExecuteScalar(ctx, cmd);
|
|
|
if (obj != null)
|
|
if (obj != null)
|
|
|
return obj.ToString();
|
|
return obj.ToString();
|
|
|
else
|
|
else
|
|
@@ -151,7 +148,7 @@ namespace MediII.Adapter.BizComponent.ADT
|
|
|
internal DateTime GetNow(Database ctx)
|
|
internal DateTime GetNow(Database ctx)
|
|
|
{
|
|
{
|
|
|
|
|
|
|
|
- object obj = (DateTime)SqlDataAccess.ExecuteScalar(ctx, CommandType.Text, "select GETDATE()");
|
|
|
|
|
|
|
+ object obj = (DateTime)MySqlDataAccess.ExecuteScalar(ctx, CommandType.Text, "select SYSDATE()");
|
|
|
if (obj != null)
|
|
if (obj != null)
|
|
|
return Convert.ToDateTime(obj.ToString());
|
|
return Convert.ToDateTime(obj.ToString());
|
|
|
else
|
|
else
|
|
@@ -175,18 +172,18 @@ namespace MediII.Adapter.BizComponent.ADT
|
|
|
protected void AddNewWardLog(Database ctx, string visitNo, string updateUser, string OperateTypeInstr, string remark, string oldMsg, string newMsg)
|
|
protected void AddNewWardLog(Database ctx, string visitNo, string updateUser, string OperateTypeInstr, string remark, string oldMsg, string newMsg)
|
|
|
{
|
|
{
|
|
|
var sql = @" INSERT INTO HealthCare.dbo.Log_WardOperateLog( VisitNo , UpdateUser , UpdateDateTime , OperateTypeInstr , IP , Mac , Remark , OldContent , NewContent) VALUES( @VisitNo , @UpdateUser , GETDATE() , @OperateTypeInstr , @IP , @Mac , @Remark , @OldContent , @NewContent) ";
|
|
var sql = @" INSERT INTO HealthCare.dbo.Log_WardOperateLog( VisitNo , UpdateUser , UpdateDateTime , OperateTypeInstr , IP , Mac , Remark , OldContent , NewContent) VALUES( @VisitNo , @UpdateUser , GETDATE() , @OperateTypeInstr , @IP , @Mac , @Remark , @OldContent , @NewContent) ";
|
|
|
- var cmd = SqlDataAccess.GetSqlStringCommand(ctx, sql);
|
|
|
|
|
-
|
|
|
|
|
- SqlDataAccess.AddInParameter(ctx, cmd, "VisitNo", DbType.AnsiString, visitNo);
|
|
|
|
|
- SqlDataAccess.AddInParameter(ctx, cmd, "UpdateUser", DbType.AnsiString, updateUser);
|
|
|
|
|
- SqlDataAccess.AddInParameter(ctx, cmd, "OperateTypeInstr", DbType.AnsiString, OperateTypeInstr);
|
|
|
|
|
- SqlDataAccess.AddInParameter(ctx, cmd, "IP", DbType.AnsiString, NetHelper.GetIP());
|
|
|
|
|
- SqlDataAccess.AddInParameter(ctx, cmd, "Mac", DbType.AnsiString, NetHelper.GetMacAddress());
|
|
|
|
|
- SqlDataAccess.AddInParameter(ctx, cmd, "Remark", DbType.AnsiString, remark);
|
|
|
|
|
- SqlDataAccess.AddInParameter(ctx, cmd, "OldContent", DbType.AnsiString, oldMsg);
|
|
|
|
|
- SqlDataAccess.AddInParameter(ctx, cmd, "NewContent", DbType.AnsiString, newMsg);
|
|
|
|
|
-
|
|
|
|
|
- SqlDataAccess.ExecuteNonQuery(ctx, cmd);
|
|
|
|
|
|
|
+ var cmd = MySqlDataAccess.GetSqlStringCommand(ctx, sql);
|
|
|
|
|
+
|
|
|
|
|
+ MySqlDataAccess.AddInParameter(ctx, cmd, "VisitNo", DbType.AnsiString, visitNo);
|
|
|
|
|
+ MySqlDataAccess.AddInParameter(ctx, cmd, "UpdateUser", DbType.AnsiString, updateUser);
|
|
|
|
|
+ MySqlDataAccess.AddInParameter(ctx, cmd, "OperateTypeInstr", DbType.AnsiString, OperateTypeInstr);
|
|
|
|
|
+ MySqlDataAccess.AddInParameter(ctx, cmd, "IP", DbType.AnsiString, NetHelper.GetIP());
|
|
|
|
|
+ MySqlDataAccess.AddInParameter(ctx, cmd, "Mac", DbType.AnsiString, NetHelper.GetMacAddress());
|
|
|
|
|
+ MySqlDataAccess.AddInParameter(ctx, cmd, "Remark", DbType.AnsiString, remark);
|
|
|
|
|
+ MySqlDataAccess.AddInParameter(ctx, cmd, "OldContent", DbType.AnsiString, oldMsg);
|
|
|
|
|
+ MySqlDataAccess.AddInParameter(ctx, cmd, "NewContent", DbType.AnsiString, newMsg);
|
|
|
|
|
+
|
|
|
|
|
+ MySqlDataAccess.ExecuteNonQuery(ctx, cmd);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -208,8 +205,8 @@ namespace MediII.Adapter.BizComponent.ADT
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
|
var sql = string.Format("SELECT ParamValue FROM HealthCare.dbo.SiteParamCtrl WHERE SiteNo='0000' AND ParamID='{0}' AND IsDel=0", key);
|
|
var sql = string.Format("SELECT ParamValue FROM HealthCare.dbo.SiteParamCtrl WHERE SiteNo='0000' AND ParamID='{0}' AND IsDel=0", key);
|
|
|
- var cmd = SqlDataAccess.GetSqlStringCommand(ctx, sql);
|
|
|
|
|
- var obj = SqlDataAccess.ExecuteScalar(ctx, cmd);
|
|
|
|
|
|
|
+ var cmd = MySqlDataAccess.GetSqlStringCommand(ctx, sql);
|
|
|
|
|
+ var obj = MySqlDataAccess.ExecuteScalar(ctx, cmd);
|
|
|
return StrHelepr.Obj2StrTrim(obj);
|
|
return StrHelepr.Obj2StrTrim(obj);
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
@@ -223,12 +220,24 @@ namespace MediII.Adapter.BizComponent.ADT
|
|
|
|
|
|
|
|
protected int GetScanTaskCount(string visitNo,string type)
|
|
protected int GetScanTaskCount(string visitNo,string type)
|
|
|
{
|
|
{
|
|
|
- var sql = "SELECT count(1) FROM dbo.HL7_Scan WITH(NOLOCK) WHERE VisitNo=@VisitNo and TaskType=@TaskType and TaskStatus=1 and UpdateTime>'2023-01-01'";
|
|
|
|
|
|
|
+ var sql = "SELECT count(1) FROM HL7_Scan WHERE VisitNo=?VisitNo and TaskType=?TaskType and TaskStatus=1 and UpdateTime>'2023-01-01'";
|
|
|
var cmd = ctx.DBGetSqlStringCommand(sql);
|
|
var cmd = ctx.DBGetSqlStringCommand(sql);
|
|
|
ctx.AddInParameter(cmd, "VisitNo", DbType.String, visitNo);
|
|
ctx.AddInParameter(cmd, "VisitNo", DbType.String, visitNo);
|
|
|
ctx.AddInParameter(cmd, "TaskType", DbType.String, type);
|
|
ctx.AddInParameter(cmd, "TaskType", DbType.String, type);
|
|
|
var obj = int.Parse(StrHelepr.Obj2StrTrim(ctx.DBExecuteScalar(cmd)));
|
|
var obj = int.Parse(StrHelepr.Obj2StrTrim(ctx.DBExecuteScalar(cmd)));
|
|
|
return obj;
|
|
return obj;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ protected void SetNextTask(TaskMessage msg)
|
|
|
|
|
+ {
|
|
|
|
|
+ var sql = string.Format(@"INSERT INTO TaskMessage(TaskID, VisitNo, TaskType, TypeName, TaskStatus, Parameter1, Parameter2, Parameter3, ErrMsg, ErrNm,
|
|
|
|
|
+TaskTime, Reserve1, Reserve2, Reserve3) VALUES(MD5(UUID()),null,'{0}','{1}',1,'{2}','{3}','{4}',null,0,'{5}',null,null,'{6}')",
|
|
|
|
|
+ msg.TaskType, msg.TypeName, msg.Parameter1, msg.Parameter2, int.Parse(msg.Parameter3) + 1, msg.TaskTime,
|
|
|
|
|
+ msg.Reserve3);
|
|
|
|
|
+ var cmd = ctx.DBGetSqlStringCommand(sql);
|
|
|
|
|
+ ctx.DBExecuteNonQuery(cmd);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //protected void SetMsgType(int TaskStatus,string )
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|