diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs index ba1350ad0..8491d4d51 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs @@ -13,6 +13,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate [ApiExplorerSettings(GroupName = "Image")] public class ReadingCalculateService(IEnumerable _criterionServices, IRepository _visitTaskRepository, + IHttpContextAccessor httpContext, IRepository _readingQuestionCriterionTrialRepository, IStringLocalizer _localizer, IUserInfo _userInfo @@ -38,7 +39,24 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate - + /// + /// 阅片导入 + /// + /// + [HttpPost] + public async Task ReadingImport() + { + var request = httpContext.HttpContext!.Request; + var file = request.Form.Files[0]; + Guid visitTaskId = Guid.Parse(request.Form["VisitTaskId"]); + + var service = await this.GetService(visitTaskId); + if (service != null) + { + await service.ReadingImport(); + } + } + /// /// 获取Service diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs index 7e6fb31a3..913eb23f1 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs @@ -27,6 +27,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate ILogger _logger, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ICriterionCalculateService { + /// + /// 阅片导入 + /// + /// + public async Task ReadingImport() + { + } + /// /// 获取阅片的计算数据 /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs index 12dae0094..606670413 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs @@ -33,6 +33,23 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate ILogger _logger, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ICriterionCalculateService { + /// + /// 阅片导入 + /// + /// + public async Task ReadingImport() + { + var request = httpContext.HttpContext!.Request; + ReadingImportType readingImportType = (ReadingImportType) int.Parse(request.Form["ReadingImportType"].ToString()); + + switch (readingImportType) + { + case ReadingImportType.IVUS_MatchingSegment: + await UploadIVUSTemplate(); + break; + } + } + /// /// 获取阅片的计算数据 /// @@ -766,8 +783,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate } - await _readingTableAnswerRowInfoRepository.BatchDeleteNoTrackingAsync(x => x.QuestionId == questionInfo.Id && x.VisitTaskId == taskinfo.Id); - await _readingTableQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => x.QuestionId == questionInfo.Id && x.VisitTaskId == taskinfo.Id); + await _readingTableAnswerRowInfoRepository.DeleteFromQueryAsync(x => x.QuestionId == questionInfo.Id && x.VisitTaskId == taskinfo.Id); + await _readingTableQuestionAnswerRepository.DeleteFromQueryAsync(x => x.QuestionId == questionInfo.Id && x.VisitTaskId == taskinfo.Id); await _readingTableAnswerRowInfoRepository.AddRangeAsync(tableAnsweRowInfos); await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers); await _readingTableQuestionAnswerRepository.SaveChangesAsync(); diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/ICriterionCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/ICriterionCalculateService.cs index d5dc5048f..a24dfa699 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/ICriterionCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/ICriterionCalculateService.cs @@ -13,6 +13,13 @@ namespace IRaCIS.Core.Application.Service /// Task CalculateTask(CalculateTaskInDto inDto); + + /// + /// 阅片导入 + /// + /// + Task ReadingImport(); + /// /// 验证访视提交 /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IReadingCalculateService.cs index 37449f651..53cb9f726 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IReadingCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IReadingCalculateService.cs @@ -14,6 +14,9 @@ namespace IRaCIS.Core.Application.Service /// Task CalculateTask(CalculateTaskInDto inDto); + + + /// /// 验证访视提交 /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 314af32eb..1f79f7492 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -28,7 +28,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate IGeneralCalculateService _generalCalculateService, IRepository _readingTaskQuestionAnswerRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ICriterionCalculateService, ILuganoCalculateService { - + /// + /// 阅片导入 + /// + /// + public async Task ReadingImport() + { + } /// /// 获取阅片的计算数据 diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs index 0b8abe6e5..100debf1a 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs @@ -29,6 +29,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate IRepository _readingTaskQuestionAnswerRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ICriterionCalculateService, ILuganoCalculateService { + /// + /// 阅片导入 + /// + /// + public async Task ReadingImport() + { + } + /// /// 获取阅片的计算数据 /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/MRECISTHCCCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/MRECISTHCCCalculateService.cs index c3f7fc5b4..4a1c64ea1 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/MRECISTHCCCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/MRECISTHCCCalculateService.cs @@ -26,6 +26,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate IRepository _readingTaskQuestionAnswerRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ICriterionCalculateService { + /// + /// 阅片导入 + /// + /// + public async Task ReadingImport() + { + } + /// /// 获取阅片的计算数据 /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/MRIPDFFCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/MRIPDFFCalculateService.cs index 2096a0ddd..5cc4357ab 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/MRIPDFFCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/MRIPDFFCalculateService.cs @@ -33,6 +33,15 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate private List siteVisitForTumorList = new List(); + /// + /// 阅片导入 + /// + /// + public async Task ReadingImport() + { + } + + /// /// 获取阅片的计算数据 /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs index c97b1abbc..55c169b29 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs @@ -28,6 +28,26 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate IRepository _readingTaskQuestionAnswerRepository, ILogger _logger, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ICriterionCalculateService { + /// + /// 阅片导入 + /// + /// + public async Task ReadingImport() + { + var request = httpContext.HttpContext!.Request; + ReadingImportType readingImportType = (ReadingImportType)int.Parse(request.Form["ReadingImportType"].ToString()); + + switch (readingImportType) + { + case ReadingImportType.OCT_FCT: + await UploadOCTFCTTemplate(); + break; + + case ReadingImportType.OCT_LipidAngle: + await UploadOCTLipidAngleTemplate(); + break; + } + } /// /// 获取阅片的计算数据 @@ -627,8 +647,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate } } - await _readingTableAnswerRowInfoRepository.BatchDeleteNoTrackingAsync(x => x.QuestionId == questionInfo.Id && x.VisitTaskId == taskinfo.Id); - await _readingTableQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => x.QuestionId == questionInfo.Id && x.VisitTaskId == taskinfo.Id); + await _readingTableAnswerRowInfoRepository.DeleteFromQueryAsync(x => x.QuestionId == questionInfo.Id && x.VisitTaskId == taskinfo.Id); + await _readingTableQuestionAnswerRepository.DeleteFromQueryAsync(x => x.QuestionId == questionInfo.Id && x.VisitTaskId == taskinfo.Id); await _readingTableAnswerRowInfoRepository.AddRangeAsync(tableAnsweRowInfos); await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers); await _readingTableQuestionAnswerRepository.SaveChangesAsync(); @@ -802,8 +822,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate }); } } - await _readingTableAnswerRowInfoRepository.BatchDeleteNoTrackingAsync(x => x.QuestionId == questionInfo.Id && x.VisitTaskId == taskinfo.Id); - await _readingTableQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => x.QuestionId == questionInfo.Id && x.VisitTaskId == taskinfo.Id); + await _readingTableAnswerRowInfoRepository.DeleteFromQueryAsync(x => x.QuestionId == questionInfo.Id && x.VisitTaskId == taskinfo.Id); + await _readingTableQuestionAnswerRepository.DeleteFromQueryAsync(x => x.QuestionId == questionInfo.Id && x.VisitTaskId == taskinfo.Id); await _readingTableAnswerRowInfoRepository.AddRangeAsync(tableAnsweRowInfos); await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers); await _readingTableQuestionAnswerRepository.SaveChangesAsync(); diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs index 27c8ccf4a..5f0e69a6e 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs @@ -27,6 +27,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate private List siteVisitForTumorList; + /// + /// 阅片导入 + /// + /// + public async Task ReadingImport() + { + } + /// /// 获取阅片的计算数据 /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs index dfeb51bc0..58244e6ad 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs @@ -24,6 +24,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate IRepository _readingTaskQuestionAnswerRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ICriterionCalculateService { + /// + /// 阅片导入 + /// + /// + public async Task ReadingImport() + { + } + /// /// 获取阅片的计算数据 /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs index 70e446434..669886a0c 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs @@ -24,6 +24,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate IRepository _readingTaskQuestionAnswerRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ICriterionCalculateService { + /// + /// 阅片导入 + /// + /// + public async Task ReadingImport() + { + } + /// /// 获取阅片的计算数据 /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/SelfDefineCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/SelfDefineCalculateService.cs index c8b2d5060..5bc231252 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/SelfDefineCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/SelfDefineCalculateService.cs @@ -27,6 +27,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate private List siteVisitForTumorList = new List(); + /// + /// 阅片导入 + /// + /// + public async Task ReadingImport() + { + } + /// /// 获取阅片的计算数据 /// diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs index 04d4e46d0..8baf5e3c7 100644 --- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -34,10 +34,33 @@ namespace IRaCIS.Core.Domain.Share } - /// - /// 裁判匹配类型 - /// - public enum JudgeDifferenceType + /// + /// 阅片标准导入类型 + /// + public enum ReadingImportType + { + /// + /// IVUS-各匹配段测量的值 + /// + IVUS_MatchingSegment = 0, + + /// + /// OCT-FCT + /// + OCT_FCT = 1, + + /// + /// OCT-脂质角度 + /// + OCT_LipidAngle = 2, + + } + + + /// + /// 裁判匹配类型 + /// + public enum JudgeDifferenceType { /// /// >