瀏覽代碼

数据迁移AI结果占用资源过大问题处理

Jeremy 1 年之前
父節點
當前提交
2fe564e012
共有 1 個文件被更改,包括 14 次插入19 次删除
  1. 14 19
      Service/AIDiagnosisService.cs

+ 14 - 19
Service/AIDiagnosisService.cs

@@ -266,22 +266,8 @@ namespace WingAIDiagnosisService.Service
                 //AI实体有很多参数仅支持get,为了方便后续反序列化,db入库前先做个转换
                 var diagnosisPerImages = results.Select(x => new AIDiagnosisPerImageModel(x.Key, x.Value.ImageDiagResult, 1)).ToList();
                 var organs = GetDiagnosisOrgans(diagnosisPerImages);
-                if (organs.Contains(DiagnosisOrganEnum.Breast))
-                {
-                    var breastCount = diagnosisPerImages.Where(a => a.PriorityScore > 0).Count();
-                    var totalCount = results.Count;
-                    var breastRate = breastCount * 1.0 / totalCount * 1.0;
-                    if (breastRate <= 1 / 3.0)
-                    {
-                        return new DiagnosisImageResult
-                        {
-                            DiagnosisConclusion = DiagnosisConclusionEnum.Unrecognized,
-                            DiagnosisResult = null,
-                            DiagnosisOrgans = new List<DiagnosisOrganEnum>(),
-                        };
-                    }
-                }
-                await AddDiagnosisResultInfosAsync(relationCode, fileUrl, diagnosisPerImages, createTime, upateTime);
+
+                await AddDiagnosisResultInfosAsync(relationCode, fileUrl, diagnosisPerImages, createTime, upateTime, false);
                 //轮廓线分隔处理
                 diagnosisPerImages = results.Select(x => new AIDiagnosisPerImageModel(x.Key, x.Value.ImageDiagResult, _contourInterval)).ToList();
                 var diagnosisResult = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AIDiagnosisPerImageDTO>>(Newtonsoft.Json.JsonConvert.SerializeObject(diagnosisPerImages));
@@ -1161,7 +1147,8 @@ namespace WingAIDiagnosisService.Service
         /// <param name="fileUrl"></param>
         /// <param name="diagnosisResultInfos"></param>
         /// <returns></returns>
-        private async Task<bool> AddDiagnosisResultInfosAsync(string relationCode, string fileUrl, List<AIDiagnosisPerImageModel> diagnosisResultInfos, DateTime? createTime = null, DateTime? updateTime = null)
+        private async Task<bool> AddDiagnosisResultInfosAsync(string relationCode, string fileUrl, List<AIDiagnosisPerImageModel> diagnosisResultInfos
+        , DateTime? createTime = null, DateTime? updateTime = null, bool syncOthers = true)
         {
             try
             {
@@ -1180,9 +1167,17 @@ namespace WingAIDiagnosisService.Service
                     FileUrl = fileUrl,
                     DiagnosisResultInfos = resultInfos,
                     CreateTime = createTime,
-                    UpdateTime = updateTime
+                    UpdateTime = updateTime,
+                    SyncOthers = syncOthers,
                 };
-                _diagnosisResultDBService.AddDiagnosisResultInfosAsync(addRequest);
+                if (syncOthers)
+                {
+                    _diagnosisResultDBService.AddDiagnosisResultInfosAsync(addRequest);
+                }
+                else
+                {
+                    await _diagnosisResultDBService.AddDiagnosisResultInfosAsync(addRequest);
+                }
                 return true;
             }
             catch (Exception ex)