修改一版
parent
df9d4fa7e5
commit
ec26ce377e
|
@ -16,6 +16,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public string FileName { get; set; }
|
||||
}
|
||||
|
||||
public class SubjectTask
|
||||
{
|
||||
public Guid SubjectId { get; set; }
|
||||
|
||||
public int UnReadTaskCount { get; set; }
|
||||
|
||||
public int Index { get; set; }
|
||||
}
|
||||
|
||||
public class GetReadingTaskDto
|
||||
{
|
||||
public Guid VisistTaskId { get; set; }
|
||||
|
@ -23,6 +32,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
|
||||
public Guid SubjectId { get; set; }
|
||||
|
||||
public string SubjectCode { get; set; }
|
||||
|
||||
public ReadingCategory ReadingCategory { get; set; }
|
||||
|
||||
public decimal VisitNum { get; set; }
|
||||
|
|
|
@ -31,6 +31,7 @@ namespace IRaCIS.Application.Services
|
|||
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||
private readonly IVisitTaskHelpeService _visitTaskHelpeService;
|
||||
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
||||
private readonly IRepository<Subject> _subjectRepository;
|
||||
private readonly IRepository<ReadModule> _readModuleRepository;
|
||||
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository;
|
||||
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository;
|
||||
|
@ -43,6 +44,7 @@ namespace IRaCIS.Application.Services
|
|||
IRepository<VisitTask> visitTaskRepository,
|
||||
IVisitTaskHelpeService visitTaskHelpeService,
|
||||
IRepository<SubjectVisit> subjectVisitRepository,
|
||||
IRepository<Subject> subjectRepository,
|
||||
IRepository<ReadModule> readModuleRepository,
|
||||
IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository,
|
||||
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrialRepository,
|
||||
|
@ -54,6 +56,7 @@ namespace IRaCIS.Application.Services
|
|||
this._visitTaskRepository = visitTaskRepository;
|
||||
this._visitTaskHelpeService = visitTaskHelpeService;
|
||||
this._subjectVisitRepository = subjectVisitRepository;
|
||||
this._subjectRepository = subjectRepository;
|
||||
this._readModuleRepository = readModuleRepository;
|
||||
this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
|
||||
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
|
||||
|
@ -85,7 +88,19 @@ namespace IRaCIS.Application.Services
|
|||
}
|
||||
if (subjectId != null)
|
||||
{
|
||||
task = await _visitTaskRepository.Where(x => x.TrialId == trialId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.SubjectId == subjectId.Value&&x.DoctorUserId == _userInfo.Id).Select(x => new GetReadingTaskDto()
|
||||
|
||||
var subjectList = await _subjectRepository.Where(t => t.TrialId == trialId)
|
||||
.Where(t => t.SubjectDoctorList.Any(t => t.DoctorUserId == _userInfo.Id))
|
||||
.Select((s,index) => new SubjectTask()
|
||||
{
|
||||
Index=index,
|
||||
SubjectId = s.Id,
|
||||
UnReadTaskCount = s.SubjectVisitTaskList.Count(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.DoctorUserId == _userInfo.Id),
|
||||
}).ToListAsync();
|
||||
|
||||
var subjectIndex = subjectList.Where(x => x.SubjectId == subjectId).Select(x=>x.Index).FirstOrDefault();
|
||||
var newSubjectId = subjectList.Where(x => x.Index >= subjectIndex && x.UnReadTaskCount != 0).Select(x=>x.SubjectId).FirstOrDefault();
|
||||
task = await _visitTaskRepository.Where(x => x.TrialId == trialId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.SubjectId == newSubjectId && x.DoctorUserId == _userInfo.Id).Select(x => new GetReadingTaskDto()
|
||||
{
|
||||
VisistTaskId=x.Id,
|
||||
ReadingCategory = x.ReadingCategory,
|
||||
|
@ -115,7 +130,7 @@ namespace IRaCIS.Application.Services
|
|||
}
|
||||
task.SubjectId = await _subjectVisitRepository.Where(x => x.Id == task.VisistId).Select(x => x.SubjectId).FirstOrDefaultAsync();
|
||||
}
|
||||
|
||||
task.SubjectCode= await _subjectRepository.Where(x => x.Id == task.SubjectId).Select(x => x.Code).FirstOrDefaultAsync();
|
||||
return task;
|
||||
|
||||
|
||||
|
@ -149,6 +164,7 @@ namespace IRaCIS.Application.Services
|
|||
return (result, new {
|
||||
VisitTaskId= task.VisistTaskId,
|
||||
SubjectId=task.SubjectId,
|
||||
SubjectCode=task.SubjectCode,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue