IRC_NewDev
parent
99688df446
commit
0912909b68
|
@ -98,7 +98,7 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
public Guid? SiteId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 传了Id 就不查询这条数据
|
||||
/// 传了Id
|
||||
/// </summary>
|
||||
public Guid? Id { get; set; }
|
||||
|
||||
|
@ -111,7 +111,6 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
|
||||
public DateTime? EndSignTime { get; set; }
|
||||
|
||||
public bool IsGetBeRead { get; set; } = false;
|
||||
|
||||
public bool IsGetNextMedicalReviewTask { get; set; } = false;
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ using IRaCIS.Core.Application.ViewModel;
|
|||
using IRaCIS.Core.Infrastructure;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using IRaCIS.Core.Application.Filter;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace IRaCIS.Core.Application.Service
|
||||
{
|
||||
|
@ -143,47 +144,45 @@ namespace IRaCIS.Core.Application.Service
|
|||
[HttpPost]
|
||||
public async Task<TaskMedicalReviewView> GetNextMedicalReviewTask(GetNextMedicalReviewTaskInDto inDto)
|
||||
{
|
||||
var medicalReview = await _taskMedicalReviewRepository.Where(x => x.Id == inDto.MedicalReviewId).Include(x=>x.VisitTask).FirstNotNullAsync();
|
||||
var medicalReview = await _taskMedicalReviewRepository.Where(x => x.Id == inDto.MedicalReviewId).Include(x => x.VisitTask).FirstNotNullAsync();
|
||||
|
||||
var subjectReview = (await GetMIMMedicalReviewTaskList(new TaskMedicalReviewQuery()
|
||||
{
|
||||
|
||||
TrialId = medicalReview.TrialId,
|
||||
IsGetBeRead = true,
|
||||
Id=inDto.MedicalReviewId,
|
||||
SubjectId= medicalReview.VisitTask.SubjectId,
|
||||
TrialReadingCriterionId = medicalReview.VisitTask.TrialReadingCriterionId,
|
||||
IsGetNextMedicalReviewTask = true,
|
||||
PageIndex=1,
|
||||
PageSize=1,
|
||||
})).Data;
|
||||
|
||||
if (subjectReview.CurrentPageData.Count == 1)
|
||||
{
|
||||
return subjectReview.CurrentPageData[0];
|
||||
}
|
||||
|
||||
var data = (await GetMIMMedicalReviewTaskList(new TaskMedicalReviewQuery()
|
||||
{
|
||||
|
||||
TrialId = medicalReview.TrialId,
|
||||
IsGetBeRead = true,
|
||||
Id = inDto.MedicalReviewId,
|
||||
TrialReadingCriterionId = medicalReview.VisitTask.TrialReadingCriterionId,
|
||||
IsGetNextMedicalReviewTask = true,
|
||||
PageIndex = 1,
|
||||
PageSize = 1,
|
||||
IsGetNextMedicalReviewTask = true,
|
||||
PageIndex = 1,
|
||||
PageSize = 99999,
|
||||
})).Data;
|
||||
|
||||
if (data.CurrentPageData.Count == 1)
|
||||
|
||||
if (data.CurrentPageData.Count > 0)
|
||||
{
|
||||
return data.CurrentPageData[0];
|
||||
|
||||
var index = data.CurrentPageData.ToList().FindIndex(x => x.Id == inDto.MedicalReviewId);
|
||||
|
||||
var result = new TaskMedicalReviewView() { };
|
||||
|
||||
if (index == -1 || data.CurrentPageData.Count == 1)
|
||||
{
|
||||
result = data.CurrentPageData[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
result = data.CurrentPageData.Skip(index + 1).Take(1).First();
|
||||
|
||||
}
|
||||
return result;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new BusinessValidationFailedException(_localizer["MedicalReview_Finish"]);
|
||||
}
|
||||
|
||||
throw new BusinessValidationFailedException(_localizer["MedicalReview_Finish"]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -201,16 +200,15 @@ namespace IRaCIS.Core.Application.Service
|
|||
var taskMedicalReviewQueryable = _taskMedicalReviewRepository.Where(t => t.VisitTask.TrialId == inQuery.TrialId && t.MedicalManagerUserId == _userInfo.Id&&t.VisitTask.TrialReadingCriterionId==inQuery.TrialReadingCriterionId)
|
||||
|
||||
.WhereIf(inQuery.IsGetNextMedicalReviewTask,
|
||||
x=>x.AuditState!= MedicalReviewAuditState.HaveSigned &
|
||||
|
||||
x=>( !x.IsInvalid&&x.AuditState!= MedicalReviewAuditState.HaveSigned &
|
||||
( x.ReadingMedicalReviewDialogList.Count()!=0&&
|
||||
|
||||
x.ReadingMedicalReviewDialogList.Count()>0&&
|
||||
x.ReadingMedicalReviewDialogList.OrderByDescending(x=>x.CreateTime).FirstOrDefault().UserTypeEnumInt==(int)UserTypeEnum.IndependentReviewer))
|
||||
x.ReadingMedicalReviewDialogList.OrderByDescending(x=>x.CreateTime).FirstOrDefault().UserTypeEnumInt==(int)UserTypeEnum.IndependentReviewer)
|
||||
) ||x.Id == inQuery.Id // 这里必须找传入id 因为要找到这条的索引 获取下一条
|
||||
)
|
||||
.WhereIf(inQuery.SubjectId != null, t => t.VisitTask.SubjectId == inQuery.SubjectId)
|
||||
.WhereIf(inQuery.SiteId != null, t => t.VisitTask.Subject.SiteId == inQuery.SiteId)
|
||||
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.VisitTask.Subject.Code.Contains(inQuery.SubjectCode))
|
||||
.WhereIf(inQuery.Id != null, t => t.Id != inQuery.Id)
|
||||
.WhereIf(inQuery.IsUrgent != null, t => t.VisitTask.IsUrgent == inQuery.IsUrgent)
|
||||
.WhereIf(inQuery.AuditState != null, t => t.AuditState == inQuery.AuditState)
|
||||
.WhereIf(inQuery.DoctorUserIdeaEnum != null, t => t.DoctorUserIdeaEnum == inQuery.DoctorUserIdeaEnum)
|
||||
|
@ -219,7 +217,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
.WhereIf(inQuery.ReadingCategory != null, t => t.VisitTask.ReadingCategory == inQuery.ReadingCategory)
|
||||
.WhereIf(inQuery.ReadingTaskState != null, t => t.VisitTask.ReadingTaskState == inQuery.ReadingTaskState)
|
||||
.WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid)
|
||||
.WhereIf(inQuery.IsGetBeRead,x=>!x.IsInvalid&&x.AuditState!= MedicalReviewAuditState.HaveSigned)
|
||||
//.WhereIf(inQuery.IsGetBeRead,x=>!x.IsInvalid&&x.AuditState!= MedicalReviewAuditState.HaveSigned)
|
||||
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
|
||||
.OrderBy(x=>x.VisitTask.SubjectId).ThenBy(x => x.AuditState).ThenBy(x=>x.VisitTask.ArmEnum).ThenBy(x=>x.VisitTask.VisitTaskNum)
|
||||
.ProjectTo<TaskMedicalReviewView>(_mapper.ConfigurationProvider);
|
||||
|
|
Loading…
Reference in New Issue