- { (user==null? survey.UserName: user.LastName + "/ " + user.FirstName)}:
+ { (user == null ? survey.UserName : user.LastName + "/ " + user.FirstName)}:
您好, 您填写的中心调研表被驳回,详细信息如下:
@@ -681,7 +726,7 @@ namespace IRaCIS.Core.Application.Contracts
smtp.MessageSent += (sender, args) =>
{
- _ = _trialSiteUserSurveyRepository.UpdateFromQueryAsync(t => t.Id == item.Id, u => new TrialSiteUserSurvey() { IsGenerateSuccess = true, InviteState = TrialSiteUserStateEnum.HasSend, IsJoin=null,ConfirmTime=null,RejectReason=String.Empty, SystemUserId = sysUserInfo.Id, ExpireTime = DateTime.Now.AddDays(7) }).Result;
+ _ = _trialSiteUserSurveyRepository.UpdateFromQueryAsync(t => t.Id == item.Id, u => new TrialSiteUserSurvey() { IsGenerateSuccess = true, InviteState = TrialSiteUserStateEnum.HasSend, IsJoin = null, ConfirmTime = null, RejectReason = String.Empty, SystemUserId = sysUserInfo.Id, ExpireTime = DateTime.Now.AddDays(7) }).Result;
};
@@ -742,7 +787,7 @@ namespace IRaCIS.Core.Application.Contracts
else if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM)
{
- await _trialSiteSurveyRepository.UpdateFromQueryAsync(t => t.Id == trialSiteSurveyId && t.State == TrialSiteSurveyEnum.CRCSubmitted, u => new TrialSiteSurvey() { State = TrialSiteSurveyEnum.SPMApproved, PreliminaryUserId = _userInfo.Id,PreliminaryTime=DateTime.Now });
+ await _trialSiteSurveyRepository.UpdateFromQueryAsync(t => t.Id == trialSiteSurveyId && t.State == TrialSiteSurveyEnum.CRCSubmitted, u => new TrialSiteSurvey() { State = TrialSiteSurveyEnum.SPMApproved, PreliminaryUserId = _userInfo.Id, PreliminaryTime = DateTime.Now });
}
else if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.APM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
@@ -759,7 +804,7 @@ namespace IRaCIS.Core.Application.Contracts
await SendInviteEmail(new InviteEmailCommand() { TrialId = trialId, RouteUrl = siteSurvyeSubmit.RouteUrl, UserList = needGenerateList });
- await _trialSiteSurveyRepository.UpdateFromQueryAsync(t => t.Id == trialSiteSurveyId && t.State == TrialSiteSurveyEnum.SPMApproved, u => new TrialSiteSurvey() { State = TrialSiteSurveyEnum.PMCreatedAndLock, ReviewerUserId = _userInfo.Id, ReviewerTime=DateTime.Now});
+ await _trialSiteSurveyRepository.UpdateFromQueryAsync(t => t.Id == trialSiteSurveyId && t.State == TrialSiteSurveyEnum.SPMApproved, u => new TrialSiteSurvey() { State = TrialSiteSurveyEnum.PMCreatedAndLock, ReviewerUserId = _userInfo.Id, ReviewerTime = DateTime.Now });
}
@@ -767,21 +812,6 @@ namespace IRaCIS.Core.Application.Contracts
}
- ///
- /// 项目Site调研用户列表 所有site的调研用户 会有重复
- ///
- ///
- public async Task
> TrialSiteSurveyUserList(TrialSiteUserSurveyAllQuery queryParam)
- {
- var query = _trialSiteUserSurveyRepository.Where(t => t.TrialSiteSurvey.TrialId == queryParam.TrialId&&t.TrialSiteSurvey.IsAbandon==false)
- .WhereIf(queryParam.SiteId!=null, t => t.TrialSiteSurvey.SiteId == queryParam.SiteId)
- .WhereIf(! string.IsNullOrEmpty(queryParam.UserKeyInfo ), t => (t.LastName + " / " + t.FirstName).Contains(queryParam.UserKeyInfo)||t.Email.Contains(queryParam.UserKeyInfo) ||t.Phone.Contains(queryParam.UserKeyInfo))
- .WhereIf(!string.IsNullOrEmpty(queryParam.FormWriterKeyInfo), t => (t.TrialSiteSurvey.UserName).Contains(queryParam.FormWriterKeyInfo) || t.TrialSiteSurvey.Email.Contains(queryParam.FormWriterKeyInfo) || t.TrialSiteSurvey.Phone.Contains(queryParam.FormWriterKeyInfo))
-
- .ProjectTo(_mapper.ConfigurationProvider);
-
- return await query.ToPagedListAsync(queryParam.PageIndex, queryParam.PageSize, queryParam.SortField, queryParam.Asc);
- }
diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
index f96793546..e8c50a7ec 100644
--- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
+++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
@@ -40,58 +40,13 @@ namespace IRaCIS.Core.Application.Services
IsVerify=svCommand.IsFinalVisit
};
- #region 废弃
- //var verifyExp2 = new EntityVerifyExp()
- //{
- // verifyType = VerifyEnum.OnlyUpdate,
- // VerifyExp = t => t.StudyList.Any(k => k.SubjectVisitId == svCommand.Id) && svCommand.SVSTDTC == null,
- // VerifyMsg = "This visit is associated with the uploaded study images, and the visit start date is not allowed to be modified."
- //};
-
- //if (needDealEntity.SVSTDTC == null && needDealEntity.VisitExecuted == 1)
- //{
- // return ResponseOutput.NotOk("VisitExecuted must have Start Date ");
- //}
-
-
- //if (needDealEntity.IsOutEnromentVisit)
- //{
- // needDealEntity.VisitNum = _subjectVisitRepository.Where(t => t.SubjectId == svCommand.SubjectId).Max(t => t.VisitNum) + (decimal)0.1;
- //}
-
- //没有EndOfVisit
- //if (svCommand.IsFinalVisit)
- //{
- // //if (svCommand.InPlan)
- // //{
- // await _repository.UpdateFromQueryAsync(t => t.Id == svCommand.SubjectId, u => new Subject() { Status = SubjectStatus.EndOfVisit });
- // //}
- // //else
- // //{
- // // return ResponseOutput.NotOk("计划外访视不允许设置为最后一次访视");
-
- // //}
- //}
- #endregion
-
svCommand.BlindName = "B" + ((int)(svCommand.VisitNum * 10)).ToString("D3");
var subject = (await _repository.FirstOrDefaultAsync(t => t.Id == svCommand.SubjectId)).IfNullThrowException();
- //不管是否 都是执行,只是失访的时候 设置Subject状态为失去访视
- //if (svCommand.IsLostVisit)
- //{
- // svCommand.VisitExecuted = VisitExecutedEnum.Executed;
- // subject.IsMissingImages = true;
-
- //}
- //else
- //{
- // svCommand.VisitExecuted = VisitExecutedEnum.Executed;
- //}
svCommand.VisitExecuted = svCommand.IsLostVisit ? VisitExecutedEnum.Executed : svCommand.VisitExecuted;
@@ -141,6 +96,14 @@ namespace IRaCIS.Core.Application.Services
await _subjectVisitRepository.UpdateFromQueryAsync(t => t.SubjectId == svCommand.SubjectId && t.VisitExecuted == VisitExecutedEnum.Unavailable, u => new SubjectVisit() { VisitExecuted = VisitExecutedEnum.UnExecuted });
}
+ if (svCommand.IsLostVisit && svCommand.Id == null)
+ {
+ if (await _subjectVisitRepository.AnyAsync(t => t.Id==svCommand.Id && t.SubmitState == SubmitStateEnum.ToSubmit))
+ {
+ return ResponseOutput.NotOk("该受试者此访视有影像上传,不允许设置为失访");
+ }
+ }
+
//更新受试者 首次给药日期 是否入组确认
if (svCommand.SubjectFirstGiveMedicineTime != null)
{
diff --git a/IRaCIS.Core.Domain/SiteSurvey/TrialSiteUserSurvey.cs b/IRaCIS.Core.Domain/SiteSurvey/TrialSiteUserSurvey.cs
index bba98c9e0..bef43ad72 100644
--- a/IRaCIS.Core.Domain/SiteSurvey/TrialSiteUserSurvey.cs
+++ b/IRaCIS.Core.Domain/SiteSurvey/TrialSiteUserSurvey.cs
@@ -30,7 +30,7 @@ namespace IRaCIS.Core.Domain.Models
public Guid? UserTypeId { get; set; }
- public Guid? TrialRoleNameId { get; set; }
+ public Guid TrialRoleNameId { get; set; }
public Dictionary TrialRoleName { get; set; }