jeremy 9 months ago
parent
commit
202541f96a
3 changed files with 83 additions and 5 deletions
  1. 13 2
      Service/AIDiagnosisService.URM.cs
  2. 42 2
      URMManage/ImagePostProcess.cs
  3. 28 1
      URMManage/UrmProcessRequest.cs

+ 13 - 2
Service/AIDiagnosisService.URM.cs

@@ -223,6 +223,8 @@ namespace WingAIDiagnosisService.Service
                         }
                         Logger.WriteLineInfo($"AIDiagnosisService LoadURMProcessAsync InitURMProcessor start, remedicalCode:{remedicalCode}");
                         var urmProcessRequest = ConvertToUrmRequest<URMProcessRequest, UrmProcessRequest>(request, remedical, currentFolder);
+                        urmProcessRequest.RemedicalCode = remedicalCode;
+                        urmProcessRequest.Token = request.Token;
                         urmProcessRequest.GUID = urmProcessRequest.GetUniqueCode();
                         URMAnalysisManager.InitURMProcessor(urmProcessRequest);
                         Logger.WriteLineInfo($"AIDiagnosisService LoadURMProcessAsync InitURMProcessor end, remedicalCode:{remedicalCode}");
@@ -278,6 +280,9 @@ namespace WingAIDiagnosisService.Service
                         }
                         Logger.WriteLineInfo($"AIDiagnosisService URMProcessAsync DoUrmProcess start, remedicalCode:{remedicalCode}");
                         var urmProcessRequest = ConvertToUrmRequest<URMProcessRequest, UrmProcessRequest>(request, remedical, currentFolder);
+
+                        urmProcessRequest.RemedicalCode = remedicalCode;
+                        urmProcessRequest.Token = request.Token;
                         urmProcessRequest.GUID = urmProcessRequest.GetUniqueCode();
 
                         double urmMinVal = 0;
@@ -454,11 +459,15 @@ namespace WingAIDiagnosisService.Service
                         urmProcessRequest.GUID = urmProcessRequest.GetUniqueCode();
 
                         Logger.WriteLineInfo($"AIDiagnosisService URMVideoProcessAsync DoUrmVideoProcess start, remedicalCode:{remedicalCode}");
-                        var base64String = URMAnalysisManager.DoUrmVideoProcess(urmProcessRequest);
+                        double urmMinVal = 0;
+                        double urmMaxVal = 0;
+                        var base64String = URMAnalysisManager.DoUrmVideoProcess(urmProcessRequest, ref urmMinVal, ref urmMaxVal);
                         Logger.WriteLineInfo($"AIDiagnosisService URMVideoProcessAsync DoUrmVideoProcess end, remedicalCode:{remedicalCode}, base64String-Length:{base64String.Length}");
                         return new URMVideoProcessResult
                         {
                             Base64String = base64String,
+                            UrmMinVal = urmMinVal,
+                            UrmMaxVal = urmMaxVal,
                         };
                     }
                 }
@@ -725,7 +734,9 @@ namespace WingAIDiagnosisService.Service
                         urmProcessRequest.ScreenWidth = request.ScreenWidth;
                         urmProcessRequest.ScreenHeight = request.ScreenHeight;
                     }
-                    var base64String = URMAnalysisManager.DoUrmVideoProcess(urmProcessRequest);
+                    double urmMinVal = 0;
+                    double urmMaxVal = 0;
+                    var base64String = URMAnalysisManager.DoUrmVideoProcess(urmProcessRequest, ref urmMinVal, ref urmMaxVal);
                     if (!string.IsNullOrWhiteSpace(base64String))
                     {
                         if (string.IsNullOrWhiteSpace(backgroundImageBase64))

+ 42 - 2
URMManage/ImagePostProcess.cs

@@ -76,6 +76,8 @@ namespace WingAIDiagnosisService.URMManage
             {
                 var processor = UrmProcessorList.FirstOrDefault(x => x.GUID == request.GUID);
                 processor.LastActiveTime = DateTime.UtcNow;
+
+                // var processor = SetUrmProcessorByParams(request);
                 processor.Processor.CalTracePointMask(request.UrmTraceDPoints);
                 imgBase64 = processor.Processor.getURMImageBase64(ref urmMinVal, ref urmMaxVal);
             }
@@ -168,14 +170,19 @@ namespace WingAIDiagnosisService.URMManage
         /// </summary>
         /// <param name="request"></param>
         /// <returns></returns>
-        public string DoUrmVideoProcess(DoUrmVideoProcessRequest request)
+        public string DoUrmVideoProcess(DoUrmVideoProcessRequest request, ref double urmMinVal, ref double urmMaxVal)
         {
             var imgBase64 = "";
+            urmMinVal = 0;
+            urmMaxVal = 0;
             InitVideoProcessor(request);
             try
             {
                 var videoProcessor = VideoProcessorList.FirstOrDefault(x => x.GUID == request.GUID);
                 videoProcessor.LastActiveTime = DateTime.UtcNow;
+
+                urmMinVal = videoProcessor.UrmMinVal;
+                urmMaxVal = videoProcessor.UrmMaxVal;
                 imgBase64 = videoProcessor.Processor.getURMVideoImg(request.VideoFrame);
             }
             catch (Exception ex)
@@ -268,7 +275,17 @@ namespace WingAIDiagnosisService.URMManage
                     UrmProcessor.setUrmBaseParam(request.Res, DenArray, DirArray, VelArray, AngleArray, MaskArray, request.Urmsrcwidth, request.Urmsrcheight, request.ScaleOfPixel_x, request.ScaleOfPixel_y, request.ImgProcessVer, request.Isliner);
                     UrmProcessor.setUrmDrawParam(request.ZoomOn, request.ZoomRoix, request.ZoomRoiy, request.ZoomRoiwidth, request.ZoomRoiheight, request.Roix, request.Roiy, request.Roiwidth, request.Roiheight, request.LeftRight, request.UpDown, request.ScreenWidth, request.ScreenHeight);
 
-                    processorClass = new URMProcessorClass { GUID = request.GUID, Processor = UrmProcessor, LastActiveTime = DateTime.UtcNow };
+                    processorClass = new URMProcessorClass
+                    {
+                        GUID = request.GUID,
+                        Processor = UrmProcessor,
+                        LastActiveTime = DateTime.UtcNow,
+                        DenArray = DenArray,
+                        DirArray = DirArray,
+                        VelArray = VelArray,
+                        AngleArray = AngleArray,
+                        MaskArray = MaskArray,
+                    };
                     UrmProcessorList.Add(processorClass);
                 }
             }
