修改一版
This commit is contained in:
@@ -82,7 +82,6 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||
public class PreviewTheReadingListInDto : PageInput
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 中心ID
|
||||
/// </summary>
|
||||
@@ -113,6 +112,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||
/// </summary>
|
||||
public string ReadingPeriodName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类型
|
||||
/// </summary>
|
||||
public ReadingSetType ReadingSetType { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -171,6 +175,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||
|
||||
public string SubjectVisitName { get; set; }
|
||||
|
||||
public DateTime? EffectOfTime { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class ReadingPeriodSetView
|
||||
@@ -221,6 +228,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||
/// </summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 生效时间
|
||||
/// </summary>
|
||||
public DateTime? EffectOfTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人
|
||||
/// </summary>
|
||||
|
||||
@@ -420,6 +420,7 @@ namespace IRaCIS.Application.Services
|
||||
ModuleName = dto.Name,
|
||||
SubjectVisitId = visit.Id,
|
||||
ReadingSetType= dto.ReadingSetType,
|
||||
TrialId= dto.TrialId,
|
||||
Status = ReadingCommon.GetVisitSubmitStateEnum(visit),
|
||||
|
||||
});
|
||||
|
||||
@@ -49,6 +49,14 @@ namespace IRaCIS.Application.Services
|
||||
[HttpPost]
|
||||
public async Task<IResponseOutput> AddOrUpdateReadingPeriodSet(ReadingPeriodSetAddOrEdit addOrEditReadingPeriodSet)
|
||||
{
|
||||
if (await _readingPeriodSetRepository.AnyAsync(x => x.Id != addOrEditReadingPeriodSet.Id && x.ReadingPeriodName == addOrEditReadingPeriodSet.ReadingPeriodName))
|
||||
{
|
||||
return ResponseOutput.NotOk("阅片期名称重复,操作失败");
|
||||
}
|
||||
if (addOrEditReadingPeriodSet.ReadingPeriodName == "Global")
|
||||
{
|
||||
return ResponseOutput.NotOk("阅片期名称不能为");
|
||||
}
|
||||
if (addOrEditReadingPeriodSet.Id == null)
|
||||
{
|
||||
var entity = _mapper.Map<ReadingPeriodSet>(addOrEditReadingPeriodSet);
|
||||
@@ -113,9 +121,18 @@ namespace IRaCIS.Application.Services
|
||||
{
|
||||
|
||||
visitQuery = visitQuery.Where(x => inDto.SiteIds.Contains(x.SiteId));
|
||||
|
||||
}
|
||||
visitQuery = visitQuery.WhereIf(inDto.ExpirationDate != null, x => x.LatestScanDate <= inDto.ExpirationDate.Value)
|
||||
|
||||
//var
|
||||
var existsBubjectVisits = await _readModuleRepository.Where(y => y.ReadingSetType == inDto.ReadingSetType && y.TrialId == inDto.TrialId).Select(x => x.SubjectVisitId).ToListAsync();
|
||||
visitQuery = visitQuery.Where(x => existsBubjectVisits.Where(y =>x.Id == y).Count() == 0)
|
||||
.WhereIf(inDto.ExpirationDate != null, x => x.LatestScanDate <= inDto.ExpirationDate.Value)
|
||||
.WhereIf(inDto.ExpirationVisitNum != null, x => x.VisitNum == inDto.ExpirationVisitNum);
|
||||
|
||||
|
||||
|
||||
|
||||
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();
|
||||
@@ -216,7 +233,8 @@ namespace IRaCIS.Application.Services
|
||||
SubjectCode = x.SubjectVisit.Subject.Code,
|
||||
SubjectId = x.SubjectVisit.SubjectId,
|
||||
SubjectVisitName = x.SubjectVisit.VisitName,
|
||||
});
|
||||
EffectOfTime=x.ReadingPeriodSet.EffectOfTime,
|
||||
});
|
||||
|
||||
return await plans.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? "SubjectId" : inDto.SortField,
|
||||
inDto.Asc);
|
||||
@@ -237,6 +255,11 @@ namespace IRaCIS.Application.Services
|
||||
.ProjectTo<ReadingPeriodSetView>(_mapper.ConfigurationProvider);
|
||||
var pageList= await readQuery.ToPagedListAsync(query.PageIndex, query.PageSize, query.SortField == null ? "CreateTime" : query.SortField,
|
||||
query.Asc);
|
||||
|
||||
pageList.CurrentPageData.ForEach(x =>
|
||||
{
|
||||
x.SubjectVisitName = x.ReadingPeriodName == "Global" ? "末次访视" : x.SubjectVisitName;
|
||||
});
|
||||
return pageList;
|
||||
}
|
||||
|
||||
@@ -266,10 +289,12 @@ namespace IRaCIS.Application.Services
|
||||
{
|
||||
if (indto.IsTakeEffect == ReadingPeriodStatus.TakeEffect)
|
||||
{
|
||||
var readingPeriodSet =await _readingPeriodSetRepository.FirstOrDefaultAsync(x => x.Id == indto.Id);
|
||||
var plans = _readingPeriodPlanRepository.Where(x => x.ReadingPeriodSetId == indto.Id).Include(x=>x.SubjectVisit)
|
||||
.Include(x => x.ReadingPeriodSet).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.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();
|
||||
|
||||
if(repeatVisitNames.Count!=0)
|
||||
{
|
||||
return ResponseOutput.NotOk($"{string.Join(",", repeatVisitNames)}已经添加过阅片期,无法设置生效");
|
||||
@@ -288,7 +313,8 @@ namespace IRaCIS.Application.Services
|
||||
SubjectVisitId = item.SubjectVisitId,
|
||||
ReadingSetType = item.ReadingPeriodSet.ReadingSetType,
|
||||
ReadingPeriodSetId= item.ReadingPeriodSet.Id,
|
||||
Status = ReadingCommon.GetVisitSubmitStateEnum(item.SubjectVisit),
|
||||
Status = ReadModuleEnum.TaskAllocation,
|
||||
TrialId = readingPeriodSet.TrialId,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -300,7 +326,8 @@ namespace IRaCIS.Application.Services
|
||||
}
|
||||
|
||||
var readQuery =await _readingPeriodSetRepository.UpdatePartialFromQueryAsync(indto.Id, x => new ReadingPeriodSet() {
|
||||
IsTakeEffect = indto.IsTakeEffect
|
||||
IsTakeEffect = indto.IsTakeEffect,
|
||||
EffectOfTime= indto.IsTakeEffect== ReadingPeriodStatus.TakeEffect?DateTime.Now:null,
|
||||
});
|
||||
|
||||
var result = await _readingPeriodSetRepository.SaveChangesAsync();
|
||||
|
||||
Reference in New Issue
Block a user