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>
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Question"> <member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Question">
<summary> <summary>
质疑 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</summary> </summary>
</member> </member>
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Consistency"> <member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Consistency">
<summary> <summary>
一致性核查 һ<EFBFBD><EFBFBD><EFBFBD>Ժ˲<EFBFBD>
</summary> </summary>
</member> </member>
<member name="T:IRaCIS.Core.Application.ViewModel.CopyFrontAuditConfigItemDto"> <member name="T:IRaCIS.Core.Application.ViewModel.CopyFrontAuditConfigItemDto">
<summary> <summary>
复制 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</summary> </summary>
</member> </member>
<member name="T:IRaCIS.Core.Application.ViewModel.SystemNoticeView"> <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 class GetReadingReportEvaluationOutDto
{ {
public Guid? VisitTaskId { get; set; }
public object ReportCalculateResult { get; set; } public object ReportCalculateResult { get; set; }
@ -472,6 +473,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid? StudyId { get; set; } public Guid? StudyId { get; set; }
public string StudyInstanceUid { get; set; } public string StudyInstanceUid { get; set; }
public string SopInstanceUid { get; set; }
} }
public class GetCustomTagInDto public class GetCustomTagInDto
@ -566,6 +568,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string Value { get; set; } public string Value { get; set; }
public string DictionaryCode { get; set; } public string DictionaryCode { get; set; }
public bool IsHighlight { get; set; } = false;
} }
public class ChartItem public class ChartItem

View File

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

View File

@ -30,6 +30,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
IRepository<ReadingQuestionTrial> _readingQuestionTrialRepository, IRepository<ReadingQuestionTrial> _readingQuestionTrialRepository,
IRepository<OrganInfo> _organInfoRepository, IRepository<OrganInfo> _organInfoRepository,
IRepository<ReadingGlobalTaskInfo> _readingGlobalTaskInfoRepository, IRepository<ReadingGlobalTaskInfo> _readingGlobalTaskInfoRepository,
IRepository<ReadingJudgeInfo> _readingJudgeInfoRepository,
IRepository<SubjectVisit> _subjectVisitRepository, IRepository<SubjectVisit> _subjectVisitRepository,
IRepository<TumorAssessment_IRECIST1Point1> _tumorAssessmentRepository, IRepository<TumorAssessment_IRECIST1Point1> _tumorAssessmentRepository,
IGeneralCalculateService _generalCalculateService, IGeneralCalculateService _generalCalculateService,
@ -508,12 +509,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
TrialId = task.TrialId, TrialId = task.TrialId,
VisitTaskId = task.Id, VisitTaskId = task.Id,
}); });
data.VisitTaskId= task.Id;
} }
return data; return data;
} }
EvaluationColumn BuildEvaluationTable(GetReadingReportEvaluationOutDto r1, GetReadingReportEvaluationOutDto r2) async Task<EvaluationColumn> BuildEvaluationTable(GetReadingReportEvaluationOutDto r1, GetReadingReportEvaluationOutDto r2)
{ {
EvaluationColumn result = new EvaluationColumn() EvaluationColumn result = new EvaluationColumn()
{ {
@ -537,6 +540,54 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
break; 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() 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)) r1data = r1data.Concat(Enumerable.Repeat(new EvaluationValue() { Value = "" }, length))
.Take(length) .Take(length)
.ToList(); .ToList();
SetHighlight(r1data, Arm.DoubleReadingArm1);
result.Evaluation.Add(r1data); result.Evaluation.Add(r1data);
@ -601,6 +653,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
r2data = r2data.Concat(Enumerable.Repeat(new EvaluationValue() { Value = "" }, length)) r2data = r2data.Concat(Enumerable.Repeat(new EvaluationValue() { Value = "" }, length))
.Take(length) .Take(length)
.ToList(); .ToList();
SetHighlight(r2data, Arm.DoubleReadingArm2);
result.Evaluation.Add(r2data); 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) if (r1Data != null)
{ {
var r1Target = await BuildTargetChart(r1Data, Arm.DoubleReadingArm1); var r1Target = await BuildTargetChart(r1Data, Arm.DoubleReadingArm1);