Merge branch 'Test_HIR_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_HIR_Net8
continuous-integration/drone/push Build is passing Details

Test_HIR_Net8
hang 2025-09-03 15:21:05 +08:00
commit 697ac6f57b
2 changed files with 208 additions and 199 deletions

View File

@ -1195,55 +1195,55 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
if (!(await _readingTableQuestionAnswerRepository.AnyAsync(x => x.VisitTaskId == visitTaskId))) if (!(await _readingTableQuestionAnswerRepository.AnyAsync(x => x.VisitTaskId == visitTaskId)))
{ {
// 判断当前任务是否是基线 // 判断当前任务是否是基线
if (taskinfo.SourceSubjectVisitId != baseLineVisitId) if (taskinfo.SourceSubjectVisitId != baseLineVisitId)
{
// 判断当前任务是是否有表格问题答案
if (!(await _readingTableQuestionAnswerRepository.AnyAsync(x => x.VisitTaskId == visitTaskId)))
{ {
var LastVisitTaskId = await _visitTaskRepository.Where(x => x.ReadingCategory == ReadingCategory.Visit && // 判断当前任务是是否有表格问题答案
x.TrialReadingCriterionId == taskinfo.TrialReadingCriterionId && if (!(await _readingTableQuestionAnswerRepository.AnyAsync(x => x.VisitTaskId == visitTaskId)))
x.IsAnalysisCreate == taskinfo.IsAnalysisCreate &&
x.ArmEnum == taskinfo.ArmEnum &&
x.IsSelfAnalysis == taskinfo.IsSelfAnalysis &&
x.SubjectId == taskinfo.SubjectId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.VisitTaskNum < taskinfo.VisitTaskNum && x.TaskState == TaskState.Effect && x.ArmEnum == taskinfo.ArmEnum
).OrderByDescending(x => x.VisitTaskNum).Select(x => x.Id).FirstOrDefaultAsync();
var copyTableAnswers = await _readingTableQuestionAnswerRepository.Where(x => x.VisitTaskId == LastVisitTaskId).Select(x => new CopyTableAnswerDto()
{ {
Answer = x.Answer, var LastVisitTaskId = await _visitTaskRepository.Where(x => x.ReadingCategory == ReadingCategory.Visit &&
QuestionId = x.QuestionId, x.TrialReadingCriterionId == taskinfo.TrialReadingCriterionId &&
RowId = x.RowId, x.IsAnalysisCreate == taskinfo.IsAnalysisCreate &&
QuestionMark = x.ReadingTableQuestionTrial.QuestionMark, x.ArmEnum == taskinfo.ArmEnum &&
TableQuestionId = x.TableQuestionId, x.IsSelfAnalysis == taskinfo.IsSelfAnalysis &&
RowIndex = x.RowIndex, x.SubjectId == taskinfo.SubjectId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.VisitTaskNum < taskinfo.VisitTaskNum && x.TaskState == TaskState.Effect && x.ArmEnum == taskinfo.ArmEnum
TrialId = x.TrialId ).OrderByDescending(x => x.VisitTaskNum).Select(x => x.Id).FirstOrDefaultAsync();
}).ToListAsync();
var tableRowAnswers = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == LastVisitTaskId).ProjectTo<CopyTableAnswerRowInfo>(_mapper.ConfigurationProvider).ToListAsync();
tableRowAnswers.ForEach(x =>
{
x.VisitTaskId = visitTaskId;
x.IsCurrentTaskAdd = false;
x.Id = NewId.NextGuid();
x.SeriesId = null;
x.InstanceId = null;
x.MeasureData = string.Empty;
x.PicturePath = string.Empty;
});
tableRowAnswers.ForEach(x => var copyTableAnswers = await _readingTableQuestionAnswerRepository.Where(x => x.VisitTaskId == LastVisitTaskId).Select(x => new CopyTableAnswerDto()
{ {
x.SplitRowId = tableRowAnswers.Where(y => y.OriginalId == x.SplitRowId).Select(y => y.Id).FirstOrDefault(); Answer = x.Answer,
x.MergeRowId = tableRowAnswers.Where(y => y.OriginalId == x.MergeRowId).Select(y => y.Id).FirstOrDefault(); QuestionId = x.QuestionId,
RowId = x.RowId,
QuestionMark = x.ReadingTableQuestionTrial.QuestionMark,
TableQuestionId = x.TableQuestionId,
RowIndex = x.RowIndex,
TrialId = x.TrialId
}).ToListAsync();
}); var tableRowAnswers = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == LastVisitTaskId).ProjectTo<CopyTableAnswerRowInfo>(_mapper.ConfigurationProvider).ToListAsync();
List<QuestionMark?> notNeedCopyMarks = new List<QuestionMark?>()
tableRowAnswers.ForEach(x =>
{
x.VisitTaskId = visitTaskId;
x.IsCurrentTaskAdd = false;
x.Id = NewId.NextGuid();
x.SeriesId = null;
x.InstanceId = null;
x.MeasureData = string.Empty;
x.PicturePath = string.Empty;
});
tableRowAnswers.ForEach(x =>
{
x.SplitRowId = tableRowAnswers.Where(y => y.OriginalId == x.SplitRowId).Select(y => y.Id).FirstOrDefault();
x.MergeRowId = tableRowAnswers.Where(y => y.OriginalId == x.MergeRowId).Select(y => y.Id).FirstOrDefault();
});
List<QuestionMark?> notNeedCopyMarks = new List<QuestionMark?>()
{ {
QuestionMark.MajorAxis, QuestionMark.MajorAxis,
QuestionMark.ShortAxis, QuestionMark.ShortAxis,
@ -1251,169 +1251,170 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}; };
var tableAnswers = copyTableAnswers.Select(x => new ReadingTableQuestionAnswer var tableAnswers = copyTableAnswers.Select(x => new ReadingTableQuestionAnswer
{ {
Id = NewId.NextGuid(), Id = NewId.NextGuid(),
Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer, Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer,
QuestionId = x.QuestionId, QuestionId = x.QuestionId,
RowIndex = x.RowIndex, RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(), RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(),
TableQuestionId = x.TableQuestionId, TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId, TrialId = x.TrialId,
VisitTaskId = visitTaskId, VisitTaskId = visitTaskId,
}); });
var addList = _mapper.Map<List<ReadingTableAnswerRowInfo>>(tableRowAnswers); var addList = _mapper.Map<List<ReadingTableAnswerRowInfo>>(tableRowAnswers);
await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList); await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList);
await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers); await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers);
addList.ForEach(x => addList.ForEach(x =>
{ {
x.MergeRow = null; x.MergeRow = null;
x.SplitRow = null; x.SplitRow = null;
}); });
await _readingTableQuestionAnswerRepository.SaveChangesAsync(); await _readingTableQuestionAnswerRepository.SaveChangesAsync();
}
} }
} else
else
{
// 基线任务
// 如果是基线 要把res1.1的病灶复制过来
var recistTask = await _visitTaskRepository.Where(x =>
x.TrialId == taskinfo.TrialId &&
x.TaskState == TaskState.Effect &&
x.ReadingTaskState == ReadingTaskState.HaveSigned &&
x.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Point1 &&
x.SubjectId == taskinfo.SubjectId &&
x.SourceSubjectVisitId == taskinfo.SourceSubjectVisitId
).FirstOrDefaultAsync();
if (recistTask != null)
{ {
_userInfo.AuditIdentification = "HCC"; // 基线任务
// 如果是基线 要把res1.1的病灶复制过来
var recistTask = await _visitTaskRepository.Where(x =>
var trialReadingCriterion=await _readingQuestionCriterionTrialRepository.Where(x => x.Id == taskinfo.TrialReadingCriterionId).FirstOrDefaultAsync(); x.TrialId == taskinfo.TrialId &&
x.TaskState == TaskState.Effect &&
var tableRowAnswers = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == recistTask.Id).ProjectTo<CopyTableAnswerRowInfo>(_mapper.ConfigurationProvider).ToListAsync(); x.ReadingTaskState == ReadingTaskState.HaveSigned &&
x.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Point1 &&
var tableQuestionList = await _readingTableQuestionTrialRepository.Where(x => x.TrialCriterionId == taskinfo.TrialReadingCriterionId).ToListAsync(); x.SubjectId == taskinfo.SubjectId &&
foreach (var rowInfo in tableRowAnswers) x.SourceSubjectVisitId == taskinfo.SourceSubjectVisitId
).FirstOrDefaultAsync();
if (recistTask != null)
{ {
var question = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == taskinfo.TrialReadingCriterionId && x.LesionType == rowInfo.LesionType).FirstOrDefaultAsync(); _userInfo.AuditIdentification = "HCC";
var organ = await _organInfoRepository.Where(x => x.Id == rowInfo.OrganInfoId).FirstOrDefaultAsync();
if (organ != null) var trialReadingCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == taskinfo.TrialReadingCriterionId).FirstOrDefaultAsync();
var tableRowAnswers = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == recistTask.Id).ProjectTo<CopyTableAnswerRowInfo>(_mapper.ConfigurationProvider).ToListAsync();
var tableQuestionList = await _readingTableQuestionTrialRepository.Where(x => x.TrialCriterionId == taskinfo.TrialReadingCriterionId).ToListAsync();
foreach (var rowInfo in tableRowAnswers)
{ {
var newOrgan = await _organInfoRepository.Where(x => x.SystemCriterionId == trialReadingCriterion.ReadingQuestionCriterionSystemId && rowInfo.ReportMark = rowInfo.RowMark;
x.Classification == organ.Classification && var question = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == taskinfo.TrialReadingCriterionId && x.LesionType == rowInfo.LesionType).FirstOrDefaultAsync();
x.Part == organ.Part &&
x.TULOC == organ.TULOC &&
x.TULAT == organ.TULAT &&
x.IsLymphNodes == organ.IsLymphNodes
).FirstOrDefaultAsync();
if (newOrgan != null) var organ = await _organInfoRepository.Where(x => x.Id == rowInfo.OrganInfoId).FirstOrDefaultAsync();
if (organ != null)
{ {
rowInfo.OrganInfoId = newOrgan.Id; var newOrgan = await _organInfoRepository.Where(x => x.SystemCriterionId == trialReadingCriterion.ReadingQuestionCriterionSystemId &&
x.Classification == organ.Classification &&
x.Part == organ.Part &&
x.TULOC == organ.TULOC &&
x.TULAT == organ.TULAT &&
x.IsLymphNodes == organ.IsLymphNodes
).FirstOrDefaultAsync();
if (newOrgan != null)
{
rowInfo.OrganInfoId = newOrgan.Id;
}
} }
} if (rowInfo.MeasureData != null)
if(rowInfo.MeasureData!=null)
{
rowInfo.MeasureData = rowInfo.MeasureData.Replace(recistTask.Id.ToString(), taskinfo.Id.ToString());
}
rowInfo.VisitTaskId = visitTaskId;
rowInfo.IsCurrentTaskAdd = true;
rowInfo.Id = NewId.NextGuid();
rowInfo.FristAddTaskId = visitTaskId;
rowInfo.QuestionId = question == null ? default(Guid) : question.Id;
rowInfo.RowMark = question?.OrderMark + rowInfo.RowIndex.GetLesionMark();
}
var recistTableAnswers = await _readingTableQuestionAnswerRepository.Where(x => x.VisitTaskId == recistTask.Id).Select(x => new CopyTableAnswerDto()
{
Answer = x.Answer,
QuestionId = x.QuestionId,
RowId = x.RowId,
QuestionMark = x.ReadingTableQuestionTrial.QuestionMark,
TableQuestionId = x.TableQuestionId,
RowIndex = x.RowIndex,
TrialId = x.TrialId,
}).ToListAsync();
foreach (var item in recistTableAnswers)
{
item.QuestionId = tableRowAnswers.Where(y => y.OriginalId == item.RowId).Select(x => x.QuestionId).FirstOrDefault();
item.TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == item.QuestionId && x.QuestionMark == item.QuestionMark).Select(x => x.Id).FirstOrDefault();
}
recistTableAnswers = recistTableAnswers.Where(x => x.TableQuestionId != default(Guid)).ToList();
List<QuestionMark?> notNeedCopyMarks = new List<QuestionMark?>()
{
};
var tableAnswers = recistTableAnswers.Select(x => new ReadingTableQuestionAnswer
{
Id = NewId.NextGuid(),
Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer,
QuestionId = x.QuestionId,
RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(),
TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId,
VisitTaskId = visitTaskId,
}).ToList();
// 添加 典型肝内病灶 默认值
tableRowAnswers.ForEach(x =>
{
var tableQuestion = tableQuestionList.Where(y => y.ReadingQuestionId == x.QuestionId && y.QuestionMark == QuestionMark.TypicalIntrahepaticLesion).FirstOrDefault();
if (tableQuestion != null)
{
tableAnswers.Add(new ReadingTableQuestionAnswer()
{ {
Id = NewId.NextGuid(), rowInfo.MeasureData = rowInfo.MeasureData.Replace(recistTask.Id.ToString(), taskinfo.Id.ToString());
Answer = ((int)(object)ReadingYesOrNo.No).ToString(), }
QuestionId = x.QuestionId,
RowIndex = x.RowIndex, rowInfo.VisitTaskId = visitTaskId;
RowId = x.Id, rowInfo.IsCurrentTaskAdd = true;
TableQuestionId = tableQuestion.Id, rowInfo.Id = NewId.NextGuid();
TrialId = x.TrialId, rowInfo.FristAddTaskId = visitTaskId;
VisitTaskId = visitTaskId, rowInfo.QuestionId = question == null ? default(Guid) : question.Id;
}); rowInfo.RowMark = question?.OrderMark + rowInfo.RowIndex.GetLesionMark();
} }
});
var addList = _mapper.Map<List<ReadingTableAnswerRowInfo>>(tableRowAnswers); var recistTableAnswers = await _readingTableQuestionAnswerRepository.Where(x => x.VisitTaskId == recistTask.Id).Select(x => new CopyTableAnswerDto()
{
Answer = x.Answer,
QuestionId = x.QuestionId,
RowId = x.RowId,
QuestionMark = x.ReadingTableQuestionTrial.QuestionMark,
TableQuestionId = x.TableQuestionId,
RowIndex = x.RowIndex,
TrialId = x.TrialId,
}).ToListAsync();
foreach (var item in recistTableAnswers)
{
item.QuestionId = tableRowAnswers.Where(y => y.OriginalId == item.RowId).Select(x => x.QuestionId).FirstOrDefault();
item.TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == item.QuestionId && x.QuestionMark == item.QuestionMark).Select(x => x.Id).FirstOrDefault();
}
recistTableAnswers = recistTableAnswers.Where(x => x.TableQuestionId != default(Guid)).ToList();
List<QuestionMark?> notNeedCopyMarks = new List<QuestionMark?>()
{
};
var tableAnswers = recistTableAnswers.Select(x => new ReadingTableQuestionAnswer
{
Id = NewId.NextGuid(),
Answer = notNeedCopyMarks.Contains(x.QuestionMark) ? string.Empty : x.Answer,
QuestionId = x.QuestionId,
RowIndex = x.RowIndex,
RowId = tableRowAnswers.Where(y => y.OriginalId == x.RowId).Select(x => x.Id).FirstOrDefault(),
TableQuestionId = x.TableQuestionId,
TrialId = x.TrialId,
VisitTaskId = visitTaskId,
}).ToList();
// 添加 典型肝内病灶 默认值
tableRowAnswers.ForEach(x =>
{
var tableQuestion = tableQuestionList.Where(y => y.ReadingQuestionId == x.QuestionId && y.QuestionMark == QuestionMark.TypicalIntrahepaticLesion).FirstOrDefault();
if (tableQuestion != null)
{
tableAnswers.Add(new ReadingTableQuestionAnswer()
{
Id = NewId.NextGuid(),
Answer = ((int)(object)ReadingYesOrNo.No).ToString(),
QuestionId = x.QuestionId,
RowIndex = x.RowIndex,
RowId = x.Id,
TableQuestionId = tableQuestion.Id,
TrialId = x.TrialId,
VisitTaskId = visitTaskId,
});
}
});
var addList = _mapper.Map<List<ReadingTableAnswerRowInfo>>(tableRowAnswers);
await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList);
await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers);
addList.ForEach(x =>
{
x.MergeRow = null;
x.SplitRow = null;
});
await _readingTableQuestionAnswerRepository.SaveChangesAsync();
}
await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList);
await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers);
addList.ForEach(x =>
{
x.MergeRow = null;
x.SplitRow = null;
});
await _readingTableQuestionAnswerRepository.SaveChangesAsync();
} }
}
} }
return new AddTaskLesionAnswerFromLastTaskOutDto() return new AddTaskLesionAnswerFromLastTaskOutDto()
{ {

View File

@ -1733,18 +1733,20 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var entity = item.Entity as SCPStudySubjectVisit; var entity = item.Entity as SCPStudySubjectVisit;
var sCPStudy=await _dbContext.SCPStudy.Where(x => x.Id == entity.SCPStudyId).FirstOrDefaultAsync(); var sCPStudy = await _dbContext.SCPStudy.Where(x => x.Id == entity.SCPStudyId).FirstOrDefaultAsync();
await InsertInspection<SCPStudySubjectVisit>(item.Entity as SCPStudySubjectVisit, type, x => new InspectionConvertDTO() await InsertInspection<SCPStudySubjectVisit>(item.Entity as SCPStudySubjectVisit, type, x => new InspectionConvertDTO()
{ {
ObjectRelationParentId = x.SubjectId, ObjectRelationParentId = x.SubjectId,
ObjectRelationParentId2=x.SubjectVisitId, ObjectRelationParentId2 = x.SubjectVisitId,
ObjectRelationParentId3 = x.StudyId, ObjectRelationParentId3 = x.StudyId,
IsDistinctionInterface=false,
}, new }, new
{ {
StudyTime = sCPStudy!=null? sCPStudy.StudyTime:null, StudyTime = sCPStudy != null ? sCPStudy.StudyTime : null,
}); });
@ -1766,6 +1768,11 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var reason = string.Empty; var reason = string.Empty;
if (type == AuditOpt.Add)
{
isDistinctionInterface = false;
}
#region 处理标识 #region 处理标识
switch (_userInfo.RequestUrl.ToLower()) switch (_userInfo.RequestUrl.ToLower())
@ -1860,8 +1867,9 @@ namespace IRaCIS.Core.Infra.EFCore.Common
await InsertInspection<TaskStudy>(item.Entity as TaskStudy, type, x => new InspectionConvertDTO() await InsertInspection<TaskStudy>(item.Entity as TaskStudy, type, x => new InspectionConvertDTO()
{ {
ObjectRelationParentId = x.VisitTaskId, ObjectRelationParentId = x.VisitTaskId,
},new { }, new
ArmEnum= armEnum, {
ArmEnum = armEnum,
}); });
} }
@ -1914,7 +1922,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var extraIdentification = string.Empty; var extraIdentification = string.Empty;
Arm armEnum = Arm.SingleReadingArm; Arm armEnum = Arm.SingleReadingArm;
if (entity.VisitTaskId!=null) if (entity.VisitTaskId != null)
{ {
extraIdentification = "/VisitTask"; extraIdentification = "/VisitTask";
armEnum = await _dbContext.VisitTask.Where(x => x.Id == entity.VisitTaskId).Select(x => x.ArmEnum).FirstOrDefaultAsync(); armEnum = await _dbContext.VisitTask.Where(x => x.Id == entity.VisitTaskId).Select(x => x.ArmEnum).FirstOrDefaultAsync();
@ -1925,7 +1933,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
await InsertInspection<NoneDicomStudyFile>(item.Entity as NoneDicomStudyFile, type, x => new InspectionConvertDTO() await InsertInspection<NoneDicomStudyFile>(item.Entity as NoneDicomStudyFile, type, x => new InspectionConvertDTO()
{ {
TrialId= trialid, TrialId = trialid,
ObjectRelationParentId = x.VisitTaskId, ObjectRelationParentId = x.VisitTaskId,
ExtraIndentification = extraIdentification ExtraIndentification = extraIdentification
}, new }, new
@ -3409,7 +3417,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
Guid? subjectVisitId = null; Guid? subjectVisitId = null;
if (entity.SouceReadModuleId != null) if (entity.SouceReadModuleId != null)
{ {
subjectVisitId = await _dbContext.ReadModule.Where(x => x.Id == entity.SouceReadModuleId).Select(x => x.SubjectVisitId).FirstOrDefaultAsync(); subjectVisitId = await _dbContext.ReadModule.Where(x => x.Id == entity.SouceReadModuleId).Select(x => x.SubjectVisitId).FirstOrDefaultAsync();
obj.CutOffVisitName = await _dbContext.SubjectVisit.Where(x => x.Id == subjectVisitId).Select(x => x.BlindName).FirstOrDefaultAsync(); obj.CutOffVisitName = await _dbContext.SubjectVisit.Where(x => x.Id == subjectVisitId).Select(x => x.BlindName).FirstOrDefaultAsync();
@ -3422,7 +3430,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
await InsertInspection<VisitTask>(entity, type, x => new InspectionConvertDTO() await InsertInspection<VisitTask>(entity, type, x => new InspectionConvertDTO()
{ {
VisitTaskId = x.Id, VisitTaskId = x.Id,
SubjectVisitId= subjectVisitId, SubjectVisitId = subjectVisitId,
ExtraIndentification = extraIdentification, ExtraIndentification = extraIdentification,
IsDistinctionInterface = type == AuditOpt.Update && isDistinctionInterface ? true : false, IsDistinctionInterface = type == AuditOpt.Update && isDistinctionInterface ? true : false,
@ -3587,9 +3595,9 @@ namespace IRaCIS.Core.Infra.EFCore.Common
if (inspection.VisitTaskId != null) if (inspection.VisitTaskId != null)
{ {
if (generalData.TrialId == null || generalData.SubjectId == null || generalData.TrialReadingCriterionId == null || generalData.SubjectVisitId == null) if (generalData.TrialId == null || generalData.SubjectId == null || generalData.TrialReadingCriterionId == null || generalData.SubjectVisitId == null)
{ {
var info = await _dbContext.VisitTask.Where(x => x.Id == inspection.VisitTaskId).Select(x => new { SubjectCode = x.Subject.Code, SubjectId = x.SubjectId, x.TrialId, x.SourceSubjectVisitId, ReadModuleSubjectVisitId = (Guid?)x.ReadModule.SubjectVisitId, x.TrialReadingCriterionId }).FirstOrDefaultAsync(); var info = await _dbContext.VisitTask.Where(x => x.Id == inspection.VisitTaskId).Select(x => new { SubjectCode = x.Subject.Code, SubjectId = x.SubjectId, x.TrialId, x.SourceSubjectVisitId, ReadModuleSubjectVisitId = (Guid?)x.ReadModule.SubjectVisitId, x.TrialReadingCriterionId }).FirstOrDefaultAsync();
generalData.TrialReadingCriterionId = info?.TrialReadingCriterionId ?? generalData.TrialReadingCriterionId; generalData.TrialReadingCriterionId = info?.TrialReadingCriterionId ?? generalData.TrialReadingCriterionId;
generalData.TrialId = info?.TrialId ?? generalData.TrialId; generalData.TrialId = info?.TrialId ?? generalData.TrialId;
@ -3616,7 +3624,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
if (inspection.SubjectVisitId != null) if (inspection.SubjectVisitId != null)
{ {
if (generalData.TrialId == null || generalData.SubjectId == null) if (generalData.TrialId == null || generalData.SubjectId == null)
{ {
var info = await _dbContext.SubjectVisit.Where(x => x.Id == generalData.SubjectVisitId).Select(x => var info = await _dbContext.SubjectVisit.Where(x => x.Id == generalData.SubjectVisitId).Select(x =>
new { x.SubjectId, x.TrialSiteId, x.TrialId, SubjectCode = x.Subject.Code }).FirstOrDefaultAsync(); new { x.SubjectId, x.TrialSiteId, x.TrialId, SubjectCode = x.Subject.Code }).FirstOrDefaultAsync();
@ -3635,9 +3643,9 @@ namespace IRaCIS.Core.Infra.EFCore.Common
if (generalData.SubjectId != null) if (generalData.SubjectId != null)
{ {
if (generalData.TrialId == null ) if (generalData.TrialId == null)
{ {
var info = await _dbContext.Subject.Where(x => x.Id == generalData.SubjectId).Select(x => new { SubjectId = x.Id, x.TrialSiteId, x.TrialId, SubjectCode = x.Code, }).FirstOrDefaultAsync(); var info = await _dbContext.Subject.Where(x => x.Id == generalData.SubjectId).Select(x => new { SubjectId = x.Id, x.TrialSiteId, x.TrialId, SubjectCode = x.Code, }).FirstOrDefaultAsync();
if (info == null) if (info == null)
{ {
@ -3687,7 +3695,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
//自定义 标识后面 补充由代码上层的 extraIdentification 附加 //自定义 标识后面 补充由代码上层的 extraIdentification 附加
if (isSelfDefine) if (isSelfDefine)
{ {
result= $"{_userInfo.RequestUrl}/{entityTypeName}"; result = $"{_userInfo.RequestUrl}/{entityTypeName}";
} }
else else
{ {