修改访视计划确认

Uat_Study
hang 2022-05-07 10:58:45 +08:00
parent 79e38bbf86
commit cea41a314d
2 changed files with 21 additions and 42 deletions

View File

@ -33,7 +33,6 @@ namespace IRaCIS.Core.Application.Image.QA
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
private readonly IRepository<QCChallenge> _qcChallengeRepository;
private readonly IRepository<DicomStudy> _dicomStudyRepository;
private readonly IRepository<Dictionary> _dictionaryrepository;
private readonly IRepository<DicomSeries> _dicomSeriesrepository;
private readonly IRepository<Subject> _subjectRepository;
private readonly IRepository<Trial> _trialRepository;
@ -45,8 +44,6 @@ namespace IRaCIS.Core.Application.Image.QA
IRepository<QCChallenge> qcChallengeRepository,
IRepository<Trial> trialRepository,
IMediator mediator,
IInspectionService inspectionService,
IDictionaryService dictionaryService,
IRepository<DicomStudy> dicomStudyRepository,
IRepository<Dictionary> dictionaryrepository,
IRepository<DicomSeries> dicomSeriesrepository,
@ -57,7 +54,6 @@ namespace IRaCIS.Core.Application.Image.QA
_subjectVisitRepository = subjectVisitRepository;
_qcChallengeRepository = qcChallengeRepository;
_dicomStudyRepository = dicomStudyRepository;
this._dictionaryrepository = dictionaryrepository;
this._dicomSeriesrepository = dicomSeriesrepository;
this._subjectRepository = subjectRepository;
_mediator = mediator;

View File

@ -26,14 +26,14 @@ namespace IRaCIS.Application.Services
{
_visitStageRepository = visitStageRepository;
_trialRepository = trialRepository;
this._subjectVisitRepository = subjectVisitRepository;
this._influnceRepository = visitPlanInfluenceStudy;
_subjectVisitRepository = subjectVisitRepository;
_influnceRepository = visitPlanInfluenceStudy;
}
///暂时不用
/// <summary> 获取项目访视计划</summary>
[HttpPost]
[HttpPost]
public async Task<PageOutput<VisitStageDTO>> GetTrialVisitStageList(VisitPlanQueryDTO param)
{
var visitStageQuery = _visitStageRepository.AsQueryable(true).Where(u => u.TrialId == param.TrialId)
@ -133,7 +133,7 @@ namespace IRaCIS.Application.Services
//不用前端传递的值
visitPlan.BlindName = "B" + ((int)visitPlan.VisitNum * 10).ToString("D3");
var visitPlanItem = await _visitStageRepository.InsertFromDTOAsync(visitPlan,true);
var visitPlanItem = await _visitStageRepository.InsertFromDTOAsync(visitPlan, true);
#region 废弃前
@ -186,7 +186,7 @@ namespace IRaCIS.Application.Services
//不用前端传递的值
visitPlan.BlindName = "B" + ((int)visitPlan.VisitNum * 10).ToString("D3");
//返回的是数据库查询的数据
var stage = await _visitStageRepository.UpdateFromDTOAsync(visitPlan,true);
var stage = await _visitStageRepository.UpdateFromDTOAsync(visitPlan, true);
if (stage.IsBaseLine && stage.IsBaseLine != visitPlan.IsBaseLine)
{
@ -236,63 +236,46 @@ namespace IRaCIS.Application.Services
//更新项目访视计划状态为已确认 必定生成更新的sql 通过状态改变 触发操作
await _trialRepository.UpdatePartialNowNoQueryAsync(trialId, t => new Trial() { VisitPlanConfirmed = true });
//await _trialRepository.UpdatePartialNowNoQueryAsync(trialId, t => new Trial() { VisitPlanConfirmed = true });
var trial = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId)).IfNullThrowException();
trial.VisitPlanConfirmed = true;
var subjectsids = _repository.GetQueryable<Subject>().Where(x => x.TrialId == trialId).Select(x => new
var subjects = _repository.GetQueryable<Subject>().Where(x => x.TrialId == trialId).Select(x => new
{
x.Code,
x.SiteId,
x.Id,
x.IsEnrollment,
x.IsUrgent,
x.TrialId
});
List<SubjectVisit> subjectVisits = new List<SubjectVisit>();
var trial = await _repository.GetQueryable<Trial>().FirstOrDefaultAsync(x => x.Id == trialId);
var addvisitStages = await _visitStageRepository.Where(x => !x.IsHaveFirstConfirmed && x.TrialId == trialId).ToListAsync();
addvisitStages.ForEach(x =>
addvisitStages.ForEach(visitPlan =>
{
subjectsids.ForEach(y =>
subjects.ForEach(subject =>
{
Guid guid = NewId.NextGuid();
SubjectVisit subjectVisit = new SubjectVisit()
{
SiteId = y.SiteId,
SubjectId = y.Id,
Id = guid,
VisitName = x.VisitName,
TrialId= trialId,
BlindName = x.BlindName,
IsBaseLine = x.IsBaseLine,
IsUrgent = false,
};
subjectVisits.Add(subjectVisit);
var addSv = _mapper.Map<SubjectVisit>(visitPlan);
addSv.SubjectId = subject.Id;
addSv.TrialId = subject.TrialId;
addSv.SiteId = subject.SiteId;
subjectVisits.Add(addSv);
});
});
//await _subjectVisitRepository.AddRangeAsync()
await _repository.AddRangeAsync(subjectVisits);
await _subjectVisitRepository.AddRangeAsync(subjectVisits);
//访视计划 整体状态变更为 确认
await _visitStageRepository.UpdatePartialFromQueryAsync(u => u.TrialId == trialId&&u.IsConfirmed==false, t => new VisitStage() { IsConfirmed = true, IsHaveFirstConfirmed = true });
await _visitStageRepository.UpdatePartialFromQueryAsync(u => u.TrialId == trialId && u.IsConfirmed == false, t => new VisitStage() { IsConfirmed = true, IsHaveFirstConfirmed = true });
await _visitStageRepository.SaveChangesAsync();
return ResponseOutput.Ok();