This commit is contained in:
he
2022-12-30 14:09:30 +08:00
parent c00b63a1b0
commit 153eefcc71
5 changed files with 52 additions and 6 deletions
@@ -79,6 +79,11 @@ namespace IRaCIS.Core.Application.ViewModel
public UserSimpleInfo DoctorUser { get; set; }
}
public class GetNextMedicalReviewTaskInDto
{
[NotDefault]
public Guid MedicalReviewId { get; set; }
}
///<summary>TaskMedicalReviewQuery 列表查询参数模型</summary>
@@ -89,6 +94,9 @@ namespace IRaCIS.Core.Application.ViewModel
public Guid? SubjectId { get; set; }
public bool IsGetBeRead { get; set; } = false;
public string SubjectCode { get; set; } = String.Empty;
public string TrialSiteCode { get; set; } = String.Empty;
@@ -125,6 +125,39 @@ namespace IRaCIS.Core.Application.Service
}
/// <summary>
/// 获取下一个医学审核任务
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
/// <exception cref="BusinessValidationFailedException"></exception>
[HttpPost]
public async Task<TaskMedicalReviewView> GetNextMedicalReviewTask(GetNextMedicalReviewTaskInDto inDto)
{
var medicalReview = await _taskMedicalReviewRepository.Where(x => x.Id == inDto.MedicalReviewId).Include(x=>x.VisitTask).FirstNotNullAsync();
var data =await GetMIMMedicalReviewTaskList(new TaskMedicalReviewQuery()
{
TrialId = medicalReview.TrialId,
IsGetBeRead = true,
TrialReadingCriterionId = medicalReview.VisitTask.TrialReadingCriterionId,
PageIndex=1,
PageSize=1,
});
if (data.Item1.CurrentPageData.Count == 1)
{
return data.Item1.CurrentPageData[0];
}
else
{
throw new BusinessValidationFailedException(_localizer["MedicalReview_Finish"]);
}
}
@@ -145,7 +178,7 @@ namespace IRaCIS.Core.Application.Service
.WhereIf(inQuery.DoctorUserId != null, t => t.VisitTask.DoctorUserId == inQuery.DoctorUserId)
.WhereIf(inQuery.ReadingCategory != null, t => t.VisitTask.ReadingCategory == inQuery.ReadingCategory)
.WhereIf(inQuery.ReadingTaskState != null, t => t.VisitTask.ReadingTaskState == inQuery.ReadingTaskState)
.WhereIf(inQuery.IsGetBeRead,x=>x.IsInvalid&&x.AuditState!= MedicalReviewAuditState.HaveSigned)
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
.ProjectTo<TaskMedicalReviewView>(_mapper.ConfigurationProvider);