MainToolBar.xaml.cs 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. using System.Windows;
  2. using System.Windows.Controls;
  3. using vStation.Infrastructure;
  4. using vStation.Presentation.Exams;
  5. using vStation.Presentation.Login;
  6. using vStation.Presentation.Settings;
  7. using vStation.Presentation.Users;
  8. using vStation.ViewModel;
  9. using vStation.Presentation.TemplateTool;
  10. using System.IO;
  11. using System.Linq;
  12. using Vinno.IUS.Common.Utilities;
  13. using vStation.ViewModel.Report;
  14. using System.Runtime.Remoting.Channels.Ipc;
  15. using System.Runtime.Remoting.Channels;
  16. using System.Runtime.Remoting;
  17. using System;
  18. using Logger = vStation.Infrastructure.Logger;
  19. using vStation.Module.Exam;
  20. using vStation.Module.SystemSetting;
  21. using vStation.Model.Parameters;
  22. using vStation.Presentation.Statistics;
  23. using System.Diagnostics;
  24. using vStation.PipeLine;
  25. using System.Threading.Tasks;
  26. using System.Collections.Generic;
  27. using System.Windows.Forms;
  28. using UserControl = System.Windows.Controls.UserControl;
  29. using static System.Windows.Forms.VisualStyles.VisualStyleElement;
  30. using vStation.URMStationRelevant;
  31. namespace vStation.Presentation
  32. {
  33. /// <summary>
  34. /// MainToolBar.xaml 的交互逻辑
  35. /// </summary>
  36. public partial class MainToolBar : UserControl
  37. {
  38. private ManagerUserWindow _window;
  39. public MainToolBar()
  40. {
  41. InitializeComponent();
  42. Loaded += OnLoaded;
  43. }
  44. private void OnLoaded(object sender, RoutedEventArgs e)
  45. {
  46. ShowManagemenInBackend();
  47. if (URMConfig.PipeLineReady)
  48. {
  49. Logger.WriteLineInfo($"Pipe line is ready");
  50. }
  51. else {
  52. StudyAnalysis.IsEnabled = false;
  53. }
  54. URMConfig.PipeLineCreated += PipeLineCreated;
  55. }
  56. private void PipeLineCreated(object sender, EventArgs e)
  57. {
  58. Dispatcher.Invoke(() => {
  59. Logger.WriteLineInfo($"Pipe line created inable the study analysis");
  60. StudyAnalysis.IsEnabled = true;
  61. });
  62. }
  63. private void OnNewPatientClick(object sender, RoutedEventArgs e)
  64. {
  65. UserLogger.Write("Open patient window");
  66. var window = new RecordWindow
  67. {
  68. Owner = AppManager.MainWindow
  69. };
  70. window.ShowDialog();
  71. }
  72. private void OnSwitchUserClick(object sender, RoutedEventArgs e)
  73. {
  74. var window = new LoginWindow()
  75. {
  76. Owner = AppManager.MainWindow
  77. };
  78. window.ShowDialog();
  79. var loginViewModel = window.DataContext as LoginViewModel;
  80. if (loginViewModel != null && loginViewModel.LoginSuccess)
  81. {
  82. }
  83. }
  84. private void OnChangePasswordClick(object sender, RoutedEventArgs e)
  85. {
  86. UserLogger.Write("Open change password window");
  87. var window = new SetPasswordWindow()
  88. {
  89. Owner = AppManager.MainWindow
  90. };
  91. window.ShowDialog();
  92. }
  93. private void OnManagerUserClick(object sender, RoutedEventArgs e)
  94. {
  95. UserLogger.Write("Open user manager window");
  96. if (_window == null)
  97. {
  98. _window = new ManagerUserWindow()
  99. {
  100. Owner = AppManager.MainWindow
  101. };
  102. _window.WindowState = WindowState.Maximized;
  103. _window.ShowDialog();
  104. }
  105. else {
  106. _window.WindowState = WindowState.Maximized;
  107. _window.Show();
  108. }
  109. }
  110. private void ShowManagemenInBackend()
  111. {
  112. _window = new ManagerUserWindow()
  113. {
  114. Owner = AppManager.MainWindow
  115. };
  116. _window.Visibility= Visibility.Hidden;
  117. _window.ShowDialog();
  118. }
  119. private void OnSystemSettingClick(object sender, RoutedEventArgs e)
  120. {
  121. UserLogger.Write("Open system setting window");
  122. var window = new SettingsWindow()
  123. {
  124. Owner = AppManager.MainWindow
  125. };
  126. window.ShowDialog();
  127. }
  128. private void OnTemplateToolClick(object sender, RoutedEventArgs e)
  129. {
  130. UserLogger.Write("Open diagnostic terms window");
  131. var window = new TemplateEditWindow()
  132. {
  133. Owner = AppManager.MainWindow,
  134. MinWidth = SystemParameters.MaximizedPrimaryScreenWidth * 0.9,
  135. MinHeight = SystemParameters.MaximizedPrimaryScreenHeight * 0.9,
  136. };
  137. window.ShowDialog();
  138. }
  139. private void OnDesignReportClick(object sender, RoutedEventArgs e)
  140. {
  141. UserLogger.Write("Open report template designer window");
  142. string userdefinedReportTemplatesFolder = Path.Combine(AppManager.GlobalPath, "vStationReportTemplates");
  143. var templateReportDesignerPath = Path.GetDirectoryName(AppManager.RootPath);
  144. if (string.IsNullOrEmpty(templateReportDesignerPath))
  145. {
  146. return;
  147. }
  148. var reportTemplateDesignerExe =
  149. System.Diagnostics.Process.GetProcessesByName("ReportTemplateDesigner");
  150. if (reportTemplateDesignerExe.Any())
  151. {
  152. return;
  153. }
  154. var templateDesignerPath = Path.Combine(templateReportDesignerPath, "ReportTemplateDesigner.exe");
  155. if (File.Exists(templateDesignerPath))
  156. {
  157. ReportIconChanger iconChanger = new ReportIconChanger();
  158. var iconPath = Path.Combine(templateReportDesignerPath, "Icon.ico");
  159. iconChanger.ChangeIcon(templateDesignerPath, iconPath); //更换报告模板.exe的icon图标
  160. var p = new System.Diagnostics.Process();
  161. p.StartInfo.FileName = templateDesignerPath;
  162. p.StartInfo.Arguments = $"{'"' + userdefinedReportTemplatesFolder + '"'};{TranslateHelper.CurrentLanguage};{"vStation"};{'"' + templateReportDesignerPath + '"'};{"OtherVersions"}";
  163. p.Start();
  164. UserLogger.Write("Show report template designer window");
  165. }
  166. }
  167. private void OnDataBackupClick(object sender, RoutedEventArgs e)
  168. {
  169. UserLogger.Write("Open Data Backup window");
  170. var window = new DataManagement.DataManagementWindow
  171. {
  172. Owner = AppManager.MainWindow,
  173. };
  174. window.ShowDialog();
  175. }
  176. private void OnUltrasonicStatisticsClick(object sender, RoutedEventArgs e)
  177. {
  178. UserLogger.Write("Open Ultrasonic statistics window");
  179. var window = new UltrasonicStatisticsWindow()
  180. {
  181. Owner = AppManager.MainWindow
  182. };
  183. window.ShowDialog();
  184. }
  185. public void TranslateMainToolBar()
  186. {
  187. NewPatientTextBlock.Text = TranslateHelper.Translate("NewPatient");
  188. DiagnoseTermTextBlock.Text = TranslateHelper.Translate("DiagnoseTerm");
  189. DesignReportTextBlock.Text = TranslateHelper.Translate("DesignReport");
  190. DataManagementTextBlock.Text = TranslateHelper.Translate("DataManagement");
  191. SettingTitleTextBlock.Text = TranslateHelper.Translate("SettingTitle");
  192. UserManagerTextBlock.Text = TranslateHelper.Translate("UserManager");
  193. SetPasswordTextBlock.Text = TranslateHelper.Translate("SetPassword");
  194. UltrasonicStatisticsTextBlock.Text = TranslateHelper.Translate("UltrasonicStatistics");
  195. }
  196. private void StudyAnalysis_Click(object sender, RoutedEventArgs e)
  197. {
  198. var targetMethodName = TargetMethodName.AutoLoginWithGivenAccount;
  199. PipeClientManager.SendMessage(targetMethodName, "");
  200. }
  201. }
  202. }