diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs
index c63e757d2..b89ece8e1 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs
@@ -32,7 +32,21 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public bool IsApplyHeavyReading { get; set; } = false;
}
- public class GetIRMedicalFeedbackListInDto:PageInput
+ public class GetNextIRMedicalFeedbackInDto
+ {
+ ///
+ /// 项目Id
+ ///
+ [NotDefault]
+ public Guid TrialId { get; set; }
+
+ public Guid TrialReadingCriterionId { get; set; }
+
+ public Guid SubjectId { get; set; }
+ }
+
+
+ public class GetIRMedicalFeedbackListInDto:PageInput
{
///
/// 项目Id
@@ -43,7 +57,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public bool? IsUrgent { get; set; }
- public MedicalReviewAuditState? AuditState { get; set; }
+ public Guid? SubjectId { get; set; }
+
+
+ public MedicalReviewAuditState? AuditState { get; set; }
public string SubjectCode { get; set; } = string.Empty;
@@ -78,7 +95,13 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public bool? IsInvalid { get; set; }
public Guid? TrialReadingCriterionId { get; set; }
- }
+
+ ///
+ /// 获取不加急的
+ ///
+ public bool IsNotHaveSigned { get; set; } = false;
+
+ }
public class GetIRMedicalFeedbackListOutDto
{
diff --git a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs
index b59c45897..3a16532c3 100644
--- a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs
@@ -780,22 +780,71 @@ namespace IRaCIS.Core.Application.Service
return ResponseOutput.Result(result);
}
-
///
- /// 获取IR医学审核信息
+ /// 获取下一个IR医学反馈
///
///
///
+ ///
[HttpPost]
+ public async Task GetNextIRMedicalFeedback(GetNextIRMedicalFeedbackInDto inDto)
+ {
+ var list = await GetIRMedicalFeedbackList(new GetIRMedicalFeedbackListInDto()
+ {
+ TrialId=inDto.TrialId,
+ AuditState= MedicalReviewAuditState.Auditing,
+ TrialReadingCriterionId=inDto.TrialReadingCriterionId,
+ SubjectId=inDto.SubjectId,
+ PageIndex=1,
+ PageSize=1,
+ });
+
+
+ if (list.CurrentPageData.Count() == 0)
+ {
+ list = await GetIRMedicalFeedbackList(new GetIRMedicalFeedbackListInDto()
+ {
+ TrialId = inDto.TrialId,
+ AuditState = MedicalReviewAuditState.Auditing,
+ TrialReadingCriterionId = inDto.TrialReadingCriterionId,
+ PageIndex = 1,
+ PageSize = 1,
+ });
+ }
+
+
+ if (list.CurrentPageData.Count() > 0)
+ {
+ return list.CurrentPageData[0];
+ }
+ else
+ {
+ throw new BusinessValidationFailedException(_localizer["MedicalReview_IRFinish"], ApiResponseCodeEnum.CloseCurrentWindows);
+ }
+
+
+
+
+
+ }
+
+ ///
+ /// 获取IR医学审核信息
+ ///
+ ///
+ ///
+ [HttpPost]
public async Task> GetIRMedicalFeedbackList(GetIRMedicalFeedbackListInDto inDto)
{
var taskMedicalReviewquery = _taskMedicalReviewRepository.Where(x => x.TrialId == inDto.TrialId).Include(x => x.VisitTask)
.Where(x => x.VisitTask.DoctorUserId == _userInfo.Id)
.Where(x => x.IsHaveQuestion)
.WhereIf(!inDto.TaskBlindName.IsNullOrEmpty(), x => x.VisitTask.TaskBlindName == inDto.TaskBlindName)
- .WhereIf(inDto.IsUrgent != null, x => x.VisitTask.IsUrgent == inDto.IsUrgent!)
+ .WhereIf(inDto.SubjectId != null, x => x.VisitTask.SubjectId == inDto.SubjectId!)
+ .WhereIf(inDto.IsUrgent != null, x => x.VisitTask.IsUrgent == inDto.IsUrgent!)
.WhereIf(inDto.AuditState != null, x => x.AuditState == inDto.AuditState!)
- .WhereIf(inDto.ReadingCategory != null, x => x.VisitTask.ReadingCategory == inDto.ReadingCategory!)
+ .WhereIf(inDto.IsNotHaveSigned, x => x.AuditState != MedicalReviewAuditState.HaveSigned)
+ .WhereIf(inDto.ReadingCategory != null, x => x.VisitTask.ReadingCategory == inDto.ReadingCategory!)
.WhereIf(inDto.AuditAdviceEnum != null, x => x.AuditAdviceEnum == inDto.AuditAdviceEnum!)
.WhereIf(inDto.DoctorUserIdeaEnum != null, x => x.DoctorUserIdeaEnum == inDto.DoctorUserIdeaEnum!)
.WhereIf(inDto.IsClosedDialog != null, x => x.IsClosedDialog == inDto.IsClosedDialog!)