diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs index 85c21949f..df6500ede 100644 --- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs +++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs @@ -519,9 +519,9 @@ namespace IRaCIS.Core.API.Controllers { fileName = realFileName; - if (!fileName.EndsWith(".xlsx") && !fileName.EndsWith(".csv") && !fileName.EndsWith(".xls")) + if (!fileName.EndsWith(".xlsx") && !fileName.EndsWith(".xls")) { - //---支持.xlsx、.xls、.csv格式的文件上传。 + //---支持.xlsx、.xls格式的文件上传。 throw new BusinessValidationFailedException(_localizer["UploadDownLoad_SupportedFormats"]); } @@ -944,11 +944,11 @@ namespace IRaCIS.Core.API.Controllers } var generateUserTypeList = new List() { "CRC", "CRA" }; - if (excelList.Any(t => !generateUserTypeList.Contains(t.UserTypeStr.ToUpper()))) - { - //用户类型仅能为 CRC,SR,CRA 请核查Excel数据 - throw new BusinessValidationFailedException(_localizer["UploadDownLoad_InvalidUserType"]); - } + //if (excelList.Any(t => !generateUserTypeList.Contains(t.UserTypeStr.ToUpper()))) + //{ + // //用户类型仅能为 CRC,SR,CRA 请核查Excel数据 + // throw new BusinessValidationFailedException(_localizer["UploadDownLoad_InvalidUserType"]); + //} if (excelList.Count == 0) { throw new BusinessValidationFailedException(_localizer["UploadDownLoad_NoValiddata"]); diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs index 64e526983..d0ab9fc1a 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs @@ -26,6 +26,13 @@ namespace IRaCIS.Core.Application.ViewModel public bool IsUrgent { get; set; } + public bool? IsSelfAnalysis { get; set; } + + /// + /// 是否是一致性分析产生 + /// + public bool IsAnalysisCreate { get; set; } + /// /// 加急类型 /// @@ -203,6 +210,11 @@ namespace IRaCIS.Core.Application.ViewModel public bool IsHaveFeedBack { get; set; } + + /// + /// 是否手动生成 + /// + public bool IsManualGeneration { get; set; } //public bool IsAfterConvertedTask { get; set; } } @@ -258,6 +270,12 @@ namespace IRaCIS.Core.Application.ViewModel //产生重阅的根任务Id public Guid RootReReadingTaskId { get; set; } + /// + /// 是否是一致性分析产生 + /// + public bool IsAnalysisCreate { get; set; } + + public bool? IsSelfAnalysis { get; set; } } diff --git a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs index 00dc9b3ef..4b1424c80 100644 --- a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs @@ -145,6 +145,7 @@ namespace IRaCIS.Core.Application.Service .ForMember(o => o.HistoryReadingDoctorUserList, t => t.MapFrom(u => u.JudgeVisitList)); CreateMap().IncludeBase() + .ForMember(o=>o.IsManualGeneration,t=> t.MapFrom(u => !u.TrialReadingCriterion.IsAutoCreate)) .ForMember(o => o.IsHaveFeedBack, t => t.MapFrom(u => u.UserFeedBackList.Any(t=>t.State==0))) ; diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index d2e56bddc..4b92a49df 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -2061,12 +2061,12 @@ namespace IRaCIS.Core.Application.Image.QA return ResponseOutput.NotOk(_localizer["QCOperation_CannotModifyConfirmation"]); } - if (await _subjectVisitRepository.Where(t => t.Id == command.SubjectVisitId) - .AnyAsync(t => t.IsEnrollmentConfirm != command.IsEnrollmentConfirm && t.RequestBackState == RequestBackStateEnum.PM_AgressBack)) - { - //---该访视为回退访视,不允许修改PD确认状态 - return ResponseOutput.NotOk(_localizer["QCOperation_CannotModifyPDStatus"]); - } + // if (await _subjectVisitRepository.Where(t => t.Id == command.SubjectVisitId) + //.AnyAsync(t => t.IsEnrollmentConfirm != command.IsEnrollmentConfirm && t.RequestBackState == RequestBackStateEnum.PM_AgressBack)) + // { + // //---该访视为回退访视,不允许修改PD确认状态 + // return ResponseOutput.NotOk(_localizer["QCOperation_CannotModifyPDStatus"]); + // } dbSubjectVisit.IsEnrollmentConfirm = command.IsEnrollmentConfirm.Value; } diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 7f79c8351..4dc4fb8d2 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -409,7 +409,7 @@ namespace IRaCIS.Core.Application.Service { if (await _readModuleRepository.AnyAsync(x =>x.SubjectId== inDto.SubjectId&& x.SubjectVisit.LatestScanDate <= clinicalForm.CheckDate && x.IsCRCConfirm)) { - throw new BusinessValidationFailedException(_localizer["ClinicalAnswer_unableToAddOrUpdate"]); + throw new BusinessValidationFailedException(_localizer["ClinicalAnswer_unableToAddOrUpdate", clinicalForm.CheckDate.Value.ToString("yyyy-MM-dd")]); } } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadingPeriodSetService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadingPeriodSetService.cs index f12b7854d..fdd2ebc2f 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadingPeriodSetService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadingPeriodSetService.cs @@ -138,11 +138,13 @@ namespace IRaCIS.Application.Services .Include(x => x.ReadingPeriodSet).Include(x => x.SubjectVisit).ToList(); var needAddVisitIds = plans.Select(x => x.SubjectVisitId).ToList(); - var repeatVisitNames = _readModuleRepository.Where(x => x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && x.ReadingSetType == readingPeriodSet.ReadingSetType && needAddVisitIds.Contains(x.SubjectVisitId)).Select(x => x.Subject.Code + "的" + x.SubjectVisit.VisitName).ToList(); - if (repeatVisitNames.Count != 0) - { - return ResponseOutput.NotOk(_localizer["ReadingPeriodSet_AlreadyAdded", string.Join(",", repeatVisitNames)]); - } + var repeatVisitIds = _readModuleRepository.Where(x => x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && x.ReadingSetType == readingPeriodSet.ReadingSetType && needAddVisitIds.Contains(x.SubjectVisitId)).Select(x => x.SubjectVisitId).ToList(); + + + plans = plans.Where(x => !repeatVisitIds.Contains(x.SubjectVisitId)).ToList(); + + + List readModules = new List(); foreach (var item in plans) { diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 4aff71f8a..070ad041b 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -117,6 +117,18 @@ namespace IRaCIS.Core.Application throw new BusinessValidationFailedException(_localizer["TrialConfig_JudgeTaskFail"]); } + var criterionFormType = trialCriterion.FormType; + var count = _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId) + .WhereIf(criterionFormType == FormType.SinglePage, x => x.ReadingCriterionPageId == null) + .WhereIf(criterionFormType == FormType.MultiplePage, x => x.ReadingCriterionPageId != null).Count(); + + if (count == 0) + { + //---当前标准下未配置问题 + throw new BusinessValidationFailedException(_localizer["TrialConfig_StdConfigMissing"]); + } + + await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.TrialReadingCriterionId, x => new ReadingQuestionCriterionTrial() { IsSigned = true, @@ -505,40 +517,40 @@ namespace IRaCIS.Core.Application - /// - /// 设置项目阅片标准 - /// - /// - [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] - public async Task SetTrialReadingCriterion(SetTrialReadingCriterionInDto inDto) - { - if (inDto.IsSignSave) - { - var criterionFormType = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).Select(x => x.FormType).FirstOrDefaultAsync(); - var count = _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId) - .WhereIf(criterionFormType == FormType.SinglePage, x => x.ReadingCriterionPageId == null) - .WhereIf(criterionFormType == FormType.MultiplePage, x => x.ReadingCriterionPageId != null).Count(); + ///// + ///// 设置项目阅片标准 + ///// + ///// + //[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] + //public async Task SetTrialReadingCriterion(SetTrialReadingCriterionInDto inDto) + //{ + // if (inDto.IsSignSave) + // { + // var criterionFormType = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).Select(x => x.FormType).FirstOrDefaultAsync(); + // var count = _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId) + // .WhereIf(criterionFormType == FormType.SinglePage, x => x.ReadingCriterionPageId == null) + // .WhereIf(criterionFormType == FormType.MultiplePage, x => x.ReadingCriterionPageId != null).Count(); - if (count == 0) - { - //---当前标准下未配置问题 - throw new BusinessValidationFailedException(_localizer["TrialConfig_StdConfigMissing"]); - } - } + // if (count == 0) + // { + // //---当前标准下未配置问题 + // throw new BusinessValidationFailedException(_localizer["TrialConfig_StdConfigMissing"]); + // } + // } - await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(inDto.TrialReadingCriterionId, x => new ReadingQuestionCriterionTrial() - { - FormType = inDto.FormType, - }); + // await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(inDto.TrialReadingCriterionId, x => new ReadingQuestionCriterionTrial() + // { + // FormType = inDto.FormType, + // }); - var result = await _trialRepository.SaveChangesAsync(); + // var result = await _trialRepository.SaveChangesAsync(); - return ResponseOutput.Ok(result); - } + // return ResponseOutput.Ok(result); + //} /// /// 设置项目阅片信息 diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs index d22694297..3cd4da0a8 100644 --- a/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs +++ b/IRaCIS.Core.Application/Service/WorkLoad/DoctorWorkloadService.cs @@ -138,7 +138,7 @@ namespace IRaCIS.Application.Services if (readingCategoryList.Except(inDto.ReadingCategorys).Count() > 0) { //---已分配任务,不允许减少阅片类型 - return ResponseOutput.NotOk(_localizer["DoctorWorkload_AssignType"]); + //return ResponseOutput.NotOk(_localizer["DoctorWorkload_AssignType"]); } diff --git a/IRaCIS.Core.Domain/Allocation/VisitTask.cs b/IRaCIS.Core.Domain/Allocation/VisitTask.cs index fc102f03d..62a708ec6 100644 --- a/IRaCIS.Core.Domain/Allocation/VisitTask.cs +++ b/IRaCIS.Core.Domain/Allocation/VisitTask.cs @@ -397,6 +397,9 @@ namespace IRaCIS.Core.Domain.Models /// public bool IsHistoryConvertedTask { get; set; } = false; + /// + /// 是否是自身一致性 + /// public bool? IsSelfAnalysis { get; set; } public string BlindSubjectCode { get; set; } = string.Empty;