查询增加 subject退出状态
This commit is contained in:
@@ -53,8 +53,8 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
|
||||
decimal thisVisitNum = 0;
|
||||
var readModule = await _readModuleRepository.Where(x => x.Id == inDto.Id).Include(x=>x.SubjectVisit).FirstOrDefaultAsync();
|
||||
if(readModule!=null)
|
||||
var readModule = await _readModuleRepository.Where(x => x.Id == inDto.Id).Include(x => x.SubjectVisit).FirstOrDefaultAsync();
|
||||
if (readModule != null)
|
||||
{
|
||||
thisVisitNum = readModule.SubjectVisit.VisitNum;
|
||||
}
|
||||
@@ -66,7 +66,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
var readModulequery = _readModuleRepository.AsQueryable().Where(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId);
|
||||
|
||||
var resultlist = await visitQuery.WhereIf(finalVisitNum != null && finalVisitNum != 0, x => x.VisitNum <= finalVisitNum)
|
||||
.Where(x => x.VisitNum > mixReadVisitNum|| x.VisitNum==thisVisitNum)
|
||||
.Where(x => x.VisitNum > mixReadVisitNum || x.VisitNum == thisVisitNum)
|
||||
//.Where(x => !x.IsBaseLine) // 排除基线
|
||||
.WhereIf(inDto.ReadingSetType == ReadingSetType.TumorReading, x => readModulequery.Where(y => y.SubjectVisitId == x.Id && y.TrialReadingCriterionId == inDto.TrialReadingCriterionId && y.ReadingSetType == ReadingSetType.ImageReading).Count() > 0)
|
||||
.WhereIf(inDto.ReadingSetType == ReadingSetType.ImageReading, x => readModulequery.Where(y => y.Id != inDto.Id && y.SubjectVisitId == x.Id && y.TrialReadingCriterionId == inDto.TrialReadingCriterionId && y.ReadingSetType == ReadingSetType.ImageReading).Count() == 0)
|
||||
@@ -526,6 +526,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
#region 方式二
|
||||
|
||||
var subjectVisitQuery = _subjectVisitRepository.Where(t => t.TrialId == inQuery.TrialId)/*.Where(t => t.IsLostVisit == false)*/
|
||||
.Where(t => t.Subject.IsSubjectQuit == false || (t.Subject.IsSubjectQuit == true && t.SubmitState == SubmitStateEnum.Submitted))
|
||||
.Where(sv => sv.Subject.FinalSubjectVisitId == null ? true : sv.VisitNum <= sv.Subject.LatestSubjectVisit.VisitNum).Select(sv => new ReadModuleView()
|
||||
{
|
||||
Id = sv.Id,
|
||||
@@ -533,6 +534,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
PDState = sv.PDState,
|
||||
IsBaseLine = sv.IsBaseLine,
|
||||
SubjectCode = sv.Subject.Code,
|
||||
IsSubjectQuit = sv.Subject.IsSubjectQuit,
|
||||
IsEnrollmentConfirm = sv.IsEnrollmentConfirm,
|
||||
IsFinalVisit = sv.IsFinalVisit,
|
||||
SubjectId = sv.SubjectId,
|
||||
@@ -600,6 +602,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
});
|
||||
|
||||
var readMouduleQuery = _readModuleRepository.Where(t => t.TrialId == inQuery.TrialId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
|
||||
.Where(t => t.Subject.IsSubjectQuit == false || (t.Subject.IsSubjectQuit == true && t.SubjectVisit.SubmitState == SubmitStateEnum.Submitted))
|
||||
.Select(rm => new ReadModuleView()
|
||||
{
|
||||
Id = rm.Id,
|
||||
@@ -607,6 +610,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
PDState = PDStateEnum.None,
|
||||
IsBaseLine = false,
|
||||
SubjectCode = rm.SubjectVisit.Subject.Code,
|
||||
IsSubjectQuit = rm.SubjectVisit.Subject.IsSubjectQuit,
|
||||
IsEnrollmentConfirm = false,
|
||||
IsFinalVisit = false,
|
||||
SubjectId = rm.SubjectId,
|
||||
@@ -699,13 +703,14 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
var viewList = await query.Where(x => subjectIds.Contains(x.SubjectId)).SortToListAsync(inQuery);
|
||||
|
||||
var list = viewList.GroupBy(x => new { x.SubjectId, x.TrialSiteId, x.TrialSiteCode, x.SubjectCode })
|
||||
var list = viewList.GroupBy(x => new { x.SubjectId, x.TrialSiteId, x.TrialSiteCode, x.SubjectCode, x.IsSubjectQuit })
|
||||
.Select(x => new GetReadModuleDtoOut()
|
||||
{
|
||||
TrialSiteCode = x.Key.TrialSiteCode,
|
||||
TrialSiteId = x.Key.TrialSiteId,
|
||||
SubjectCode = x.Key.SubjectCode,
|
||||
SubjectId = x.Key.SubjectId,
|
||||
IsSubjectQuit = x.Key.IsSubjectQuit,
|
||||
Data = x.OrderBy(x => x.ModuleType).ThenBy(x => x.VisitNum).ToList(),
|
||||
}).ToList();
|
||||
|
||||
@@ -929,7 +934,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[TrialGlobalLimit( "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("AfterStopCannNotOpt")]
|
||||
public async Task<IResponseOutput> AddReadModule(ReadModuleAddDto dto)
|
||||
{
|
||||
|
||||
@@ -1095,7 +1100,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
/// <param name="readModuleId"></param>
|
||||
/// <returns></returns>
|
||||
[HttpDelete("{readModuleId:guid}")]
|
||||
[TrialGlobalLimit( "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("AfterStopCannNotOpt")]
|
||||
public async Task<IResponseOutput> DeleteReadModule(Guid readModuleId)
|
||||
{
|
||||
|
||||
|
||||
Reference in New Issue
Block a user