Program.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. // Copyright (c) 2012-2020 fo-dicom contributors.
  2. // Licensed under the Microsoft Public License (MS-PL).
  3. using System;
  4. using System.IO;
  5. using System.Threading.Tasks;
  6. using Dicom;
  7. using Dicom.Log;
  8. using Dicom.Network;
  9. using NLog.Config;
  10. using NLog.Targets;
  11. using DicomClient = Dicom.Network.Client.DicomClient;
  12. namespace ConsoleTest
  13. {
  14. internal static class Program
  15. {
  16. private static async Task Main(string[] args)
  17. {
  18. try
  19. {
  20. // Initialize log manager.
  21. LogManager.SetImplementation(NLogManager.Instance);
  22. DicomException.OnException += delegate(object sender, DicomExceptionEventArgs ea)
  23. {
  24. ConsoleColor old = Console.ForegroundColor;
  25. Console.ForegroundColor = ConsoleColor.Yellow;
  26. Console.WriteLine(ea.Exception);
  27. Console.ForegroundColor = old;
  28. };
  29. var config = new LoggingConfiguration();
  30. var target = new ColoredConsoleTarget
  31. {
  32. Layout = @"${date:format=HH\:mm\:ss} ${message}"
  33. };
  34. config.AddTarget("Console", target);
  35. config.LoggingRules.Add(new LoggingRule("*", NLog.LogLevel.Debug, target));
  36. NLog.LogManager.Configuration = config;
  37. var client = new DicomClient("127.0.0.1", 11112, false, "SCU", "STORESCP");
  38. client.NegotiateAsyncOps();
  39. for (int i = 0; i < 10; i++)
  40. {
  41. await client.AddRequestAsync(new DicomCEchoRequest());
  42. }
  43. await client.AddRequestAsync(new DicomCStoreRequest(@"test1.dcm"));
  44. await client.AddRequestAsync(new DicomCStoreRequest(@"test2.dcm"));
  45. await client.SendAsync();
  46. foreach (DicomPresentationContext ctr in client.AdditionalPresentationContexts)
  47. {
  48. Console.WriteLine("PresentationContext: " + ctr.AbstractSyntax + " Result: " + ctr.Result);
  49. }
  50. var samplesDir = Path.Combine(
  51. Path.GetPathRoot(Environment.CurrentDirectory),
  52. "Development",
  53. "fo-dicom-samples");
  54. var testDir = Path.Combine(samplesDir, "Test");
  55. if (!Directory.Exists(testDir))
  56. {
  57. Directory.CreateDirectory(testDir);
  58. }
  59. //var img = new DicomImage(samplesDir + @"\ClearCanvas\CRStudy\1.3.51.5145.5142.20010109.1105627.1.0.1.dcm");
  60. //img.RenderImage().Save(testDir + @"\test.jpg");
  61. //var df = DicomFile.Open(samplesDir + @"\User Submitted\overlays.dcm");
  62. //Console.WriteLine(df.FileMetaInfo.Get<DicomTransferSyntax>(DicomTag.TransferSyntaxUID).UID.Name);
  63. //Console.WriteLine(df.Dataset.Get<PlanarConfiguration>(DicomTag.PlanarConfiguration));
  64. //var img = new DicomImage(df.Dataset);
  65. //img.RenderImage().Save(testDir + @"\test.jpg");
  66. //df = df.ChangeTransferSyntax(DicomTransferSyntax.JPEGLSLossless);
  67. //df.Save(testDir + @"\test-jls.dcm");
  68. //df = df.ChangeTransferSyntax(DicomTransferSyntax.JPEG2000Lossless);
  69. //df.Save(testDir + @"\test-j2k.dcm");
  70. //df = df.ChangeTransferSyntax(DicomTransferSyntax.JPEGProcess14SV1);
  71. //df.Save(testDir + @"\test-jll.dcm");
  72. //df = df.ChangeTransferSyntax(DicomTransferSyntax.RLELossless);
  73. //df.Save(testDir + @"\test-rle.dcm");
  74. //df = df.ChangeTransferSyntax(DicomTransferSyntax.ExplicitVRLittleEndian);
  75. //df.Save(testDir + @"\test-ele.dcm");
  76. //df = df.ChangeTransferSyntax(DicomTransferSyntax.ExplicitVRBigEndian);
  77. //df.Save(testDir + @"\test-ebe.dcm");
  78. //df = df.ChangeTransferSyntax(DicomTransferSyntax.ImplicitVRLittleEndian);
  79. //df.Save(testDir + @"\test-ile.dcm");
  80. //Console.WriteLine("End...");
  81. //Console.ReadLine();
  82. //df.WriteToLog(LogManager.GetCurrentClassLogger(), LogLevel.Info);
  83. //Console.WriteLine(DicomValueMultiplicity.Parse("1"));
  84. //Console.WriteLine(DicomValueMultiplicity.Parse("3"));
  85. //Console.WriteLine(DicomValueMultiplicity.Parse("1-3"));
  86. //Console.WriteLine(DicomValueMultiplicity.Parse("1-n"));
  87. //Console.WriteLine(DicomValueMultiplicity.Parse("2-2n"));
  88. //Console.WriteLine(DicomTag.Parse("00200020"));
  89. //Console.WriteLine(DicomTag.Parse("0008,0040"));
  90. //Console.WriteLine(DicomTag.Parse("(3000,0012)"));
  91. //Console.WriteLine(DicomTag.Parse("2000,2000:TEST CREATOR"));
  92. //Console.WriteLine(DicomTag.Parse("(4000,4000:TEST_CREATOR:2)"));
  93. //Console.WriteLine(DicomMaskedTag.Parse("(30xx,xx90)"));
  94. //Console.WriteLine(DicomMaskedTag.Parse("(3000-3021,0016)"));
  95. //DicomRange<DateTime> r = new DicomRange<DateTime>(DateTime.Now.AddSeconds(-5), DateTime.Now.AddSeconds(5));
  96. //Console.WriteLine(r.Contains(DateTime.Now));
  97. //Console.WriteLine(r.Contains(DateTime.Today));
  98. //Console.WriteLine(r.Contains(DateTime.Now.AddSeconds(60)));
  99. //DicomDictionary dict = new DicomDictionary();
  100. //dict.Load(@"F:\Development\fo-dicom\DICOM\Dictionaries\dictionary.xml", DicomDictionaryFormat.XML);
  101. //string output = Dicom.Generators.DicomTagGenerator.Generate("Dicom", "DicomTag", dict);
  102. //File.WriteAllText(@"F:\Development\fo-dicom\DICOM\DicomTagGenerated.cs", output);
  103. //output = Dicom.Generators.DicomDictionaryGenerator.Generate("Dicom", "DicomDictionary", "LoadInternalDictionary", dict);
  104. //File.WriteAllText(@"F:\Development\fo-dicom\DICOM\DicomDictionaryGenerated.cs", output);
  105. //string output = Dicom.Generators.DicomUIDGenerator.Process(@"F:\Development\fo-dicom\DICOM\Dictionaries\dictionary.xml");
  106. //File.WriteAllText(@"F:\Development\fo-dicom\DICOM\DicomUIDGenerated.cs", output);
  107. }
  108. catch (Exception e)
  109. {
  110. if (!(e is DicomException))
  111. {
  112. Console.WriteLine(e.ToString());
  113. }
  114. }
  115. Console.ReadLine();
  116. }
  117. }
  118. }