修改提示

Uat_Study
hang 2022-05-17 09:47:07 +08:00
parent 6c94c6e432
commit 4843b7f73e
6 changed files with 54 additions and 33 deletions

View File

@ -466,6 +466,9 @@ namespace IRaCIS.Core.Application.Contracts.DTO
public UserTypeEnum UserTypeEnum { get; set; }
}
public class QCChanllengeDialogDTO : CheckChanllengeDialogDTO
{
public Guid QCChallengeId { get; set; }

View File

@ -1,4 +1,5 @@
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Application.Contracts.DTO;
using IRaCIS.Core.Domain.Share;
using System.ComponentModel.DataAnnotations;
namespace IRaCIS.Core.Application.Contracts
@ -318,6 +319,14 @@ namespace IRaCIS.Core.Application.Contracts
}
public class CheckDialogDTO
{
public QCCheckViewModel SubjectVisitCheck { get; set; }
public List<CheckChanllengeDialogDTO> DialogList { get; set; }
}
public class QCCheckViewModel
{
public string? TalkContent { get; set; } = String.Empty;

View File

@ -7,7 +7,7 @@ namespace IRaCIS.Core.Application.Image.QA
{
public interface IQCListService
{
Task<List<CheckChanllengeDialogDTO>> GetCheckChallengeDialogList(Guid subjectVisitId);
Task<CheckDialogDTO> GetCheckChallengeDialogList(Guid subjectVisitId);
Task<IResponseOutput<PageOutput<QCCheckViewModel>, TrialSubjectAndSVConfig>> GetConsistencyVerificationList(CheckQuery checkQuery);
Task<IResponseOutput<PageOutput<QCCRCChallengeViewModel>, TrialSubjectAndSVConfig>> GetCRCChallengeList(ChallengeQuery challengeQuery);
Task<List<ChallengeAndDialog>> GetCRCVisitChallengeAndDialog(Guid subjectVisitId, [FromRoute] TrialQCProcess trialQCProcess);

View File

@ -93,7 +93,7 @@ namespace IRaCIS.Core.Application.Image.QA
[HttpPost]
public async Task<IResponseOutput<PageOutput<QCCRCVisitViewModel>, TrialSubjectAndSVConfig>> GetCRCVisitList(CRCVisitSearchDTO visitSearchDTO)
{
var svExpression= GetSubjectVisitFilter(visitSearchDTO.VisitPlanArray);
var svExpression = GetSubjectVisitFilter(visitSearchDTO.VisitPlanArray);
var query = _repository.Where<SubjectVisit>(x => x.TrialId == visitSearchDTO.TrialId)
.WhereIf(visitSearchDTO.SiteId != null, t => t.SiteId == visitSearchDTO.SiteId)
@ -452,12 +452,12 @@ namespace IRaCIS.Core.Application.Image.QA
//.WhereIf(visitSearchDTO.AuditState != null, t => t.AuditState == visitSearchDTO.AuditState)
.WhereIf(visitSearchDTO.AuditStateArray != null && visitSearchDTO.AuditStateArray?.Length > 0, t => visitSearchDTO.AuditStateArray!.Contains(t.AuditState))
.WhereIf(visitSearchDTO.HandleUserId != null, t => t.PreliminaryAuditUserId == visitSearchDTO.HandleUserId || t.CurrentActionUserId== visitSearchDTO.HandleUserId
.WhereIf(visitSearchDTO.HandleUserId != null, t => t.PreliminaryAuditUserId == visitSearchDTO.HandleUserId || t.CurrentActionUserId == visitSearchDTO.HandleUserId
|| t.ReviewAuditUserId == visitSearchDTO.HandleUserId
|| t.QCChallengeList.Any(t => t.CreateUserId == visitSearchDTO.HandleUserId)
|| t.QCChallengeDialogList.Any(t => t.CreateUserId == visitSearchDTO.HandleUserId))
.WhereIf(visitSearchDTO.IsUrgent != null, t => t.IsUrgent == visitSearchDTO.IsUrgent)
.Where(t=>t.SubmitState!=SubmitStateEnum.None)
.Where(t => t.SubmitState != SubmitStateEnum.None)
//.WhereIf(visitSearchDTO.SubmitState != null, t => t.SubmitState == visitSearchDTO.SubmitState)
//.WhereIf(visitSearchDTO.ChallengeState != null, t => t.ChallengeState == visitSearchDTO.ChallengeState)
.ProjectTo<QCVisitViewModel>(_mapper.ConfigurationProvider);
@ -554,15 +554,15 @@ namespace IRaCIS.Core.Application.Image.QA
///
[HttpGet("{subjectVisitId:guid}")]
public async Task<List<CheckChanllengeDialogDTO>> GetCheckChallengeDialogList(Guid subjectVisitId)
public async Task<CheckDialogDTO> GetCheckChallengeDialogList(Guid subjectVisitId)
{
var list = await _repository.Where<CheckChallengeDialog>(t => t.SubjectVisitId == subjectVisitId).OrderBy(t => t.CreateTime)
.ProjectTo<CheckChanllengeDialogDTO>(_mapper.ConfigurationProvider).ToListAsync();
var sv = (await _subjectVisitRepository.Where(t => t.Id == subjectVisitId)
.ProjectTo<CheckDialogDTO>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
list.ForEach(t => t.IsCurrentUser = _userInfo.Id == t.CreateUserId);
sv.DialogList.ForEach(t => t.IsCurrentUser = _userInfo.Id == t.CreateUserId);
return list;
return sv;
}
/// <summary>

View File

@ -949,9 +949,11 @@ namespace IRaCIS.Core.Application.Image.QA
#endregion
[HttpGet]
public async Task IsQCCanOpt([FromQuery,Required]Guid subjectVisitId)
public async Task<IResponseOutput> IsQCCanOpt([FromQuery,Required]Guid subjectVisitId)
{
await VerifyIsCanQCAsync(null, subjectVisitId);
return ResponseOutput.Ok();
}

View File

@ -148,6 +148,15 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.Subject.Code))
.ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.TrialSite.TrialSiteCode));
//一致性核查 质疑对话
CreateMap<CheckChallengeDialog, CheckChanllengeDialogDTO>()
.ForMember(d => d.CreateUserName, u => u.MapFrom(t => t.CreateUser.UserName))
.ForMember(d => d.CreateUserFullName, u => u.MapFrom(t => t.CreateUser.FullName));
CreateMap<SubjectVisit, CheckDialogDTO>()
.ForMember(d => d.SubjectVisitCheck, u => u.MapFrom(t => t))
.ForMember(d => d.DialogList, u => u.MapFrom(t => t.CheckChallengeDialogList.OrderBy(t => t.CreateTime)));
CreateMap<SubjectVisit, ForWardViewModel>()
.ForMember(d => d.ForwardUserName, u => u.MapFrom(s => s.ForwardUser.UserName))
@ -179,10 +188,8 @@ namespace IRaCIS.Core.Application.Service
CreateMap<PreviousSurgery, PreviousSurgeryView>()
.ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path + "?access_token=" + token));
//一致性核查 质疑对话
CreateMap<CheckChallengeDialog, CheckChanllengeDialogDTO>()
.ForMember(d => d.CreateUserName, u => u.MapFrom(t => t.CreateUser.UserName))
.ForMember(d => d.CreateUserFullName, u => u.MapFrom(t => t.CreateUser.FullName));
//QC 质疑对话