From 8e3dc734087cc2b74a9ce788f6642f8ebe46c36a Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 29 Feb 2024 16:08:39 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=B8=80=E8=87=B4=E6=80=A7=E5=88=86=E6=9E=90?= =?UTF-8?q?=E9=A2=84=E6=8F=90=E4=BA=A4]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DTO/TaskConsistentRuleViewModel.cs | 11 ++ .../Allocation/TaskConsistentRuleService.cs | 105 +++++++++++++----- .../DTO/PersonalWorkstationViewModel.cs | 20 +--- .../TrialSiteUser/PersonalWorkstation.cs | 24 +--- .../WorkLoad/DTO/DoctorWorkLoadViewModel.cs | 2 + .../Allocation/TrialVirtualSiteCodeUpdate.cs | 43 +++++++ .../Dcotor/EnrollReadingCriterion.cs | 59 ++++++++++ .../Trial/EnrollReadingCategory.cs | 2 + IRaCIS.Core.Domain/Trial/Trial.cs | 2 + .../Context/IRaCISDBContext.cs | 2 + IRaCIS.Core.Test/DbHelper.ttinclude | 6 +- 11 files changed, 208 insertions(+), 68 deletions(-) create mode 100644 IRaCIS.Core.Domain/Allocation/TrialVirtualSiteCodeUpdate.cs create mode 100644 IRaCIS.Core.Domain/Dcotor/EnrollReadingCriterion.cs diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskConsistentRuleViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskConsistentRuleViewModel.cs index a8b4f7aeb..7f478ad6e 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskConsistentRuleViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskConsistentRuleViewModel.cs @@ -287,6 +287,17 @@ namespace IRaCIS.Core.Application.ViewModel } + public class UpdateTrialSiteCodeCommand + { + public Guid TrialId { get; set; } + + public string VirtualSiteCode { get; set; } + } + + public class UpdateTrialSiteCodeCommandView: UpdateTrialSiteCodeCommand + { + public DateTime Creatime { get; set; } + } /// TaskConsistentRuleAddOrEdit 列表查询参数模型 public class TaskConsistentRuleAddOrEdit diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs index 9d5e2b503..b05e5f36b 100644 --- a/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs @@ -32,9 +32,15 @@ namespace IRaCIS.Core.Application.Service private readonly IRepository _subjectRepository; private readonly IRepository _enrollRepository; private readonly IDistributedLockProvider _distributedLockProvider; + private readonly IRepository _trialRepository; + private readonly IRepository _trialSiteRepository; + + private readonly IRepository _trialVirtualSiteCodeUpdateRepository; - public TaskConsistentRuleService(IRepository visitTaskRepository, IRepository enrollRepository, IRepository taskConsistentRuleRepository, IRepository subjectUserRepository, IRepository subjectRepository, IDistributedLockProvider distributedLockProvider) + + public TaskConsistentRuleService(IRepository visitTaskRepository, IRepository enrollRepository, IRepository taskConsistentRuleRepository, IRepository subjectUserRepository, IRepository subjectRepository, IDistributedLockProvider distributedLockProvider, + IRepository trialRepository, IRepository trialSiteRepository, IRepository trialVirtualSiteCodeUpdateRepository) { _taskConsistentRuleRepository = taskConsistentRuleRepository; _visitTaskRepository = visitTaskRepository; @@ -42,6 +48,12 @@ namespace IRaCIS.Core.Application.Service _subjectRepository = subjectRepository; _enrollRepository = enrollRepository; _distributedLockProvider = distributedLockProvider; + + _trialRepository = trialRepository; + + _trialSiteRepository = trialSiteRepository; + + _trialVirtualSiteCodeUpdateRepository = trialVirtualSiteCodeUpdateRepository; } /// @@ -54,7 +66,7 @@ namespace IRaCIS.Core.Application.Service { - await _visitTaskRepository.UpdatePartialFromQueryAsync(t => taskIdList.Contains(t.Id), u => new VisitTask() { TaskState = TaskState.NotEffect },true); + await _visitTaskRepository.UpdatePartialFromQueryAsync(t => taskIdList.Contains(t.Id), u => new VisitTask() { TaskState = TaskState.NotEffect }, true); await _visitTaskRepository.SaveChangesAsync(); @@ -69,7 +81,7 @@ namespace IRaCIS.Core.Application.Service /// /// [HttpPost] - public async Task> GetAnalysisTaskList(VisitTaskQuery queryVisitTask) + public async Task>> GetAnalysisTaskList(VisitTaskQuery queryVisitTask) { var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId) .Where(t => t.IsAnalysisCreate) @@ -97,8 +109,9 @@ namespace IRaCIS.Core.Application.Service var pageList = await visitTaskQueryable.ToPagedListAsync(queryVisitTask.PageIndex, queryVisitTask.PageSize, queryVisitTask.SortField, queryVisitTask.Asc, string.IsNullOrWhiteSpace(queryVisitTask.SortField), defalutSortArray); - //var trialTaskConfig = _repository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault(); - return pageList; + var trialTaskConfig = _repository.Where(t => t.Id == queryVisitTask.TrialId).Select(t => new { t.ReviewMode, t.VitrualSiteCode }).FirstOrDefault(); + + return ResponseOutput.Ok(pageList, trialTaskConfig); } @@ -155,9 +168,9 @@ namespace IRaCIS.Core.Application.Service var blindSubjectCode = string.Empty; - var subjectTask = _visitTaskRepository.Where(t => t.SubjectId == subject.SubjectId && t.TrialReadingCriterionId==trialReadingCriterionId && t.IsSelfAnalysis == true).OrderByDescending(t => t.BlindSubjectCode).FirstOrDefault(); + var subjectTask = _visitTaskRepository.Where(t => t.SubjectId == subject.SubjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.IsSelfAnalysis == true).OrderByDescending(t => t.BlindSubjectCode).FirstOrDefault(); - if (subjectTask!=null && subjectTask.BlindSubjectCode != String.Empty) + if (subjectTask != null && subjectTask.BlindSubjectCode != String.Empty) { blindSubjectCode = subjectTask.BlindSubjectCode; } @@ -165,11 +178,11 @@ namespace IRaCIS.Core.Application.Service { var maxCodeStr = _visitTaskRepository.Where(t => t.TrialId == subject.TrialId && t.TrialReadingCriterionId == trialReadingCriterionId && t.IsSelfAnalysis == true).OrderByDescending(t => t.BlindSubjectCode).Select(t => t.BlindSubjectCode).FirstOrDefault(); - if ( !string.IsNullOrEmpty(maxCodeStr)) + if (!string.IsNullOrEmpty(maxCodeStr)) { int.TryParse(maxCodeStr.Substring(maxCodeStr.Length - filterObj.BlindSubjectNumberOfPlaces), out maxCodeInt); - } + } blindSubjectCode = filterObj.BlindTrialSiteCode + (maxCodeInt + 1).ToString($"D{filterObj.BlindSubjectNumberOfPlaces}"); } @@ -190,7 +203,7 @@ namespace IRaCIS.Core.Application.Service { var lastTask = (subject.VisitTaskList.Take(filterObj.PlanVisitCount).Last()).Clone(); - var existGlobal = _visitTaskRepository.Where(t => t.SubjectId == lastTask.SubjectId &&t.TrialReadingCriterionId==trialReadingCriterionId && t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Global && t.VisitTaskNum == lastTask.VisitTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Global]).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault(); + var existGlobal = _visitTaskRepository.Where(t => t.SubjectId == lastTask.SubjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Global && t.VisitTaskNum == lastTask.VisitTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Global]).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault(); if (existGlobal == null) @@ -203,7 +216,7 @@ namespace IRaCIS.Core.Application.Service ReadingCategory = ReadingCategory.Global, TaskName = lastTask.TaskName + "_Global", TaskBlindName = lastTask.TaskBlindName + "_Global", - TrialReadingCriterionId=trialReadingCriterionId, + TrialReadingCriterionId = trialReadingCriterionId, }; } @@ -249,7 +262,7 @@ namespace IRaCIS.Core.Application.Service { var trialId = inQuery.TrialId; - var filterObj = await _taskConsistentRuleRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.TrialReadingCriterionId==inQuery.TrialReadingCriterionId && t.IsSelfAnalysis == false); + var filterObj = await _taskConsistentRuleRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId && t.IsSelfAnalysis == false); if (filterObj == null) @@ -290,7 +303,7 @@ namespace IRaCIS.Core.Application.Service var subjectList = query.ToList(); - var doctorUserIdQuery = from enroll in _repository.Where(t => t.TrialId == trialId).Where(t => t.EnrollReadingCategoryList.Where(t=>t.TrialReadingCriterionId==trialReadingCriterionId).Any(c => c.ReadingCategory == ReadingCategory.Global || c.ReadingCategory == ReadingCategory.Visit)) + var doctorUserIdQuery = from enroll in _repository.Where(t => t.TrialId == trialId).Where(t => t.EnrollReadingCategoryList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(c => c.ReadingCategory == ReadingCategory.Global || c.ReadingCategory == ReadingCategory.Visit)) join user in _repository.Where() on enroll.DoctorId equals user.DoctorId select user.Id; @@ -310,7 +323,7 @@ namespace IRaCIS.Core.Application.Service var blindSubjectCode = string.Empty; - var subjectTask = _visitTaskRepository.Where(t => t.SubjectId == subject.SubjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.IsSelfAnalysis==false).OrderByDescending(t => t.BlindSubjectCode).FirstOrDefault(); + var subjectTask = _visitTaskRepository.Where(t => t.SubjectId == subject.SubjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.IsSelfAnalysis == false).OrderByDescending(t => t.BlindSubjectCode).FirstOrDefault(); if (subjectTask != null && subjectTask.BlindSubjectCode != String.Empty) { blindSubjectCode = subjectTask.BlindSubjectCode; @@ -371,10 +384,10 @@ namespace IRaCIS.Core.Application.Service TrialReadingCriterionId = task.TrialReadingCriterionId, - BlindSubjectCode=blindSubjectCode, - BlindTrialSiteCode=filterObj.BlindTrialSiteCode + BlindSubjectCode = blindSubjectCode, + BlindTrialSiteCode = filterObj.BlindTrialSiteCode + - }); } @@ -460,7 +473,7 @@ namespace IRaCIS.Core.Application.Service #region Subejct 维度 - Expression> comonTaskFilter = u => u.TrialId == trialId && u.IsAnalysisCreate == false && u.TaskState == TaskState.Effect && u.ReadingTaskState == ReadingTaskState.HaveSigned && u.TrialReadingCriterionId== trialReadingCriterionId && + Expression> comonTaskFilter = u => u.TrialId == trialId && u.IsAnalysisCreate == false && u.TaskState == TaskState.Effect && u.ReadingTaskState == ReadingTaskState.HaveSigned && u.TrialReadingCriterionId == trialReadingCriterionId && u.SignTime!.Value.AddDays(filterObj.IntervalWeeks * 7) < DateTime.Now && (u.ReReadingApplyState == ReReadingApplyState.Default || u.ReReadingApplyState == ReReadingApplyState.Reject) && u.DoctorUserId == doctorUserId; @@ -499,11 +512,11 @@ namespace IRaCIS.Core.Application.Service TrialSiteCode = t.TrialSite.TrialSiteCode, SubjectId = t.Id, - IsReReadingOrBackInfluenceAnalysis=t.IsReReadingOrBackInfluenceAnalysis, + IsReReadingOrBackInfluenceAnalysis = t.IsReReadingOrBackInfluenceAnalysis, BlindSubjectCode = t.SubjectVisitTaskList.Where(t => t.IsAnalysisCreate && t.TrialReadingCriterionId == trialReadingCriterionId).OrderByDescending(t => t.BlindSubjectCode).Select(t => t.BlindSubjectCode).FirstOrDefault(), - IsHaveGeneratedTask = t.SubjectVisitTaskList.Any(c => c.DoctorUserId == doctorUserId && c.IsSelfAnalysis == true && c.TrialReadingCriterionId==trialReadingCriterionId), + IsHaveGeneratedTask = t.SubjectVisitTaskList.Any(c => c.DoctorUserId == doctorUserId && c.IsSelfAnalysis == true && c.TrialReadingCriterionId == trialReadingCriterionId), ValidVisitCount = t.SubjectVisitTaskList.AsQueryable().Where(visitTaskFilter).Count(), @@ -526,7 +539,7 @@ namespace IRaCIS.Core.Application.Service - TrialReadingCriterionId=c.TrialReadingCriterionId, + TrialReadingCriterionId = c.TrialReadingCriterionId, IsClinicalDataSign = c.IsClinicalDataSign, IsNeedClinicalDataSign = c.IsNeedClinicalDataSign, @@ -575,7 +588,7 @@ namespace IRaCIS.Core.Application.Service - Expression> comonTaskFilter = u => u.TrialId == trialId && u.IsAnalysisCreate == false && u.TaskState == TaskState.Effect && u.ReadingTaskState == ReadingTaskState.HaveSigned && u.TrialReadingCriterionId == trialReadingCriterionId + Expression> comonTaskFilter = u => u.TrialId == trialId && u.IsAnalysisCreate == false && u.TaskState == TaskState.Effect && u.ReadingTaskState == ReadingTaskState.HaveSigned && u.TrialReadingCriterionId == trialReadingCriterionId && (u.ReReadingApplyState == ReReadingApplyState.Default || u.ReReadingApplyState == ReReadingApplyState.Reject); @@ -622,7 +635,7 @@ namespace IRaCIS.Core.Application.Service SubjectId = t.Id, IsReReadingOrBackInfluenceAnalysis = t.IsReReadingOrBackInfluenceAnalysis, - IsHaveGeneratedTask = t.SubjectVisitTaskList.Any(c => c.IsSelfAnalysis == false && c.TrialReadingCriterionId==trialReadingCriterionId), + IsHaveGeneratedTask = t.SubjectVisitTaskList.Any(c => c.IsSelfAnalysis == false && c.TrialReadingCriterionId == trialReadingCriterionId), ValidVisitCount = t.SubjectVisitTaskList.AsQueryable().Where(visitTaskFilter).GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Count(), @@ -663,7 +676,7 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task GetConsistentRule(TaskConsistentRuleQuery inQuery) { - return await _taskConsistentRuleRepository.Where(t => t.TrialId == inQuery.TrialId && t.IsSelfAnalysis == inQuery.IsSelfAnalysis && t.TrialReadingCriterionId==inQuery.TrialReadingCriterionId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync(); + return await _taskConsistentRuleRepository.Where(t => t.TrialId == inQuery.TrialId && t.IsSelfAnalysis == inQuery.IsSelfAnalysis && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync(); } /// @@ -676,9 +689,9 @@ namespace IRaCIS.Core.Application.Service { var trialId = inQuery.TrialId; - var taskConsistentRuleQueryable = from enroll in _repository.Where(t => t.TrialId == trialId && t.EnrollStatus==EnrollStatus.ConfirmIntoGroup) + var taskConsistentRuleQueryable = from enroll in _repository.Where(t => t.TrialId == trialId && t.EnrollStatus == EnrollStatus.ConfirmIntoGroup) join user in _repository.Where() on enroll.DoctorId equals user.DoctorId - join taskConsistentRule in _repository.Where(t => t.TrialId == trialId &&t.TrialReadingCriterionId==inQuery.TrialReadingCriterionId && t.IsSelfAnalysis) on enroll.TrialId equals taskConsistentRule.TrialId + join taskConsistentRule in _repository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId && t.IsSelfAnalysis) on enroll.TrialId equals taskConsistentRule.TrialId select new TaskConsistentRuleView() { Id = taskConsistentRule.Id, @@ -727,7 +740,27 @@ namespace IRaCIS.Core.Application.Service return await taskConsistentRuleQueryable.ToListAsync(); } + [HttpPost] + [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] + public async Task UpdateTrialVirtualSiteCode(UpdateTrialSiteCodeCommand inCommand) + { + var trial = await _trialRepository.FirstOrDefaultAsync(t => t.Id == inCommand.TrialId); + + trial.VitrualSiteCode = inCommand.VirtualSiteCode; + + await _trialVirtualSiteCodeUpdateRepository.AddAsync(new TrialVirtualSiteCodeUpdate() { VirturalSiteCode = inCommand.VirtualSiteCode,TrialId=inCommand.TrialId }); + + await _trialRepository.SaveChangesAsync(); + + return ResponseOutput.Ok(); + } + + public async Task> GetUpdateVirtualSiteCodeList(Guid trialId) + { + var list = await _trialVirtualSiteCodeUpdateRepository.Where(t => t.TrialId == trialId).Select(t => new UpdateTrialSiteCodeCommandView() { TrialId = trialId, VirtualSiteCode = t.VirturalSiteCode, Creatime = t.CreateTime }).ToListAsync(); + return list; + } [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] @@ -737,7 +770,7 @@ namespace IRaCIS.Core.Application.Service var verifyExp1 = new EntityVerifyExp() { - VerifyExp = t => t.TrialId == addOrEditTaskConsistentRule.TrialId && t.IsSelfAnalysis == addOrEditTaskConsistentRule.IsSelfAnalysis && t.TrialReadingCriterionId==addOrEditTaskConsistentRule.TrialReadingCriterionId, + VerifyExp = t => t.TrialId == addOrEditTaskConsistentRule.TrialId && t.IsSelfAnalysis == addOrEditTaskConsistentRule.IsSelfAnalysis && t.TrialReadingCriterionId == addOrEditTaskConsistentRule.TrialReadingCriterionId, //"已有该项目配置,不允许继续增加" VerifyMsg = _localizer["TaskConsistent_TaskGenerated"] }; @@ -748,6 +781,22 @@ namespace IRaCIS.Core.Application.Service return ResponseOutput.NotOk(_localizer["TaskConsistent_MedicalAuditTaskExists"]); } + + if (_trialSiteRepository.Where(t => t.TrialId == addOrEditTaskConsistentRule.TrialId, false, true).Any(t => t.TrialSiteCode == addOrEditTaskConsistentRule.BlindTrialSiteCode)) + { + return ResponseOutput.NotOk(_localizer["TaskConsistent_SiteCodeExists"]); + } + + var trial = await _trialRepository.FirstOrDefaultAsync(t => t.Id == addOrEditTaskConsistentRule.TrialId); + + if (string.IsNullOrEmpty(trial.VitrualSiteCode)) + { + await _trialVirtualSiteCodeUpdateRepository.AddAsync(new TrialVirtualSiteCodeUpdate() { VirturalSiteCode = addOrEditTaskConsistentRule.BlindTrialSiteCode,TrialId=addOrEditTaskConsistentRule.TrialId }); + } + + trial.VitrualSiteCode = addOrEditTaskConsistentRule.BlindTrialSiteCode; + + var entity = await _taskConsistentRuleRepository.InsertOrUpdateAsync(addOrEditTaskConsistentRule, true, verifyExp1); return ResponseOutput.Ok(entity.Id.ToString()); @@ -762,7 +811,7 @@ namespace IRaCIS.Core.Application.Service var config = await _taskConsistentRuleRepository.FirstOrDefaultAsync(t => t.Id == taskConsistentRuleId); - if (await _visitTaskRepository.AnyAsync(t => t.IsAnalysisCreate && t.TrialId == config.TrialId && t.IsSelfAnalysis == config.IsSelfAnalysis && t.TrialReadingCriterionId==config.TrialReadingCriterionId)) + if (await _visitTaskRepository.AnyAsync(t => t.IsAnalysisCreate && t.TrialId == config.TrialId && t.IsSelfAnalysis == config.IsSelfAnalysis && t.TrialReadingCriterionId == config.TrialReadingCriterionId)) { //"该标准已产生一致性分析任务,不允许删除" throw new BusinessValidationFailedException(_localizer["TaskConsistent_SignedTaskCannotBeInvalidated"]); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs index 2f3a3ca9e..4ff527885 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs @@ -379,6 +379,9 @@ namespace IRaCIS.Core.Application.Contracts public class UserToBeDoneRecord { + public int? TrialWaitSignDocCount { get; set; } + + public int? SysWaitSignDocCount { get; set; } #region PM/APM public int? PM_SiteSurveryCount { get; set; } public int? PM_CheckCount { get; set; } @@ -386,11 +389,9 @@ namespace IRaCIS.Core.Application.Contracts public int? PM_ReReadingApprovalCount { get; set; } - public int? PM_TrialWaitSignDocCount { get; set; } - - public int? PM_SysWaitSignDocCount { get; set; } - public int? PM_ClinicalDataCount { get; set; } + + public int? ClinicalDataCount { get; set; } #endregion #region CRC @@ -404,9 +405,7 @@ namespace IRaCIS.Core.Application.Contracts public int? CRC_ClinicalDataTobeDoneCount { get; set; } public int? CRC_ClinialDataTobeConfirmCount { get; set; } - public int? CRC_TrialWaitSignDocCount { get; set; } - public int? CRC_SysWaitSignDocCount { get; set; } #endregion @@ -417,9 +416,7 @@ namespace IRaCIS.Core.Application.Contracts public int? SPM_ReReadingApprovalCount { get; set; } - public int? SPM_TrialWaitSignDocCount { get; set; } - public int? SPM_SysWaitSignDocCount { get; set; } #endregion @@ -428,9 +425,7 @@ namespace IRaCIS.Core.Application.Contracts public int? IQC_IamgeQCCount { get; set; } public int? IQC_QCQuestionCount { get; set; } - public int? IQC_TrialWaitSignDocCount { get; set; } - public int? IQC_SysWaitSignDocCount { get; set; } #endregion @@ -438,17 +433,12 @@ namespace IRaCIS.Core.Application.Contracts public int? IR_IamgeWaitReadingCount { get; set; } public int? IR_MedicalReviewCount { get; set; } - public int? IR_TrialWaitSignDocCount { get; set; } - - public int? IR_SysWaitSignDocCount { get; set; } #endregion #region MIM public int? MIM_MedicalReviewCount { get; set; } - public int? MIM_TrialWaitSignDocCount { get; set; } - public int? MIM_SysWaitSignDocCount { get; set; } #endregion diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs index 13d490b7c..ce8852269 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs @@ -1241,32 +1241,12 @@ namespace IRaCIS.Core.Application var record = new UserToBeDoneRecord() { - #region sign document IsHaveSysDocNeedNeedSign = needSignSysDocCont > 0, //TrialNeedSignList= trialNeedSignList, - PM_SysWaitSignDocCount = isPM ? needSignSysDocCont : 0, - PM_TrialWaitSignDocCount = isPM ? needSignTrialCount : 0, - - CRC_SysWaitSignDocCount = isCRC ? needSignSysDocCont : 0, - CRC_TrialWaitSignDocCount = isCRC ? needSignTrialCount : 0, - - SPM_SysWaitSignDocCount = isSPMOrCPM ? needSignSysDocCont : 0, - SPM_TrialWaitSignDocCount = isSPMOrCPM ? needSignTrialCount : 0, - - IQC_SysWaitSignDocCount = isIQC ? needSignSysDocCont : 0, - IQC_TrialWaitSignDocCount = isIQC ? needSignTrialCount : 0, - - - IR_SysWaitSignDocCount = isIR ? needSignSysDocCont : 0, - IR_TrialWaitSignDocCount = isIR ? needSignTrialCount : 0, - - MIM_SysWaitSignDocCount = isMIM ? needSignSysDocCont : 0, - MIM_TrialWaitSignDocCount = isMIM ? needSignTrialCount : 0, - - #endregion - + SysWaitSignDocCount = isPM ? needSignSysDocCont : 0, + TrialWaitSignDocCount = isPM ? needSignTrialCount : 0, #region PM diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs b/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs index 093c7a829..4a755f8b3 100644 --- a/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs +++ b/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs @@ -151,6 +151,8 @@ namespace IRaCIS.Application.Contracts public Guid TrialReadingCriterionId { get; set; } public List ReadingCategorys { get; set; } + + public bool IsJoinAnalysis { get; set; } = true; } diff --git a/IRaCIS.Core.Domain/Allocation/TrialVirtualSiteCodeUpdate.cs b/IRaCIS.Core.Domain/Allocation/TrialVirtualSiteCodeUpdate.cs new file mode 100644 index 000000000..e30eb605f --- /dev/null +++ b/IRaCIS.Core.Domain/Allocation/TrialVirtualSiteCodeUpdate.cs @@ -0,0 +1,43 @@ + +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2024-02-29 15:48:36 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +using System; +using IRaCIS.Core.Domain.Share; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +namespace IRaCIS.Core.Domain.Models +{ + /// + ///TrialVirtualSiteCodeUpdate + /// + [Table("TrialVirtualSiteCodeUpdate")] + public class TrialVirtualSiteCodeUpdate : Entity, IAuditAdd + { + + + public Guid TrialId { get; set; } + + /// + /// CreateTime + /// + [Required] + public DateTime CreateTime { get; set; } + + /// + /// CreateUserId + /// + [Required] + public Guid CreateUserId { get; set; } + + /// + /// VirturalSiteCode + /// + [Required] + public string VirturalSiteCode { get; set; } + + } + + +} diff --git a/IRaCIS.Core.Domain/Dcotor/EnrollReadingCriterion.cs b/IRaCIS.Core.Domain/Dcotor/EnrollReadingCriterion.cs new file mode 100644 index 000000000..1a7fff4fb --- /dev/null +++ b/IRaCIS.Core.Domain/Dcotor/EnrollReadingCriterion.cs @@ -0,0 +1,59 @@ + +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2024-02-29 15:51:46 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +using System; +using IRaCIS.Core.Domain.Share; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +namespace IRaCIS.Core.Domain.Models +{ + /// + ///EnrollReadingCriterion + /// + [Table("EnrollReadingCriterion")] + public class EnrollReadingCriterion : Entity, IAuditAdd + { + + /// + /// Id + /// + [Key] + [Required] + public Guid Id { get; set; } + + /// + /// EnrollId + /// + [Required] + public Guid EnrollId { get; set; } + + /// + /// TrialReadingCriterionId + /// + [Required] + public Guid TrialReadingCriterionId { get; set; } + + /// + /// IsJoinAnalysis + /// + [Required] + public bool IsJoinAnalysis { get; set; } + + /// + /// CreateTime + /// + [Required] + public DateTime CreateTime { get; set; } + + /// + /// CreateUserId + /// + [Required] + public Guid CreateUserId { get; set; } + + } + + +} diff --git a/IRaCIS.Core.Domain/Trial/EnrollReadingCategory.cs b/IRaCIS.Core.Domain/Trial/EnrollReadingCategory.cs index 6cf112e7c..19dccceb8 100644 --- a/IRaCIS.Core.Domain/Trial/EnrollReadingCategory.cs +++ b/IRaCIS.Core.Domain/Trial/EnrollReadingCategory.cs @@ -15,6 +15,8 @@ namespace IRaCIS.Core.Domain.Models [Table("EnrollReadingCategory")] public class EnrollReadingCategory : Entity, IAuditAdd { + + public bool IsJoinAnalysis { get; set; }=true; /// /// EnrollId /// diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs index 9b4042481..2a3812f28 100644 --- a/IRaCIS.Core.Domain/Trial/Trial.cs +++ b/IRaCIS.Core.Domain/Trial/Trial.cs @@ -359,6 +359,8 @@ namespace IRaCIS.Core.Domain.Models public int IndicationEnum { get; set; } = -1; + public string VitrualSiteCode { get; set; } + #region 邮件配置 /// /// 发件箱账号 diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index 3bca4505f..931cf24b9 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -672,6 +672,8 @@ namespace IRaCIS.Core.Infra.EFCore public virtual DbSet Internationalization { get; set; } + public virtual DbSet TrialVirtualSiteCodeUpdate { get; set; } + public virtual DbSet EnrollReadingCriterion { get; set; } } diff --git a/IRaCIS.Core.Test/DbHelper.ttinclude b/IRaCIS.Core.Test/DbHelper.ttinclude index 5ce722349..f492fe319 100644 --- a/IRaCIS.Core.Test/DbHelper.ttinclude +++ b/IRaCIS.Core.Test/DbHelper.ttinclude @@ -1,10 +1,10 @@ <#+ public class config { - public static readonly string ConnectionString = "Server=123.56.94.154,1433\\MSSQLSERVER;Database=Test.IRC;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true"; - public static readonly string DbDatabase = "Test.IRC"; + public static readonly string ConnectionString = "Server=123.56.94.154,1435;Database=Test_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true"; + public static readonly string DbDatabase = "Test_IRC"; //表名称用字符串,拼接 - public static readonly string TableName = "ReadingTaskQuestionMark"; + public static readonly string TableName = "EnrollReadingCriterion"; //具体文件里面 例如service 可以配置是否分页 } #>