ViewController.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // Copyright (c) 2012-2017 fo-dicom contributors.
  2. // Licensed under the Microsoft Public License (MS-PL).
  3. using System;
  4. using System.IO;
  5. using Dicom;
  6. using Dicom.Imaging;
  7. using Dicom.Log;
  8. using UIKit;
  9. namespace SimpleViewer.iOS
  10. {
  11. public partial class ViewController : UIViewController
  12. {
  13. private readonly string[] _fileNames = { "Assets/CT-MONO2-8-abdo", "Assets/jpeg-baseline.dcm", "Assets/US1_J2KI" };
  14. private int _counter = 0;
  15. public ViewController(IntPtr handle) : base(handle)
  16. {
  17. }
  18. public override void ViewDidLoad()
  19. {
  20. base.ViewDidLoad();
  21. Display(_fileNames[_counter]);
  22. }
  23. public override void DidReceiveMemoryWarning()
  24. {
  25. base.DidReceiveMemoryWarning();
  26. }
  27. partial void NextImageButtonTouchUpInside(UIButton sender)
  28. {
  29. ++_counter;
  30. if (_counter >= _fileNames.Length) _counter = 0;
  31. Display(_fileNames[_counter]);
  32. }
  33. private void Display(string fileName)
  34. {
  35. try
  36. {
  37. // Read and render DICOM image
  38. UIImage image;
  39. string dump;
  40. using (var stream = File.OpenRead(fileName))
  41. {
  42. var dicomFile = DicomFile.Open(stream);
  43. var dicomImage = new DicomImage(dicomFile.Dataset);
  44. image = dicomImage.RenderImage().AsUIImage();
  45. dump = dicomFile.WriteToString();
  46. }
  47. // Draw rendered image in image view
  48. _imageView.Image = image;
  49. // Display dump
  50. _textView.Text = dump;
  51. }
  52. catch (Exception e)
  53. {
  54. var alert = new UIAlertView()
  55. {
  56. Title = "DICOM display failed",
  57. Message = e.Message
  58. };
  59. alert.AddButton("OK");
  60. alert.Show();
  61. }
  62. }
  63. }
  64. }