PageRenderTime 39ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/ConsoleTest/Program.cs

https://github.com/petnet/fo-dicom
C# | 133 lines | 48 code | 34 blank | 51 comment | 2 complexity | 1968e732feefb6ac3ef36f487429e37e MD5 | raw file
Possible License(s): BSD-3-Clause
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Net.Sockets;
  6. using System.Text;
  7. using NLog;
  8. using NLog.Config;
  9. using NLog.Targets;
  10. using Dicom;
  11. using Dicom.Imaging;
  12. using Dicom.Imaging.Codec;
  13. using Dicom.IO;
  14. using Dicom.IO.Buffer;
  15. using Dicom.IO.Reader;
  16. using Dicom.IO.Writer;
  17. using Dicom.Log;
  18. using Dicom.Network;
  19. namespace ConsoleTest {
  20. class Program {
  21. static void Main(string[] args) {
  22. try {
  23. DicomException.OnException += delegate(object sender, DicomExceptionEventArgs ea) {
  24. ConsoleColor old = Console.ForegroundColor;
  25. Console.ForegroundColor = ConsoleColor.Yellow;
  26. Console.WriteLine(ea.Exception);
  27. Console.ForegroundColor = old;
  28. };
  29. LoggingConfiguration config = new LoggingConfiguration();
  30. ColoredConsoleTarget ct = new ColoredConsoleTarget();
  31. ct.Layout = "${message}";
  32. config.AddTarget("Console", ct);
  33. config.LoggingRules.Add(new LoggingRule("*", LogLevel.Debug, ct));
  34. LogManager.Configuration = config;
  35. //var server = new DicomServer<DicomCEchoProvider>(12345);
  36. //var client = new DicomClient();
  37. //client.NegotiateAsyncOps();
  38. //for (int i = 0; i < 10; i++)
  39. // client.AddRequest(new DicomCEchoRequest());
  40. //client.Send("127.0.0.1", 12345, false, "SCU", "ANY-SCP");
  41. var samplesDir = Path.Combine(Path.GetPathRoot(Environment.CurrentDirectory), "Development", "fo-dicom-samples");
  42. var testDir = Path.Combine(samplesDir, "Test");
  43. if (!Directory.Exists(testDir))
  44. Directory.CreateDirectory(testDir);
  45. //var img = new DicomImage(samplesDir + @"\ClearCanvas\CRStudy\1.3.51.5145.5142.20010109.1105627.1.0.1.dcm");
  46. //img.RenderImage().Save(testDir + @"\test.jpg");
  47. var df = DicomFile.Open(samplesDir + @"\User Submitted\overlays.dcm");
  48. //Console.WriteLine(df.FileMetaInfo.Get<DicomTransferSyntax>(DicomTag.TransferSyntaxUID).UID.Name);
  49. //Console.WriteLine(df.Dataset.Get<PlanarConfiguration>(DicomTag.PlanarConfiguration));
  50. var img = new DicomImage(df.Dataset);
  51. img.RenderImage().Save(testDir + @"\test.jpg");
  52. //df = df.ChangeTransferSyntax(DicomTransferSyntax.JPEGLSLossless);
  53. //df.Save(testDir + @"\test-jls.dcm");
  54. //df = df.ChangeTransferSyntax(DicomTransferSyntax.JPEG2000Lossless);
  55. //df.Save(testDir + @"\test-j2k.dcm");
  56. //df = df.ChangeTransferSyntax(DicomTransferSyntax.JPEGProcess14SV1);
  57. //df.Save(testDir + @"\test-jll.dcm");
  58. //df = df.ChangeTransferSyntax(DicomTransferSyntax.RLELossless);
  59. //df.Save(testDir + @"\test-rle.dcm");
  60. //df = df.ChangeTransferSyntax(DicomTransferSyntax.ExplicitVRLittleEndian);
  61. //df.Save(testDir + @"\test-ele.dcm");
  62. //df = df.ChangeTransferSyntax(DicomTransferSyntax.ExplicitVRBigEndian);
  63. //df.Save(testDir + @"\test-ebe.dcm");
  64. //df = df.ChangeTransferSyntax(DicomTransferSyntax.ImplicitVRLittleEndian);
  65. //df.Save(testDir + @"\test-ile.dcm");
  66. //Console.WriteLine("End...");
  67. //Console.ReadLine();
  68. //df.WriteToLog(LogManager.GetCurrentClassLogger(), LogLevel.Info);
  69. //Console.WriteLine(DicomValueMultiplicity.Parse("1"));
  70. //Console.WriteLine(DicomValueMultiplicity.Parse("3"));
  71. //Console.WriteLine(DicomValueMultiplicity.Parse("1-3"));
  72. //Console.WriteLine(DicomValueMultiplicity.Parse("1-n"));
  73. //Console.WriteLine(DicomValueMultiplicity.Parse("2-2n"));
  74. //Console.WriteLine(DicomTag.Parse("00200020"));
  75. //Console.WriteLine(DicomTag.Parse("0008,0040"));
  76. //Console.WriteLine(DicomTag.Parse("(3000,0012)"));
  77. //Console.WriteLine(DicomTag.Parse("2000,2000:TEST CREATOR"));
  78. //Console.WriteLine(DicomTag.Parse("(4000,4000:TEST_CREATOR:2)"));
  79. //Console.WriteLine(DicomMaskedTag.Parse("(30xx,xx90)"));
  80. //Console.WriteLine(DicomMaskedTag.Parse("(3000-3021,0016)"));
  81. //DicomRange<DateTime> r = new DicomRange<DateTime>(DateTime.Now.AddSeconds(-5), DateTime.Now.AddSeconds(5));
  82. //Console.WriteLine(r.Contains(DateTime.Now));
  83. //Console.WriteLine(r.Contains(DateTime.Today));
  84. //Console.WriteLine(r.Contains(DateTime.Now.AddSeconds(60)));
  85. //DicomDictionary dict = new DicomDictionary();
  86. //dict.Load(@"F:\Development\fo-dicom\DICOM\Dictionaries\dictionary.xml", DicomDictionaryFormat.XML);
  87. //string output = Dicom.Generators.DicomTagGenerator.Generate("Dicom", "DicomTag", dict);
  88. //File.WriteAllText(@"F:\Development\fo-dicom\DICOM\DicomTagGenerated.cs", output);
  89. //output = Dicom.Generators.DicomDictionaryGenerator.Generate("Dicom", "DicomDictionary", "LoadInternalDictionary", dict);
  90. //File.WriteAllText(@"F:\Development\fo-dicom\DICOM\DicomDictionaryGenerated.cs", output);
  91. //string output = Dicom.Generators.DicomUIDGenerator.Process(@"F:\Development\fo-dicom\DICOM\Dictionaries\dictionary.xml");
  92. //File.WriteAllText(@"F:\Development\fo-dicom\DICOM\DicomUIDGenerated.cs", output);
  93. } catch (Exception e) {
  94. if (!(e is DicomException))
  95. Console.WriteLine(e.ToString());
  96. }
  97. }
  98. }
  99. }