fly 8 月之前
父節點
當前提交
ba0d25d2d1
共有 2 個文件被更改,包括 47 次插入116 次删除
  1. 45 89
      URMManage/ImagePostProcess.cs
  2. 2 27
      URMManage/UrmProcessRequest.cs

+ 45 - 89
URMManage/ImagePostProcess.cs

@@ -15,7 +15,6 @@ namespace WingAIDiagnosisService.URMManage
     {
         public static List<URMProcessorClass> UrmProcessorList = new List<URMProcessorClass>();
         public static List<URMProcessorClass> VideoProcessorList = new List<URMProcessorClass>();
-        public static List<URMProcessorClass> MeasureProcessorList = new List<URMProcessorClass>();
 
         private void WatchingVideoProcessor()
         {
@@ -49,17 +48,6 @@ namespace WingAIDiagnosisService.URMManage
                             }
                         }
                         Logger.WriteLineInfo($"VideoProcessorList count2:{VideoProcessorList.Count}");
-                        Logger.WriteLineInfo($"MeasureProcessorList count1:{MeasureProcessorList.Count}");
-                        for (int i = MeasureProcessorList.Count - 1; i >= 0; i--)
-                        {
-                            var item = MeasureProcessorList[i];
-                            if (item.LastActiveTime <= DateTime.UtcNow.AddMinutes(-1))
-                            {
-                                item.Processor.Dispose();
-                                MeasureProcessorList.Remove(item);
-                            }
-                        }
-                        Logger.WriteLineInfo($"MeasureProcessorList count2:{MeasureProcessorList.Count}");
                     }
                 }
                 catch (Exception e)
@@ -83,15 +71,19 @@ namespace WingAIDiagnosisService.URMManage
                 var processorClass = UrmProcessorList.FirstOrDefault(x => x.GUID == request.GUID);
                 processorClass.LastActiveTime = DateTime.UtcNow;
                 var processor = processorClass.Processor;
-
-                // var drawUniqueCode = request.GetDrawUniqueCode();
-                // var drawParamChanged = processorClass.DrawUniqueCode != drawUniqueCode;
-                // if (drawParamChanged)
-                // {
-                //     processor.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, false);
-                //     processorClass.Processor = processor;
-                //     processorClass.DrawUniqueCode = drawUniqueCode;
-                // }
+                //赋值
+                processor.setUrmParams(RecordParams.UrmImageType, request.UrmImageType);
+                processor.setUrmParams(RecordParams.UrmBlend, request.UrmBlend ? 2 : 0);
+                processor.setUrmParams(RecordParams.URMDownSampleIndex, request.DownsampleIndex);
+                processor.setUrmParams(RecordParams.URMIntPowerDen, request.IntPowerDen);
+                processor.setUrmParams(RecordParams.URMIntPowerDir, request.IntPowerDir);
+                processor.setUrmParams(RecordParams.URMSigmaGauss, request.SigmaGauss);
+                processor.setUrmParams(RecordParams.URMVessScale, request.VessScale);
+                processor.setUrmParams(RecordParams.URMVelMaxScaler, request.VelMaxScaler);
+                processor.setUrmParams(RecordParams.URMVelMinScaler, request.VelMinScaler);
+                processor.setUrmParams(RecordParams.URMIterations, request.Iterations);
+                processor.setUrmBaseParam(request.Res, processorClass.DenArray, processorClass.DirArray, processorClass.VelArray, processorClass.AngleArray, processorClass.MaskArray, request.Urmsrcwidth, request.Urmsrcheight, request.ScaleOfPixel_x, request.ScaleOfPixel_y, request.ImgProcessVer);
+                processor.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);
                 processor.CalTracePointMask(request.UrmTraceDPoints);
                 imgBase64 = processor.getURMImageBase64(true, ref urmMinVal, ref urmMaxVal);
                 processorClass.UrmMinVal = urmMinVal;
@@ -121,15 +113,20 @@ namespace WingAIDiagnosisService.URMManage
                 var processorClass = UrmProcessorList.FirstOrDefault(x => x.GUID == request.GUID);
                 processorClass.LastActiveTime = DateTime.UtcNow;
                 var processor = processorClass.Processor;
