From 7e47e0774741118aff6e08d82c1e5bd91366b517 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Mon, 22 May 2023 11:49:54 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Service/Reading/Dto/GetReadModuleDto.cs | 22 +++++++
.../ReadingPeriod/ReadModuleService.cs | 57 ++++++++++++++++++-
.../General/GeneralCalculateService.cs | 4 ++
.../Reading/ReadingPeriod/ReadModule.cs | 3 +-
.../Reading/View/ReadModuleView.cs | 5 ++
5 files changed, 89 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs
index 4118d6553..5149bda7e 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs
@@ -54,6 +54,28 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string VisitName { get; set; }
}
+ public class GetCanChangeReadVisitListInDto
+ {
+ ///
+ /// 受试者ID
+ ///
+ public Guid SubjectId { get; set; }
+
+ [NotDefault]
+ public Guid TrialReadingCriterionId { get; set; }
+
+ public Guid Id { get; set; }
+ }
+
+ public class ChangeCutOffVisitInDto
+ {
+
+ [NotDefault]
+ public Guid Id { get; set; }
+
+
+ public Guid SubjectVisitIdId { get; set; }
+ }
public class GetSubjectReadVisitsInDto
{
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs
index 0f98bdc86..53ed4f94d 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs
@@ -15,7 +15,7 @@ namespace IRaCIS.Application.Services
/// 生成的阅片模块(在大列表上展示的) 阅片期
///
[ApiExplorerSettings(GroupName = "Reading")]
- public class ReadModuleService : BaseService
+ public class ReadModuleService : BaseService
{
public IRepository _subjectVisitRepository;
@@ -66,6 +66,61 @@ namespace IRaCIS.Application.Services
this._readModuleRepository = readModuleRepository;
}
+ #region 获取修改时可选择的阅片期截止访视
+
+ ///
+ /// 获取修改截止访视下拉
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetCanChangeReadVisitList(GetCanChangeReadVisitListInDto inDto)
+ {
+ //增加标准
+ var mixReadVisitNum = await _visitTaskRepository.Where(x =>
+ x.TrialReadingCriterionId == inDto.TrialReadingCriterionId
+ && x.ReadingTaskState == ReadingTaskState.HaveSigned
+ && x.ReadingCategory == ReadingCategory.Visit
+ && x.SubjectId == inDto.SubjectId
+ && x.TaskState == TaskState.Effect).MaxAsync(x => x.VisitTaskNum);
+
+
+ var visitQuery = _subjectVisitRepository.Where(x => x.SubjectId == inDto.SubjectId && x.LatestScanDate != null && !x.IsLostVisit);
+ var finalVisitNum = await visitQuery.Where(x => x.IsFinalVisit).Select(x => x.VisitNum).FirstOrDefaultAsync();
+
+ //增加标准
+ var readModulequery = _readModuleRepository.AsQueryable().Where(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId);
+
+ 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)
+ .Select(x => new GetSubjectReadVisitsOutDto()
+ {
+ SubjectVisitId = x.Id,
+ VisitName = x.VisitName,
+ VisitNum = x.VisitNum,
+ }).OrderBy(x => x.VisitNum).ToListAsync();
+
+ return resultlist;
+ }
+ #endregion
+
+
+ ///
+ /// 修改全局阅片截止访视
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task ChangeCutOffVisit(ChangeCutOffVisitInDto inDto)
+ {
+ await _readModuleRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.Id, x => new ReadModule() {
+ SubjectVisitId=inDto.SubjectVisitIdId
+ });
+
+ return await _readModuleRepository.SaveChangesAsync();
+ }
///
/// 获取读片模块 //加了标准参数
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs
index 051be5b91..497573f8a 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs
@@ -239,11 +239,15 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
+ var index = 0;
addrowInfo.ForEach(x =>
{
+
if (needRowIds.Contains(x.Id))
{
+ index++;
+ x.RowIndex = index;
x.FristAddTaskId = x.FristAddTaskId==beforeConvertedTaskId? visitTaskId: x.FristAddTaskId;
x.QuestionId = otherLesionQuestion.Id;
diff --git a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs
index aa09506c0..90be395aa 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs
@@ -75,10 +75,11 @@ namespace IRaCIS.Core.Domain.Models
public DateTime UpdateTime { get; set; }
+
- public bool IsDeleted { get; set; }
+ public bool IsDeleted { get; set; }
public DateTime? DeletedTime { get; set; }
diff --git a/IRaCIS.Core.Domain/Reading/View/ReadModuleView.cs b/IRaCIS.Core.Domain/Reading/View/ReadModuleView.cs
index 5c9687998..7a843b8c0 100644
--- a/IRaCIS.Core.Domain/Reading/View/ReadModuleView.cs
+++ b/IRaCIS.Core.Domain/Reading/View/ReadModuleView.cs
@@ -40,6 +40,11 @@ namespace IRaCIS.Core.Domain.Models
///
public bool? IsUrgent { get; set; }
+ ///
+ /// 是否可改截止访视
+ ///
+ public bool IsCanChangeCutOffVisit { get; set; }
+
///
/// 访视ID
///