diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs index c861c348d..8c7eec7c7 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs @@ -51,6 +51,7 @@ namespace IRaCIS.Core.Application.Service private readonly IRepository _trialClinicalDataSetRepository; private readonly IRepository _readingClinicalDataRepository; + private readonly IRepository _readingConsistentClinicalDataRepository; private readonly IRepository _subjectCriteriaEvaluationRepository; @@ -67,8 +68,9 @@ namespace IRaCIS.Core.Application.Service IRepository readingJudgeInfoRepository, IRepository taskAllocationRuleRepository, IMapper mapper, IUserInfo userInfo, IRepository visitTaskReReadingRepository, IRepository trialReadingCriterionRepository, IRepository trialClinicalDataSetRepository, IRepository readingClinicalDataRepository, - IRepository subjectCriteriaEvaluationRepository) + IRepository subjectCriteriaEvaluationRepository, IRepository readingConsistentClinicalDataRepository) { + _readingConsistentClinicalDataRepository = readingConsistentClinicalDataRepository; _readingClinicalDataRepository = readingClinicalDataRepository; _trialClinicalDataSetRepository = trialClinicalDataSetRepository; @@ -207,7 +209,7 @@ namespace IRaCIS.Core.Application.Service if (trialReadingCriterionConfig.IsReadingTaskViewInOrder == ReadingOrder.InOrder) { - if (visitNumList.IndexOf(subjectVisit.VisitNum) == 0 && subjectVisit.VisitNum==0) + if (visitNumList.IndexOf(subjectVisit.VisitNum) == 0 && subjectVisit.VisitNum == 0) { blindTaskName = visitBlindConfig.BlindBaseLineName; } @@ -217,9 +219,9 @@ namespace IRaCIS.Core.Application.Service } } - else + else { - blindTaskName ="Timepoint"; + blindTaskName = "Timepoint"; } @@ -1412,6 +1414,7 @@ namespace IRaCIS.Core.Application.Service case GenerateTaskCategory.SelfConsistent: var readingCriterionId = generateTaskCommand.GenerataConsistentTaskList.First().TrialReadingCriterionId; + var subjectId = generateTaskCommand.GenerataConsistentTaskList.First().SubjectId; //var trialReadingCriterion=_trialReadingCriterionRepository.Where(t=>t.Id== trialReadingCriterionId).FirstOrDefault(); //判断是否存在传输方式为Pdf得临床数据 @@ -1422,6 +1425,29 @@ namespace IRaCIS.Core.Application.Service var taskState = exsitPDF ? TaskState.NotEffect : TaskState.Effect; + var clinicalDataList = _readingClinicalDataRepository.Where(t => t.SubjectId == subjectId).Include(t => t.ReadingClinicalDataPDFList).Include(t=>t.ClinicalDataTrialSet).ToList(); + + foreach (var clinicalData in clinicalDataList) + { + var consistnentClinicalData = _mapper.Map(clinicalData); + var id = NewId.NextSequentialGuid(); + consistnentClinicalData.Id = id; + + if(consistnentClinicalData.ClinicalDataTrialSet.ClinicalUploadType == ClinicalUploadType.PDF) + { + consistnentClinicalData.IsSign = false; + consistnentClinicalData.IsBlind = false; + consistnentClinicalData.ReadingClinicalDataState = ReadingClinicalDataStatus.HaveUploaded; + } + + var consistanClinicalDataPdfList = _mapper.Map>(clinicalData.ReadingClinicalDataPDFList); + + consistanClinicalDataPdfList.ForEach(t => { t.ReadingConsistentClinicalDataId = id; t.Id = Guid.Empty; }); + + consistnentClinicalData.ReadingClinicalDataPDFList = consistanClinicalDataPdfList; + + await _readingConsistentClinicalDataRepository.AddAsync(consistnentClinicalData); + } foreach (var task in generateTaskCommand.GenerataConsistentTaskList) { diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index b7eff45b0..e9aeb5a17 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -1476,9 +1476,11 @@ namespace IRaCIS.Core.Application.Service.Allocation } else { - if (task.ReadingCategory != ReadingCategory.Visit && task.ReadingCategory != ReadingCategory.Global) + //也要支持裁判重阅240701 + + if (task.ReadingCategory != ReadingCategory.Visit && task.ReadingCategory != ReadingCategory.Judge) { - //---无序阅片,仅仅允许IR 申请 全局和访视类型类别的任务进行重阅 + //---无序阅片,仅仅允许IR 申请 访视、裁判类型类别的任务进行重阅 throw new BusinessValidationFailedException(_localizer["VisitTask_IRGlobalRecheck"]); } } diff --git a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs index d6fc8810b..35612f29d 100644 --- a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs @@ -318,6 +318,9 @@ namespace IRaCIS.Core.Application.Service + CreateMap().ReverseMap(); + CreateMap().ReverseMap(); + } } diff --git a/IRaCIS.Core.Domain/Reading/ClinicalData/ReadingConsistentClinicalData.cs b/IRaCIS.Core.Domain/Reading/ClinicalData/ReadingConsistentClinicalData.cs index 59d28bd54..66c216fc9 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalData/ReadingConsistentClinicalData.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalData/ReadingConsistentClinicalData.cs @@ -105,7 +105,7 @@ namespace IRaCIS.Core.Domain.Models /// PDF文件 /// [JsonIgnore] - public List ReadingClinicalDataPDFList { get; set; } + public List ReadingClinicalDataPDFList { get; set; }