修改审核

Uat_Study
hang 2023-07-11 16:23:08 +08:00
parent 11b4cf0351
commit bbbc9da76e
4 changed files with 47 additions and 17 deletions

View File

@ -127,6 +127,13 @@ namespace IRaCIS.Core.Application.ViewModel
public bool IsCanEditUrgentState { get; set; } public bool IsCanEditUrgentState { get; set; }
public bool? IsBaseline { get; set; }
public bool? IsEnrollmentConfirm { get; set; }
public PDStateEnum? PDState { get; set; }
} }
public class UserSimpleInfo public class UserSimpleInfo
@ -386,8 +393,6 @@ namespace IRaCIS.Core.Application.ViewModel
public bool? IsWaitPIAudit { get; set; } public bool? IsWaitPIAudit { get; set; }
public int? AuditResultEnum { get; set; }
public string? LatestReplyUserName { 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 public class PIAuditTaskCommand
{ {
@ -411,12 +424,10 @@ namespace IRaCIS.Core.Application.ViewModel
public PIAuditState PIAuditState { get; set; } public PIAuditState PIAuditState { get; set; }
public bool? IsEnrollment { get; set; }
public bool? IsPDConfirm { get; set; }
} }
public class PIAuditTaskReplyCommand public class PIAuditTaskReplyCommand
{ {
[NotDefault] [NotDefault]
public Guid VisitTaskId { get; set; } public Guid VisitTaskId { get; set; }
@ -431,7 +442,7 @@ namespace IRaCIS.Core.Application.ViewModel
} }
public class PIAuditDialogListView: PIAuditTaskCommand public class PIAuditDialogListView : PIAuditTaskCommand
{ {
} }

View File

@ -189,8 +189,10 @@ namespace IRaCIS.Core.Application.Service.Allocation
private IQueryable<VisitTask> GetReadingTaskQueryable(VisitTaskQuery queryVisitTask) private IQueryable<VisitTask> 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) var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId && t.IsAnalysisCreate == false)
.WhereIf(queryVisitTask.TaskState != null, t => t.TaskState == queryVisitTask.TaskState) .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.TaskAllocationState != null, t => t.TaskAllocationState == queryVisitTask.TaskAllocationState)
.WhereIf(queryVisitTask.TrialReadingCriterionId != null, t => t.TrialReadingCriterionId == queryVisitTask.TrialReadingCriterionId) .WhereIf(queryVisitTask.TrialReadingCriterionId != null, t => t.TrialReadingCriterionId == queryVisitTask.TrialReadingCriterionId)
.WhereIf(queryVisitTask.ReReadingApplyState != null, t => t.ReReadingApplyState == queryVisitTask.ReReadingApplyState) .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.Complete, t => t.IsClinicalDataSign && t.IsNeedClinicalDataSign == true)
.WhereIf(queryVisitTask.CompleteClinicalDataEnum == CompleteClinicalDataEnum.NotComplete, t => t.IsClinicalDataSign == false && 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.BeginAllocateDate != null, t => t.AllocateTime > queryVisitTask.BeginAllocateDate)
.WhereIf(queryVisitTask.EndAllocateDate != null, t => t.AllocateTime < queryVisitTask.EndAllocateDate!.Value.AddDays(1)) .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 == true, t => t.FirstAuditUserId == null)
.WhereIf(queryVisitTask.IsWaitPIAudit == false, 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.FirstAuditTimeBegin != null, t => t.AllocateTime > queryVisitTask.FirstAuditTimeBegin)
.WhereIf(queryVisitTask.FirstAuditTimeEnd != null, t => t.AllocateTime < queryVisitTask.FirstAuditTimeEnd) .WhereIf(queryVisitTask.FirstAuditTimeEnd != null, t => t.AllocateTime < queryVisitTask.FirstAuditTimeEnd)
.WhereIf(queryVisitTask.LatestReplyTimeBegin != null, t => t.AllocateTime > queryVisitTask.LatestReplyTimeBegin) .WhereIf(queryVisitTask.LatestReplyTimeBegin != null, t => t.AllocateTime > queryVisitTask.LatestReplyTimeBegin)
@ -259,8 +263,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
visitTask.PIAuditNote = incommand.PIAuditNote; visitTask.PIAuditNote = incommand.PIAuditNote;
visitTask.PIAuditImagePath = string.Join('|', incommand.PIAuditImagePathList); visitTask.PIAuditImagePath = string.Join('|', incommand.PIAuditImagePathList);
visitTask.PIAuditState = incommand.PIAuditState; visitTask.PIAuditState = incommand.PIAuditState;
visitTask.IsEnrollment = incommand.IsEnrollment;
visitTask.IsPDConfirm = incommand.IsPDConfirm;
visitTask.LatestReplyUserId = _userInfo.Id; visitTask.LatestReplyUserId = _userInfo.Id;
visitTask.LatestReplyTime = DateTime.Now; visitTask.LatestReplyTime = DateTime.Now;
@ -281,6 +284,21 @@ namespace IRaCIS.Core.Application.Service.Allocation
} }
[HttpPost]
public async Task<IResponseOutput> 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();
}
/// <summary> /// <summary>
///new- 回复审核内容 ///new- 回复审核内容
/// </summary> /// </summary>
@ -288,7 +306,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
/// <returns></returns> /// <returns></returns>
public async Task<IResponseOutput> PIAuditTaskReply(PIAuditTaskReplyCommand incommand) public async Task<IResponseOutput> 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(); 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<PIAuditDialogListView>(_mapper.ConfigurationProvider).ToListAsync(); var list = await _PIAuditRepository.Where(t => t.VisitTaskId == inQuery.VisitTaskId).OrderBy(t => t.CreateTime).ProjectTo<PIAuditDialogListView>(_mapper.ConfigurationProvider).ToListAsync();
return list; return list;
} }

View File

@ -131,8 +131,9 @@ namespace IRaCIS.Core.Application.Service
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName)) .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.FullName, t => t.MapFrom(u => u.DoctorUser.FullName))
.ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.DoctorUser.UserTypeRole.UserTypeShortName)) .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)) ;

View File

@ -2510,7 +2510,7 @@ namespace IRaCIS.Application.Services
if (claimSubjectDto.IsClaim) 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("当前任务已被其他人领取,请进行其他的阅片任务"); throw new BusinessValidationFailedException("当前任务已被其他人领取,请进行其他的阅片任务");
} }
@ -2550,7 +2550,7 @@ namespace IRaCIS.Application.Services
{ {
if (claimSubjectDto.IsClaim) 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("当前任务已被其他人领取,请进行其他的阅片任务"); throw new BusinessValidationFailedException("当前任务已被其他人领取,请进行其他的阅片任务");
} }