-
-                // var drawUniqueCode = request.GetDrawUniqueCode();
-                // var drawParamChanged = processorClass.DrawUniqueCode != drawUniqueCode;
-                // if (drawParamChanged)
-                // {
-                //     processor.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, false);
-                //     processorClass.Processor = processor;
-                //     processorClass.DrawUniqueCode = drawUniqueCode;
-                // }
+                //赋值
+                processor.setUrmParams(RecordParams.UrmImageType, request.UrmImageType);
+                processor.setUrmParams(RecordParams.UrmBlend, request.UrmBlend ? 2 : 0);
+                processor.setUrmParams(RecordParams.URMDownSampleIndex, request.DownsampleIndex);
+                processor.setUrmParams(RecordParams.URMIntPowerDen, request.IntPowerDen);
+                processor.setUrmParams(RecordParams.URMIntPowerDir, request.IntPowerDir);
+                processor.setUrmParams(RecordParams.URMSigmaGauss, request.SigmaGauss);
+                processor.setUrmParams(RecordParams.URMVessScale, request.VessScale);
+                processor.setUrmParams(RecordParams.URMVelMaxScaler, request.VelMaxScaler);
+                processor.setUrmParams(RecordParams.URMVelMinScaler, request.VelMinScaler);
+                processor.setUrmParams(RecordParams.URMIterations, request.Iterations);
+                processor.setUrmBaseParam(request.Res, processorClass.DenArray, processorClass.DirArray, processorClass.VelArray, processorClass.AngleArray, processorClass.MaskArray, request.Urmsrcwidth, request.Urmsrcheight, request.ScaleOfPixel_x, request.ScaleOfPixel_y, request.ImgProcessVer);
+                processor.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);
+                //colorbar
                 imgBase64 = processor.CreateUrmColorbarImage();
             }
             catch (Exception ex)
@@ -147,12 +144,24 @@ namespace WingAIDiagnosisService.URMManage
         /// <returns></returns>
         public URMMeasureDataOutput MeasureProcess(string remedicalCode, UrmMeasureProcessRequest request, out string perfusionImgBase64, ref double urmMinVal, ref double urmMaxVal)
         {
-            InitURMMeasureProcessor(request);
+            InitURMProcessor(request);
             try
             {
-                var processor = MeasureProcessorList.FirstOrDefault(x => x.GUID == request.GUID);
+                var processor = UrmProcessorList.FirstOrDefault(x => x.GUID == request.GUID);
                 processor.LastActiveTime = DateTime.UtcNow;
-
+                //赋值
+                processor.Processor.setUrmParams(RecordParams.UrmImageType, request.UrmImageType);
+                processor.Processor.setUrmParams(RecordParams.UrmBlend, request.UrmBlend ? 2 : 0);
+                processor.Processor.setUrmParams(RecordParams.URMDownSampleIndex, request.DownsampleIndex);
+                processor.Processor.setUrmParams(RecordParams.URMIntPowerDen, request.IntPowerDen);
+                processor.Processor.setUrmParams(RecordParams.URMIntPowerDir, request.IntPowerDir);
+                processor.Processor.setUrmParams(RecordParams.URMSigmaGauss, request.SigmaGauss);
+                processor.Processor.setUrmParams(RecordParams.URMVessScale, request.VessScale);
+                processor.Processor.setUrmParams(RecordParams.URMVelMaxScaler, request.VelMaxScaler);
+                processor.Processor.setUrmParams(RecordParams.URMVelMinScaler, request.VelMinScaler);
+                processor.Processor.setUrmParams(RecordParams.URMIterations, request.Iterations);
+                processor.Processor.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);
+                processor.Processor.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);
                 urmMinVal = 0;
                 urmMaxVal = 0;
                 // processor.Processor.getUrmVal(ref urmMinVal, ref urmMaxVal);
@@ -313,23 +322,11 @@ namespace WingAIDiagnosisService.URMManage
                     NativeArray AngleArray = ResultDataIOHelper.ReadDoubleArrayFromFile(request.AngleDataPath, request.Urmsrcwidth * request.Urmsrcheight); // 360图的数据
                     NativeArray MaskArray = ResultDataIOHelper.ReadByteArrayFromFile(request.MaskDataPath, request.Urmsrcwidth * request.Urmsrcheight); // Mask
 
-                    Logger.WriteLineInfo("AIDiagnosis DoUrmProcess InitURMProcessor init");                                                                                                                        // 参数设置
+                    Logger.WriteLineInfo("AIDiagnosis DoUrmProcess InitURMProcessor init"); // 参数设置
                     var UrmProcessor = new URMProcess();
                     var URMProcessInitSuccess = UrmProcessor.init(request.FamilyName, request.TypeInfo, request.NativeId);
                     Logger.WriteLineInfo("AIDiagnosis DoUrmProcess InitURMProcessor setUrmParams");
-                    UrmProcessor.setUrmParams(RecordParams.UrmImageType, request.UrmImageType);
-                    UrmProcessor.setUrmParams(RecordParams.UrmBlend, request.UrmBlend ? 2 : 0);
-                    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, DenArray, DirArray, VelArray, AngleArray, MaskArray, request.Urmsrcwidth, request.Urmsrcheight, request.ScaleOfPixel_x, request.ScaleOfPixel_y, request.ImgProcessVer);
-                    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,
@@ -339,8 +336,7 @@ namespace WingAIDiagnosisService.URMManage
                         DirArray = DirArray,
                         VelArray = VelArray,
                         AngleArray = AngleArray,
