From f2132e1e8dea2e0e6f1def13db759d90d44e22b0 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 14 Apr 2022 16:00:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Visit/VisitPlanService.cs | 141 ++++++++++++++---- 1 file changed, 109 insertions(+), 32 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs b/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs index c7f7ef3d..58928f74 100644 --- a/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs +++ b/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs @@ -158,37 +158,33 @@ namespace IRaCIS.Application.Services { svItem.VisitExecuted = VisitExecutedEnum.Unavailable; } - datas.Add(new DataInspection() - { - SubjectVisitId = svItem.Id, - SubjectVisitName = svItem.VisitName, - BlindName = visitPlan.BlindName, - Identification = "Add|Visit|Info|Visit-Image Upload", - SiteId = svItem.SiteId, - TrialId = svItem.TrialId, - SubjectId = svItem.SubjectId, - IsSign = false, - CreateTime = createtime, - JsonDetail = JsonConvert.SerializeObject(svItem) - }); + //datas.Add(new DataInspection() + //{ + // SubjectVisitId = svItem.Id, + // SubjectVisitName = svItem.VisitName, + // BlindName = visitPlan.BlindName, + // Identification = "Add|Visit|Info|Visit-Image Upload", + // SiteId = svItem.SiteId, + // TrialId = svItem.TrialId, + // SubjectId = svItem.SubjectId, + // IsSign = false, + // CreateTime = createtime, + // JsonDetail = JsonConvert.SerializeObject(svItem) + //}); - datas.Add(new DataInspection() - { - SubjectVisitId = svItem.Id, - SubjectVisitName = svItem.VisitName, - BlindName = visitPlan.BlindName, - Identification = "Add|Visit|Info|Visit-Image Upload", - SiteId = svItem.SiteId, - TrialId = svItem.TrialId, - SubjectId = svItem.SubjectId, - IsSign = false, - CreateTime = createtime.AddSeconds(1), - JsonDetail = JsonConvert.SerializeObject(svItem) - }); + await _repository.AddAsync(svItem); } } - + datas.Add(new DataInspection() + { + BlindName = visitPlan.BlindName, + Identification = "Add|Visit|Info|Visit-Image Upload", + TrialId = visitPlan.TrialId, + IsSign = false, + CreateTime = createtime.AddSeconds(1), + JsonDetail = JsonConvert.SerializeObject(visitPlan) + }); var visitPlanItem = _mapper.Map(visitPlan); @@ -331,6 +327,9 @@ namespace IRaCIS.Application.Services } List datas = new List(); + + var addvisitStages = await _visitStageRepository.Where(x => !x.IsHaveFirstConfirmed&&x.TrialId== trialId).ToListAsync(); + //更新项目访视计划状态为已确认 await _trialRepository.UpdateFromQueryAsync(u => u.Id == trialId, t => new Trial() { VisitPlanConfirmed = true }); @@ -343,7 +342,7 @@ namespace IRaCIS.Application.Services datas.Add(new DataInspection() { IsSign = false, - SubjectVisitId = x.Id, + CreateTime = createtime, SubjectVisitName = x.VisitName, VisitStageId=x.Id, @@ -353,7 +352,7 @@ namespace IRaCIS.Application.Services IsConfirmed = true, VisitPlanStatus = true, }), - Identification = "Edit|Visit Plan Template|Data|Tria" + Identification = "Confirm|Visit Plan Template|Data|Trial Setting-Visit Plan" }); }); @@ -506,12 +505,10 @@ namespace IRaCIS.Application.Services }); - - - + //变更某一访视计划Item 受试者访视相关字段 await _repository.UpdateFromQueryAsync(t => t.TrialId == trialId && t.VisitStageId == changedItem.Id, k => new SubjectVisit() { @@ -524,9 +521,89 @@ namespace IRaCIS.Application.Services }); } + var subjectsids = _repository.GetQueryable().Where(x => x.TrialId == trialId).Select(x => new + { + x.Code, + x.SiteId, + x.Id + }); + + List subjectVisits = new List(); + + + + + + + addvisitStages.ForEach(x => + { + subjectsids.ForEach(y => + { + var guid = new Guid(); + // 新增受试者 + datas.Add(new DataInspection() + { + BlindName = x.BlindName, + IsSign = false, + SiteId = y.SiteId, + SubjectId = y.Id, + SubjectVisitId = guid, + CreateTime = createtime, + SubjectVisitName = x.VisitName, + TrialId = x.TrialId, + Identification = "Add|Visit|Info|Visit-Image Upload", + JsonDetail = JsonConvert.SerializeObject(new + { + IsBaseLine = x.BlindName, + VisitName = x.VisitName, + VisitNum = x.VisitNum, + VisitDay = x.VisitDay, + VisitExecuted=false, + VisitWindowLeft = x.VisitWindowLeft, + VisitWindowRight = x.VisitWindowRight + }), + }); + + // 初始化受试者 + datas.Add(new DataInspection() + { + SiteId = y.SiteId, + SubjectId = y.Id, + SubjectVisitId = guid, + TrialId = x.TrialId, + SubjectCode = y.Code, + BlindName = x.BlindName, + SubjectVisitName = x.VisitName, + IsSign = false, + CreateTime = createtime.AddSeconds(1), + Identification = "Init|Visit|Status|Visit-Image Upload", + JsonDetail = JsonConvert.SerializeObject(new + { + VisitName = x.VisitName, + SubmitState = "", + AuditState = "", + }) + }); + + subjectVisits.Add(new SubjectVisit() + { + + SiteId = y.SiteId, + SubjectId = y.Id, + Id = guid, + BlindName=x.BlindName, + IsBaseLine=x.IsBaseLine, + IsCheckBack=x.IsBaseLine, + + }); + }); + + + }); await _inspectionService.AddListInspectionRecordAsync(datas); await _repository.AddAsync(stat); + await _repository.AddRangeAsync(subjectVisits); await _repository.SaveChangesAsync(); return ResponseOutput.Ok();