jeremy 11 月之前
父節點
當前提交
fa52dbb849
共有 1 個文件被更改,包括 31 次插入21 次删除
  1. 31 21
      Service/AIDiagnosisService.URM.cs

+ 31 - 21
Service/AIDiagnosisService.URM.cs

@@ -24,6 +24,7 @@ namespace WingAIDiagnosisService.Service
     /// </summary>
     public partial class AIDiagnosisService : JsonRpcService, IAIDiagnosisService
     {
+        private static object _urmProcessLocker = new object();
         private readonly string _urmTempFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "URMTemp");
 
         /// <summary>
@@ -66,33 +67,42 @@ namespace WingAIDiagnosisService.Service
                         {
                             Logger.WriteLineInfo($"AIDiagnosisService URMAnalysisAsync download success, remedicalCode:{remedicalCode}, fileToken:{fileToken}, localFile:{origialFile}");
 
-                            URMAnalysisProcess _urmAnalysisProcess = null;
-                            try
+                            bool success = false;
+                            lock (_urmProcessLocker)
                             {
-                                // 开始URM分析
-                                _urmAnalysisProcess = new URMAnalysisProcess();
-                                bool success = _urmAnalysisProcess.URMAnalysis($"\"UrmDatapath\":\"{origialFile}\",\"VecLens\":\"474\",\"Mlas\":\"128\",\"VectorStartForMid\":\"9\",\"FramesGot\":\"1200\",\"CenterFrequencyMHz\":\"3.8\",\"Prf\":\"10313\",\"Angles\":\"29\",\"SupersonicSpeed\":\"1540\",\"PulseNum\":\"3\",\"FrequencyMin\":\"5\",\"FMUint\":\"MHz\",\"FrameRateDisplay\":\"101.9\",\"FDUnit\":\"Hz\",\"ScaleOfPixel_x\":\"0.212260852677748\",\"ScaleOfPixel_y\":\"0.493506493506494\",\"ULMCount\":\"400\",\"PacketsNum\":\"200\",\"Res\":\"2.5\",\"MaxLinkingDistance\":\"2\",\"MinLength\":\"5\",\"MaxGapClosing\":\"2\",\"LocMethod\":\"radial\",\"ButterCuttofFreqLow\":\"30\",\"NLocalMax\":\"3\",\"SVDCutoffLow\":\"30\",\"Fwhm\":\"3\",\"MOCOYN\":\"0\",\"MOCOLevel\":\"4\",\"MOCOThresh1\":\"0.05\",\"MOCOThresh2\":\"0.05\",\"MOCOThresh3\":\"5\",\"LocaFixmethod\":\"fixgray\",\"LocFixThresh\":\"25\",\"RefNum\":\"1\",\"MotionCorrThresh\":\"0.5\",\"Pos\":\" {pos} \",\"FilterDeci\":\"1\",\"PSFNum\":\"10\",\"PSFCorr\":\"0.5\",\"Depth\":\"0\",\"X0\":\"0\",\"Z0\":\"0\",\"ProbeType\":\"1\",\"Decifactorx\":\"1\",\"Decifactory\":\"1\",\"SizeScan\":\"474\",\"MotionAngleThresh\":\"2\",\"TrackInterpFactor\":\"0.8\"", currentFolder);
-                                if (success)
+                                URMAnalysisProcess _urmAnalysisProcess = null;
+                                try
                                 {
-                                    resultData.IsSuccess = true;
-                                    await InitURMAnalysisDetails(resultData, fileToken, currentFolder, origialRemedicalInfo);
-                                    await InitURMVideo(resultData, currentFolder);
+                                    // 开始URM分析
+                                    _urmAnalysisProcess = new URMAnalysisProcess();
+                                    success = _urmAnalysisProcess.URMAnalysis($"\"UrmDatapath\":\"{origialFile}\",\"VecLens\":\"474\",\"Mlas\":\"128\",\"VectorStartForMid\":\"9\",\"FramesGot\":\"1200\",\"CenterFrequencyMHz\":\"3.8\",\"Prf\":\"10313\",\"Angles\":\"29\",\"SupersonicSpeed\":\"1540\",\"PulseNum\":\"3\",\"FrequencyMin\":\"5\",\"FMUint\":\"MHz\",\"FrameRateDisplay\":\"101.9\",\"FDUnit\":\"Hz\",\"ScaleOfPixel_x\":\"0.212260852677748\",\"ScaleOfPixel_y\":\"0.493506493506494\",\"ULMCount\":\"400\",\"PacketsNum\":\"200\",\"Res\":\"2.5\",\"MaxLinkingDistance\":\"2\",\"MinLength\":\"5\",\"MaxGapClosing\":\"2\",\"LocMethod\":\"radial\",\"ButterCuttofFreqLow\":\"30\",\"NLocalMax\":\"3\",\"SVDCutoffLow\":\"30\",\"Fwhm\":\"3\",\"MOCOYN\":\"0\",\"MOCOLevel\":\"4\",\"MOCOThresh1\":\"0.05\",\"MOCOThresh2\":\"0.05\",\"MOCOThresh3\":\"5\",\"LocaFixmethod\":\"fixgray\",\"LocFixThresh\":\"25\",\"RefNum\":\"1\",\"MotionCorrThresh\":\"0.5\",\"Pos\":\" {pos} \",\"FilterDeci\":\"1\",\"PSFNum\":\"10\",\"PSFCorr\":\"0.5\",\"Depth\":\"0\",\"X0\":\"0\",\"Z0\":\"0\",\"ProbeType\":\"1\",\"Decifactorx\":\"1\",\"Decifactory\":\"1\",\"SizeScan\":\"474\",\"MotionAngleThresh\":\"2\",\"TrackInterpFactor\":\"0.8\"", currentFolder);
+
                                 }
-                            }
-                            catch (Exception ex)
-                            {
-                                Logger.WriteLineWarn($"AIDiagnosisService URMAnalysisAsync URMAnalysisProcess error, remedicalCode:{remedicalCode}, ex:{ex}");
-                                // resultData.IsSuccess = true;
-                                // await InitURMAnalysisDetails(resultData, fileToken, currentFolder, origialRemedicalInfo);
-                                // await InitURMVideo(resultData, currentFolder);
-                            }
-                            finally
-                            {
-                                if (_urmAnalysisProcess != null)
+                                catch (Exception ex)
                                 {
-                                    _urmAnalysisProcess.Release();
+                                    Logger.WriteLineWarn($"AIDiagnosisService URMAnalysisAsync URMAnalysisProcess error, remedicalCode:{remedicalCode}, ex:{ex}");
                                 }
+                                finally
+                                {
+                                    if (_urmAnalysisProcess != null)
+                                    {
+                                        _urmAnalysisProcess.Release();
+                                    }
+                                }
+                            }
+                            if (success)
+                            {
+                                resultData.IsSuccess = true;
+                                await InitURMAnalysisDetails(resultData, fileToken, currentFolder, origialRemedicalInfo);
+                                await InitURMVideo(resultData, currentFolder);
                             }
+                            // else
+                            // {
+                            //     Logger.WriteLineWarn($"AIDiagnosisService URMAnalysisAsync URMAnalysisProcess failed test, remedicalCode:{remedicalCode}");
+                            //     resultData.IsSuccess = true;
+                            //     await InitURMAnalysisDetails(resultData, fileToken, currentFolder, origialRemedicalInfo);
+                            //     await InitURMVideo(resultData, currentFolder);
+                            // }
                         }
                     }
                 }