修改访视计划
parent
d192bf6b9a
commit
8dbe1301a8
|
@ -230,13 +230,15 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
#region 统一给Subject 增加访视任务
|
||||||
|
|
||||||
List<SubjectVisit> subjectVisits = new List<SubjectVisit>();
|
List<SubjectVisit> subjectVisits = new List<SubjectVisit>();
|
||||||
|
|
||||||
var addvisitStages = await _visitStageRepository.Where(x => !x.IsHaveFirstConfirmed && x.TrialId == trialId).ToListAsync();
|
var addvisitStages = await _visitStageRepository.Where(x => !x.IsHaveFirstConfirmed && x.TrialId == trialId).ToListAsync();
|
||||||
|
|
||||||
foreach (var visitStage in addvisitStages)
|
foreach (var visitStage in addvisitStages)
|
||||||
{
|
{
|
||||||
foreach (var item in collection)
|
foreach (var subject in subjects)
|
||||||
{
|
{
|
||||||
var addSv = _mapper.Map<SubjectVisit>(visitPlan);
|
var addSv = _mapper.Map<SubjectVisit>(visitPlan);
|
||||||
|
|
||||||
|
@ -253,6 +255,165 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
await _subjectVisitRepository.AddRangeAsync(subjectVisits);
|
await _subjectVisitRepository.AddRangeAsync(subjectVisits);
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#region 访视计划修改 影响检查
|
||||||
|
|
||||||
|
//找到访视计划修改的Item
|
||||||
|
var changedList = await _visitStageRepository.Where(t => t.TrialId == trial.Id && t.IsConfirmed == false)
|
||||||
|
.Select(t => new
|
||||||
|
{
|
||||||
|
t.Trial.IsHaveFirstGiveMedicineDate,
|
||||||
|
t.Id,
|
||||||
|
t.VisitName,
|
||||||
|
t.TrialId,
|
||||||
|
t.VisitWindowLeft,
|
||||||
|
t.VisitWindowRight,
|
||||||
|
t.VisitDay,
|
||||||
|
t.VisitNum,
|
||||||
|
t.IsBaseLine,
|
||||||
|
t.BlindName,
|
||||||
|
|
||||||
|
t.Description,
|
||||||
|
IsConfirmed = true,
|
||||||
|
}).ToListAsync();
|
||||||
|
|
||||||
|
var visitPlanInfluenceStat = new VisitPlanInfluenceStat() { TrialId = trial.Id };
|
||||||
|
|
||||||
|
foreach (var changedItem in changedList)
|
||||||
|
{
|
||||||
|
//找到该项目 访视已经执行,并且配置了有首次给药日期 并且更新后超窗的访视,要把超窗之前的值也要查询出来
|
||||||
|
var qcPassedVisitList = await _subjectVisitRepository.Where(t => t.TrialId == trialId
|
||||||
|
&& t.VisitExecuted == VisitExecutedEnum.Executed
|
||||||
|
&& t.AuditState == AuditStateEnum.QCPassed
|
||||||
|
&& t.Trial.IsHaveFirstGiveMedicineDate == true
|
||||||
|
&& t.VisitStageId == changedItem.Id
|
||||||
|
&& t.Subject.FirstGiveMedicineTime != null
|
||||||
|
).Select(k => new
|
||||||
|
{
|
||||||
|
SubjectVisitId = k.Id,
|
||||||
|
SelfWindowLeft = k.Subject.FirstGiveMedicineTime!.Value.AddDays(k.VisitDay + k.VisitWindowLeft),
|
||||||
|
SelfWindowRight = k.Subject.FirstGiveMedicineTime!.Value.AddDays(k.VisitDay + k.VisitWindowRight + 1).AddSeconds(-1),
|
||||||
|
|
||||||
|
NowWindowLeft = k.Subject.FirstGiveMedicineTime!.Value.AddDays(changedItem.VisitDay + changedItem.VisitWindowLeft),
|
||||||
|
NowWindowRight = k.Subject.FirstGiveMedicineTime!.Value.AddDays(changedItem.VisitDay + changedItem.VisitWindowRight + 1).AddSeconds(-1),
|
||||||
|
|
||||||
|
NoneDicomStudyList =
|
||||||
|
k.NoneDicomStudyList //之前是查询调整之后超窗的 现在调整前超窗 调整后 没超窗的也要记录
|
||||||
|
//.Where(study => study.ImageDate <k.Subject.FirstGiveMedicineTime.Value.AddDays(changedItem.VisitDay + changedItem.VisitWindowLeft??0)
|
||||||
|
//|| study.ImageDate >k.Subject.FirstGiveMedicineTime.Value.AddDays(changedItem.VisitDay + changedItem.VisitWindowRight??0 + 1).AddSeconds(-1))
|
||||||
|
.Select(t => new { NoneDicomStudyId = t.Id, t.Modality, StudyTime = t.ImageDate }),
|
||||||
|
|
||||||
|
|
||||||
|
DicomStudyList = k.StudyList
|
||||||
|
//.Where(study => study.StudyTime <k.Subject.FirstGiveMedicineTime.Value.AddDays(changedItem.VisitDay + changedItem.VisitWindowLeft??0)
|
||||||
|
// || study.StudyTime >k.Subject.FirstGiveMedicineTime.Value.AddDays(changedItem.VisitDay + changedItem.VisitWindowRight??0 + 1).AddSeconds(-1))
|
||||||
|
.Select(t => new { StudyId = t.Id, Modality = t.Modalities, t.StudyTime })
|
||||||
|
|
||||||
|
}).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
|
foreach (var visit in qcPassedVisitList)
|
||||||
|
{
|
||||||
|
//找到本身没有超窗的数据 修改后超窗的
|
||||||
|
visit.DicomStudyList.Where(t => (t.StudyTime > visit.SelfWindowLeft && t.StudyTime < visit.SelfWindowRight) && (t.StudyTime < visit.NowWindowLeft || t.StudyTime > visit.NowWindowRight)).ForEach(t =>
|
||||||
|
{
|
||||||
|
visitPlanInfluenceStat.InconsistentCount++;
|
||||||
|
visitPlanInfluenceStat.InfluenceStudyList.Add(new VisitPlanInfluenceStudy()
|
||||||
|
{
|
||||||
|
IsOverWindowNowNotOverWindow = false,
|
||||||
|
Modality = t.Modality,
|
||||||
|
SubjectVisitId = visit.SubjectVisitId,
|
||||||
|
StudyId = t.StudyId,
|
||||||
|
IsDicomStudy = true,
|
||||||
|
StudyTime = t.StudyTime,
|
||||||
|
TrialId = trialId,
|
||||||
|
HistoryWindow = visit.SelfWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.SelfWindowRight.ToString("yyyy-MM-dd"),
|
||||||
|
NowWindow = visit.NowWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.NowWindowRight.ToString("yyyy-MM-dd")
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
visit.NoneDicomStudyList.Where(t => (t.StudyTime > visit.SelfWindowLeft && t.StudyTime < visit.SelfWindowRight) && (t.StudyTime < visit.NowWindowLeft || t.StudyTime > visit.NowWindowRight)).ForEach(t =>
|
||||||
|
{
|
||||||
|
visitPlanInfluenceStat.InconsistentCount++;
|
||||||
|
visitPlanInfluenceStat.InfluenceStudyList.Add(new VisitPlanInfluenceStudy()
|
||||||
|
{
|
||||||
|
IsOverWindowNowNotOverWindow = false,
|
||||||
|
Modality = t.Modality,
|
||||||
|
SubjectVisitId = visit.SubjectVisitId,
|
||||||
|
StudyId = t.NoneDicomStudyId,
|
||||||
|
IsDicomStudy = false,
|
||||||
|
StudyTime = t.StudyTime,
|
||||||
|
TrialId = trialId,
|
||||||
|
HistoryWindow = visit.SelfWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.SelfWindowRight.ToString("yyyy-MM-dd"),
|
||||||
|
NowWindow = visit.NowWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.NowWindowRight.ToString("yyyy-MM-dd")
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
//本身超窗 修改后没超窗的
|
||||||
|
visit.DicomStudyList.Where(t => (t.StudyTime < visit.SelfWindowLeft || t.StudyTime > visit.SelfWindowRight) && (t.StudyTime > visit.NowWindowLeft && t.StudyTime < visit.NowWindowRight)).ForEach(t =>
|
||||||
|
{
|
||||||
|
visitPlanInfluenceStat.InconsistentCount++;
|
||||||
|
visitPlanInfluenceStat.InfluenceStudyList.Add(new VisitPlanInfluenceStudy()
|
||||||
|
{
|
||||||
|
IsOverWindowNowNotOverWindow = true,
|
||||||
|
Modality = t.Modality,
|
||||||
|
SubjectVisitId = visit.SubjectVisitId,
|
||||||
|
StudyId = t.StudyId,
|
||||||
|
IsDicomStudy = true,
|
||||||
|
StudyTime = t.StudyTime,
|
||||||
|
TrialId = trialId,
|
||||||
|
HistoryWindow = visit.SelfWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.SelfWindowRight.ToString("yyyy-MM-dd"),
|
||||||
|
NowWindow = visit.NowWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.NowWindowRight.ToString("yyyy-MM-dd")
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
visit.NoneDicomStudyList.Where(t => (t.StudyTime < visit.SelfWindowLeft || t.StudyTime > visit.SelfWindowRight) && (t.StudyTime > visit.NowWindowLeft && t.StudyTime < visit.NowWindowRight)).ForEach(t =>
|
||||||
|
{
|
||||||
|
visitPlanInfluenceStat.InconsistentCount++;
|
||||||
|
visitPlanInfluenceStat.InfluenceStudyList.Add(new VisitPlanInfluenceStudy()
|
||||||
|
{
|
||||||
|
IsOverWindowNowNotOverWindow = true,
|
||||||
|
Modality = t.Modality,
|
||||||
|
SubjectVisitId = visit.SubjectVisitId,
|
||||||
|
StudyId = t.NoneDicomStudyId,
|
||||||
|
IsDicomStudy = false,
|
||||||
|
StudyTime = t.StudyTime,
|
||||||
|
TrialId = trialId,
|
||||||
|
HistoryWindow = visit.SelfWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.SelfWindowRight.ToString("yyyy-MM-dd"),
|
||||||
|
NowWindow = visit.NowWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.NowWindowRight.ToString("yyyy-MM-dd")
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
//变更某一访视计划Item 受试者访视相关字段
|
||||||
|
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == trialId && t.VisitStageId == changedItem.Id, k => new SubjectVisit()
|
||||||
|
{
|
||||||
|
IsBaseLine = changedItem.IsBaseLine,
|
||||||
|
VisitName = changedItem.VisitName,
|
||||||
|
VisitNum = changedItem.VisitNum,
|
||||||
|
VisitDay = changedItem.VisitDay,
|
||||||
|
VisitWindowLeft = changedItem.VisitWindowLeft,
|
||||||
|
VisitWindowRight = changedItem.VisitWindowRight
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
await _visitPlanInfluenceStatRepository.AddAsync(visitPlanInfluenceStat, true);
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//访视计划 整体状态变更为 确认
|
//访视计划 整体状态变更为 确认
|
||||||
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 });
|
||||||
|
|
||||||
|
|
|
@ -1,198 +0,0 @@
|
||||||
using EntityFrameworkCore.Triggered;
|
|
||||||
using IRaCIS.Core.Domain.Share;
|
|
||||||
using IRaCIS.Core.Infrastructure;
|
|
||||||
|
|
||||||
namespace IRaCIS.Core.Application.Triggers
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 处理 项目访视计划确认,记录影像的检查,另外批量插入访视数据
|
|
||||||
/// </summary>
|
|
||||||
public class TrialVisitPlanConfirmTrigger : IAfterSaveTrigger<Trial>
|
|
||||||
{
|
|
||||||
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
|
||||||
private readonly IRepository<Subject> _subjectRepository;
|
|
||||||
private readonly IRepository<VisitStage> _visitStageRepository;
|
|
||||||
private readonly IRepository<VisitPlanInfluenceStat> _visitPlanInfluenceStatRepository;
|
|
||||||
|
|
||||||
public TrialVisitPlanConfirmTrigger(IRepository<SubjectVisit> subjectVisitRepository,
|
|
||||||
IRepository<Subject> subjectRepository,IRepository<VisitStage> visitStageRepository,
|
|
||||||
IRepository<VisitPlanInfluenceStat> visitPlanInfluenceStatRepository)
|
|
||||||
{
|
|
||||||
_subjectVisitRepository = subjectVisitRepository;
|
|
||||||
_subjectRepository = subjectRepository;
|
|
||||||
_visitStageRepository = visitStageRepository;
|
|
||||||
_visitPlanInfluenceStatRepository = visitPlanInfluenceStatRepository;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task AfterSave(ITriggerContext<Trial> context, CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
|
|
||||||
var trial = context.Entity;
|
|
||||||
|
|
||||||
var trialId = context.Entity.Id;
|
|
||||||
|
|
||||||
|
|
||||||
if (context.ChangeType == ChangeType.Modified)
|
|
||||||
{
|
|
||||||
|
|
||||||
//项目访视计划确认 状态改变触发
|
|
||||||
if (trial.VisitPlanConfirmed && trial.VisitPlanConfirmed != context.UnmodifiedEntity?.VisitPlanConfirmed)
|
|
||||||
{
|
|
||||||
//找到访视计划修改的Item
|
|
||||||
var changedList = await _visitStageRepository.Where(t => t.TrialId == trial.Id && t.IsConfirmed == false)
|
|
||||||
.Select(t => new
|
|
||||||
{
|
|
||||||
t.Trial.IsHaveFirstGiveMedicineDate,
|
|
||||||
t.Id,
|
|
||||||
t.VisitName,
|
|
||||||
t.TrialId,
|
|
||||||
t.VisitWindowLeft,
|
|
||||||
t.VisitWindowRight,
|
|
||||||
t.VisitDay,
|
|
||||||
t.VisitNum,
|
|
||||||
t.IsBaseLine,
|
|
||||||
t.BlindName,
|
|
||||||
|
|
||||||
t.Description,
|
|
||||||
IsConfirmed = true,
|
|
||||||
}).ToListAsync();
|
|
||||||
|
|
||||||
var visitPlanInfluenceStat = new VisitPlanInfluenceStat() { TrialId = trial.Id };
|
|
||||||
|
|
||||||
foreach (var changedItem in changedList)
|
|
||||||
{
|
|
||||||
//找到该项目 访视已经执行,并且配置了有首次给药日期 并且更新后超窗的访视,要把超窗之前的值也要查询出来
|
|
||||||
var qcPassedVisitList = await _subjectVisitRepository.Where(t => t.TrialId == trialId
|
|
||||||
&& t.VisitExecuted == VisitExecutedEnum.Executed
|
|
||||||
&& t.AuditState == AuditStateEnum.QCPassed
|
|
||||||
&& t.Trial.IsHaveFirstGiveMedicineDate == true
|
|
||||||
&& t.VisitStageId == changedItem.Id
|
|
||||||
&& t.Subject.FirstGiveMedicineTime != null
|
|
||||||
).Select(k => new
|
|
||||||
{
|
|
||||||
SubjectVisitId = k.Id,
|
|
||||||
SelfWindowLeft = k.Subject.FirstGiveMedicineTime!.Value.AddDays(k.VisitDay + k.VisitWindowLeft),
|
|
||||||
SelfWindowRight = k.Subject.FirstGiveMedicineTime!.Value.AddDays(k.VisitDay + k.VisitWindowRight + 1).AddSeconds(-1),
|
|
||||||
|
|
||||||
NowWindowLeft = k.Subject.FirstGiveMedicineTime!.Value.AddDays(changedItem.VisitDay + changedItem.VisitWindowLeft),
|
|
||||||
NowWindowRight = k.Subject.FirstGiveMedicineTime!.Value.AddDays(changedItem.VisitDay + changedItem.VisitWindowRight + 1).AddSeconds(-1),
|
|
||||||
|
|
||||||
NoneDicomStudyList =
|
|
||||||
k.NoneDicomStudyList //之前是查询调整之后超窗的 现在调整前超窗 调整后 没超窗的也要记录
|
|
||||||
//.Where(study => study.ImageDate <k.Subject.FirstGiveMedicineTime.Value.AddDays(changedItem.VisitDay + changedItem.VisitWindowLeft??0)
|
|
||||||
//|| study.ImageDate >k.Subject.FirstGiveMedicineTime.Value.AddDays(changedItem.VisitDay + changedItem.VisitWindowRight??0 + 1).AddSeconds(-1))
|
|
||||||
.Select(t => new { NoneDicomStudyId = t.Id, t.Modality, StudyTime = t.ImageDate }),
|
|
||||||
|
|
||||||
|
|
||||||
DicomStudyList = k.StudyList
|
|
||||||
//.Where(study => study.StudyTime <k.Subject.FirstGiveMedicineTime.Value.AddDays(changedItem.VisitDay + changedItem.VisitWindowLeft??0)
|
|
||||||
// || study.StudyTime >k.Subject.FirstGiveMedicineTime.Value.AddDays(changedItem.VisitDay + changedItem.VisitWindowRight??0 + 1).AddSeconds(-1))
|
|
||||||
.Select(t => new { StudyId = t.Id, Modality = t.Modalities, t.StudyTime })
|
|
||||||
|
|
||||||
}).ToListAsync();
|
|
||||||
|
|
||||||
|
|
||||||
foreach (var visit in qcPassedVisitList)
|
|
||||||
{
|
|
||||||
//找到本身没有超窗的数据 修改后超窗的
|
|
||||||
visit.DicomStudyList.Where(t => (t.StudyTime > visit.SelfWindowLeft && t.StudyTime < visit.SelfWindowRight) && (t.StudyTime < visit.NowWindowLeft || t.StudyTime > visit.NowWindowRight)).ForEach(t =>
|
|
||||||
{
|
|
||||||
visitPlanInfluenceStat.InconsistentCount++;
|
|
||||||
visitPlanInfluenceStat.InfluenceStudyList.Add(new VisitPlanInfluenceStudy()
|
|
||||||
{
|
|
||||||
IsOverWindowNowNotOverWindow = false,
|
|
||||||
Modality = t.Modality,
|
|
||||||
SubjectVisitId = visit.SubjectVisitId,
|
|
||||||
StudyId = t.StudyId,
|
|
||||||
IsDicomStudy = true,
|
|
||||||
StudyTime = t.StudyTime,
|
|
||||||
TrialId = trialId,
|
|
||||||
HistoryWindow = visit.SelfWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.SelfWindowRight.ToString("yyyy-MM-dd"),
|
|
||||||
NowWindow = visit.NowWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.NowWindowRight.ToString("yyyy-MM-dd")
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
visit.NoneDicomStudyList.Where(t => (t.StudyTime > visit.SelfWindowLeft && t.StudyTime < visit.SelfWindowRight) && (t.StudyTime < visit.NowWindowLeft || t.StudyTime > visit.NowWindowRight)).ForEach(t =>
|
|
||||||
{
|
|
||||||
visitPlanInfluenceStat.InconsistentCount++;
|
|
||||||
visitPlanInfluenceStat.InfluenceStudyList.Add(new VisitPlanInfluenceStudy()
|
|
||||||
{
|
|
||||||
IsOverWindowNowNotOverWindow = false,
|
|
||||||
Modality = t.Modality,
|
|
||||||
SubjectVisitId = visit.SubjectVisitId,
|
|
||||||
StudyId = t.NoneDicomStudyId,
|
|
||||||
IsDicomStudy = false,
|
|
||||||
StudyTime = t.StudyTime,
|
|
||||||
TrialId = trialId,
|
|
||||||
HistoryWindow = visit.SelfWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.SelfWindowRight.ToString("yyyy-MM-dd"),
|
|
||||||
NowWindow = visit.NowWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.NowWindowRight.ToString("yyyy-MM-dd")
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
//本身超窗 修改后没超窗的
|
|
||||||
visit.DicomStudyList.Where(t => (t.StudyTime < visit.SelfWindowLeft || t.StudyTime > visit.SelfWindowRight) && (t.StudyTime > visit.NowWindowLeft && t.StudyTime < visit.NowWindowRight)).ForEach(t =>
|
|
||||||
{
|
|
||||||
visitPlanInfluenceStat.InconsistentCount++;
|
|
||||||
visitPlanInfluenceStat.InfluenceStudyList.Add(new VisitPlanInfluenceStudy()
|
|
||||||
{
|
|
||||||
IsOverWindowNowNotOverWindow = true,
|
|
||||||
Modality = t.Modality,
|
|
||||||
SubjectVisitId = visit.SubjectVisitId,
|
|
||||||
StudyId = t.StudyId,
|
|
||||||
IsDicomStudy = true,
|
|
||||||
StudyTime = t.StudyTime,
|
|
||||||
TrialId = trialId,
|
|
||||||
HistoryWindow = visit.SelfWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.SelfWindowRight.ToString("yyyy-MM-dd"),
|
|
||||||
NowWindow = visit.NowWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.NowWindowRight.ToString("yyyy-MM-dd")
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
visit.NoneDicomStudyList.Where(t => (t.StudyTime < visit.SelfWindowLeft || t.StudyTime > visit.SelfWindowRight) && (t.StudyTime > visit.NowWindowLeft && t.StudyTime < visit.NowWindowRight)).ForEach(t =>
|
|
||||||
{
|
|
||||||
visitPlanInfluenceStat.InconsistentCount++;
|
|
||||||
visitPlanInfluenceStat.InfluenceStudyList.Add(new VisitPlanInfluenceStudy()
|
|
||||||
{
|
|
||||||
IsOverWindowNowNotOverWindow = true,
|
|
||||||
Modality = t.Modality,
|
|
||||||
SubjectVisitId = visit.SubjectVisitId,
|
|
||||||
StudyId = t.NoneDicomStudyId,
|
|
||||||
IsDicomStudy = false,
|
|
||||||
StudyTime = t.StudyTime,
|
|
||||||
TrialId = trialId,
|
|
||||||
HistoryWindow = visit.SelfWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.SelfWindowRight.ToString("yyyy-MM-dd"),
|
|
||||||
NowWindow = visit.NowWindowLeft.ToString("yyyy-MM-dd") + " ~ " + visit.NowWindowRight.ToString("yyyy-MM-dd")
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
//变更某一访视计划Item 受试者访视相关字段
|
|
||||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == trialId && t.VisitStageId == changedItem.Id, k => new SubjectVisit()
|
|
||||||
{
|
|
||||||
IsBaseLine = changedItem.IsBaseLine,
|
|
||||||
VisitName = changedItem.VisitName,
|
|
||||||
VisitNum = changedItem.VisitNum,
|
|
||||||
VisitDay = changedItem.VisitDay,
|
|
||||||
VisitWindowLeft = changedItem.VisitWindowLeft,
|
|
||||||
VisitWindowRight = changedItem.VisitWindowRight
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
await _visitPlanInfluenceStatRepository.AddAsync(visitPlanInfluenceStat,true);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue