|
@@ -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;
|