新加阅片关键点

This commit is contained in:
he
2025-11-12 15:21:31 +08:00
parent 0e0ce59d74
commit 1d7b28e7f9
13 changed files with 458 additions and 1 deletions
@@ -16,6 +16,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using Panda.DynamicWebApi.Attributes;
using System.IO;
using ZiggyCreatures.Caching.Fusion;
namespace IRaCIS.Core.Application
@@ -30,6 +31,10 @@ namespace IRaCIS.Core.Application
IRepository<ReadingQuestionCriterionSystem> _readingQuestionCriterionSystemRepository,
IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository,
IRepository<ReadingCriterionPage> _readingCriterionPageRepository,
IRepository<SystemCriterionKeyFile> _systemCriterionKeyFileRepository,
IOSSService oSSService,
IRepository<TrialCriterionKeyFile> _trialCriterionKeyFileRepository,
IOrganInfoService _iOrganInfoService,
IRepository<TrialBodyPart> _trialBodyPartRepository,
IRepository<ReadingSystemCriterionDictionary> _readingCriterionDictionaryRepository,
@@ -276,6 +281,8 @@ namespace IRaCIS.Core.Application
await _trialCriterionDictionaryCode.AddRangeAsync(criterionDictionaryCodeList);
#endregion
// 同步阅片关键点
await SynchronizeKeyFile(inDto.TrialReadingCriterionId);
//var trialModalitys = _readingQuestionCriterionTrialRepository.Where(t => t.Id == inDto.TrialReadingCriterionId).Select(t => t.Trial.Modalitys).FirstOrDefault();
var systemCriterion = await _readingQuestionCriterionSystemRepository.Where(x => x.Id == trialCriterion.ReadingQuestionCriterionSystemId).FirstNotNullAsync();
@@ -317,6 +324,39 @@ namespace IRaCIS.Core.Application
return ResponseOutput.Ok(true);
}
/// <summary>
/// 同步阅片关键点
/// </summary>
/// <returns></returns>
public async Task SynchronizeKeyFile(Guid TrialReadingCriterionId)
{
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == TrialReadingCriterionId).AsNoTracking().FirstOrDefaultAsync();
if (trialCriterion != null && trialCriterion.ReadingQuestionCriterionSystemId!=null)
{
var systemCriterionKeyFile = await _systemCriterionKeyFileRepository.Where(x => x.SystemCriterionId == trialCriterion.ReadingQuestionCriterionSystemId).ToListAsync();
List<TrialCriterionKeyFile> trialCriterionKeyFiles= new List<TrialCriterionKeyFile>();
foreach (var item in systemCriterionKeyFile)
{
var path= await oSSService.UploadToOSSAsync(item.FilePath, $"{trialCriterion.TrialId}/KeyFile", true);
trialCriterionKeyFiles.Add(new TrialCriterionKeyFile
{
TrialCriterionId= TrialReadingCriterionId,
FileName= item.FileName,
FilePath= path
});
}
await _trialCriterionKeyFileRepository.BatchDeleteNoTrackingAsync(x => x.TrialCriterionId == TrialReadingCriterionId);
await _trialCriterionKeyFileRepository.AddRangeAsync(trialCriterionKeyFiles);
await _trialCriterionKeyFileRepository.SaveChangesAsync();
}
}
/// <summary>
/// 修改全局阅片配置信息
/// </summary>