|
@@ -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);
|
|
|
+ // }
|
|
|
}
|
|
|
}
|
|
|
}
|