肿瘤学修改
continuous-integration/drone/push Build is passing Details

IRC_NewDev
he 2023-12-20 10:08:41 +08:00
parent a42907e7c8
commit 1a8bd17f01
4 changed files with 69 additions and 24 deletions

View File

@ -1130,6 +1130,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{
public Guid OncologyTaskId { get; set; }
public Guid GlobalTaskId { get; set; }
public List<SetOncologyQuestion> OncologyQuestionList { get; set; }
}

View File

@ -2713,20 +2713,37 @@ namespace IRaCIS.Application.Services
if (isReadingTaskViewInOrder)
{
pastResultTaskIdList = await _visitTaskRepository.Where(x =>
x.TrialId == taskInfo.TrialId &&
x.SubjectId == taskInfo.SubjectId &&
x.VisitTaskNum < taskInfo.VisitTaskNum &&
x.ArmEnum == taskInfo.ArmEnum &&
x.DoctorUserId == taskInfo.DoctorUserId &&
x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId &&
x.ReadingTaskState == ReadingTaskState.HaveSigned &&
x.TaskState == TaskState.Effect &&
x.IsSelfAnalysis == taskInfo.IsSelfAnalysis &&
x.IsAnalysisCreate == taskInfo.IsAnalysisCreate &&
x.ReadingCategory == taskInfo.ReadingCategory &&
x.Id != taskInfo.Id
).OrderBy(x=>x.VisitTaskNum).ThenBy(x=>x.TaskState).Select(x => x.Id).ToListAsync();
switch (taskInfo.ReadingCategory)
{
case ReadingCategory.Visit:
case ReadingCategory.Global:
pastResultTaskIdList = await _visitTaskRepository.Where(x =>
x.TrialId == taskInfo.TrialId &&
x.SubjectId == taskInfo.SubjectId &&
x.VisitTaskNum < taskInfo.VisitTaskNum &&
x.ArmEnum == taskInfo.ArmEnum &&
x.DoctorUserId == taskInfo.DoctorUserId &&
x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId &&
x.ReadingTaskState == ReadingTaskState.HaveSigned &&
x.TaskState == TaskState.Effect &&
x.IsSelfAnalysis == taskInfo.IsSelfAnalysis &&
x.IsAnalysisCreate == taskInfo.IsAnalysisCreate &&
x.ReadingCategory == taskInfo.ReadingCategory &&
x.Id != taskInfo.Id
).OrderBy(x => x.VisitTaskNum).ThenBy(x => x.TaskState).Select(x => x.Id).ToListAsync();
break;
case ReadingCategory.Oncology:
// 肿瘤学这里很特殊 因为没有裁判的时候 可能取R1可能取R2 为了和之前阅片的时候保持统一
// 所以在保存肿瘤学答案的时候就存起来 现在签名的时候 创建关系
relatedVisitTaskIdList = await _visitTaskRepository.Where(x =>x.Id== visitTaskId).Select(x => x.RelatedVisitTaskIdList).FirstNotNullAsync();
break;
}
reportRelatedTaskIdList = await _visitTaskRepository.Where(x =>

View File

@ -52,14 +52,28 @@ namespace IRaCIS.Application.Services
// 先找到是R1还是R2的阅片 先找到全局阅片
var globalTaskInfo = await _visitTaskRepository
.Where(x => x.SubjectId == taskInfo.SubjectId &&
x.TaskState == TaskState.Effect &&
x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId &&
x.ReadingCategory == ReadingCategory.Global &&
x.VisitTaskNum < taskInfo.VisitTaskNum
).OrderByDescending(x => x.VisitTaskNum)
.FirstNotNullAsync();
VisitTask? globalTaskInfo = null;
var relatedVisitTaskIdList = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.RelatedVisitTaskIdList).FirstNotNullAsync();
if (taskInfo.ReadingTaskState == ReadingTaskState.HaveSigned && relatedVisitTaskIdList.Count() > 0)
{
if (relatedVisitTaskIdList.Count() > 0)
{
globalTaskInfo = await _visitTaskRepository.Where(x => x.Id == relatedVisitTaskIdList[0]).FirstNotNullAsync();
}
}
else
{
globalTaskInfo = await _visitTaskRepository
.Where(x => x.SubjectId == taskInfo.SubjectId &&
x.TaskState == TaskState.Effect &&
x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId &&
x.ReadingCategory == ReadingCategory.Global &&
x.VisitTaskNum < taskInfo.VisitTaskNum
).OrderByDescending(x => x.VisitTaskNum)
.FirstNotNullAsync();
}
// 最后取哪组的数据
@ -72,6 +86,7 @@ namespace IRaCIS.Application.Services
if (globalTaskInfo.JudgeVisitTaskId == null)
{
visitTask = globalTaskInfo;
visitTaskIdList = await _visitTaskRepository.Where(x => x.Id == visitTask.Id).Select(x => x.RelatedVisitTaskIdList).FirstNotNullAsync();
}
else
{
@ -184,7 +199,17 @@ namespace IRaCIS.Application.Services
await _readingOncologyTaskInfoRepository.AddRangeAsync(readingOncologies);
await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == inDto.OncologyTaskId, u => new VisitTask() { ReadingTaskState = ReadingTaskState.Reading });
var relatedVisitTaskIdList=new List<Guid>();
relatedVisitTaskIdList.Add(inDto.GlobalTaskId);
var relatedVisitTaskIds = JsonConvert.SerializeObject(relatedVisitTaskIdList);
// 这里先保存 签名的时候 会统一创建关系
await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == inDto.OncologyTaskId, u => new VisitTask()
{
ReadingTaskState = ReadingTaskState.Reading,
RelatedVisitTaskIds = relatedVisitTaskIds
}) ;
var result = await _readingOncologyTaskInfoRepository.SaveChangesAsync();

View File

@ -100,7 +100,8 @@ steps:
commands:
- echo start publish test-irc-api
- cd /opt/cicd/irc-test
- sh test-irc.sh v${DRONE_BUILD_NUMBER}
- echo sh test-irc.sh v${DRONE_BUILD_NUMBER}
- sh test-irc.sh
trigger:
branch: