From 052ac1ff8d5d392ea961fdf8fa391432e345a7b4 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Tue, 23 Dec 2025 09:48:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/Dto/ReadingCalculateViewModel.cs | 16 +++---- .../ReadingCalculate/OCTCalculateService.cs | 43 +++++++++++++------ 2 files changed, 39 insertions(+), 20 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs index be73aa600..7f93a713f 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs @@ -252,17 +252,17 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// /// 第一次 /// - public int FirstData { get; set; } + public decimal FirstData { get; set; } /// /// 第二次 /// - public int SecondData { get; set; } + public decimal SecondData { get; set; } /// /// 第三次 /// - public int ThirdData { get; set; } + public decimal ThirdData { get; set; } /// /// 巨噬细胞浸润测量 @@ -273,29 +273,29 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// /// 巨噬细胞浸润角度测量 /// - public string MacrophageInfiltrationAngle { get; set; } + public decimal? MacrophageInfiltrationAngle { get; set; } /// /// 微通道测量 /// - public string MicrochannelMeasurement { get; set; } + public decimal? MicrochannelMeasurement { get; set; } /// /// 胆固醇结晶测量 /// - public string CholesterolCrystalMeasurement { get; set; } + public decimal? CholesterolCrystalMeasurement { get; set; } /// /// 官腔面积测量 /// - public string LumenAreaMeasurement { get; set; } + public decimal? LumenAreaMeasurement { get; set; } public decimal Avg { get { - return ( FirstData*1m + SecondData * 1m + ThirdData * 1m) / 3; + return ( FirstData + SecondData + ThirdData) / 3; } } } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs index a660a9eee..152eb509c 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs @@ -314,7 +314,21 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { throw new BusinessValidationFailedException(_localizer["IVUS_UploadVisitTaskError"]); } + var digitPlaces = taskinfo.TrialReadingCriterion.DigitPlaces ?? 0; + decimal getdecimalData(string value) + { + return decimal.Parse(decimal.Round(decimal.Parse(value ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString())); + } + + decimal? getdecimalEmptyData(string value) + { + if (value == string.Empty) + { + return null; + } + return decimal.Parse(decimal.Round(decimal.Parse(value ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString())); + } List measuredValueList = new List(); var errorRow = new List { }; @@ -325,14 +339,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate measuredValueList.Add(new OCTFCTUploadData() { PlaqueNum = int.Parse(dataTable.Rows[i]["A"].ToString()), - FirstData = int.Parse(dataTable.Rows[i]["B"].ToString()), - SecondData = int.Parse(dataTable.Rows[i]["C"].ToString()), - ThirdData = int.Parse(dataTable.Rows[i]["D"].ToString()), + FirstData = getdecimalData(dataTable.Rows[i]["B"].ToString()), + SecondData = getdecimalData(dataTable.Rows[i]["C"].ToString()), + ThirdData = getdecimalData(dataTable.Rows[i]["D"].ToString()), MacrophageInfiltrationMeasurement = dataTable.Rows[i]["E"].ToString() ?? string.Empty, - MacrophageInfiltrationAngle = dataTable.Rows[i]["F"].ToString() ?? string.Empty, - MicrochannelMeasurement = dataTable.Rows[i]["G"].ToString() ?? string.Empty, - CholesterolCrystalMeasurement = dataTable.Rows[i]["H"].ToString() ?? string.Empty, - LumenAreaMeasurement = dataTable.Rows[i]["I"].ToString() ?? string.Empty, + MacrophageInfiltrationAngle = getdecimalEmptyData(dataTable.Rows[i]["F"].ToString() ?? string.Empty), + MicrochannelMeasurement = getdecimalEmptyData(dataTable.Rows[i]["G"].ToString() ?? string.Empty), + CholesterolCrystalMeasurement = getdecimalEmptyData(dataTable.Rows[i]["H"].ToString() ?? string.Empty), + LumenAreaMeasurement = getdecimalEmptyData(dataTable.Rows[i]["I"].ToString() ?? string.Empty), }); } catch (Exception) @@ -373,13 +387,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate row++; try { - if (isPresent[item.MacrophageInfiltrationMeasurement] == "1"&& item.MacrophageInfiltrationAngle==string.Empty) + if (isPresent[item.MacrophageInfiltrationMeasurement] == "1"&& item.MacrophageInfiltrationAngle==null) { errorRow.Add(row); continue; } - if ((isPresent[item.MacrophageInfiltrationMeasurement] == "0"|| isPresent[item.MacrophageInfiltrationMeasurement]==string.Empty) && item.MacrophageInfiltrationAngle != string.Empty) + if ((isPresent[item.MacrophageInfiltrationMeasurement] == "0"|| isPresent[item.MacrophageInfiltrationMeasurement]==string.Empty) && item.MacrophageInfiltrationAngle != null) { errorRow.Add(row); continue; @@ -444,7 +458,6 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate if (taskinfo.TrialReadingCriterion.DigitPlaces != -1) { - var digitPlaces = taskinfo.TrialReadingCriterion.DigitPlaces ?? 0; avg = decimal.Round(decimal.Parse(avg ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString()); } @@ -650,6 +663,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate throw new BusinessValidationFailedException(_localizer["IVUS_UploadVisitTaskError"]); } + var digitPlaces = taskinfo.TrialReadingCriterion.DigitPlaces ?? 0; + decimal getdecimalData(string value) + { + return decimal.Parse(decimal.Round(decimal.Parse(value ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString())); + } + ; + List measuredValueList = new List(); var errorRow = new List { }; @@ -660,7 +680,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate measuredValueList.Add(new OCTFCTUploadData() { PlaqueNum = int.Parse(dataTable.Rows[i]["A"].ToString()), - FirstData = int.Parse(dataTable.Rows[i]["B"].ToString()), + FirstData = getdecimalData(dataTable.Rows[i]["B"].ToString()), }); } @@ -740,7 +760,6 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate if (taskinfo.TrialReadingCriterion.DigitPlaces != -1) { - var digitPlaces = taskinfo.TrialReadingCriterion.DigitPlaces ?? 0; avg = decimal.Round(decimal.Parse(avg ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString()); }