Merge branch 'Test_IRC_Net10' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net10

Test_IRC_Net10
hang 2026-06-09 16:32:55 +08:00
commit 39eade67f0
4 changed files with 64 additions and 5 deletions

View File

@ -17510,17 +17510,17 @@
</member>
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Question">
<summary>
质疑
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</summary>
</member>
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Consistency">
<summary>
一致性核查
һ<EFBFBD><EFBFBD><EFBFBD>Ժ˲<EFBFBD>
</summary>
</member>
<member name="T:IRaCIS.Core.Application.ViewModel.CopyFrontAuditConfigItemDto">
<summary>
复制
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</summary>
</member>
<member name="T:IRaCIS.Core.Application.ViewModel.SystemNoticeView">

View File

@ -192,6 +192,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class GetReadingReportEvaluationOutDto
{
public Guid? VisitTaskId { get; set; }
public object ReportCalculateResult { get; set; }
@ -472,6 +473,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid? StudyId { get; set; }
public string StudyInstanceUid { get; set; }
public string SopInstanceUid { get; set; }
}
public class GetCustomTagInDto
@ -566,6 +568,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string Value { get; set; }
public string DictionaryCode { get; set; }
public bool IsHighlight { get; set; } = false;
}
public class ChartItem

View File

@ -457,6 +457,7 @@ namespace IRaCIS.Core.Application.Service
InstanceId = x.InstanceId,
SeriesId = x.SeriesId,
StudyId = x.StudyId,
SopInstanceUid = x.Instance.SopInstanceUid,
StudyInstanceUid = x.Instance.StudyInstanceUid,
}).ToListAsync();
@ -471,6 +472,7 @@ namespace IRaCIS.Core.Application.Service
InstanceId = x.InstanceId,
SeriesId = x.SeriesId,
StudyId = x.StudyId,
SopInstanceUid = x.Instance.SopInstanceUid,
StudyInstanceUid = x.Instance.StudyInstanceUid,
}).ToListAsync();

View File

@ -30,6 +30,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
IRepository<ReadingQuestionTrial> _readingQuestionTrialRepository,
IRepository<OrganInfo> _organInfoRepository,
IRepository<ReadingGlobalTaskInfo> _readingGlobalTaskInfoRepository,
IRepository<ReadingJudgeInfo> _readingJudgeInfoRepository,
IRepository<SubjectVisit> _subjectVisitRepository,
IRepository<TumorAssessment_IRECIST1Point1> _tumorAssessmentRepository,
IGeneralCalculateService _generalCalculateService,
@ -508,12 +509,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
TrialId = task.TrialId,
VisitTaskId = task.Id,
});
data.VisitTaskId= task.Id;
}
return data;
}
EvaluationColumn BuildEvaluationTable(GetReadingReportEvaluationOutDto r1, GetReadingReportEvaluationOutDto r2)
async Task<EvaluationColumn> BuildEvaluationTable(GetReadingReportEvaluationOutDto r1, GetReadingReportEvaluationOutDto r2)
{
EvaluationColumn result = new EvaluationColumn()
{
@ -537,6 +540,54 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
break;
}
Arm? highlightArm = null;
ArbitrationRule? highlightRule = null;
decimal? highlightVisitTaskNum = null;
if (r1.VisitTaskId != null && r2.VisitTaskList != null)
{
var judgeInfo =await _visitTaskRepository.Where(x => x.SubjectId == inDto.SubjectId && x.TrialReadingCriterionId == inDto.TrialCriterionId
&& x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned
&& x.ReadingCategory== ReadingCategory.Judge
).OrderByDescending(x => x.VisitTaskNum).Include(x=>x.JudgeResultTask).FirstOrDefaultAsync();
if (judgeInfo != null && judgeInfo.JudgeResultTask != null)
{
if (judgeInfo.JudgeResultTask.ArmEnum == Arm.DoubleReadingArm1
|| judgeInfo.JudgeResultTask.ArmEnum == Arm.DoubleReadingArm2)
{
highlightArm = judgeInfo.JudgeResultTask.ArmEnum;
highlightRule = criterion.ArbitrationRule;
highlightVisitTaskNum = judgeInfo.VisitTaskNum;
}
}
}
void SetHighlight(List<EvaluationValue> data, Arm arm)
{
if (highlightArm != arm || highlightVisitTaskNum == null)
{
return;
}
if (highlightRule == ArbitrationRule.Reading)
{
for (var index = 0; index < data.Count && index < highlightVisitTaskNum.Value; index++)
{
data[index].IsHighlight = true;
}
}
else if (highlightRule == ArbitrationRule.Visit)
{
var index = decimal.ToInt32(decimal.Floor(highlightVisitTaskNum.Value));
if (index >= 0 && index < data.Count)
{
data[index].IsHighlight = true;
}
}
}
result.Evaluation.Add(visitTaskName.Select(x => new EvaluationValue()
@ -570,6 +621,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
r1data = r1data.Concat(Enumerable.Repeat(new EvaluationValue() { Value = "" }, length))
.Take(length)
.ToList();
SetHighlight(r1data, Arm.DoubleReadingArm1);
result.Evaluation.Add(r1data);
@ -601,6 +653,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
r2data = r2data.Concat(Enumerable.Repeat(new EvaluationValue() { Value = "" }, length))
.Take(length)
.ToList();
SetHighlight(r2data, Arm.DoubleReadingArm2);
result.Evaluation.Add(r2data);
}
@ -679,7 +732,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}
result.Evaluation = BuildEvaluationTable(r1Data, r2Data);
result.Evaluation =await BuildEvaluationTable(r1Data, r2Data);
if (r1Data != null)
{
var r1Target = await BuildTargetChart(r1Data, Arm.DoubleReadingArm1);