Uat_Study
parent
c423fb1047
commit
92274e954d
|
@ -10,6 +10,7 @@ using IRaCIS.Core.Application.Service.Reading.Dto;
|
||||||
using IRaCIS.Core.Domain.Share.Reading;
|
using IRaCIS.Core.Domain.Share.Reading;
|
||||||
using MassTransit;
|
using MassTransit;
|
||||||
using IRaCIS.Core.Infra.EFCore.Common;
|
using IRaCIS.Core.Infra.EFCore.Common;
|
||||||
|
using IRaCIS.Core.Infrastructure.Extention;
|
||||||
|
|
||||||
namespace IRaCIS.Application.Services
|
namespace IRaCIS.Application.Services
|
||||||
{
|
{
|
||||||
|
@ -27,12 +28,15 @@ namespace IRaCIS.Application.Services
|
||||||
private readonly IRepository<ReadingPeriodPlan> _readingPeriodPlanRepository;
|
private readonly IRepository<ReadingPeriodPlan> _readingPeriodPlanRepository;
|
||||||
private readonly IRepository<Site> _siteSetRepository;
|
private readonly IRepository<Site> _siteSetRepository;
|
||||||
|
|
||||||
|
private readonly IRepository<Subject> _subjectRepository;
|
||||||
|
|
||||||
public ReadingPeriodSetService(IRepository<SubjectVisit> subjectVisitRepository,
|
public ReadingPeriodSetService(IRepository<SubjectVisit> subjectVisitRepository,
|
||||||
IRepository<ReadingPeriodSet> ReadingPeriodSetRepository,
|
IRepository<ReadingPeriodSet> ReadingPeriodSetRepository,
|
||||||
IRepository<ReadModule> readModuleRepository,
|
IRepository<ReadModule> readModuleRepository,
|
||||||
IRepository<VisitStage> visitStageRepository,
|
IRepository<VisitStage> visitStageRepository,
|
||||||
IRepository<ReadingPeriodPlan> readingPeriodPlanRepository,
|
IRepository<ReadingPeriodPlan> readingPeriodPlanRepository,
|
||||||
IRepository<Site> SiteSetRepository
|
IRepository<Site> SiteSetRepository,
|
||||||
|
IRepository<Subject> subjectRepository
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
_subjectVisitRepository = subjectVisitRepository;
|
_subjectVisitRepository = subjectVisitRepository;
|
||||||
|
@ -41,6 +45,8 @@ namespace IRaCIS.Application.Services
|
||||||
this._visitStageRepository = visitStageRepository;
|
this._visitStageRepository = visitStageRepository;
|
||||||
this._readingPeriodPlanRepository = readingPeriodPlanRepository;
|
this._readingPeriodPlanRepository = readingPeriodPlanRepository;
|
||||||
_siteSetRepository = SiteSetRepository;
|
_siteSetRepository = SiteSetRepository;
|
||||||
|
|
||||||
|
_subjectRepository = subjectRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,7 +58,7 @@ namespace IRaCIS.Application.Services
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IResponseOutput> AddOrUpdateReadingPeriodSet(ReadingPeriodSetAddOrEdit addOrEditReadingPeriodSet)
|
public async Task<IResponseOutput> AddOrUpdateReadingPeriodSet(ReadingPeriodSetAddOrEdit addOrEditReadingPeriodSet)
|
||||||
{
|
{
|
||||||
if (await _readingPeriodSetRepository.AnyAsync(x => x.Id != addOrEditReadingPeriodSet.Id &&x.TrialId==addOrEditReadingPeriodSet.TrialId && x.ReadingPeriodName == addOrEditReadingPeriodSet.ReadingPeriodName))
|
if (await _readingPeriodSetRepository.AnyAsync(x => x.Id != addOrEditReadingPeriodSet.Id && x.TrialId == addOrEditReadingPeriodSet.TrialId && x.ReadingPeriodName == addOrEditReadingPeriodSet.ReadingPeriodName))
|
||||||
{
|
{
|
||||||
return ResponseOutput.NotOk("阅片期名称重复,操作失败");
|
return ResponseOutput.NotOk("阅片期名称重复,操作失败");
|
||||||
}
|
}
|
||||||
|
@ -66,21 +72,21 @@ namespace IRaCIS.Application.Services
|
||||||
entity.ReadingPeriodSites = addOrEditReadingPeriodSet.SiteIds.Select(x => new ReadingPeriodSite()
|
entity.ReadingPeriodSites = addOrEditReadingPeriodSet.SiteIds.Select(x => new ReadingPeriodSite()
|
||||||
{
|
{
|
||||||
ReadingPeriodSetId = entity.Id,
|
ReadingPeriodSetId = entity.Id,
|
||||||
TrialId =entity.TrialId,
|
TrialId = entity.TrialId,
|
||||||
SiteId = x,
|
SiteId = x,
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
entity.ReadingPeriodPlanList = addOrEditReadingPeriodSet.SubjectVisitIds.Select(x => new ReadingPeriodPlan
|
entity.ReadingPeriodPlanList = addOrEditReadingPeriodSet.SubjectVisitIds.Select(x => new ReadingPeriodPlan
|
||||||
{
|
{
|
||||||
ReadingPeriodSetId = entity.Id,
|
ReadingPeriodSetId = entity.Id,
|
||||||
SubjectVisitId=x,
|
SubjectVisitId = x,
|
||||||
}).ToList();
|
}).ToList();
|
||||||
await _readingPeriodSetRepository.AddAsync(entity, true);
|
await _readingPeriodSetRepository.AddAsync(entity, true);
|
||||||
return ResponseOutput.Ok(entity.Id);
|
return ResponseOutput.Ok(entity.Id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var entity = (await _readingPeriodSetRepository.Where(t => t.Id == addOrEditReadingPeriodSet.Id, true).Include(t => t.ReadingPeriodSites).Include(x=>x.ReadingPeriodPlanList).FirstOrDefaultAsync()).IfNullThrowException();
|
var entity = (await _readingPeriodSetRepository.Where(t => t.Id == addOrEditReadingPeriodSet.Id, true).Include(t => t.ReadingPeriodSites).Include(x => x.ReadingPeriodPlanList).FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
_mapper.Map(addOrEditReadingPeriodSet, entity);
|
_mapper.Map(addOrEditReadingPeriodSet, entity);
|
||||||
|
|
||||||
entity.ReadingPeriodSites = addOrEditReadingPeriodSet.SiteIds.Select(x => new ReadingPeriodSite()
|
entity.ReadingPeriodSites = addOrEditReadingPeriodSet.SiteIds.Select(x => new ReadingPeriodSite()
|
||||||
|
@ -118,7 +124,7 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
var subjectIdlist = await visitQuery.OrderBy(x => x.SubjectId).Select(x => x.SubjectId).Distinct().Skip((inDto.PageIndex - 1) * inDto.PageSize).Take(inDto.PageSize).ToListAsync();
|
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 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 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
|
var subjectVisits = visitlist.GroupBy(x => x.SubjectId).Select(x => new
|
||||||
{
|
{
|
||||||
SubjectId = x.Key,
|
SubjectId = x.Key,
|
||||||
|
@ -191,17 +197,17 @@ namespace IRaCIS.Application.Services
|
||||||
var plans = _readingPeriodPlanRepository.Where(x => x.ReadingPeriodSetId == inDto.ReadingPeriodSetId).Include(x => x.SubjectVisit).Include(x => x.SubjectVisit.TrialSite).Include(x => x.SubjectVisit.Subject)
|
var plans = _readingPeriodPlanRepository.Where(x => x.ReadingPeriodSetId == inDto.ReadingPeriodSetId).Include(x => x.SubjectVisit).Include(x => x.SubjectVisit.TrialSite).Include(x => x.SubjectVisit.Subject)
|
||||||
.Include(x => x.ReadingPeriodSet).Select(x => new PreviewTheReadingListOutDto
|
.Include(x => x.ReadingPeriodSet).Select(x => new PreviewTheReadingListOutDto
|
||||||
{
|
{
|
||||||
Id=x.Id,
|
Id = x.Id,
|
||||||
ExpirationDate = x.ReadingPeriodSet.ExpirationDate,
|
ExpirationDate = x.ReadingPeriodSet.ExpirationDate,
|
||||||
SubjectVisitId = x.SubjectVisitId,
|
SubjectVisitId = x.SubjectVisitId,
|
||||||
TrialSiteCode = x.SubjectVisit.TrialSite.TrialSiteCode,
|
TrialSiteCode = x.SubjectVisit.TrialSite.TrialSiteCode,
|
||||||
LatestScanDate =x.SubjectVisit.LatestScanDate,
|
LatestScanDate = x.SubjectVisit.LatestScanDate,
|
||||||
ReadingPeriodName = x.ReadingPeriodSet.ReadingPeriodName,
|
ReadingPeriodName = x.ReadingPeriodSet.ReadingPeriodName,
|
||||||
ReadingPeriodSetId = x.ReadingPeriodSetId,
|
ReadingPeriodSetId = x.ReadingPeriodSetId,
|
||||||
SubjectCode = x.SubjectVisit.Subject.Code,
|
SubjectCode = x.SubjectVisit.Subject.Code,
|
||||||
SubjectId = x.SubjectVisit.SubjectId,
|
SubjectId = x.SubjectVisit.SubjectId,
|
||||||
SubjectVisitName = x.SubjectVisit.VisitName,
|
SubjectVisitName = x.SubjectVisit.VisitName,
|
||||||
EffectOfTime=x.ReadingPeriodSet.EffectOfTime,
|
EffectOfTime = x.ReadingPeriodSet.EffectOfTime,
|
||||||
});
|
});
|
||||||
|
|
||||||
return await plans.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(PreviewTheReadingListOutDto.SubjectId) : inDto.SortField,
|
return await plans.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(PreviewTheReadingListOutDto.SubjectId) : inDto.SortField,
|
||||||
|
@ -273,9 +279,9 @@ namespace IRaCIS.Application.Services
|
||||||
{
|
{
|
||||||
if (indto.IsTakeEffect == ReadingPeriodStatus.TakeEffect)
|
if (indto.IsTakeEffect == ReadingPeriodStatus.TakeEffect)
|
||||||
{
|
{
|
||||||
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).Include(x=>x.SubjectVisit).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();
|
||||||
if(repeatVisitNames.Count!=0)
|
if(repeatVisitNames.Count!=0)
|
||||||
|
@ -294,10 +300,10 @@ namespace IRaCIS.Application.Services
|
||||||
ModuleName = item.ReadingPeriodSet.ReadingPeriodName,
|
ModuleName = item.ReadingPeriodSet.ReadingPeriodName,
|
||||||
SubjectVisitId = item.SubjectVisitId,
|
SubjectVisitId = item.SubjectVisitId,
|
||||||
ReadingSetType = item.ReadingPeriodSet.ReadingSetType,
|
ReadingSetType = item.ReadingPeriodSet.ReadingSetType,
|
||||||
ReadingPeriodSetId= item.ReadingPeriodSet.Id,
|
ReadingPeriodSetId = item.ReadingPeriodSet.Id,
|
||||||
Status = ReadModuleEnum.TaskAllocation,
|
Status = ReadModuleEnum.TaskAllocation,
|
||||||
TrialId = readingPeriodSet.TrialId,
|
TrialId = readingPeriodSet.TrialId,
|
||||||
VisitNum= item.SubjectVisit.VisitNum,
|
VisitNum = item.SubjectVisit.VisitNum,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -308,9 +314,10 @@ namespace IRaCIS.Application.Services
|
||||||
await _readModuleRepository.DeleteFromQueryAsync(x => x.ReadingPeriodSetId == indto.Id);
|
await _readModuleRepository.DeleteFromQueryAsync(x => x.ReadingPeriodSetId == indto.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
var readQuery =await _readingPeriodSetRepository.UpdatePartialFromQueryAsync(indto.Id, x => new ReadingPeriodSet() {
|
var readQuery = await _readingPeriodSetRepository.UpdatePartialFromQueryAsync(indto.Id, x => new ReadingPeriodSet()
|
||||||
|
{
|
||||||
IsTakeEffect = indto.IsTakeEffect,
|
IsTakeEffect = indto.IsTakeEffect,
|
||||||
EffectOfTime= indto.IsTakeEffect== ReadingPeriodStatus.TakeEffect?DateTime.Now:null,
|
EffectOfTime = indto.IsTakeEffect == ReadingPeriodStatus.TakeEffect ? DateTime.Now : null,
|
||||||
});
|
});
|
||||||
|
|
||||||
var result = await _readingPeriodSetRepository.SaveChangesAsync();
|
var result = await _readingPeriodSetRepository.SaveChangesAsync();
|
||||||
|
|
Loading…
Reference in New Issue