From e762da2bf5acde6958d65374f59b53f4c086bbcc Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Mon, 27 Jul 2026 13:39:28 +0800 Subject: [PATCH] =?UTF-8?q?IUVS=E5=92=8COCT=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 | 15 +++++++ .../ReadingCalculate/IVUSCalculateService.cs | 41 ++++++++++++++++++- .../ReadingCalculate/OCTCalculateService.cs | 41 +++++++++++++++---- IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 10 +++++ 4 files changed, 98 insertions(+), 9 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs index ae4150b5a..ff52940a3 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs @@ -238,6 +238,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto return this.Emm - this.Lumen; } } + + /// + /// 斑块破裂 + /// + public string PlaqueRupture { get; set; } } public class TemplateData @@ -300,6 +305,16 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public decimal? LipidAngle { get; set; } + /// + /// 斑块破裂 + /// + public string PlaqueRupture { get; set; } + + /// + /// 斑块愈合 + /// + public string PlaqueHealing { get; set; } + public decimal? Avg { diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs index a8675ca71..4604158c4 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs @@ -298,10 +298,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate //new ReadingCalculateData (){QuestionType=QuestionType.Plaque3PVA,GetDecimalNullFun=GetPlaque3PVA}, - // (EEM-Lumen)求和 + // 获取EMM求和 new ReadingCalculateData (){QuestionType=QuestionType.EEMSum,GetDecimalNullFun=GetEmmSum}, - // 斑块2-PAV + // (EEM-Lumen)求和 new ReadingCalculateData (){QuestionType=QuestionType.EEMSubLumenSum,GetDecimalNullFun=GetEEMLumenSum}, // PAV(冠状动脉粥样硬化体积百分比) @@ -494,6 +494,30 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate } + string getNone(string value) + { + if (value == string.Empty || value == null) + { + return "无"; + } + else + { + return value; + } + } + + + + Dictionary isPresent = new Dictionary() + { + { "有","1"}, + { "无","0"}, + { "Existence","1"}, + { "Non-existence","0"}, + { string.Empty,string.Empty}, + }; + + List measuredValueList = new List(); var errorRow = new List { }; @@ -508,6 +532,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate FrameNumber = dataTable.Rows[i]["A"].ToString()??string.Empty, Emm = getdecimalEmptyData(dataTable.Rows[i]["B"].ToString()), Lumen = getdecimalEmptyData(dataTable.Rows[i]["C"].ToString()), + PlaqueRupture= getNone(dataTable.Rows[i]["D"].ToString()), }; } catch (Exception) @@ -623,6 +648,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.ElasticAreaDiffValue).Select(x => x.Id).FirstOrDefault(), }); + // 斑块破裂 + tableAnswers.Add(new ReadingTableQuestionAnswer() + { + Answer = isPresent[item.PlaqueRupture.ToString()], + QuestionId = questionInfo.Id, + TrialId = taskinfo.TrialId, + VisitTaskId = taskinfo.Id, + RowId = newRowId, + RowIndex = maxnum, + TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.PlaqueRupture).Select(x => x.Id).FirstOrDefault(), + }); + // 添加其他问题答案 foreach (var otherQuestion in tableQuestionList.Where(x => !tableAnswers.Any(y => y.TableQuestionId == x.Id && y.RowId == newRowId))) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs index 05006fd3e..aeed5b0ae 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs @@ -355,15 +355,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { //PlaqueNum = int.Parse(dataTable.Rows[i]["A"].ToString()), FrameNumber = dataTable.Rows[i]["A"].ToString() ?? string.Empty, - FirstData = getdecimalEmptyData(dataTable.Rows[i]["B"].ToString()), - SecondData = getdecimalEmptyData(dataTable.Rows[i]["C"].ToString()), - ThirdData = getdecimalEmptyData(dataTable.Rows[i]["D"].ToString()), - MacrophageInfiltrationMeasurement = getNone(dataTable.Rows[i]["E"].ToString()), - MacrophageInfiltrationAngle = getdecimalEmptyData(dataTable.Rows[i]["F"].ToString() ?? string.Empty), + LumenAreaMeasurement = getdecimalEmptyData(dataTable.Rows[i]["B"].ToString()), + LipidAngle = getdecimalEmptyData(dataTable.Rows[i]["C"].ToString() ?? string.Empty), + FirstData = getdecimalEmptyData(dataTable.Rows[i]["D"].ToString()), + SecondData = getdecimalEmptyData(dataTable.Rows[i]["E"].ToString()), + ThirdData = getdecimalEmptyData(dataTable.Rows[i]["F"].ToString()), MicrochannelMeasurement = getNone(dataTable.Rows[i]["G"].ToString()), CholesterolCrystalMeasurement = getNone(dataTable.Rows[i]["H"].ToString()), - LumenAreaMeasurement = getdecimalEmptyData(dataTable.Rows[i]["I"].ToString()), - LipidAngle = getdecimalEmptyData(dataTable.Rows[i]["J"].ToString() ?? string.Empty), + MacrophageInfiltrationMeasurement = getNone(dataTable.Rows[i]["I"].ToString()), + MacrophageInfiltrationAngle = getdecimalEmptyData(dataTable.Rows[i]["J"].ToString() ?? string.Empty), + PlaqueRupture = getNone(dataTable.Rows[i]["K"].ToString()), + PlaqueHealing = getNone(dataTable.Rows[i]["L"].ToString()), + }); } catch (Exception) @@ -598,6 +601,30 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.LipidAngle).Select(x => x.Id).FirstOrDefault(), }); + // 斑块破裂 + tableAnswers.Add(new ReadingTableQuestionAnswer() + { + Answer = isPresent[item.PlaqueRupture.ToString()], + QuestionId = questionInfo.Id, + TrialId = taskinfo.TrialId, + VisitTaskId = taskinfo.Id, + RowId = newRowId, + RowIndex = maxnum, + TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.PlaqueRupture).Select(x => x.Id).FirstOrDefault(), + }); + + // 斑块愈合 + tableAnswers.Add(new ReadingTableQuestionAnswer() + { + Answer = isPresent[item.PlaqueHealing.ToString()], + QuestionId = questionInfo.Id, + TrialId = taskinfo.TrialId, + VisitTaskId = taskinfo.Id, + RowId = newRowId, + RowIndex = maxnum, + TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.PlaqueHealing).Select(x => x.Id).FirstOrDefault(), + }); + } catch (Exception) { diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs index 25312a064..2b7eea0f7 100644 --- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -2518,6 +2518,16 @@ namespace IRaCIS.Core.Domain.Share /// FrameNumber =1032, + /// + /// 斑块破裂 + /// + PlaqueRupture = 1033, + + /// + /// 斑块愈合 + /// + PlaqueHealing = 1034, + /// /// 第一次测量 ///