DiagnosisHelper.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System;
  2. using System.IO;
  3. using System.Linq;
  4. using Vinno.vCloud.Common.Vid2;
  5. using Vinno.vCloud.Common.Vid2.Visuals;
  6. namespace WingAIDiagnosisService.Manage
  7. {
  8. public static class DiagnosisHelper
  9. {
  10. public const int CarotidMinImageCounts = 160;
  11. public const string SurfaceFileSuffix = "surface";
  12. public const string ModelFileSuffix = "model";
  13. public const string ZipFileSuffix = "zip";
  14. public const string JPGFileSuffix = "jpg";
  15. private const string CarotidApplicationName = "Carotid";
  16. private const string CarotidCategoryName = "VAS";
  17. private static string _cacheFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DiagnosisTemp");
  18. /// <summary>是否颈动脉</summary>
  19. /// <param name="imageData"></param>
  20. /// <returns></returns>
  21. public static bool IsCarotid(VinnoImageData imageData)
  22. {
  23. if (imageData.Probe.Application.ApplicationName == CarotidApplicationName && imageData.Probe.Application.ApplicationCategoryName == CarotidCategoryName)
  24. {
  25. var vinnoImage = imageData.GetImage(0);
  26. if (vinnoImage != null && vinnoImage.Visuals.Any() && vinnoImage.Visuals.First() is Vinno2DVisual visual)
  27. {
  28. if (visual.PhysicalCoordinates.ContainsKey(VinnoVisualAreaType.Tissue))
  29. {
  30. var physicalCoordinate = visual.PhysicalCoordinates[VinnoVisualAreaType.Tissue];
  31. if (physicalCoordinate is VinnoLinearTissuePhysicalCoordinate)
  32. {
  33. return true;
  34. }
  35. }
  36. };
  37. }
  38. return false;
  39. }
  40. public static string GetCacheFilePath(string fileSuffix)
  41. {
  42. if (!Directory.Exists(_cacheFolder))
  43. {
  44. Directory.CreateDirectory(_cacheFolder);
  45. }
  46. var fileName = $"{Guid.NewGuid():N}.{fileSuffix}";
  47. return Path.Combine(_cacheFolder, fileName);
  48. }
  49. }
  50. }