修改一版
parent
6aad84f298
commit
906c690fbc
|
@ -377,6 +377,9 @@ namespace IRaCIS.Application.Services
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<List<GetSubjectReadVisitsOutDto>> GetSubjectReadVisitList(GetSubjectReadVisitsInDto inDto)
|
public async Task<List<GetSubjectReadVisitsOutDto>> GetSubjectReadVisitList(GetSubjectReadVisitsInDto inDto)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
var maxReadVisitNum = await _readModuleRepository.Where(x => x.SubjectId == inDto.SubjectId && x.ModuleType != ModuleTypeEnum.Global).MaxAsync(x => x.VisitNum);
|
||||||
|
|
||||||
var visitQuery = _subjectVisitRepository.Where(x => x.SubjectId == inDto.SubjectId && x.LatestScanDate != null);
|
var visitQuery = _subjectVisitRepository.Where(x => x.SubjectId == inDto.SubjectId && x.LatestScanDate != null);
|
||||||
|
|
||||||
var finalVisitNum = await visitQuery.Where(x => x.IsFinalVisit).Select(x => x.VisitNum).FirstOrDefaultAsync();
|
var finalVisitNum = await visitQuery.Where(x => x.IsFinalVisit).Select(x => x.VisitNum).FirstOrDefaultAsync();
|
||||||
|
@ -384,6 +387,7 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
var readModulequery = _readModuleRepository.AsQueryable();
|
var readModulequery = _readModuleRepository.AsQueryable();
|
||||||
var resultlist= await visitQuery.WhereIf(finalVisitNum != null&& finalVisitNum!=0, x => x.VisitNum < finalVisitNum)
|
var resultlist= await visitQuery.WhereIf(finalVisitNum != null&& finalVisitNum!=0, x => x.VisitNum < finalVisitNum)
|
||||||
|
.Where(x=>x.VisitNum>= maxReadVisitNum)
|
||||||
.Where(x => readModulequery.Where(y => y.SubjectVisitId == x.Id && y.ReadingSetType == inDto.ReadingSetType).Count() == 0).OrderBy(x => finalVisitNum)
|
.Where(x => readModulequery.Where(y => y.SubjectVisitId == x.Id && y.ReadingSetType == inDto.ReadingSetType).Count() == 0).OrderBy(x => finalVisitNum)
|
||||||
.Select(x => new GetSubjectReadVisitsOutDto()
|
.Select(x => new GetSubjectReadVisitsOutDto()
|
||||||
{
|
{
|
||||||
|
@ -421,7 +425,8 @@ namespace IRaCIS.Application.Services
|
||||||
SubjectVisitId = visit.Id,
|
SubjectVisitId = visit.Id,
|
||||||
ReadingSetType= dto.ReadingSetType,
|
ReadingSetType= dto.ReadingSetType,
|
||||||
TrialId= dto.TrialId,
|
TrialId= dto.TrialId,
|
||||||
Status = ReadingCommon.GetVisitSubmitStateEnum(visit),
|
VisitNum= visit.VisitNum,
|
||||||
|
Status = ReadModuleEnum.TaskAllocation,
|
||||||
|
|
||||||
});
|
});
|
||||||
var res = await _readModuleRepository.SaveChangesAsync();
|
var res = await _readModuleRepository.SaveChangesAsync();
|
||||||
|
@ -432,6 +437,7 @@ namespace IRaCIS.Application.Services
|
||||||
return ResponseOutput.NotOk("No qualified visit was found ");
|
return ResponseOutput.NotOk("No qualified visit was found ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -288,8 +288,12 @@ namespace IRaCIS.Application.Services
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<List<GetReadingVisitListOutDto>> GetReadingVisitList(GetReadingVisitListInDto inDto)
|
public async Task<List<GetReadingVisitListOutDto>> GetReadingVisitList(GetReadingVisitListInDto inDto)
|
||||||
{
|
{
|
||||||
var visitStageIdList = await _readingPeriodSetRepository.Where(x => x.TrialId == inDto.TrialId && x.Id != inDto.ReadingPeriodSetId&&x.VisitStageId!=null&&x.ReadingSetType==inDto.ReadingSetType).Select(x => x.VisitStageId).ToListAsync();
|
var maxVisitnum = await _readingPeriodSetRepository.Where(x => x.TrialId == inDto.TrialId && x.ReadingSetType == inDto.ReadingSetType&&(x.IsTakeEffect== ReadingPeriodStatus.TakeEffect||x.IsTakeEffect==ReadingPeriodStatus.Revocation)).MaxAsync(x => x.ExpirationVisitNum)??0;
|
||||||
List<GetReadingVisitListOutDto> result = await _visitStageRepository.Where(x => x.TrialId == inDto.TrialId && !visitStageIdList.Contains(x.Id)).Select(x => new GetReadingVisitListOutDto()
|
|
||||||
|
var thisVisitnum = await _readingPeriodSetRepository.Where(x => x.Id == inDto.ReadingPeriodSetId).Select(x => x.ExpirationVisitNum).FirstOrDefaultAsync() ?? -1;
|
||||||
|
|
||||||
|
//var visitStageIdList = await _readingPeriodSetRepository.Where(x => x.TrialId == inDto.TrialId && x.Id != inDto.ReadingPeriodSetId&&x.VisitStageId!=null&&x.ReadingSetType==inDto.ReadingSetType).Select(x => x.VisitStageId).ToListAsync();
|
||||||
|
List <GetReadingVisitListOutDto> result = await _visitStageRepository.Where(x => x.TrialId == inDto.TrialId ).Where(x=>x.VisitNum== thisVisitnum|| x.VisitNum >= maxVisitnum).Select(x => new GetReadingVisitListOutDto()
|
||||||
{
|
{
|
||||||
|
|
||||||
VisitName = x.VisitName,
|
VisitName = x.VisitName,
|
||||||
|
@ -312,7 +316,7 @@ namespace IRaCIS.Application.Services
|
||||||
{
|
{
|
||||||
var readingPeriodSet =await _readingPeriodSetRepository.Where(x => x.Id == indto.Id).FirstOrDefaultAsync();
|
var readingPeriodSet =await _readingPeriodSetRepository.Where(x => x.Id == indto.Id).FirstOrDefaultAsync();
|
||||||
var plans = _readingPeriodPlanRepository.Where(x => x.ReadingPeriodSetId == indto.Id).Include(x=>x.SubjectVisit)
|
var plans = _readingPeriodPlanRepository.Where(x => x.ReadingPeriodSetId == indto.Id).Include(x=>x.SubjectVisit)
|
||||||
.Include(x => x.ReadingPeriodSet).ToList();
|
.Include(x => x.ReadingPeriodSet).Include(x=>x.SubjectVisit).ToList();
|
||||||
var needAddVisitIds = plans.Select(x => x.SubjectVisitId).ToList();
|
var needAddVisitIds = plans.Select(x => x.SubjectVisitId).ToList();
|
||||||
var repeatVisitNames = _readModuleRepository.Where(x => x.ReadingSetType == ReadingSetType.ImageReading && needAddVisitIds.Contains(x.SubjectVisitId)).Select(x =>x.Subject.Code+"的"+ x.SubjectVisit.VisitName).ToList();
|
var repeatVisitNames = _readModuleRepository.Where(x => x.ReadingSetType == ReadingSetType.ImageReading && needAddVisitIds.Contains(x.SubjectVisitId)).Select(x =>x.Subject.Code+"的"+ x.SubjectVisit.VisitName).ToList();
|
||||||
|
|
||||||
|
@ -336,6 +340,7 @@ namespace IRaCIS.Application.Services
|
||||||
ReadingPeriodSetId= item.ReadingPeriodSet.Id,
|
ReadingPeriodSetId= item.ReadingPeriodSet.Id,
|
||||||
Status = ReadModuleEnum.TaskAllocation,
|
Status = ReadModuleEnum.TaskAllocation,
|
||||||
TrialId = readingPeriodSet.TrialId,
|
TrialId = readingPeriodSet.TrialId,
|
||||||
|
VisitNum= item.SubjectVisit.VisitNum,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -163,6 +163,7 @@ namespace IRaCIS.Core.Application.Services
|
||||||
ReadingSetType = ReadingSetType.ImageReading,
|
ReadingSetType = ReadingSetType.ImageReading,
|
||||||
ModuleType = ModuleTypeEnum.Global,
|
ModuleType = ModuleTypeEnum.Global,
|
||||||
TrialId= dbBeforeEntity.TrialId,
|
TrialId= dbBeforeEntity.TrialId,
|
||||||
|
VisitNum= dbBeforeEntity.VisitNum,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,6 +75,11 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public decimal VisitNum { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 对应
|
/// 对应
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
Loading…
Reference in New Issue