Эх сурвалжийг харах

预加载视频后处理的其它Process

jeremy 8 сар өмнө
parent
commit
2d12cd808f

+ 33 - 0
Service/AIDiagnosisService.URM.cs

@@ -547,6 +547,8 @@ namespace WingAIDiagnosisService.Service
                         urmProcessRequest.PointsDataPath = File.Exists(pointsPath) ? pointsPath : string.Empty;
                         urmProcessRequest.PointNumsDataPath = File.Exists(pointNumsPath) ? pointNumsPath : string.Empty;
                         urmProcessRequest.GUID = urmProcessRequest.GetUniqueCode();
+                        // 预加载其它Process
+                        LoadVideoProcessInfos(urmProcessRequest);
 
                         Logger.WriteLineInfo($"AIDiagnosisService URMVideoProcessAsync DoUrmVideoProcess start, remedicalCode:{remedicalCode}");
                         Logger.WriteLineInfo($"urmProcessRequest:{JsonConvert.SerializeObject(urmProcessRequest)}");
@@ -574,6 +576,37 @@ namespace WingAIDiagnosisService.Service
             return new URMVideoProcessResult();
         }
 
+        private void LoadVideoProcessInfos(DoUrmVideoProcessRequest videoProcessProcess)
+        {
+            Task.Run(() =>
+            {
+                try
+                {
+                    var videoParameterInfos = new List<float> { 1, 2, 3 };
+                    var videoTypeInfos = new List<float> { 0, 1, 2 };
+
+                    var videoProcessProcessNew = JsonConvert.DeserializeObject<DoUrmVideoProcessRequest>(JsonConvert.SerializeObject(videoProcessProcess));
+                    foreach (var videoParameter in videoParameterInfos)
+                    {
+                        foreach (var videoType in videoTypeInfos)
+                        {
+                            if (videoParameter != videoProcessProcess.URMVideoParameter || videoType != videoProcessProcess.URMVideoType)
+                            {
+                                videoProcessProcessNew.URMVideoParameter = videoParameter;
+                                videoProcessProcessNew.URMVideoType = videoType;
+                                videoProcessProcessNew.GUID = videoProcessProcessNew.GetUniqueCode();
+                                URMAnalysisManager.InitVideoProcessor(videoProcessProcessNew);
+                            }
+                        }
+                    }
+                }
+                catch (Exception ex)
+                {
+                    Logger.WriteLineWarn($"AIDiagnosisService LoadVideoProcessInfos error, remedicalCode:{videoProcessProcess.RemedicalCode}, ex:{ex}");
+                }
+            });
+        }
+
         /// <summary>
         /// URM测量-预加载
         /// </summary>