@@ -279,6 +296,29 @@ namespace WingAIDiagnosisService.URMManage
             return processorClass;
         }
 
+        private URMProcess SetUrmProcessorByParams(UrmProcessRequest request)
+        {
+            InitURMProcessor(request);
+            var processor = UrmProcessorList.FirstOrDefault(x => x.GUID == request.GUID);
+            processor.LastActiveTime = DateTime.UtcNow;
+
+            var UrmProcessor = processor.Processor;
+            UrmProcessor.setUrmParams(RecordParams.UrmImageType, request.UrmImageType);
+            UrmProcessor.setUrmParams(RecordParams.UrmBlend, request.UrmBlend);
+            UrmProcessor.setUrmParams(RecordParams.URMDownSampleIndex, request.DownsampleIndex);
+            UrmProcessor.setUrmParams(RecordParams.URMIntPowerDen, request.IntPowerDen);
+            UrmProcessor.setUrmParams(RecordParams.URMIntPowerDir, request.IntPowerDir);
+            UrmProcessor.setUrmParams(RecordParams.URMSigmaGauss, request.SigmaGauss);
+            UrmProcessor.setUrmParams(RecordParams.URMVessScale, request.VessScale);
+            UrmProcessor.setUrmParams(RecordParams.URMVelMaxScaler, request.VelMaxScaler);
+            UrmProcessor.setUrmParams(RecordParams.URMVelMinScaler, request.VelMinScaler);
+            UrmProcessor.setUrmParams(RecordParams.URMIterations, request.Iterations);
+            UrmProcessor.setUrmBaseParam(request.Res, processor.DenArray, processor.DirArray, processor.VelArray, processor.AngleArray, processor.MaskArray, request.Urmsrcwidth, request.Urmsrcheight, request.ScaleOfPixel_x, request.ScaleOfPixel_y, request.ImgProcessVer, request.Isliner);
+            UrmProcessor.setUrmDrawParam(request.ZoomOn, request.ZoomRoix, request.ZoomRoiy, request.ZoomRoiwidth, request.ZoomRoiheight, request.Roix, request.Roiy, request.Roiwidth, request.Roiheight, request.LeftRight, request.UpDown, request.ScreenWidth, request.ScreenHeight);
+
+            return UrmProcessor;
+        }
+
         public URMProcessorClass InitURMMeasureProcessor(UrmMeasureProcessRequest request)
         {
             URMProcessorClass processorClass = null;

+ 28 - 1
URMManage/UrmProcessRequest.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Security.Cryptography;
 using System.Text;
 using Vinno.DataTypes;
+using Vinno.DataManager.Utilities;
 
 namespace WingAIDiagnosisService.URMManage
 {
@@ -12,6 +13,14 @@ namespace WingAIDiagnosisService.URMManage
         /// GUID
         /// </summary>
         public string GUID { get; set; }
+        /// <summary>
+        /// RemedicalCode
+        /// </summary>
+        public string RemedicalCode { get; set; }
+        /// <summary>
+        /// Token
+        /// </summary>
+        public string Token { get; set; }
         //文件路径
         public string DenDataPath { get; set; } = "D:\\Projects\\URMDemo\\URMDemo\\bin\\Debug\\URMTemp\\393f5673dc424b5e87334f8ba4a90aae\\srcDenArray.bin";
         public string DirDataPath { get; set; } = "D:\\Projects\\URMDemo\\URMDemo\\bin\\Debug\\URMTemp\\393f5673dc424b5e87334f8ba4a90aae\\srcDirArray.bin";
@@ -112,7 +121,19 @@ namespace WingAIDiagnosisService.URMManage
         {
             try
             {
-                return ToSHA256(GetUniqueValue());
+                // return ToSHA256(GetUniqueValue());
+                var datas = new StringBuilder();
+                datas.Append(RemedicalCode);
+                datas.Append(Token);
+                datas.Append(DenDataPath);
+                datas.Append(DirDataPath);
+                datas.Append(VelDataPath);
+                datas.Append(AngleDataPath);
+                datas.Append(MaskDataPath);
+                datas.Append(FamilyName);
+                datas.Append(TypeInfo);
+                datas.Append(NativeId);
+                return ToSHA256(datas.ToString());
             }
             catch
             {
@@ -212,6 +233,12 @@ namespace WingAIDiagnosisService.URMManage
         public double UrmMinVal { get; set; }
 
         public double UrmMaxVal { get; set; }
+
+        public NativeArray DenArray { get; set; }
+        public NativeArray DirArray { get; set; }
+        public NativeArray VelArray { get; set; }
+        public NativeArray AngleArray { get; set; }
+        public NativeArray MaskArray { get; set; }
     }