From bbbc9da76e80a044318c0be762fed9c50316e099 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 11 Jul 2023 16:23:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Allocation/DTO/VisitTaskViewModel.cs | 23 +++++++++---- .../Service/Allocation/VisitTaskService.cs | 32 +++++++++++++++---- .../Service/Allocation/_MapConfig.cs | 5 +-- .../ReadingImageTaskService.cs | 4 +-- 4 files changed, 47 insertions(+), 17 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs index d7f91c7c7..943cc8702 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs @@ -127,6 +127,13 @@ namespace IRaCIS.Core.Application.ViewModel public bool IsCanEditUrgentState { get; set; } + public bool? IsBaseline { get; set; } + + public bool? IsEnrollmentConfirm { get; set; } + + public PDStateEnum? PDState { get; set; } + + } public class UserSimpleInfo @@ -386,8 +393,6 @@ namespace IRaCIS.Core.Application.ViewModel public bool? IsWaitPIAudit { get; set; } - public int? AuditResultEnum { get; set; } - public string? LatestReplyUserName { get; set; } @@ -398,7 +403,15 @@ namespace IRaCIS.Core.Application.ViewModel } + public class PIAuditTaskEnrollOrPdCommand + { + [NotDefault] + public Guid VisitTaskId { get; set; } + public bool? IsEnrollment { get; set; } + public bool? IsPDConfirm { get; set; } + + } public class PIAuditTaskCommand { @@ -411,12 +424,10 @@ namespace IRaCIS.Core.Application.ViewModel public PIAuditState PIAuditState { get; set; } - public bool? IsEnrollment { get; set; } - public bool? IsPDConfirm { get; set; } } - public class PIAuditTaskReplyCommand + public class PIAuditTaskReplyCommand { [NotDefault] public Guid VisitTaskId { get; set; } @@ -431,7 +442,7 @@ namespace IRaCIS.Core.Application.ViewModel } - public class PIAuditDialogListView: PIAuditTaskCommand + public class PIAuditDialogListView : PIAuditTaskCommand { } diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index 648faed97..f2478c64c 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -189,8 +189,10 @@ namespace IRaCIS.Core.Application.Service.Allocation - private IQueryable GetReadingTaskQueryable(VisitTaskQuery queryVisitTask) + private IQueryable GetReadingTaskQueryable(VisitTaskQuery queryVisitTask) { + var trialConfig = _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).Select(t => new { t.EnrollConfirmDefaultUserType, t.PDProgressDefaultUserType }).FirstOrDefault() ; + var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId && t.IsAnalysisCreate == false) .WhereIf(queryVisitTask.TaskState != null, t => t.TaskState == queryVisitTask.TaskState) @@ -203,7 +205,7 @@ namespace IRaCIS.Core.Application.Service.Allocation .WhereIf(queryVisitTask.TaskAllocationState != null, t => t.TaskAllocationState == queryVisitTask.TaskAllocationState) .WhereIf(queryVisitTask.TrialReadingCriterionId != null, t => t.TrialReadingCriterionId == queryVisitTask.TrialReadingCriterionId) .WhereIf(queryVisitTask.ReReadingApplyState != null, t => t.ReReadingApplyState == queryVisitTask.ReReadingApplyState) - .WhereIf(queryVisitTask.PIAuditState != null, t => t.PIAuditState == queryVisitTask.PIAuditState) + .WhereIf(queryVisitTask.CompleteClinicalDataEnum == CompleteClinicalDataEnum.Complete, t => t.IsClinicalDataSign && t.IsNeedClinicalDataSign == true) .WhereIf(queryVisitTask.CompleteClinicalDataEnum == CompleteClinicalDataEnum.NotComplete, t => t.IsClinicalDataSign == false && t.IsNeedClinicalDataSign == true) @@ -214,9 +216,11 @@ namespace IRaCIS.Core.Application.Service.Allocation .WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.AllocateTime > queryVisitTask.BeginAllocateDate) .WhereIf(queryVisitTask.EndAllocateDate != null, t => t.AllocateTime < queryVisitTask.EndAllocateDate!.Value.AddDays(1)) + .WhereIf(trialConfig?.EnrollConfirmDefaultUserType==UserTypeEnum.MIM && _userInfo.UserTypeEnumInt==(int)UserTypeEnum.MIM,t=>t.SourceSubjectVisit.IsBaseLine==true) + .WhereIf(trialConfig?.PDProgressDefaultUserType == UserTypeEnum.MIM && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.MIM, t => t.SourceSubjectVisit.IsBaseLine == false) .WhereIf(queryVisitTask.IsWaitPIAudit == true, t => t.FirstAuditUserId == null) .WhereIf(queryVisitTask.IsWaitPIAudit == false, t => t.FirstAuditUserId != null) - + .WhereIf(queryVisitTask.PIAuditState != null, t => t.PIAuditState == queryVisitTask.PIAuditState) .WhereIf(queryVisitTask.FirstAuditTimeBegin != null, t => t.AllocateTime > queryVisitTask.FirstAuditTimeBegin) .WhereIf(queryVisitTask.FirstAuditTimeEnd != null, t => t.AllocateTime < queryVisitTask.FirstAuditTimeEnd) .WhereIf(queryVisitTask.LatestReplyTimeBegin != null, t => t.AllocateTime > queryVisitTask.LatestReplyTimeBegin) @@ -259,8 +263,7 @@ namespace IRaCIS.Core.Application.Service.Allocation visitTask.PIAuditNote = incommand.PIAuditNote; visitTask.PIAuditImagePath = string.Join('|', incommand.PIAuditImagePathList); visitTask.PIAuditState = incommand.PIAuditState; - visitTask.IsEnrollment = incommand.IsEnrollment; - visitTask.IsPDConfirm = incommand.IsPDConfirm; + visitTask.LatestReplyUserId = _userInfo.Id; visitTask.LatestReplyTime = DateTime.Now; @@ -281,6 +284,21 @@ namespace IRaCIS.Core.Application.Service.Allocation } + + [HttpPost] + + public async Task PIAuditTaskEnrollOrPD(PIAuditTaskEnrollOrPdCommand incommand) + { + var visitTask = await _visitTaskRepository.FirstOrDefaultAsync(t => t.Id == incommand.VisitTaskId); + visitTask.IsEnrollment = incommand.IsEnrollment != null ? incommand.IsEnrollment : visitTask.IsEnrollment; + visitTask.IsPDConfirm = incommand.IsPDConfirm != null ? incommand.IsPDConfirm : visitTask.IsPDConfirm; + + + await _visitTaskRepository.SaveChangesAsync(); + + return ResponseOutput.Ok(); + } + /// ///new- 回复审核内容 /// @@ -288,7 +306,7 @@ namespace IRaCIS.Core.Application.Service.Allocation /// public async Task PIAuditTaskReply(PIAuditTaskReplyCommand incommand) { - await _PIAuditRepository.AddAsync(new PIAudit() { ReplyContent=incommand.ReplyContent,VisitTaskId=incommand.VisitTaskId}); + await _PIAuditRepository.AddAsync(new PIAudit() { ReplyContent = incommand.ReplyContent, VisitTaskId = incommand.VisitTaskId }); await _PIAuditRepository.SaveChangesAsync(); @@ -305,7 +323,7 @@ namespace IRaCIS.Core.Application.Service.Allocation { - var list = await _PIAuditRepository.Where(t => t.VisitTaskId == inQuery.VisitTaskId).OrderBy(t=>t.CreateTime).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var list = await _PIAuditRepository.Where(t => t.VisitTaskId == inQuery.VisitTaskId).OrderBy(t => t.CreateTime).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); return list; } diff --git a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs index d5d93b403..c0778978f 100644 --- a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs @@ -131,8 +131,9 @@ namespace IRaCIS.Core.Application.Service .ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName)) .ForMember(o => o.FullName, t => t.MapFrom(u => u.DoctorUser.FullName)) .ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.DoctorUser.UserTypeRole.UserTypeShortName)) - //.ForMember(o => o.IsClinicalDataSigned, t => t.MapFrom(u => u.Subject.ClinicalDataList.Any(c => c.IsSign && (c.ReadingId == u.SouceReadModuleId || c.ReadingId == u.SourceSubjectVisitId)))) - ; + .ForMember(o => o.IsBaseline, t => t.MapFrom(u => u.SourceSubjectVisit.IsBaseLine)) + .ForMember(o => o.IsEnrollmentConfirm, t => t.MapFrom(u => u.SourceSubjectVisit.IsEnrollmentConfirm)) + .ForMember(o => o.PDState, t => t.MapFrom(u => u.SourceSubjectVisit.PDState)) ; diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 6924da860..d1b47f59b 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -2510,7 +2510,7 @@ namespace IRaCIS.Application.Services if (claimSubjectDto.IsClaim) { - if(_subjectRepository.Any(t=>t.Id== claimSubjectDto.SubejctId && t.ClaimUserId != _userInfo.Id)) + if(_subjectRepository.Any(t=>t.Id== claimSubjectDto.SubejctId && t.ClaimUserId != _userInfo.Id && t.ClaimUserId!=null)) { throw new BusinessValidationFailedException("当前任务已被其他人领取,请进行其他的阅片任务"); } @@ -2550,7 +2550,7 @@ namespace IRaCIS.Application.Services { if (claimSubjectDto.IsClaim) { - if (_visitTaskRepository.Any(t => t.Id == claimSubjectDto.VisitTaskId && t.DoctorUserId != _userInfo.Id)) + if (_visitTaskRepository.Any(t => t.Id == claimSubjectDto.VisitTaskId && t.DoctorUserId != _userInfo.Id && t.DoctorUserId != null)) { throw new BusinessValidationFailedException("当前任务已被其他人领取,请进行其他的阅片任务"); }