From 67375c3cbdad2823644c4baf04b574108bdb6e4c Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 7 Sep 2023 17:59:52 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E5=8E=BB=E6=8E=89doctor=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingCalculate/IRECIST1Point1CalculateService.cs | 8 ++++---- .../Service/ReadingCalculate/PCWG3CalculateService.cs | 2 +- .../ReadingCalculate/RECIST1Point1CalculateService.cs | 2 +- .../ReadingCalculate/RECIST1Point1_BMCalculateService.cs | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs index 5a4f0b1a1..c03e760e7 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs @@ -1615,7 +1615,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate x.SourceSubjectVisit.IsBaseLine && x.TaskState == TaskState.Effect && x.IsAnalysisCreate == inDto.IsAnalysisCreate - &&x.DoctorUserId==inDto.DoctorUserId + //&&x.DoctorUserId==inDto.DoctorUserId && x.IsSelfAnalysis == inDto.IsSelfAnalysis && x.ArmEnum == inDto.ArmEnum) .Select(x => x.Id).FirstOrDefaultAsync(); @@ -1715,7 +1715,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var lastTaskId = await _visitTaskRepository.Where(x => x.ReadingCategory == ReadingCategory.Visit && x.TrialReadingCriterionId == taskinfo.TrialReadingCriterionId && x.IsAnalysisCreate == taskinfo.IsAnalysisCreate && - x.DoctorUserId == taskinfo.DoctorUserId && + //x.DoctorUserId == taskinfo.DoctorUserId && x.IsSelfAnalysis == taskinfo.IsSelfAnalysis && x.SubjectId == taskinfo.SubjectId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ArmEnum == taskinfo.ArmEnum && x.VisitTaskNum < taskinfo.VisitTaskNum && x.TaskState == TaskState.Effect @@ -1745,7 +1745,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var firstChangeVisitTaskNum = await _visitTaskRepository.Where(x => x.ReadingCategory == ReadingCategory.Visit && x.TrialReadingCriterionId == taskinfo.TrialReadingCriterionId && x.IsAnalysisCreate == taskinfo.IsAnalysisCreate && - x.DoctorUserId == taskinfo.DoctorUserId && + //x.DoctorUserId == taskinfo.DoctorUserId && x.IsSelfAnalysis == taskinfo.IsSelfAnalysis && x.SubjectId == taskinfo.SubjectId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ArmEnum == taskinfo.ArmEnum && x.BeforeConvertedTaskId != null && x.TaskState == TaskState.Effect @@ -1755,7 +1755,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate compareTaskList = await _visitTaskRepository.Where(x => x.ReadingCategory == ReadingCategory.Visit && x.TrialReadingCriterionId == taskinfo.TrialReadingCriterionId && x.IsAnalysisCreate == taskinfo.IsAnalysisCreate && - x.DoctorUserId == taskinfo.DoctorUserId && + //x.DoctorUserId == taskinfo.DoctorUserId && x.IsSelfAnalysis == taskinfo.IsSelfAnalysis && x.SubjectId == taskinfo.SubjectId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ArmEnum == taskinfo.ArmEnum && x.VisitTaskNum >= firstChangeVisitTaskNum && x.VisitTaskNum < taskinfo.VisitTaskNum && x.TaskState == TaskState.Effect diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs index 051b12e33..26d2dd314 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs @@ -976,7 +976,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync(); siteVisitForTumorList = await _visitTaskRepository.Where(x => (x.ReadingCategory == ReadingCategory.Visit && x.TrialReadingCriterionId == taskinfo.TrialReadingCriterionId && - x.DoctorUserId== taskinfo.DoctorUserId&& + //x.DoctorUserId== taskinfo.DoctorUserId&& x.IsAnalysisCreate==inDto.IsAnalysisCreate&& x.SubjectId == taskinfo.SubjectId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.VisitTaskNum <= taskinfo.VisitTaskNum && x.TaskState == TaskState.Effect && x.ArmEnum == taskinfo.ArmEnum )||x.Id== inDto.VisitTaskId).OrderByDescending(x => x.VisitTaskNum).Select(x => new SiteVisitForTumor() diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs index d3a48d2b3..b3176136a 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs @@ -1285,7 +1285,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate x.SourceSubjectVisit.IsBaseLine && x.TaskState == TaskState.Effect && x.IsAnalysisCreate == inDto.IsAnalysisCreate - &&x.DoctorUserId==inDto.DoctorUserId + //&&x.DoctorUserId==inDto.DoctorUserId && x.IsSelfAnalysis == inDto.IsSelfAnalysis && x.ArmEnum == inDto.ArmEnum) .Select(x => x.Id).FirstOrDefaultAsync(); diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs index 430750be8..84fa1de05 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs @@ -1280,7 +1280,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate x.SourceSubjectVisit.IsBaseLine && x.TaskState == TaskState.Effect && x.IsAnalysisCreate == inDto.IsAnalysisCreate - &&x.DoctorUserId==inDto.DoctorUserId + //&&x.DoctorUserId==inDto.DoctorUserId && x.IsSelfAnalysis == inDto.IsSelfAnalysis && x.ArmEnum == inDto.ArmEnum) .Select(x => x.Id).FirstOrDefaultAsync(); From 375a7241695c45524f3231878a18aab47111e75d Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 12 Sep 2023 10:34:14 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Document/EmailSendService.cs | 66 +++++++++++-------- 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs index 20295ce6d..79465b686 100644 --- a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs +++ b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs @@ -44,7 +44,7 @@ namespace IRaCIS.Core.Application.Service private readonly IDictionaryService _dictionaryService; private readonly IOptionsMonitor _SystemEmailSendConfig; - public readonly static string EmailNamePlaceholder="EmailNamePlaceholder"; + public readonly static string EmailNamePlaceholder = "EmailNamePlaceholder"; public EmailSendService(IRepository trialEmailNoticeConfigRepository, IRepository emailNoticeConfigRepository, IRepository trialRepository, IOptionsMonitor systemEmailSendConfig, IDictionaryService dictionaryService) { @@ -100,7 +100,7 @@ namespace IRaCIS.Core.Application.Service var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, EmailNamePlaceholder, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, resultStr); - return (topicStr, htmlBodyStr,isEn_us, null); + return (topicStr, htmlBodyStr, isEn_us, null); }; await SendTrialEmailAsync(taskInfo.TrialId, businessScenarioEnum, topicAndHtmlFunc); @@ -117,10 +117,10 @@ namespace IRaCIS.Core.Application.Service return (topicStr, htmlBodyStr, isEn_us, null); }; - await SendTrialEmailAsync(taskInfo.TrialId, businessScenarioEnum, topicAndHtmlFunc,taskInfo.SiteId); + await SendTrialEmailAsync(taskInfo.TrialId, businessScenarioEnum, topicAndHtmlFunc, taskInfo.SiteId); } - + } /// @@ -149,7 +149,7 @@ namespace IRaCIS.Core.Application.Service .Select(t => new { //待领取量 - ToBeClaimedCount = t.SubjectVisitList.Where(u => u.SubmitState==SubmitStateEnum.Submitted && u.CurrentActionUserId == null && (u.PreliminaryAuditUserId == null || (u.PreliminaryAuditUserId != userId && u.ReviewAuditUserId == null))).Count(), + ToBeClaimedCount = t.SubjectVisitList.Where(u => u.SubmitState == SubmitStateEnum.Submitted && u.CurrentActionUserId == null && (u.PreliminaryAuditUserId == null || (u.PreliminaryAuditUserId != userId && u.ReviewAuditUserId == null))).Count(), //待审核通过,统计从已领取到QC提交之间的 已领取 待审核 审核中 (审核完成 领取人就会清理 所以只用查询当前领取人是自己的就好了) ToBeReviewedCount = t.SubjectVisitList.Where(u => u.CurrentActionUserId == userId).Count() @@ -167,7 +167,7 @@ namespace IRaCIS.Core.Application.Service var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo); var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, user.FullName, DateTime.Now, sendStat.ToBeClaimedCount, sendStat.ToBeReviewedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl); - return (topicStr, htmlBodyStr, false,userId); + return (topicStr, htmlBodyStr, false, userId); }; await SendTrialEmailAsync(trialId, EmailBusinessScenario.QCTask, topicAndHtmlFunc); @@ -183,7 +183,7 @@ namespace IRaCIS.Core.Application.Service public async Task SendTrialQCQuestionEmailAsync(Guid trialId) { var isEn_us = false; - var trialInfo = _repository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr,t.DeclarationTypeEnumList }).FirstOrDefault(); + var trialInfo = _repository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr, t.DeclarationTypeEnumList }).FirstOrDefault(); //找到 该项目的IQC 用户Id var userList = await _repository.Where(t => t.TrialId == trialId).Where(t => t.User.UserTypeEnum == UserTypeEnum.IQC).Select(t => new { t.UserId, t.User.FullName }).ToListAsync(); @@ -216,9 +216,9 @@ namespace IRaCIS.Core.Application.Service Func topicAndHtmlFunc = trialEmailConfig => { var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, + var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, - user.FullName, DateTime.Now, sendStat.ToBeDealedCount- sendStat.ReUploadTobeDealedCount, sendStat.ReUploadTobeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl); + user.FullName, DateTime.Now, sendStat.ToBeDealedCount - sendStat.ReUploadTobeDealedCount, sendStat.ReUploadTobeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl); return (topicStr, htmlBodyStr, false, userId); }; @@ -247,13 +247,13 @@ namespace IRaCIS.Core.Application.Service { var userId = user.UserId; //过滤项目 并且 将 _userInfo.Id 换位 当前发送邮件的Id - var query = _trialRepository.Where(t=>t.Id==trialId) - + var query = _trialRepository.Where(t => t.Id == trialId) + .Select(t => new { //质疑待处理 - ToBeDealedCount = t.SubjectVisitList.Where(t=>t.TrialSite.CRCUserList.Any(t=>t.UserId==userId)).SelectMany(c => c.QCChallengeList) - .Where(u => u.IsClosed == false && (u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IQC || u.LatestReplyUserId==null)).Count(), + ToBeDealedCount = t.SubjectVisitList.Where(t => t.TrialSite.CRCUserList.Any(t => t.UserId == userId)).SelectMany(c => c.QCChallengeList) + .Where(u => u.IsClosed == false && (u.LatestReplyUser.UserTypeEnum == UserTypeEnum.IQC || u.LatestReplyUserId == null)).Count(), }); @@ -266,7 +266,7 @@ namespace IRaCIS.Core.Application.Service Func topicAndHtmlFunc = trialEmailConfig => { var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, + var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, user.FullName, DateTime.Now, sendStat.ToBeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl); return (topicStr, htmlBodyStr, isEn_us, userId); }; @@ -288,13 +288,13 @@ namespace IRaCIS.Core.Application.Service Func topicAndHtmlFunc = trialEmailConfig => { - var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, info.ResearchProgramNo,info.Code,info.VisitName); + var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, info.ResearchProgramNo, info.Code, info.VisitName); var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, - EmailNamePlaceholder, info.ResearchProgramNo, info.Code, info.VisitName,_userInfo.UserName,content, _SystemEmailSendConfig.CurrentValue.SiteUrl); + EmailNamePlaceholder, info.ResearchProgramNo, info.Code, info.VisitName, _userInfo.UserName, content, _SystemEmailSendConfig.CurrentValue.SiteUrl); return (topicStr, htmlBodyStr, isEn_us, null); }; - await SendTrialEmailAsync(info.TrialId, EmailBusinessScenario.ClinicalDataQuestion, topicAndHtmlFunc,info.SiteId); + await SendTrialEmailAsync(info.TrialId, EmailBusinessScenario.ClinicalDataQuestion, topicAndHtmlFunc, info.SiteId); } @@ -303,11 +303,11 @@ namespace IRaCIS.Core.Application.Service var isEn_us = _userInfo.IsEn_Us; var info = await _repository.Where(t => t.Id == visitTaskId, ignoreQueryFilters: true).Select(t => new { t.TrialId, t.Trial.ResearchProgramNo, t.Trial.TrialCode, t.SourceSubjectVisit.VisitName, t.Subject.SiteId, t.Subject.Code }).FirstOrDefaultAsync(); - var answerList= await _repository.Where(t => t.Id == visitTaskId, ignoreQueryFilters: true).SelectMany(t=>t.ReadingTaskQuestionAnswerList).Where(t=>t.ReadingQuestionTrial.IsJudgeQuestion==true).Select(t=>new { QuestionName= isEn_us? t.ReadingQuestionTrial.QuestionEnName:t.ReadingQuestionTrial.QuestionName, t.ReadingQuestionTrial.DictionaryCode, t.Answer}).ToListAsync(); + var answerList = await _repository.Where(t => t.Id == visitTaskId, ignoreQueryFilters: true).SelectMany(t => t.ReadingTaskQuestionAnswerList).Where(t => t.ReadingQuestionTrial.IsJudgeQuestion == true).Select(t => new { QuestionName = isEn_us ? t.ReadingQuestionTrial.QuestionEnName : t.ReadingQuestionTrial.QuestionName, t.ReadingQuestionTrial.DictionaryCode, t.Answer }).ToListAsync(); var template = "
{0}: {1}
"; - var needTranslateDicNameList=answerList.Where(t=>!string.IsNullOrEmpty(t.DictionaryCode)).Select(t=>t.DictionaryCode).ToList(); + var needTranslateDicNameList = answerList.Where(t => !string.IsNullOrEmpty(t.DictionaryCode)).Select(t => t.DictionaryCode).ToList(); var translateDataList = await _dictionaryService.GetBasicDataSelect(needTranslateDicNameList.ToArray()); @@ -327,7 +327,7 @@ namespace IRaCIS.Core.Application.Service }; - var piResult= string.Join(' ', answerList.Select(t => string.Format(template, t.QuestionName, transFunc(!string.IsNullOrEmpty(t.DictionaryCode),t.DictionaryCode,t.Answer ) ))) ; + var piResult = string.Join(' ', answerList.Select(t => string.Format(template, t.QuestionName, transFunc(!string.IsNullOrEmpty(t.DictionaryCode), t.DictionaryCode, t.Answer)))); Func topicAndHtmlFunc = trialEmailConfig => { @@ -357,7 +357,7 @@ namespace IRaCIS.Core.Application.Service { var sendEmailConfig = new SMTPEmailConfig(); - var (topicStr, htmlBodyStr, isEn_us,onlyToUserId) = topicAndHtmlFunc(trialEmailConfig); + var (topicStr, htmlBodyStr, isEn_us, onlyToUserId) = topicAndHtmlFunc(trialEmailConfig); sendEmailConfig.TopicDescription = topicStr; @@ -366,7 +366,7 @@ namespace IRaCIS.Core.Application.Service var blackUserIdList = trialEmailConfig.TrialEmailBlackUserList.Select(t => t.UserId).ToList(); - + var toUserTypeEnumList = trialEmailConfig.TrialEmailNoticeUserList.Where(t => t.EmailUserType == EmailUserType.To).Select(c => c.UserType).ToList(); var copyUserTypeEnumList = trialEmailConfig.TrialEmailNoticeUserList.Where(t => t.EmailUserType == EmailUserType.Copy).Select(c => c.UserType).ToList(); @@ -384,22 +384,30 @@ namespace IRaCIS.Core.Application.Service { throw new BusinessValidationFailedException("当前场景收件人包含CRC CRA,但是没有siteId,请联系后端开发"); } - if (siteId != null && toUserTypeEnumList.Any(t=>t==UserTypeEnum.ClinicalResearchCoordinator || t == UserTypeEnum.CRA)) + if (siteId != null && toUserTypeEnumList.Any(t => t == UserTypeEnum.ClinicalResearchCoordinator || t == UserTypeEnum.CRA)) { - var curentSiteUserIdList= _repository.Where(t=>t.TrialId==trialId && t.SiteId==siteId).Select(t=>t.UserId).ToList(); + var curentSiteUserIdList = _repository.Where(t => t.TrialId == trialId && t.SiteId == siteId).Select(t => t.UserId).ToList(); - toUserList=toUserList.Where(t=>(t.UserTypeEnum!=UserTypeEnum.CRA && t.UserTypeEnum != UserTypeEnum.ClinicalResearchCoordinator)|| curentSiteUserIdList.Contains(t.UserId)).ToList(); + toUserList = toUserList.Where(t => (t.UserTypeEnum != UserTypeEnum.CRA && t.UserTypeEnum != UserTypeEnum.ClinicalResearchCoordinator) || curentSiteUserIdList.Contains(t.UserId)).ToList(); } - + //去除黑名单 toUserList = toUserList.Where(t => !blackUserIdList.Contains(t.UserId)).ToList(); - var copyUserList = allUserList.Where(t => copyUserTypeEnumList.Contains(t.UserTypeEnum)).Where(t => !blackUserIdList.Contains(t.UserId)).ToList(); + var copyUserList = allUserList.Where(t => copyUserTypeEnumList.Contains(t.UserTypeEnum)) + .Where(t => !blackUserIdList.Contains(t.UserId)).ToList(); - if(onlyToUserId!=null) + if (siteId != null && copyUserTypeEnumList.Any(t => t == UserTypeEnum.ClinicalResearchCoordinator || t == UserTypeEnum.CRA)) { - toUserList= toUserList.Where(t=>t.UserId == onlyToUserId).ToList(); + var curentSiteUserIdList = _repository.Where(t => t.TrialId == trialId && t.SiteId == siteId).Select(t => t.UserId).ToList(); + + copyUserList = copyUserList.Where(t => (t.UserTypeEnum != UserTypeEnum.CRA && t.UserTypeEnum != UserTypeEnum.ClinicalResearchCoordinator) || curentSiteUserIdList.Contains(t.UserId)).ToList(); + } + + if (onlyToUserId != null) + { + toUserList = toUserList.Where(t => t.UserId == onlyToUserId).ToList(); } else { From b4594a4c47fab992c93aac7d95a53a038417f1c2 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 13 Sep 2023 14:08:22 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=B8=8B=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E8=B4=A8=E6=8E=A7=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/QC/DTO/QCListViewModel.cs | 15 +++ .../Service/QC/QCOperationService.cs | 103 ++++++++++++++++++ 2 files changed, 118 insertions(+) diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs index 10ec1a87b..ffef246b4 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs @@ -60,6 +60,21 @@ namespace IRaCIS.Core.Application.Contracts public Guid? HandleUserId { get; set; } } + public class GetNextIQCQualityInDto + { + [NotDefault] + public Guid TrialId { get; set; } + + public Guid SubjectId { get; set; } + } + + public class GetNextIQCQualityOutDto + { + public Guid? SubjectId { get; set; } + + public Guid? VisitId { get; set; } + } + public class CRCRequestToQCCommand { diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index d25b4a08c..85c7f3f49 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -878,6 +878,109 @@ namespace IRaCIS.Core.Application.Image.QA return ResponseOutput.Result(success); } + /// + /// 领取下一个质控任务 + /// + /// + /// + [HttpPost] + public async Task CollectNextIQCQuality(GetNextIQCQualityInDto inDto) + { + var nextIQCQuality = await this.GetNextIQCQuality(inDto); + + if (nextIQCQuality.VisitId != null) + { + var visit = await _subjectVisitRepository.Where(x => x.Id == nextIQCQuality.VisitId).FirstOrDefaultAsync(); + if (!visit.IsTake) + { + await ObtainOrCancelQCTask(inDto.TrialId, nextIQCQuality.VisitId.Value, true); + } + + } + + return nextIQCQuality; + + + } + + /// + /// 获取下一个质控任务 + /// + /// + /// + [HttpPost] + public async Task GetNextIQCQuality(GetNextIQCQualityInDto inDto) + { + var trialConfig = await _trialRepository + .Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification }) + .FirstOrDefaultAsync(t => t.TrialId == inDto.TrialId) + .IfNullThrowException(); + + SubjectVisit? subjectVisit = null; + List? visitList = null; + switch (trialConfig.QCProcessEnum) + { + case TrialQCProcess.NotAudit: + return new GetNextIQCQualityOutDto() { }; + break; + case TrialQCProcess.SingleAudit: + visitList = await _subjectVisitRepository.Where(x => x.SubmitState != SubmitStateEnum.None && x.TrialId == inDto.TrialId && (x.CurrentActionUserId == _userInfo.Id || (x.AuditState != AuditStateEnum.PrimaryQCPassed && !x.IsTake))).Include(x => x.Subject).ToListAsync(); + + subjectVisit = visitList.Where(x => x.SubjectId == inDto.SubjectId).OrderBy(x => x.VisitNum).FirstOrDefault(); + if (subjectVisit != null) + { + return new GetNextIQCQualityOutDto() + { + SubjectId = subjectVisit.SubjectId, + VisitId = subjectVisit.Id + }; + } + + subjectVisit = visitList.OrderBy(x => x.Subject.Code).ThenBy(x => x.VisitNum).FirstOrDefault(); + if (subjectVisit != null) + { + return new GetNextIQCQualityOutDto() + { + SubjectId = subjectVisit.SubjectId, + VisitId = subjectVisit.Id + }; + } + else + { + return new GetNextIQCQualityOutDto() { }; + } + break; + case TrialQCProcess.DoubleAudit: + + visitList = await _subjectVisitRepository.Where(x => x.SubmitState != SubmitStateEnum.None && x.TrialId == inDto.TrialId && x.PreliminaryAuditUserId != _userInfo.Id && (x.CurrentActionUserId == _userInfo.Id || (x.AuditState != AuditStateEnum.QCPassed))).Include(x => x.Subject).ToListAsync(); + if (subjectVisit != null) + { + return new GetNextIQCQualityOutDto() + { + SubjectId = subjectVisit.SubjectId, + VisitId = subjectVisit.Id + }; + } + + subjectVisit = visitList.OrderBy(x => x.Subject.Code).ThenBy(x => x.VisitNum).FirstOrDefault(); + if (subjectVisit != null) + { + return new GetNextIQCQualityOutDto() + { + SubjectId = subjectVisit.SubjectId, + VisitId = subjectVisit.Id + }; + } + else + { + return new GetNextIQCQualityOutDto() { }; + } + break; + default: + return new GetNextIQCQualityOutDto() { }; + + } + } /// /// 手动领取 或者取消 QC任务 From 9380b40c28ff6cf0dd446f0866a93c83f2f666cb Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 14 Sep 2023 10:37:11 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AE=BF=E8=A7=86?= =?UTF-8?q?=E5=9F=BA=E5=87=86=E6=97=A5=E6=9C=9F=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/Properties/launchSettings.json | 2 +- .../Service/TrialSiteUser/DTO/TrialConfigDTO.cs | 2 ++ .../Service/Visit/DTO/ClinicalStudySubjects.cs | 2 ++ IRaCIS.Core.Domain/Trial/Trial.cs | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.API/Properties/launchSettings.json b/IRaCIS.Core.API/Properties/launchSettings.json index 6736bd9b9..17680827f 100644 --- a/IRaCIS.Core.API/Properties/launchSettings.json +++ b/IRaCIS.Core.API/Properties/launchSettings.json @@ -21,7 +21,7 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Test_Study" }, - "applicationUrl": "http://localhost:6100" + "applicationUrl": "http://localhost:6000" } } } \ No newline at end of file diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs index 52d5a5894..cebb72bfa 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs @@ -67,6 +67,8 @@ namespace IRaCIS.Core.Application.Contracts public string Modalitys { get; set; } = string.Empty; + public string VisitBaseDataDes { get; set; } + public List ModalityList { get; set; } = new List(); diff --git a/IRaCIS.Core.Application/Service/Visit/DTO/ClinicalStudySubjects.cs b/IRaCIS.Core.Application/Service/Visit/DTO/ClinicalStudySubjects.cs index 242c45f81..7613c04c2 100644 --- a/IRaCIS.Core.Application/Service/Visit/DTO/ClinicalStudySubjects.cs +++ b/IRaCIS.Core.Application/Service/Visit/DTO/ClinicalStudySubjects.cs @@ -77,6 +77,8 @@ namespace IRaCIS.Application.Contracts public bool IsPDProgressView { get; set; } + public string VisitBaseDataDes { get; set; } + public bool IsSubjectSecondCodeView { get; set; } = false; } diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs index c40b80e07..13a92fa54 100644 --- a/IRaCIS.Core.Domain/Trial/Trial.cs +++ b/IRaCIS.Core.Domain/Trial/Trial.cs @@ -299,7 +299,7 @@ namespace IRaCIS.Core.Domain.Models public int PlanVisitCount { get; set; } - + public string VisitBaseDataDes { get; set; } = string.Empty; public DateTime? TrialFinishedTime { get; set; } From ac62f48a71906e1428552119f0bc930e665e81bf Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 14 Sep 2023 11:44:15 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E7=BB=99=E9=BB=98=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Domain/Trial/Trial.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs index 13a92fa54..54cb8ba39 100644 --- a/IRaCIS.Core.Domain/Trial/Trial.cs +++ b/IRaCIS.Core.Domain/Trial/Trial.cs @@ -299,7 +299,8 @@ namespace IRaCIS.Core.Domain.Models public int PlanVisitCount { get; set; } - public string VisitBaseDataDes { get; set; } = string.Empty; + public string VisitBaseDataDes { get; set; } = StaticData.International("Trial_VisitBaseDataDes"); + public DateTime? TrialFinishedTime { get; set; } From da9a7affa98bdc876155ccbb1a79b2df8e801a66 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 14 Sep 2023 14:02:23 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 14 ++++ .../Reading/Dto/ReadingImageTaskViewModel.cs | 19 +++++ .../Reading/Dto/ReadingQuestionViewModel.cs | 78 +++++++++++++------ .../Interface/IReadingImageTaskService.cs | 3 +- .../ReadingImageTaskService.cs | 17 ++-- IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 12 +++ .../ReadingQuestionSystem.cs | 4 + .../ReadingQuestionTrial.cs | 7 +- .../ReadingTableQuestionSystem.cs | 7 +- .../ReadingTableQuestionTrial.cs | 7 +- 10 files changed, 135 insertions(+), 33 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 0f8fd807d..587a426ad 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -10558,6 +10558,20 @@ 替换当前领取人 + + + 领取下一个质控任务 + + + + + + + 获取下一个质控任务 + + + + 手动领取 或者取消 QC任务 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 60cc90cc6..b37c865bc 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -499,6 +499,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid VisitTaskId { get; set; } public Guid TrialId { get; set; } + + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } } public class ReadingTableAnswerRowInfoBase @@ -719,6 +724,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto { [NotDefault] public Guid VisitTaskId { get; set; } + + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } } public class GetReadingTableQuestionOutDto @@ -795,6 +805,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public List OrganInfos { get; set; } = new List(); + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } public bool IsGetallQuestion { get; set; } = false; /// @@ -947,6 +961,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid TrialId { get; set; } public Guid VisitTaskId { get; set; } + + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } } #endregion diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs index 6843367cd..17c96e5b5 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs @@ -336,10 +336,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public ValueOfType? ValueType { get; set; } - /// - /// 单位 - /// - public ValueUnit? Unit { get; set; } + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } + + /// + /// 单位 + /// + public ValueUnit? Unit { get; set; } /// /// 限制编辑 @@ -439,10 +444,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public ValueOfType? ValueType { get; set; } - /// - /// 数据来源 - /// - public DataSources? DataSource { get; set; } = DataSources.ManualEntry; + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } + + /// + /// 数据来源 + /// + public DataSources? DataSource { get; set; } = DataSources.ManualEntry; /// /// 单位 @@ -974,10 +984,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public ValueOfType? ValueType { get; set; } - /// - /// 单位 - /// - public ValueUnit? Unit { get; set; } + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } + + /// + /// 单位 + /// + public ValueUnit? Unit { get; set; } /// @@ -1038,10 +1053,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public ValueOfType? ValueType { get; set; } - /// - /// 备注 - /// - public string Remark { get; set; } + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } /// /// 数据来源 @@ -1555,10 +1575,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public ValueOfType? ValueType { get; set; } - /// - /// 限制编辑 - /// - public LimitEdit LimitEdit { get; set; } = LimitEdit.None; + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } + + /// + /// 限制编辑 + /// + public LimitEdit LimitEdit { get; set; } = LimitEdit.None; /// /// 最大答案长度 @@ -1901,10 +1926,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public ValueOfType? ValueType { get; set; } - /// - /// 数据来源 - /// - public DataSources? DataSource { get; set; } = DataSources.ManualEntry; + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } + + /// + /// 数据来源 + /// + public DataSources? DataSource { get; set; } = DataSources.ManualEntry; /// /// 单位 diff --git a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs index 88728c9a4..99d4cc7de 100644 --- a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs @@ -6,6 +6,7 @@ using IRaCIS.Core.Application.Service.Reading.Dto; +using IRaCIS.Core.Domain.Share; namespace IRaCIS.Core.Application.Contracts { @@ -22,7 +23,7 @@ namespace IRaCIS.Core.Application.Contracts Task GetGlobalReadingInfo(GetGlobalReadingInfoInDto inDto); - Task> GetReadingQuestion(Guid trialReadingCriterionId, Guid? visitTaskId); + Task> GetReadingQuestion(Guid trialReadingCriterionId, Guid? visitTaskId,QuestionClassify? questionClassify); Task GetReadingTableQuestion(GetReadingTableQuestionOrAnswerInDto inDto); diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 1059da1e1..a77528200 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -704,7 +704,7 @@ namespace IRaCIS.Application.Services { //await AddDefaultValueToTask(inDto.VisitTaskId); var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync(); - var result = await GetReadingQuestion(taskInfo.TrialReadingCriterionId, taskInfo.Id); + var result = await GetReadingQuestion(taskInfo.TrialReadingCriterionId, taskInfo.Id, inDto.QuestionClassify); return (result, new { @@ -720,7 +720,7 @@ namespace IRaCIS.Application.Services /// /// [NonDynamicMethod] - public async Task> GetReadingQuestion(Guid trialReadingCriterionId, Guid? visitTaskId) + public async Task> GetReadingQuestion(Guid trialReadingCriterionId, Guid? visitTaskId, QuestionClassify? questionClassify) { @@ -729,6 +729,7 @@ namespace IRaCIS.Application.Services //排除表格问题 var questions = await _readingQuestionTrialRepository + .WhereIf(questionClassify!=null,x=>x.QuestionClassify== questionClassify) .WhereIf(criterionIdInfo.IseCRFShowInDicomReading, x => x.ReadingQuestionCriterionTrialId == trialReadingCriterionId && x.Type != ReadingQestionType.Table) .WhereIf(!criterionIdInfo.IseCRFShowInDicomReading, x => x.IsShowInDicom && x.ReadingQuestionCriterionTrialId == trialReadingCriterionId && x.Type != ReadingQestionType.Table) @@ -893,6 +894,7 @@ namespace IRaCIS.Application.Services TableAnswers = tableAnswers, TableAnsweRowInfos = tableAnsweRowInfos, OrganInfos = organList, + QuestionClassify=inDto.QuestionClassify, } @@ -943,7 +945,8 @@ namespace IRaCIS.Application.Services TableAnswers = tableAnswers, TableAnsweRowInfos = tableAnsweRowInfos, IsGetallQuestion = true, - OrganInfos = organList + OrganInfos = organList, + QuestionClassify=inDto.QuestionClassify, } ), new @@ -964,7 +967,9 @@ namespace IRaCIS.Application.Services { var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync(); - var qusetionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId).ProjectTo(_mapper.ConfigurationProvider, new + var qusetionList = await _readingQuestionTrialRepository + .WhereIf(inDto.QuestionClassify!=null,x=>x.QuestionClassify==inDto.QuestionClassify) + .Where(x => x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId).ProjectTo(_mapper.ConfigurationProvider, new { isEn_Us = _userInfo.IsEn_Us @@ -1040,7 +1045,9 @@ namespace IRaCIS.Application.Services var groupList = new List(); var qusetionIds = qusetionList.Select(x => x.Id).ToList(); - var tableQuestionList = await _readingTableQuestionTrialRepository.Where(x => qusetionIds.Contains(x.ReadingQuestionId)) + var tableQuestionList = await _readingTableQuestionTrialRepository + .WhereIf(inDto.QuestionClassify != null, x => x.QuestionClassify == inDto.QuestionClassify) + .Where(x => qusetionIds.Contains(x.ReadingQuestionId)) .ProjectTo(_mapper.ConfigurationProvider, new { diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs index 99889d0b2..09ffde665 100644 --- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -297,6 +297,18 @@ namespace IRaCIS.Core.Domain.Share Automatic = 1 } + /// + /// 问题分类 + /// + public enum QuestionClassify + { + /// + /// PET + /// + PET = 0, + + } + /// /// 自定义计算标记 diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionSystem.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionSystem.cs index fee763d72..3704f41a1 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionSystem.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionSystem.cs @@ -202,6 +202,10 @@ namespace IRaCIS.Core.Domain.Models /// public string? FileType { get; set; } + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } [JsonIgnore] [ForeignKey("GroupId")] diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs index 8af84fed2..771a12133 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs @@ -261,7 +261,12 @@ namespace IRaCIS.Core.Domain.Models /// public Guid? GroupId { get; set; } - [JsonIgnore] + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } + + [JsonIgnore] [ForeignKey("GroupId")] public ReadingQuestionTrial GroupInfo { get; set; } diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionSystem.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionSystem.cs index 97cdd903b..6fc5bbc87 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionSystem.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionSystem.cs @@ -173,7 +173,12 @@ namespace IRaCIS.Core.Domain.Models /// public string? FileType { get; set; } - [ForeignKey("DependParentId")] + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } + + [ForeignKey("DependParentId")] [JsonIgnore] public ReadingTableQuestionSystem DependParentQuestion { get; set; } diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionTrial.cs index df02d648c..fdb03ecf7 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionTrial.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionTrial.cs @@ -195,7 +195,12 @@ namespace IRaCIS.Core.Domain.Models /// public string? FileType { get; set; } - [JsonIgnore] + /// + /// 问题分类 + /// + public QuestionClassify? QuestionClassify { get; set; } + + [JsonIgnore] [ForeignKey("DependParentId")] public ReadingTableQuestionTrial DependParentQuestion { get; set; } From c6d3ae7c8b0a9d0194a267c5b6e680976df3b738 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 14 Sep 2023 14:17:13 +0800 Subject: [PATCH 7/7] =?UTF-8?q?VisitBaseDataDes=20=20=E9=81=97=E6=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs index ffef246b4..61e990f2a 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs @@ -120,6 +120,8 @@ namespace IRaCIS.Core.Application.Contracts public bool IsEnrollementQualificationConfirm { get; set; } public bool IsPDProgressView { get; set; } + public string VisitBaseDataDes { get; set; } + public string OutEnrollmentVisitName { get; set; } = String.Empty;