修改一版
parent
d41b46b526
commit
df15f9e22a
|
@ -68,7 +68,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public List<Guid> SubjectVisitIds { get; set; }
|
||||
}
|
||||
|
||||
public class PreviewTheReadingListInDto
|
||||
public class PreviewTheReadingListInDto:PageInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 阅片期ID
|
||||
|
|
|
@ -81,7 +81,8 @@ namespace IRaCIS.Application.Services
|
|||
/// 获取影像阅片的预览 // 需要清除之前已经选中的
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<List<PreviewTheReadingListOutDto>> GetPreviewTheReadingList(PreviewTheReadingListInDto inDto)
|
||||
[HttpPost]
|
||||
public async Task<PageOutput<PreviewTheReadingListOutDto> > GetPreviewTheReadingList(PreviewTheReadingListInDto inDto)
|
||||
{
|
||||
if (await _readingPeriodPlanRepository.AnyAsync(x => x.ReadingPeriodSetId == inDto.ReadingPeriodSetId))
|
||||
{
|
||||
|
@ -95,63 +96,61 @@ namespace IRaCIS.Application.Services
|
|||
var siteIds = readSet.ReadingPeriodSites.Select(x => x.SiteId);
|
||||
visitQuery = visitQuery.Where(x => siteIds.Contains(x.SiteId));
|
||||
}
|
||||
|
||||
visitQuery = visitQuery.WhereIf(readSet.ExpirationDate != null, x => x.LatestScanDate <= readSet.ExpirationDate.Value)
|
||||
.WhereIf(readSet.ExpirationVisitNum != null, x => x.VisitNum == readSet.ExpirationVisitNum);
|
||||
var subjectVisits = await visitQuery.Include(x => x.Subject).Include(x => x.TrialSite).GroupBy(x => x.SubjectId).Select(x => new
|
||||
var subjectIdlist = await visitQuery.OrderBy(x => x.SubjectId).Select(x => x.SubjectId).Distinct().Skip((inDto.PageIndex - 1) * inDto.PageSize).Take(inDto.PageSize).ToListAsync();
|
||||
var totalCount = visitQuery.Select(x => x.SubjectId).Distinct().Count();
|
||||
var visitlist= await visitQuery.Include(x=>x.Subject).Include(x=>x.TrialSite).Where(x => subjectIdlist.Contains(x.SubjectId)).ToListAsync();
|
||||
var subjectVisits = visitlist.GroupBy(x => x.SubjectId).Select(x => new
|
||||
{
|
||||
SubjectId = x.Key,
|
||||
Visit = x.ToList()
|
||||
}).ToListAsync();
|
||||
});
|
||||
|
||||
|
||||
// 这地方用分页报错
|
||||
//var visitListQuery = visitQuery.GroupBy(x => x.SubjectId).Select(x => new
|
||||
//{
|
||||
// SubjectId = x.Key,
|
||||
// Visit = x.ToList()
|
||||
//});
|
||||
// var subjectVisits = await visitListQuery.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? "SubjectId" : inDto.SortField,
|
||||
// inDto.Asc);
|
||||
|
||||
List<SubjectVisit> visits = new List<SubjectVisit>();
|
||||
subjectVisits.ForEach(x =>
|
||||
{
|
||||
var expirationDate = readSet.ExpirationDate;
|
||||
var subjectvisitlist = new List<SubjectVisit>();
|
||||
if (expirationDate != null)
|
||||
var visit = x.Visit.OrderByDescending(x => x.VisitNum).FirstOrDefault();
|
||||
if (visit != null)
|
||||
{
|
||||
subjectvisitlist = x.Visit.Where(x => x.LatestScanDate <= expirationDate).ToList();
|
||||
visits.Add(visit);
|
||||
}
|
||||
|
||||
if (readSet.ExpirationVisitNum != null)
|
||||
{
|
||||
var visit = x.Visit.Where(x => x.VisitNum == readSet.ExpirationVisitNum).FirstOrDefault();
|
||||
if (visit != null)
|
||||
{
|
||||
visits.Add(visit);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var visit = x.Visit.OrderByDescending(x => x.VisitNum).FirstOrDefault();
|
||||
if (visit != null)
|
||||
{
|
||||
visits.Add(visit);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
return visits
|
||||
|
||||
PageOutput<PreviewTheReadingListOutDto> result = new PageOutput<PreviewTheReadingListOutDto>()
|
||||
{
|
||||
CurrentPageData = visits
|
||||
//Where(x => _readModuleRepository.Where(y => y.ReadingSetType == readSet.ReadingSetType && x.Id == y.SubjectVisitId).Count() == 0)
|
||||
.Select(x => new PreviewTheReadingListOutDto
|
||||
{
|
||||
ExpirationDate= readSet.ExpirationDate,
|
||||
SubjectVisitId= x.Id,
|
||||
TrialSiteCode = x.TrialSite.TrialSiteCode,
|
||||
LatestScanDate=x.LatestScanDate,
|
||||
ReadingPeriodName= readSet.ReadingPeriodName,
|
||||
ReadingPeriodSetId= readSet.Id,
|
||||
SubjectCode=x.Subject.Code,
|
||||
SubjectId=x.SubjectId,
|
||||
SubjectVisitName=x.VisitName,
|
||||
//Remark= readset.Remark
|
||||
}).ToList();
|
||||
{
|
||||
ExpirationDate = readSet.ExpirationDate,
|
||||
SubjectVisitId = x.Id,
|
||||
TrialSiteCode = x.TrialSite.TrialSiteCode,
|
||||
LatestScanDate = x.LatestScanDate,
|
||||
ReadingPeriodName = readSet.ReadingPeriodName,
|
||||
ReadingPeriodSetId = readSet.Id,
|
||||
SubjectCode = x.Subject.Code,
|
||||
SubjectId = x.SubjectId,
|
||||
SubjectVisitName = x.VisitName,
|
||||
//Remark= readset.Remark
|
||||
}).ToList(),
|
||||
PageSize = inDto.PageSize,
|
||||
PageIndex = inDto.PageIndex,
|
||||
TotalCount = totalCount,
|
||||
|
||||
};
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -207,6 +206,7 @@ namespace IRaCIS.Application.Services
|
|||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<List<PreviewTheReadingListOutDto>> GetPreviewTheReadingPlanList(PreviewTheReadingListInDto inDto)
|
||||
{
|
||||
var plans =await _readingPeriodPlanRepository.Where(x => x.ReadingPeriodSetId == inDto.ReadingPeriodSetId).Include(x => x.SubjectVisit).Include(x => x.SubjectVisit.TrialSite).Include(x => x.SubjectVisit.Subject)
|
||||
|
|
Loading…
Reference in New Issue