WorklistServer.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // Copyright (c) 2012-2020 fo-dicom contributors.
  2. // Licensed under the Microsoft Public License (MS-PL).
  3. using Dicom.Network;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Text;
  7. using System.Threading;
  8. using Worklist_SCP.Model;
  9. namespace Worklist_SCP
  10. {
  11. public class WorklistServer
  12. {
  13. private static IDicomServer _server;
  14. //private static Timer _itemsLoaderTimer;
  15. protected WorklistServer()
  16. {
  17. }
  18. public static string AETitle { get; set; }
  19. //public static IWorklistItemsSource CreateItemsSourceService => new WorklistItemsProvider();
  20. public static List<WorklistItem> CurrentWorklistItems { get; private set; }
  21. public static void Start(int port, string aet)
  22. {
  23. AETitle = aet;
  24. NetworkManager.SetImplementation(new DesktopNetworkManager());
  25. Dicom.IO.IOManager.SetImplementation(ZskkIOManager.Instance);
  26. //Dicom.IO.IOManager.SetImplementation(new Dicom.IO.DesktopIOManager());
  27. _server = DicomServer.Create<WorklistService>("0.0.0.0", port);
  28. // every 30 seconds the worklist source is queried and the current list of items is cached in _currentWorklistItems
  29. //_itemsLoaderTimer = new Timer((state) =>
  30. //{
  31. // var newWorklistItems = CreateItemsSourceService.GetAllCurrentWorklistItems();
  32. // CurrentWorklistItems = newWorklistItems;
  33. //}, null, TimeSpan.Zero, TimeSpan.FromSeconds(30));
  34. }
  35. public static void Start(string ipAdress ,int port, string aet)
  36. {
  37. AETitle = aet;
  38. NetworkManager.SetImplementation(new DesktopNetworkManager());
  39. //Dicom.IO.IOManager.SetImplementation(Dicom.IO.DesktopIOManager.Instance);
  40. Dicom.IO.IOManager.SetImplementation(ZskkIOManager.Instance);
  41. _server = DicomServer.Create<WorklistService>(ipAdress, port);
  42. // every 30 seconds the worklist source is queried and the current list of items is cached in _currentWorklistItems
  43. //_itemsLoaderTimer = new Timer((state) =>
  44. //{
  45. // var newWorklistItems = CreateItemsSourceService.GetAllCurrentWorklistItems();
  46. // CurrentWorklistItems = newWorklistItems;
  47. //}, null, TimeSpan.Zero, TimeSpan.FromSeconds(30));
  48. }
  49. public static void Stop()
  50. {
  51. //_itemsLoaderTimer?.Dispose();
  52. _server.Dispose();
  53. }
  54. }
  55. }