-                        MaskArray = MaskArray,
-                        DrawUniqueCode = request.GetDrawUniqueCode(),
+                        MaskArray = MaskArray
                     };
                     UrmProcessorList.Add(processorClass);
                     Logger.WriteLineInfo("AIDiagnosis DoUrmProcess InitURMProcessor end");
@@ -373,47 +369,7 @@ namespace WingAIDiagnosisService.URMManage
             return UrmProcessor;
         }
 
-        public URMProcessorClass InitURMMeasureProcessor(UrmMeasureProcessRequest request)
-        {
-            URMProcessorClass processorClass = null;
-            try
-            {
-                processorClass = MeasureProcessorList.FirstOrDefault(x => x.GUID == request.GUID);
-                if (processorClass == null)
-                {
-                    NativeArray DenArray = ResultDataIOHelper.ReadDoubleArrayFromFile(request.DenDataPath, request.Urmsrcwidth * request.Urmsrcheight); //Den的分析后数据
-                    NativeArray DirArray = ResultDataIOHelper.ReadDoubleArrayFromFile(request.DirDataPath, request.Urmsrcwidth * request.Urmsrcheight); // Dir的分析后数据
-                    NativeArray VelArray = ResultDataIOHelper.ReadDoubleArrayFromFile(request.VelDataPath, request.Urmsrcwidth * request.Urmsrcheight); // Vel的分析后数据
-                    NativeArray AngleArray = ResultDataIOHelper.ReadDoubleArrayFromFile(request.AngleDataPath, request.Urmsrcwidth * request.Urmsrcheight); // 360图的数据
-                    NativeArray MaskArray = ResultDataIOHelper.ReadByteArrayFromFile(request.MaskDataPath, request.Urmsrcwidth * request.Urmsrcheight); // Mask
-                                                                                                                                                        // 参数设置
-                    var UrmProcessor = new URMProcess();
-                    var URMProcessInitSuccess = UrmProcessor.init(request.FamilyName, request.TypeInfo, request.NativeId);
-                    UrmProcessor.setUrmParams(RecordParams.UrmImageType, request.UrmImageType);
-                    UrmProcessor.setUrmParams(RecordParams.UrmBlend, request.UrmBlend ? 2 : 0);
-                    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, DenArray, DirArray, VelArray, AngleArray, MaskArray, request.Urmsrcwidth, request.Urmsrcheight, request.ScaleOfPixel_x, request.ScaleOfPixel_y, request.ImgProcessVer);
-                    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);
-                    UrmProcessor.CalTracePointMask(request.UrmTraceDPoints);
-                    UrmProcessor.GetURMImage();
 
-                    processorClass = new URMProcessorClass { GUID = request.GUID, Processor = UrmProcessor, LastActiveTime = DateTime.UtcNow };
-                    MeasureProcessorList.Add(processorClass);
-                }
-            }
-            catch (Exception ex)
-            {
-                Logger.WriteLineWarn($"AIService URMAnalysisManager InitURMMeasureProcessor error, ex:{ex}");
-            }
-            return processorClass;
-        }
 
 
     }

+ 2 - 27
URMManage/UrmProcessRequest.cs

@@ -118,35 +118,12 @@ namespace WingAIDiagnosisService.URMManage
         }
 
         public virtual string GetUniqueCode()
-        {
-            try
-            {
-                return ToSHA256(GetUniqueValue());
-            }
-            catch
-            {
-                return Guid.NewGuid().ToString("N");
-            }
-        }
-
-        public string GetDrawUniqueCode()
         {
             try
             {
                 var datas = new StringBuilder();
-                datas.Append(ZoomOn);
-                datas.Append(ZoomRoix);
-                datas.Append(ZoomRoiy);
-                datas.Append(ZoomRoiwidth);
-                datas.Append(ZoomRoiheight);
-                datas.Append(Roix);
-                datas.Append(Roiy);
-                datas.Append(Roiwidth);
-                datas.Append(Roiheight);
-                datas.Append(LeftRight);
-                datas.Append(UpDown);
-                datas.Append(ScreenWidth);
-                datas.Append(ScreenHeight);
+                datas.Append(Token);
+                datas.Append(RemedicalCode);
                 return ToSHA256(datas.ToString());
             }
             catch
@@ -240,8 +217,6 @@ namespace WingAIDiagnosisService.URMManage
         /// </summary>
         public string GUID { get; set; }
 
-        public string DrawUniqueCode { get; set; }
-
         public URMProcess Processor { get; set; }
 
         public DateTime LastActiveTime { get; set; }