GlobalVariables.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. using PTMIBase.Entity.Interfaces;
  2. using PTMIBase.Entity.Interfaces.Common;
  3. using PTMIBase.Entity.Interfaces.Configuration.IRIS;
  4. using PTMIBase.Entity.Interfaces.Configuration.Local;
  5. using PTMIBase.Entity.Interfaces.HIS;
  6. using PTMIBase.Entity.Structs;
  7. using PTMIBase.Utils;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. namespace PTMIBase.Globals
  14. {
  15. public class GlobalVariables
  16. {
  17. // 应用程序启动时间
  18. public static DateTime AppStartTime { get; } = DateTime.Now;
  19. ////当前路径
  20. //public static String currentDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
  21. public static IIrisConfigue hisConfig;
  22. public static IIrisConfigue insuConfig;
  23. public static IInterfaceInfo inf;
  24. public static IPatient pat;
  25. public static ICurrentEnvironment curEvt;
  26. public static IUser user;
  27. public static IHISBusinessInfo hisBusinessInfo;
  28. public static IInparam inparam;
  29. /// <summary>
  30. /// 初始化静态变量集合
  31. /// </summary>
  32. public static void Init()
  33. {
  34. SetHisIrisConfig(new IrisConfig());
  35. SetInsuIrisConfig(new IrisConfig());
  36. SetInterfaceInfo(new InterfaceInfo());
  37. SetPatient(new Patient());
  38. SetCurrentEnvironment(new CurrentEnvironment());
  39. SetHISBusinessInfo(new HISBusinessInfo());
  40. }
  41. /// <summary>
  42. /// 依赖注入设置HisIrisConfig
  43. /// </summary>
  44. /// <param name="_irisConfig"></param>
  45. public static void SetHisIrisConfig(IIrisConfigue _irisConfig)
  46. {
  47. hisConfig = _irisConfig;
  48. }
  49. /// <summary>
  50. /// 依赖注入设置InsuIrisConfig
  51. /// </summary>
  52. /// <param name="_irisConfig"></param>
  53. public static void SetInsuIrisConfig(IIrisConfigue _irisConfig)
  54. {
  55. insuConfig = _irisConfig;
  56. }
  57. /// <summary>
  58. /// 依赖注入设置接口信息
  59. /// </summary>
  60. /// <param name="_inf"></param>
  61. public static void SetInterfaceInfo(IInterfaceInfo _inf)
  62. {
  63. inf = _inf;
  64. }
  65. /// <summary>
  66. /// 依赖注入设置患者信息
  67. /// </summary>
  68. /// <param name="_pat"></param>
  69. public static void SetPatient(IPatient _pat)
  70. {
  71. pat = _pat;
  72. }
  73. /// <summary>
  74. /// 依赖注入设置当前环境信息
  75. /// </summary>
  76. /// <param name="_curEvt"></param>
  77. public static void SetCurrentEnvironment(ICurrentEnvironment _curEvt)
  78. {
  79. curEvt = _curEvt;
  80. }
  81. /// <summary>
  82. /// 依赖注入设置HIS当前业务信息
  83. /// </summary>
  84. /// <param name="_hisBusinessInfo"></param>
  85. public static void SetHISBusinessInfo(IHISBusinessInfo _hisBusinessInfo)
  86. {
  87. hisBusinessInfo = _hisBusinessInfo;
  88. }
  89. /// <summary>
  90. /// 写日志
  91. /// </summary>
  92. /// <param name="content">内容</param>
  93. /// <param name="specialFileName">指定文件名</param>
  94. public static void writeLog(string content,string specialFileName)
  95. {
  96. string logDir = curEvt.Path + "\\Log", logName = $"{DateHelper.GetShortDateTimeNow()}_{specialFileName}.Log";
  97. string timeLine = "**********" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff") + "***********" + "\r\n";
  98. FileHelper.Write(logName, timeLine + content, logDir);
  99. }
  100. /// <summary>
  101. ///
  102. /// </summary>
  103. /// <param name="content"></param>
  104. public static void writeLog(string content)
  105. {
  106. writeLog(content,"YB");
  107. }
  108. /// <summary>
  109. /// 按指定文件名(默认YB),写入三段式日志
  110. /// </summary>
  111. /// <param name="tradeName"></param>
  112. /// <param name="inParam"></param>
  113. /// <param name="outParam"></param>
  114. /// <param name="specialFileName"></param>
  115. public static void writeLog(string tradeName, string inParam, string outParam, string specialFileName = "YB")
  116. {
  117. string content = "****************************交易开始(" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff") + ")****************************" + "\r\n";
  118. content = content + "交易名称:" + tradeName + "\r\n";
  119. content = content + "交易入参:" + inParam + "\r\n";
  120. content = content + "交易出参:" + outParam + "\r\n";
  121. //content = content + "****************************交易结束(" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff") + ")****************************" + "\r\n";
  122. writeLog(content,specialFileName);
  123. }
  124. /// <summary>
  125. /// iris日志
  126. /// </summary>
  127. /// <param name="content"></param>
  128. public static void writeLog_Iris(string content)
  129. {
  130. writeLog(content, "iris");
  131. }
  132. /// <summary>
  133. /// IRIS日志,支持启用截断
  134. /// </summary>
  135. /// <param name="tradeName"></param>
  136. /// <param name="inParam"></param>
  137. /// <param name="outParam"></param>
  138. /// <param name="isNeedTruncate"></param>
  139. public static void writeLog_Iris(string tradeName, string inParam, string outParam,bool isNeedTruncate = true)
  140. {
  141. if (inParam.Contains("09010021"))
  142. {
  143. return;
  144. }
  145. string content = "****************************交易开始(" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff") + ")****************************" + "\r\n";
  146. content = content + "交易名称:" + tradeName + "\r\n";
  147. content = content + "交易入参:" + inParam + "\r\n";
  148. if ((outParam.Length > 10000) && isNeedTruncate)
  149. {
  150. content = content + "交易出参:" + outParam.Substring(0, 9999) + "................" + "\r\n";
  151. }
  152. else
  153. {
  154. content = content + "交易出参:" + outParam + "\r\n";
  155. }
  156. writeLog_Iris(content);
  157. }
  158. }
  159. }