From 0e0dd0c7d384448140b3024754e484b6a50d22e2 Mon Sep 17 00:00:00 2001
From: he <109787524@qq.com>
Date: Mon, 15 Jul 2024 14:43:49 +0800
Subject: [PATCH 1/7] =?UTF-8?q?=E8=B7=B3=E8=BF=87=E9=98=85=E7=89=87?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ReadingImageTask/ReadingImageTaskService.cs | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 546e7470e..0d1b212f4 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -2770,14 +2770,20 @@ namespace IRaCIS.Application.Services
var subjectIndex = subjectTaskList.Where(x => x.SubjectId == inDto.SubjectId && x.SubjectCode == inDto.SubjectCode).Select(x => x.Index).FirstOrDefault();
- var currentSubject = subjectTaskList.Where(x => x.Index >= subjectIndex && !x.ExistReadingApply).OrderBy(x => x.Index).FirstOrDefault();
+
+ var currentSubject = subjectTaskList.Where(x => x.Index >= subjectIndex && !x.ExistReadingApply)
+ // 排除跳过的
+ .Where(x=> x.UnReadCanReadTaskList.Select(y => y.Id).Intersect(cacheSkipIds).Count()==0)
+ .OrderBy(x => x.Index).FirstOrDefault();
+
if (currentSubject == null)
{
throw new BusinessValidationFailedException(_localizer["ReadingImage_TaskFinish"], ApiResponseCodeEnum.CloseCurrentWindows);
}
- task = currentSubject.UnReadCanReadTaskList.Select(x => new GetReadingTaskDto()
+ task = currentSubject.UnReadCanReadTaskList
+ .Select(x => new GetReadingTaskDto()
{
ReadingCategory = x.ReadingCategory,
SubjectCode = currentSubject.SubjectCode,
From 49e21a6342f305b1356763dcc5af49f7ccc8649e Mon Sep 17 00:00:00 2001
From: he <109787524@qq.com>
Date: Tue, 16 Jul 2024 09:57:33 +0800
Subject: [PATCH 2/7] =?UTF-8?q?=E5=8A=A0=E8=BF=94=E5=9B=9E=E5=8F=82?=
=?UTF-8?q?=E6=95=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Reading/ReadingImageTask/ReadingImageTaskService.cs | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 0d1b212f4..5c507b269 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -22,6 +22,8 @@ using AutoMapper.QueryableExtensions;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Domain.Models;
using Microsoft.Extensions.Options;
+using System.Linq;
+using NPOI.SS.Formula.Functions;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
namespace IRaCIS.Application.Services
@@ -3001,7 +3003,7 @@ namespace IRaCIS.Application.Services
///
///
[HttpPost]
- public async Task VerifyReadingRestTime()
+ public async Task VerifyReadingRestTime()
{
var userTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt;
if (userTypeEnum != UserTypeEnum.IndependentReviewer)
@@ -3051,6 +3053,8 @@ namespace IRaCIS.Application.Services
#endregion
}
+
+ return true;
}
///
@@ -3058,7 +3062,7 @@ namespace IRaCIS.Application.Services
///
///
[HttpPost]
- public async Task ResetReadingRestTime(Guid? userID)
+ public async Task ResetReadingRestTime(Guid? userID)
{
if (userID == null)
{
@@ -3085,6 +3089,7 @@ namespace IRaCIS.Application.Services
{
_provider.Set(startReadingTimeKey, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), TimeSpan.FromHours(48));
}
+ return true;
}
///
From 74aec46a94858ba107b57e25df128269e74549a0 Mon Sep 17 00:00:00 2001
From: he <109787524@qq.com>
Date: Tue, 16 Jul 2024 10:10:12 +0800
Subject: [PATCH 3/7] =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=80=BC=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Service/Reading/Interface/IReadingImageTaskService.cs | 2 +-
.../Service/Reading/ReadingImageTask/ReadingImageTaskService.cs | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs
index 95c4bac51..22e12adaa 100644
--- a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs
@@ -37,7 +37,7 @@ namespace IRaCIS.Core.Application.Contracts
Task> GetManualList(GetManualListInDto inDto);
- Task ResetReadingRestTime(Guid? userId);
+ Task ResetReadingRestTime(Guid? userId);
Task> GetReadingPastResultList(GetReadingPastResultListInDto inDto);
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 5c507b269..32597aa5e 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -3008,7 +3008,7 @@ namespace IRaCIS.Application.Services
var userTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt;
if (userTypeEnum != UserTypeEnum.IndependentReviewer)
{
- return;
+ return true;
}
var startReadingTimeKey = _userInfo.Id.ToString() + "StartReadingTime";
var startRestTimeKey = _userInfo.Id.ToString() + "StartRestTime";
From 4026eca65690302a2392ef739fade1ba56384a87 Mon Sep 17 00:00:00 2001
From: he <109787524@qq.com>
Date: Wed, 17 Jul 2024 10:10:28 +0800
Subject: [PATCH 4/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Reading/ReadingImageTask/ReadingImageTaskService.cs | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 32597aa5e..2748d09e1 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -2707,6 +2707,12 @@ namespace IRaCIS.Application.Services
}
+ var c = _provider.Get(clearSkipReadingCacheKey).Value;
+ Console.WriteLine(c);
+ // 加这个测试
+ Thread.Sleep(3000); // 3000毫秒 = 3秒
+ return true;
+ }
///
From 85a303171c3f18b25244178e3b2dba66f89790a7 Mon Sep 17 00:00:00 2001
From: he <109787524@qq.com>
Date: Wed, 17 Jul 2024 10:19:51 +0800
Subject: [PATCH 5/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ReadingImageTaskService.cs | 40 +++++++++++++++++--
1 file changed, 36 insertions(+), 4 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 2748d09e1..950364f69 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -2707,10 +2707,29 @@ namespace IRaCIS.Application.Services
}
- var c = _provider.Get(clearSkipReadingCacheKey).Value;
- Console.WriteLine(c);
- // 加这个测试
- Thread.Sleep(3000); // 3000毫秒 = 3秒
+ ///
+ /// 设置跳过阅片的缓存
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task SetSkipReadingCache(SetSkipReadingCacheInDto inDto )
+ {
+ var clearSkipReadingCacheKey = _userInfo.Id.ToString() + "SkipReadingCache";
+ var clearSkipReadingCache = _provider.Get(clearSkipReadingCacheKey).Value;
+ if (clearSkipReadingCache == null|| clearSkipReadingCache==string.Empty)
+ {
+ List cacheIds = new List();
+ cacheIds.Add(inDto.VisitTaskId);
+
+ _provider.Set(clearSkipReadingCacheKey, JsonConvert.SerializeObject(cacheIds), TimeSpan.FromHours(24));
+ }
+ else
+ {
+ List? cacheIds=JsonConvert.DeserializeObject>(clearSkipReadingCache);
+ cacheIds.Add(inDto.VisitTaskId);
+ _provider.Set(clearSkipReadingCacheKey, JsonConvert.SerializeObject(cacheIds), TimeSpan.FromHours(24));
+ }
return true;
}
@@ -2820,12 +2839,25 @@ namespace IRaCIS.Application.Services
})).CurrentPageData;
+
+
+
+
+
if (subjectTaskList.Count() == 0)
{
throw new BusinessValidationFailedException(_localizer["ReadingImage_TaskFinish"], ApiResponseCodeEnum.CloseCurrentWindows);
}
var taskList = subjectTaskList.FirstOrDefault()!.UnReadCanReadTaskList;
+ // 排除跳过的
+ List remainingItems = taskList.Select(x => x.Id).Except(cacheSkipIds).ToList();
+
+ taskList = taskList.Where(x => remainingItems.Contains(x.Id)).ToList();
+ if (taskList.Count() == 0)
+ {
+ throw new BusinessValidationFailedException(_localizer["ReadingImage_TaskFinish"], ApiResponseCodeEnum.CloseCurrentWindows);
+ }
Random random = new Random();
//返回的范围是 0- taskList.Count-1
From d72f3e89a24efdeb67447c328644477f8768033a Mon Sep 17 00:00:00 2001
From: he <109787524@qq.com>
Date: Wed, 17 Jul 2024 11:06:47 +0800
Subject: [PATCH 6/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Reading/Dto/ReadingImageTaskViewModel.cs | 5 ++++
.../ReadingImageTaskService.cs | 28 ++++++++++++++++---
2 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index d0288c364..605c64b6e 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -1701,6 +1701,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
}
+ public class SetSkipReadingCacheInDto
+ {
+ public Guid VisitTaskId { get; set; }
+ }
+
public class ResetReadingTaskInDto
{
public Guid VisitTaskId { get; set; }
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 950364f69..7c007f802 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -2707,6 +2707,20 @@ namespace IRaCIS.Application.Services
}
+
+ ///
+ /// 清除跳过阅片的缓存
+ ///
+ ///
+ [HttpPost]
+ public async Task ClearSkipReadingCache()
+ {
+ var clearSkipReadingCacheKey = _userInfo.Id.ToString() + "SkipReadingCache";
+ _provider.Remove(clearSkipReadingCacheKey);
+ return true;
+ }
+
+
///
/// 设置跳过阅片的缓存
///
@@ -2757,6 +2771,16 @@ namespace IRaCIS.Application.Services
throw new BusinessValidationFailedException(_localizer["ReadingImage_IDMust"]);
}
+
+ #region 跳过阅片
+ var clearSkipReadingCacheKey = _userInfo.Id.ToString() + "SkipReadingCache";
+ var clearSkipReadingCache = _provider.Get(clearSkipReadingCacheKey).Value;
+ List cacheSkipIds = new List();
+ if (clearSkipReadingCache != null && clearSkipReadingCache != string.Empty)
+ {
+ cacheSkipIds = JsonConvert.DeserializeObject>(clearSkipReadingCache);
+ }
+ #endregion
var trialReadingCriterion = await _readingQuestionCriterionTrialRepository.FindAsync(trialReadingCriterionId ?? Guid.Empty);
if (inDto.VisitTaskId != null)
@@ -2840,10 +2864,6 @@ namespace IRaCIS.Application.Services
})).CurrentPageData;
-
-
-
-
if (subjectTaskList.Count() == 0)
{
throw new BusinessValidationFailedException(_localizer["ReadingImage_TaskFinish"], ApiResponseCodeEnum.CloseCurrentWindows);
From d9fc5e3646360ee2422d5aeed3098cc909f5a223 Mon Sep 17 00:00:00 2001
From: he <109787524@qq.com>
Date: Wed, 17 Jul 2024 13:37:01 +0800
Subject: [PATCH 7/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?=
=?UTF-8?q?=E6=AC=A1=E4=BB=BB=E5=8A=A1=E7=9A=84=E7=AD=94=E6=A1=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Reading/Dto/ReadingImageTaskViewModel.cs | 2 ++
.../ReadingImageTaskService.cs | 33 +++++++++++++++++--
2 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index 605c64b6e..0cb0ecae0 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -609,6 +609,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{
public string Answer { get; set; }
+ public string LastTaskAnswer { get; set; }
+
public bool IsFirstChangeTask { get; set; } = false;
public List CrterionDictionaryGroup { get; set; }
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 7c007f802..3cae0656b 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -874,10 +874,33 @@ namespace IRaCIS.Application.Services
var answers = new List();
+ var lastTaskAnswer = new List();
+
if (visitTaskId != null)
{
answers = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == visitTaskId).ToListAsync();
+ var taskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
+
+ var laskTaskId = await _visitTaskRepository.Where(x =>
+ (x.SubjectId == taskInfo.SubjectId && x.TaskState == TaskState.Effect
+ && x.IsAnalysisCreate == taskInfo.IsAnalysisCreate
+ && x.DoctorUserId == taskInfo.DoctorUserId
+ && x.IsSelfAnalysis == taskInfo.IsSelfAnalysis
+ && x.VisitTaskNum < taskInfo.VisitTaskNum
+ && x.ArmEnum == taskInfo.ArmEnum
+ && x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId
+ && x.ReadingCategory == ReadingCategory.Visit) || x.Id == taskInfo.BeforeConvertedTaskId
+ ).OrderByDescending(x => x.VisitTaskNum).Select(x => x.Id).FirstOrDefaultAsync();
+ if (criterionIdInfo.IsReadingTaskViewInOrder != ReadingOrder.InOrder)
+ {
+ // 无序的话 不要查
+ laskTaskId = Guid.NewGuid();
+ }
+
+ lastTaskAnswer = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == laskTaskId).ToListAsync();
+
+
var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).ProjectTo(_mapper.ConfigurationProvider).FirstNotNullAsync();
if (taskinfo.VisitTaskNum == 0)
@@ -922,24 +945,28 @@ namespace IRaCIS.Application.Services
foreach (var item in result)
{
- GetDicomReadingAnswer(item, questions, answers);
+ GetDicomReadingAnswer(item, questions, answers, lastTaskAnswer);
}
return result;
}
- private void GetDicomReadingAnswer(DicomReadingQuestionAnswer item, List questions, List answers)
+ private void GetDicomReadingAnswer(DicomReadingQuestionAnswer item, List questions, List answers, List lastTaskAnswers)
{
var answer = answers.Where(x => x.ReadingQuestionTrialId == item.Id).Select(x => x.Answer).FirstIsNullReturnEmpty();
item.Answer = answer.IsNullOrEmpty() ? item.DefaultValue : answer;
+ var lastTaskAnswer = lastTaskAnswers.Where(x => x.ReadingQuestionTrialId == item.Id).Select(x => x.Answer).FirstIsNullReturnEmpty();
+ item.LastTaskAnswer = lastTaskAnswer.IsNullOrEmpty() ? item.DefaultValue : lastTaskAnswer;
+
+
item.Childrens = questions.Where(x => x.ParentId == item.Id || (x.GroupId == item.Id && x.ParentId == null)).ToList();
if (item.Childrens != null && item.Childrens.Count > 0)
{
foreach (var question in item.Childrens)
{
- GetDicomReadingAnswer(question, questions, answers);
+ GetDicomReadingAnswer(question, questions, answers, lastTaskAnswers);
}
}