diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs
index 732caaef4..6a12c5c6f 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs
@@ -64,6 +64,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
[NotDefault]
public Guid TrialReadingCriterionId { get; set; }
+ ///
+ /// 阅片配置的类型
+ ///
+ public ReadingSetType ReadingSetType { get; set; }
+
public Guid Id { get; set; }
}
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs
index 9cb77bc89..787c80a9e 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs
@@ -384,13 +384,16 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string ReadingUser { get; set; }
-
+ public Guid SubjectId { get; set; }
public bool IsReadingTaskViewInOrder { get; set; }
public Guid VisitTaskId { get; set; }
public Arm ArmEnum { get; set; }
+ public bool IsExistsClinicalData { get; set; }
+
+
public MedicalReviewAuditState AuditState { get; set; }
diff --git a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs
index 9917ab527..b173ddc47 100644
--- a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs
@@ -33,6 +33,7 @@ namespace IRaCIS.Core.Application.Service
private readonly IReadingImageTaskService _iReadingImageTaskService;
private readonly IRepository _userTaskRepository;
private readonly IVisitTaskService _visitTaskService;
+ private readonly IReadingClinicalDataService _readingClinicalDataService;
private readonly IRepository _taskMedicalReviewRepository;
private readonly IRepository _readingMedicalReviewDialogRepository;
private readonly IRepository _readingQuestionCriterionTrial;
@@ -52,6 +53,7 @@ namespace IRaCIS.Core.Application.Service
IRepository readingCriterionDictionaryRepository,
IRepository userTaskRepository,
IVisitTaskService visitTaskService,
+ IReadingClinicalDataService readingClinicalDataService,
IRepository taskMedicalReviewRepository,
IRepository readingMedicalReviewDialogRepository,
IRepository readingQuestionCriterionTrial,
@@ -71,6 +73,7 @@ namespace IRaCIS.Core.Application.Service
this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository;
this._userTaskRepository = userTaskRepository;
this._visitTaskService = visitTaskService;
+ this._readingClinicalDataService = readingClinicalDataService;
this._taskMedicalReviewRepository = taskMedicalReviewRepository;
this._readingMedicalReviewDialogRepository = readingMedicalReviewDialogRepository;
this._readingQuestionCriterionTrial = readingQuestionCriterionTrial;
@@ -109,11 +112,22 @@ namespace IRaCIS.Core.Application.Service
medicalReviewInfo.VisitTaskId = taskInfo.Id;
+
+ var clinicalDataList = await _readingClinicalDataService.GetClinicalDataList(new GetReadingOrTaskClinicalDataListInDto()
+ {
+
+ SubjectId = taskInfo.SubjectId,
+ TrialId = taskInfo.TrialId,
+ VisitTaskId = taskInfo.Id,
+ });
+
+ medicalReviewInfo.IsExistsClinicalData = clinicalDataList.Count > 0;
+
medicalReviewInfo.ArmEnum = taskInfo.ArmEnum;
medicalReviewInfo.SubjectCode = taskInfo.IsAnalysisCreate?taskInfo.BlindSubjectCode: taskInfo.Subject.Code;
medicalReviewInfo.TaskBlindName = taskInfo.TaskBlindName;
medicalReviewInfo.ReadingUser = taskInfo.DoctorUser.FirstName + taskInfo.DoctorUser.LastName;
-
+ medicalReviewInfo.SubjectId = taskInfo.SubjectId;
medicalReviewInfo.IsClosedDialog = medicalReviewInfo.MedicalReviewInfo.IsClosedDialog;
medicalReviewInfo.AuditState = medicalReviewInfo.MedicalReviewInfo.AuditState;
medicalReviewInfo.IsSendMessage = medicalReviewInfo.MedicalReviewInfo.IsSendMessage;
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs
index fc8869b44..6174c5b50 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs
@@ -98,7 +98,8 @@ namespace IRaCIS.Application.Services
var resultlist = await visitQuery.WhereIf(finalVisitNum != null && finalVisitNum != 0, x => x.VisitNum <= finalVisitNum)
.Where(x => x.VisitNum > mixReadVisitNum)
.Where(x => !x.IsBaseLine) // 排除基线
- .Where(x => readModulequery.Where(y => y.Id != inDto.Id && y.SubjectVisitId == x.Id && y.TrialReadingCriterionId == inDto.TrialReadingCriterionId && y.ReadingSetType == ReadingSetType.ImageReading).Count() == 0)
+ .WhereIf(inDto.ReadingSetType == ReadingSetType.TumorReading, x => readModulequery.Where(y => y.SubjectVisitId == x.Id && y.TrialReadingCriterionId == inDto.TrialReadingCriterionId && y.ReadingSetType == ReadingSetType.ImageReading).Count() > 0)
+ .WhereIf(inDto.ReadingSetType == ReadingSetType.ImageReading, x => readModulequery.Where(y => y.Id != inDto.Id && y.SubjectVisitId == x.Id && y.TrialReadingCriterionId == inDto.TrialReadingCriterionId && y.ReadingSetType == ReadingSetType.ImageReading).Count() == 0)
.Select(x => new GetSubjectReadVisitsOutDto()
{
SubjectVisitId = x.Id,
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index ee59f65bf..31af7b5a4 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -2210,7 +2210,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}).OrderByDescending(x=>x.Answer).FirstOrDefault();
- if (maxSuv == null)
+ if (maxSuv == null|| maxSuv .Answer == 0m)
{
return string.Empty;
}
@@ -2258,7 +2258,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
VisitTaskId=inDto.VisitTaskId,
});
- return studyList.Any(x => x.Modalities.Contains("PET")) ? ReadingYesOrNo.Yes.GetEnumInt() : ReadingYesOrNo.No.GetEnumInt();
+ return studyList.Any(x => x.Modalities.Contains("PT")) ? ReadingYesOrNo.Yes.GetEnumInt() : ReadingYesOrNo.No.GetEnumInt();
}
#region 影像学整体肿瘤评估
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs
index 68837dbd2..de36657b6 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs
@@ -91,7 +91,7 @@ namespace IRaCIS.Core.Domain.Models
///
/// 评估原因
///
- public string EvaluationReason { get; set; } = "肿瘤学阅片评估原因请依据临床数据填写,在与影像学结果不一致时必填。";
+ public string EvaluationReason { get; set; } = StaticData.International("CriterionTrial_EvaluationReason");
///