소스 검색

AI实体有很多参数仅支持get,为了方便后续反序列化,db入库前先做个转换

Jeremy 2 년 전
부모
커밋
b5e81b8131
1개의 변경된 파일18개의 추가작업 그리고 10개의 파일을 삭제
  1. 18 10
      Service/AIDiagnosisService.cs

+ 18 - 10
Service/AIDiagnosisService.cs

@@ -167,12 +167,15 @@ namespace WingAIDiagnosisService.Service
                         {
                             //乳腺、肝脏
                             var results = NormalDiagnosis(imageData);
-                            await AddDiagnosisResultInfosAsync(relationCode, fileUrl, results);
-                            var diagnosisResults = results.Select(x => new AIDiagnosisPerImageModel(x.Key, x.Value, _contourInterval)).ToList();
-                            var diagnosisResult = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AIDiagnosisPerImageDTO>>(Newtonsoft.Json.JsonConvert.SerializeObject(diagnosisResults));
+                            //AI实体有很多参数仅支持get,为了方便后续反序列化,db入库前先做个转换
+                            var diagnosisPerImages = results.Select(x => new AIDiagnosisPerImageModel(x.Key, x.Value, 1)).ToList();
+                            await AddDiagnosisResultInfosAsync(relationCode, fileUrl, diagnosisPerImages);
+                            //轮廓线分隔处理
+                            diagnosisPerImages = results.Select(x => new AIDiagnosisPerImageModel(x.Key, x.Value, _contourInterval)).ToList();
+                            var diagnosisResult = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AIDiagnosisPerImageDTO>>(Newtonsoft.Json.JsonConvert.SerializeObject(diagnosisPerImages));
                             var resultData = new DiagnosisImageResult()
                             {
-                                DiagnosisConclusion = (DiagnosisConclusionEnum)GetDiagnosisConclusion(diagnosisResults),
+                                DiagnosisConclusion = (DiagnosisConclusionEnum)GetDiagnosisConclusion(diagnosisPerImages),
                                 DiagnosisResult = diagnosisResult,
                                 DiagnosisOrgans = GetDiagnosisOrgans(diagnosisResult),
                             };
@@ -931,19 +934,24 @@ namespace WingAIDiagnosisService.Service
         /// <param name="fileUrl"></param>
         /// <param name="diagnosisResultInfos"></param>
         /// <returns></returns>
-        private async Task<bool> AddDiagnosisResultInfosAsync(string relationCode, string fileUrl, Dictionary<int, AIDiagResultPerImg> diagnosisResultInfos)
+        private async Task<bool> AddDiagnosisResultInfosAsync(string relationCode, string fileUrl, List<AIDiagnosisPerImageModel> diagnosisResultInfos)
         {
             try
             {
+                var resultInfos = new List<DiagnosisResultDTO>();
+                for (var i = 0; i < diagnosisResultInfos.Count; i++)
+                {
+                    resultInfos.Add(new DiagnosisResultDTO
+                    {
+                        Index = i,
+                        DiagnosisResult = Newtonsoft.Json.JsonConvert.SerializeObject(diagnosisResultInfos[i]),
+                    });
+                }
                 var addRequest = new AddDiagnosisResultInfosDBRequest
                 {
                     RelationCode = relationCode,
                     FileUrl = fileUrl,
-                    DiagnosisResultInfos = diagnosisResultInfos.Select(r => new DiagnosisResultDTO
-                    {
-                        Index = r.Key,
-                        DiagnosisResult = Newtonsoft.Json.JsonConvert.SerializeObject(r.Value)
-                    }).ToList()
+                    DiagnosisResultInfos = resultInfos,
                 };
                 _diagnosisResultDBService.AddDiagnosisResultInfosAsync(addRequest);
                 return true;