From bed277f899caa336b92c7f7df96ca77d27f0140e Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 17 Oct 2023 09:39:52 +0800
Subject: [PATCH 01/52] =?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
---
.../ReadingCalculate/LuganoCalculateService.cs | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 5e816b314..1936d5482 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -517,6 +517,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
// SUVmax所在病灶
new ReadingCalculateData (){QuestionType=QuestionType.SUVmaxLesion,GetStringFun=GetSuvMaxFocus},
+
+ //获取肝脏评估
+ new ReadingCalculateData (){QuestionType=QuestionType.LiverAssessment,GetStringFun=GetLiverAssessment},
////靶病灶径线之和(SOD)
//new ReadingCalculateData (){QuestionType=QuestionType.SOD,GetDecimalNullFun=GetSODData},
@@ -1978,6 +1981,19 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
#endregion
+
+ #region 肝脏评估
+ ///
+ /// 获取肝脏评估
+ ///
+ ///
+ ///
+ public async Task GetLiverAssessment(ReadingCalculateDto inDto)
+ {
+ return inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LiverState).Select(x => x.Answer).FirstIsNullReturnEmpty();
+ }
+ #endregion
+
#region SuvMax所在病灶
///
From 367a096b8a9805d69333994209fd37d0fd93aa39 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 17 Oct 2023 10:38:41 +0800
Subject: [PATCH 02/52] =?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/ReadingImageTask/ReadingImageTaskService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index df466c762..5063f47bb 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -1767,7 +1767,7 @@ namespace IRaCIS.Application.Services
}
}
var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Include(x => x.TrialReadingCriterion).FirstNotNullAsync();
-
+ inDto.BlindName = taskinfo.TaskBlindName;
switch (taskinfo.TrialReadingCriterion.CriterionType)
{
// 对于非靶病灶,如果状态选择为显著增大,请验证:
From a313f977362f0b5d1fd5dce769517e552874f729 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 17 Oct 2023 11:06:39 +0800
Subject: [PATCH 03/52] =?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
---
.../Service/Reading/Dto/ReadingImageTaskViewModel.cs | 2 +-
.../Service/Reading/ReadingImageTask/ReadingImageTaskService.cs | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index 257dbc73f..bb26b4704 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -1923,7 +1923,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public int? NumberOfFrames { get; set; }
- public string? FromMark { get; set; }
+ public string? FromMark { get; set; }
public string? ReportMark { get; set; }
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 5063f47bb..68cf6034e 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -2071,7 +2071,7 @@ namespace IRaCIS.Application.Services
rowInfo.FristAddTaskId = inDto.RowId == null ? inDto.VisitTaskId : rowInfo.FristAddTaskId;
if (inDto.RowId == null)
{
-
+ rowInfo.FromMark = inDto.FromMark == null ? string.Empty : inDto.FromMark.Value;
//await _readingTableAnswerRowInfoRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == inDto.RowIndex && x.QuestionId == inDto.QuestionId);
List answerList = inDto.AnswerList.Select(x => new ReadingTableQuestionAnswer()
From a0880719144d3a95e8e2bbaa8ea2a269d8c82174 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 17 Oct 2023 11:07:44 +0800
Subject: [PATCH 04/52] =?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/ReadingImageTask/ReadingImageTaskService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 68cf6034e..c8a2307a1 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -2071,7 +2071,7 @@ namespace IRaCIS.Application.Services
rowInfo.FristAddTaskId = inDto.RowId == null ? inDto.VisitTaskId : rowInfo.FristAddTaskId;
if (inDto.RowId == null)
{
- rowInfo.FromMark = inDto.FromMark == null ? string.Empty : inDto.FromMark.Value;
+ rowInfo.FromMark = inDto.FromMark ?? string.Empty;
//await _readingTableAnswerRowInfoRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == inDto.RowIndex && x.QuestionId == inDto.QuestionId);
List answerList = inDto.AnswerList.Select(x => new ReadingTableQuestionAnswer()
From 08f592a9cb396aa6c20950d2b2870ef997000cb2 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 17 Oct 2023 11:17:36 +0800
Subject: [PATCH 05/52] =?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/ReadingImageTask/ReadingImageTaskService.cs | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index c8a2307a1..495dbc433 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -2072,6 +2072,10 @@ namespace IRaCIS.Application.Services
if (inDto.RowId == null)
{
rowInfo.FromMark = inDto.FromMark ?? string.Empty;
+ rowInfo.ReportMark = inDto.ReportMark ?? string.Empty;
+ rowInfo.MarkTool = inDto.MarkTool ?? string.Empty;
+ rowInfo.PicturePath = inDto.PicturePath ?? string.Empty;
+ rowInfo.MeasureData = inDto.MeasureData ?? string.Empty;
//await _readingTableAnswerRowInfoRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == inDto.RowIndex && x.QuestionId == inDto.QuestionId);
List answerList = inDto.AnswerList.Select(x => new ReadingTableQuestionAnswer()
From 8bde83bb7b0ee6a3f4e4df2ae6188e8a0e93be75 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Tue, 17 Oct 2023 13:37:15 +0800
Subject: [PATCH 06/52] =?UTF-8?q?=E8=B6=85=E5=A3=B0=E5=AF=B9=E6=8E=A5?=
=?UTF-8?q?=E5=87=86=E5=A4=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/ExtraController.cs | 2 +-
.../IRaCIS.Core.Application.xml | 7 ++
.../DTO/UltrasonicDicomViewModel.cs | 11 +++
.../UltrasonicDicomService.cs | 80 +++++++++++++++++++
.../Service/Third-partyProject/_MapConfig.cs | 22 +++++
5 files changed, 121 insertions(+), 1 deletion(-)
create mode 100644 IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
create mode 100644 IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
create mode 100644 IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs
diff --git a/IRaCIS.Core.API/Controllers/ExtraController.cs b/IRaCIS.Core.API/Controllers/ExtraController.cs
index ca49c5e0b..5d43d4a61 100644
--- a/IRaCIS.Core.API/Controllers/ExtraController.cs
+++ b/IRaCIS.Core.API/Controllers/ExtraController.cs
@@ -208,7 +208,7 @@ namespace IRaCIS.Api.Controllers
[HttpGet("user/GenerateSTS")]
- public IResponseOutput GenerateSTS(IOptionsMonitor options )
+ public IResponseOutput GenerateSTS([FromServices]IOptionsMonitor options )
{
var ossOptions = options.CurrentValue;
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 9724e186a..17ad2fafd 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1946,6 +1946,13 @@
+
+
+ 获取肝脏评估
+
+
+
+
SuvMax所在病灶
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
new file mode 100644
index 000000000..109e353bf
--- /dev/null
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IRaCIS.Core.Application.Service.Third_partyProject.DTO
+{
+
+
+}
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
new file mode 100644
index 000000000..3d79a14af
--- /dev/null
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
@@ -0,0 +1,80 @@
+using IRaCIS.Application.Contracts;
+using IRaCIS.Core.Application.Contracts;
+using IRaCIS.Core.Domain.Share;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IRaCIS.Core.Application.Service.Third_partyProject
+{
+
+ [ApiExplorerSettings(GroupName = "Trial")]
+ public class UltrasonicDicomService:BaseService
+ {
+ public readonly IRepository _trialRepository;
+
+ public UltrasonicDicomService(IRepository trialRepository)
+ {
+ _trialRepository = trialRepository;
+ }
+
+
+
+
+ [HttpPost]
+ public async Task>> GetTrialToBeDoneList(TrialToBeDoneQuery inQuery,
+ [FromServices] IRepository _taskMedicalReviewRepository)
+ {
+
+ var isPM = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.APM;
+ var isCRC = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator;
+ var isIQC = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.IQC;
+ var isMIM = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.MIM;
+ var isSPMOrCPM = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM;
+
+
+ var query = _trialRepository.AsQueryable().IgnoreQueryFilters()
+
+ .WhereIf(inQuery.SponsorId != null, o => o.SponsorId == inQuery.SponsorId)
+ .WhereIf(!string.IsNullOrEmpty(inQuery.Code), o => o.TrialCode.Contains(inQuery.Code))
+ .WhereIf(!string.IsNullOrEmpty(inQuery.ResearchProgramNo), o => o.ResearchProgramNo.Contains(inQuery.ResearchProgramNo))
+ .WhereIf(!string.IsNullOrWhiteSpace(inQuery.ExperimentName), o => o.ExperimentName.Contains(inQuery.ExperimentName))
+ .WhereIf(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin, t => t.TrialUserList.Any(t => t.UserId == _userInfo.Id && t.IsDeleted == false) && t.IsDeleted == false)
+ .Select(t => new TrialToBeDoneDto()
+ {
+ TrialId = t.Id,
+ ResearchProgramNo = t.ResearchProgramNo,
+ ExperimentName = t.ExperimentName,
+ TrialCode = t.TrialCode,
+ CreateTime = t.CreateTime,
+ Sponsor = _userInfo.IsEn_Us ? t.Sponsor.SponsorName : t.Sponsor.SponsorNameCN,
+ TrialStatusStr = t.TrialStatusStr,
+
+ ExpetiedTaskCount = isPM ? t.VisitTaskList.Where(t => t.IsUrgent).Count() : 0,
+
+ ReReadingApprovalCount = isPM ? t.VisitTaskReReadingList.Where(t => t.OriginalReReadingTask.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed).Count() : 0,
+
+ PendingReconciliationCount = isPM ? t.SubjectVisitList.Where(t => t.CheckState == CheckStateEnum.ToCheck).Count() : 0,
+
+ PendingResponseCount = isPM ? t.SubjectVisitList.Where(u => u.CheckState == CheckStateEnum.CVIng &&
+ u.CheckChallengeDialogList.OrderByDescending(t => t.CreateTime).First().UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Count() : 0
+
+
+
+ });
+
+
+
+ //.ProjectTo(_mapper.ConfigurationProvider, new { userTypeEnumInt = _userInfo.UserTypeEnumInt, userId = _userInfo.Id });
+
+ var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? "CreateTime" : inQuery.SortField, inQuery.Asc);
+
+ return ResponseOutput.Ok(result);
+ }
+
+ }
+}
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs b/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs
new file mode 100644
index 000000000..0cbd714ec
--- /dev/null
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs
@@ -0,0 +1,22 @@
+using AutoMapper;
+using AutoMapper.EquivalencyExpression;
+using DocumentFormat.OpenXml.Spreadsheet;
+using IRaCIS.Application.Contracts;
+using IRaCIS.Core.Application.Contracts;
+using IRaCIS.Core.Application.Contracts.DTO;
+using IRaCIS.Core.Application.ViewModel;
+using IRaCIS.Core.Domain.Models;
+using IRaCIS.Core.Domain.Share;
+
+namespace IRaCIS.Core.Application.Service
+{
+ public class UltrasonicDicomConfig : Profile
+ {
+ public UltrasonicDicomConfig()
+ {
+
+
+ }
+ }
+
+}
From d859def7d6e5969d39afa5cf8a6696d02f2c9a73 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 17 Oct 2023 13:48:28 +0800
Subject: [PATCH 07/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../LuganoCalculateService.cs | 109 +++++++++---------
1 file changed, 56 insertions(+), 53 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 1936d5482..95b9ad554 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -1716,66 +1716,69 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
///
public async Task GetSplenicEvaluation(ReadingCalculateDto inDto)
{
- if (inDto.IsBaseLine)
- {
- return SpleenAssessment.Stabilization.GetEnumInt();
- }
- var result = SpleenAssessment.Stabilization;
+ return inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SplenicStatus).Select(x => x.Answer).FirstIsNullReturnEmpty();
+
+ //if (inDto.IsBaseLine)
+ //{
+ // return SpleenAssessment.Stabilization.GetEnumInt();
+ //}
+
+ //var result = SpleenAssessment.Stabilization;
- var presentSpd = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
- var baseLineSpleenLength = await GetBaseLineSpleenLength(inDto);
+ //var presentSpd = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
+ //var baseLineSpleenLength = await GetBaseLineSpleenLength(inDto);
- var baseLineTaskId = await GetBaseLineTaskId(inDto);
- var baseLineState= await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.SplenicStatus).Select(x => x.Answer).FirstOrDefaultAsync();
+ //var baseLineTaskId = await GetBaseLineTaskId(inDto);
+ //var baseLineState= await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.SplenicStatus).Select(x => x.Answer).FirstOrDefaultAsync();
- var differenceValue = presentSpd - baseLineSpleenLength;
- decimal percentage = 0;
- if (baseLineSpleenLength != 0)
- {
- percentage = differenceValue*100 / baseLineSpleenLength;
- }
+ //var differenceValue = presentSpd - baseLineSpleenLength;
+ //decimal percentage = 0;
+ //if (baseLineSpleenLength != 0)
+ //{
+ // percentage = differenceValue*100 / baseLineSpleenLength;
+ //}
- // 1、基线 垂直径> 130 mm
- //2、与基线相比脾垂直径变化值≥10 mm
- //与基线相比脾肿大增加的百分比 > 50%
- if (baseLineSpleenLength > 130 && differenceValue >= 10 && percentage > 50)
- {
- result = SpleenAssessment.Increase;
- }
- //1、基线垂直径≤130mm
- //2、与基线相比脾垂直径变化值≥20 mm
- //当前垂直径 > 130 mm
- else if (baseLineSpleenLength <= 130 && differenceValue >= 20 && presentSpd > 130)
- {
- result = SpleenAssessment.Increase;
- }
- //1、基线 垂直径> 130 mm
- //2、当前访视的前面访视中 存在垂直径≤130mm
- //3、与最低点相比脾脏垂直径的增加值≥20 mm
- //4、当前垂直径 > 130 mm
- else if (baseLineSpleenLength > 130 && presentSpd <= 130 && differenceValue >= 20 && presentSpd > 130)
- {
- result = SpleenAssessment.Increase;
- }
- // 基线垂直径≤130mm
- else if (baseLineSpleenLength <= 130)
- {
- result = SpleenAssessment.Normal;
- }
- //1、基线期 状态为“肿大”
- //与基线相比脾肿大增加的百分比 > 50%
- else if (baseLineState.EqEnum(SpleenState.Swelling) && percentage > 50)
- {
- result = SpleenAssessment.Remission;
- }
- else
- {
- result = SpleenAssessment.Remission;
- }
- return result.GetEnumInt();
+ //// 1、基线 垂直径> 130 mm
+ ////2、与基线相比脾垂直径变化值≥10 mm
+ ////与基线相比脾肿大增加的百分比 > 50%
+ //if (baseLineSpleenLength > 130 && differenceValue >= 10 && percentage > 50)
+ //{
+ // result = SpleenAssessment.Increase;
+ //}
+ ////1、基线垂直径≤130mm
+ ////2、与基线相比脾垂直径变化值≥20 mm
+ ////当前垂直径 > 130 mm
+ //else if (baseLineSpleenLength <= 130 && differenceValue >= 20 && presentSpd > 130)
+ //{
+ // result = SpleenAssessment.Increase;
+ //}
+ ////1、基线 垂直径> 130 mm
+ ////2、当前访视的前面访视中 存在垂直径≤130mm
+ ////3、与最低点相比脾脏垂直径的增加值≥20 mm
+ ////4、当前垂直径 > 130 mm
+ //else if (baseLineSpleenLength > 130 && presentSpd <= 130 && differenceValue >= 20 && presentSpd > 130)
+ //{
+ // result = SpleenAssessment.Increase;
+ //}
+ //// 基线垂直径≤130mm
+ //else if (baseLineSpleenLength <= 130)
+ //{
+ // result = SpleenAssessment.Normal;
+ //}
+ ////1、基线期 状态为“肿大”
+ ////与基线相比脾肿大增加的百分比 > 50%
+ //else if (baseLineState.EqEnum(SpleenState.Swelling) && percentage > 50)
+ //{
+ // result = SpleenAssessment.Remission;
+ //}
+ //else
+ //{
+ // result = SpleenAssessment.Remission;
+ //}
+ //return result.GetEnumInt();
}
#endregion
From b926519424590c3d19e0def3f96e75d9b3d1eb19 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 17 Oct 2023 14:11:38 +0800
Subject: [PATCH 08/52] =?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
---
.../LuganoCalculateService.cs | 86 ++++++++++++++++++-
1 file changed, 83 insertions(+), 3 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 95b9ad554..a94df81aa 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -1707,6 +1707,83 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}
#endregion
+ #region 获取脾脏状态
+
+ ///
+ /// 获取脾脏状态
+ ///
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task GetSplenicState(Guid visitTaskId,decimal spleenLength)
+ {
+
+ ReadingCalculateDto inDto = await _generalCalculateService.GetReadingCalculateDto(visitTaskId);
+
+ if (inDto.IsBaseLine)
+ {
+ return SpleenAssessment.Stabilization.GetEnumInt();
+ }
+
+ var result = SpleenAssessment.Stabilization;
+
+
+ var presentSpd = spleenLength;
+ var baseLineSpleenLength = await GetBaseLineSpleenLength(inDto);
+
+ var baseLineTaskId = await GetBaseLineTaskId(inDto);
+ var baseLineState = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.SplenicStatus).Select(x => x.Answer).FirstOrDefaultAsync();
+
+
+ var differenceValue = presentSpd - baseLineSpleenLength;
+ decimal percentage = 0;
+ if (baseLineSpleenLength != 0)
+ {
+ percentage = differenceValue * 100 / baseLineSpleenLength;
+ }
+
+ // 1、基线 垂直径> 130 mm
+ //2、与基线相比脾垂直径变化值≥10 mm
+ //与基线相比脾肿大增加的百分比 > 50%
+ if (baseLineSpleenLength > 130 && differenceValue >= 10 && percentage > 50)
+ {
+ result = SpleenAssessment.Increase;
+ }
+ //1、基线垂直径≤130mm
+ //2、与基线相比脾垂直径变化值≥20 mm
+ //当前垂直径 > 130 mm
+ else if (baseLineSpleenLength <= 130 && differenceValue >= 20 && presentSpd > 130)
+ {
+ result = SpleenAssessment.Increase;
+ }
+ //1、基线 垂直径> 130 mm
+ //2、当前访视的前面访视中 存在垂直径≤130mm
+ //3、与最低点相比脾脏垂直径的增加值≥20 mm
+ //4、当前垂直径 > 130 mm
+ else if (baseLineSpleenLength > 130 && presentSpd <= 130 && differenceValue >= 20 && presentSpd > 130)
+ {
+ result = SpleenAssessment.Increase;
+ }
+ // 基线垂直径≤130mm
+ else if (baseLineSpleenLength <= 130)
+ {
+ result = SpleenAssessment.Normal;
+ }
+ //1、基线期 状态为“肿大”
+ //与基线相比脾肿大增加的百分比 > 50%
+ else if (baseLineState.EqEnum(SpleenState.Swelling) && percentage > 50)
+ {
+ result = SpleenAssessment.Remission;
+ }
+ else
+ {
+ result = SpleenAssessment.Remission;
+ }
+ return result.GetEnumInt();
+ }
+ #endregion
+
#region 获取脾脏评估
///
@@ -1717,7 +1794,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
public async Task GetSplenicEvaluation(ReadingCalculateDto inDto)
{
- return inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SplenicStatus).Select(x => x.Answer).FirstIsNullReturnEmpty();
+ return inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SplenicStatus).Select(x => x.Answer).FirstIsNullReturnEmpty();
//if (inDto.IsBaseLine)
//{
@@ -1731,14 +1808,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
//var baseLineSpleenLength = await GetBaseLineSpleenLength(inDto);
//var baseLineTaskId = await GetBaseLineTaskId(inDto);
- //var baseLineState= await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.SplenicStatus).Select(x => x.Answer).FirstOrDefaultAsync();
+ //var baseLineState = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.SplenicStatus).Select(x => x.Answer).FirstOrDefaultAsync();
//var differenceValue = presentSpd - baseLineSpleenLength;
//decimal percentage = 0;
//if (baseLineSpleenLength != 0)
//{
- // percentage = differenceValue*100 / baseLineSpleenLength;
+ // percentage = differenceValue * 100 / baseLineSpleenLength;
//}
//// 1、基线 垂直径> 130 mm
@@ -1779,9 +1856,12 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
// result = SpleenAssessment.Remission;
//}
//return result.GetEnumInt();
+
+
}
#endregion
+
#region PET 5PS
///
From 2ea9c49b2ed6d13ccdf58abd2655b99c604e5604 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 17 Oct 2023 15:19:49 +0800
Subject: [PATCH 09/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index a94df81aa..3058eb539 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -1723,7 +1723,15 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
if (inDto.IsBaseLine)
{
- return SpleenAssessment.Stabilization.GetEnumInt();
+ if (spleenLength <= 130)
+ {
+ return SpleenAssessment.Normal.GetEnumInt();
+ }
+ else
+ {
+ return SpleenAssessment.Swelling.GetEnumInt();
+ }
+
}
var result = SpleenAssessment.Stabilization;
From 21bd7814680984e55356ed953f9c32e1379e680a Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Tue, 17 Oct 2023 15:49:24 +0800
Subject: [PATCH 10/52] =?UTF-8?q?=E8=B6=85=E5=A3=B0=E5=AF=B9=E6=8E=A5?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=88=9D=E6=AD=A5=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IRaCIS.Core.Application.xml | 53 +++
.../ImageAndDoc/DTO/UnionStudyViewDodel.cs | 4 +-
.../DTO/UltrasonicDicomViewModel.cs | 99 ++++-
.../UltrasonicDicomService.cs | 414 ++++++++++++++++--
.../Service/Third-partyProject/_MapConfig.cs | 7 +-
IRaCIS.Core.Domain/Allocation/VisitTask.cs | 3 +
IRaCIS.Core.Domain/Image/DicomSeries.cs | 2 +
7 files changed, 553 insertions(+), 29 deletions(-)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 17ad2fafd..1a0dd5f22 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -8578,6 +8578,59 @@
+
+
+ 项目列表
+
+
+
+
+
+
+ 任务列表 第一层级
+
+
+
+
+
+
+ 检查列表 第二层级
+
+
+
+
+
+ 修改任务上的 影像上传状态
+
+
+
+
+
+
+ 通过任务Id 获取检查模态下拉框
+
+
+
+
+
+ 通过选择的序列Id 数组,获取下面的Instance 路径
+
+
+
+
+
+
+
+ 归档接口 -new 一份 序列层级增加了一个参数VisitTaskId 用于绑定从TomTec拉取来的序列(两个人公用的影像,不应该绑定)
+
+
+
+
+
+
+
+
+
项目外部人员 录入流程相关
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs
index 42c9c3a71..4b08c12d0 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs
@@ -173,6 +173,8 @@ namespace IRaCIS.Core.Application.Contracts
public string[]? VisitPlanArray { get; set; }
+ public Guid? VisitTaskId { get; set; }
+
}
@@ -283,7 +285,7 @@ namespace IRaCIS.Core.Application.Contracts
public string IamgeResizePath { get; set; }=string.Empty;
public List InstanceList { get; set; }
-
+ public Guid? VisitTaskId { get; set; }
}
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
index 109e353bf..0068f91db 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
@@ -1,5 +1,8 @@
-using System;
+using IRaCIS.Core.Application.Contracts;
+using IRaCIS.Core.Domain.Share;
+using System;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -7,5 +10,99 @@ using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Service.Third_partyProject.DTO
{
+ public class TrialListDTO_UltrasonicDicom: TrialBaseInfoDto
+ {
+ public DateTime CreateTime { get; set; }
+
+ public string Sponsor { get; set; }
+ public string TrialStatusStr { get; set; }
+ }
+
+ public class VisitTaskQuery_UltrasonicDicom : PageInput
+ {
+ [NotDefault]
+ public Guid TrialId { get; set; }
+
+ public Guid? SiteId { get; set; }
+
+ public Guid? SubjectId { get; set; }
+
+ public string SubjectCode { get; set; } = String.Empty;
+
+ public bool? IsUrgent { get; set; }
+
+ public string TaskName { get; set; } = String.Empty;
+
+ public Guid? DoctorUserId { get; set; }
+
+ public string? TaskCode { get; set; }
+
+ public String? TrialSiteCode { get; set; }
+
+ public Arm? ArmEnum { get; set; }
+
+ public Guid? TrialReadingCriterionId { get; set; }
+
+
+
+ }
+ public class VisitTaskDTO_UltrasonicDicom
+ {
+ public Guid Id { get;set; }
+ public String TrialSiteCode { get; set; } = String.Empty;
+ public string SubjectCode { get; set; } = String.Empty;
+ public string UserName { get; set; }
+ public string FullName { get; set; }
+ public Arm ArmEnum { get; set; }
+ public Guid? DoctorUserId { get; set; }
+ public string TaskCode { get; set; }
+ public string TaskName { get; set; }
+ public string TaskBlindName { get; set; }
+
+ public decimal VisitTaskNum { get; set; }
+
+ public int ImageStudyState { get; set; }
+ }
+
+ public class UpdateTaskImageStateCommand
+ {
+ [NotDefault]
+ public Guid VisitTaskId { get; set; }
+ public int ImageStudyState { get; set; }
+ }
+
+
+ public class StudyDTO_UltrasonicDicom : UnionStudyViewModel
+ {
+
+ }
+
+ public class StudySeriesModality
+ {
+ public Guid StudyId { get; set; }
+
+ public int SeriesCount { get; set; }
+
+ public string StudyCode { get; set; }
+
+ public List SeriesModalityList { get; set; }
+
+ }
+
+ public class StudySeriesModalitySelectDTO
+ {
+ public Guid StudyId { get; set; }
+
+ public List SeriesIdList { get; set; }
+ }
+
+ public class SeriesModality
+ {
+ public Guid SeriesId { get; set; }
+
+ public string Modality { get; set; }
+ }
+
+
}
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
index 3d79a14af..f2d496d29 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
@@ -1,7 +1,14 @@
-using IRaCIS.Application.Contracts;
+using EasyCaching.Core;
+using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts;
+using IRaCIS.Core.Application.Filter;
+using IRaCIS.Core.Application.Service.Third_partyProject.DTO;
+using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Share;
+using IRaCIS.Core.Infrastructure;
+using Medallion.Threading;
using Microsoft.AspNetCore.Mvc;
+using OfficeOpenXml.FormulaParsing.Utilities;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -13,21 +20,30 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject
{
[ApiExplorerSettings(GroupName = "Trial")]
- public class UltrasonicDicomService:BaseService
+ public class UltrasonicDicomService : BaseService
{
public readonly IRepository _trialRepository;
+ public readonly IRepository _studyRepository;
+ private readonly IRepository _dictionaryRepository;
+ public readonly IRepository _visitTaskRepository;
- public UltrasonicDicomService(IRepository trialRepository)
+
+ public UltrasonicDicomService(IRepository trialRepository, IRepository studyRepository, IRepository visitTaskRepository, IRepository dictionaryRepository)
{
_trialRepository = trialRepository;
+ _studyRepository = studyRepository;
+ _visitTaskRepository = visitTaskRepository;
+ _dictionaryRepository = dictionaryRepository;
}
-
-
+ ///
+ /// 项目列表
+ ///
+ ///
+ ///
[HttpPost]
- public async Task>> GetTrialToBeDoneList(TrialToBeDoneQuery inQuery,
- [FromServices] IRepository _taskMedicalReviewRepository)
+ public async Task>> GetTrialList(TrialToBeDoneQuery inQuery)
{
var isPM = _userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.APM;
@@ -44,7 +60,7 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject
.WhereIf(!string.IsNullOrEmpty(inQuery.ResearchProgramNo), o => o.ResearchProgramNo.Contains(inQuery.ResearchProgramNo))
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.ExperimentName), o => o.ExperimentName.Contains(inQuery.ExperimentName))
.WhereIf(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin, t => t.TrialUserList.Any(t => t.UserId == _userInfo.Id && t.IsDeleted == false) && t.IsDeleted == false)
- .Select(t => new TrialToBeDoneDto()
+ .Select(t => new TrialListDTO_UltrasonicDicom()
{
TrialId = t.Id,
ResearchProgramNo = t.ResearchProgramNo,
@@ -52,29 +68,375 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject
TrialCode = t.TrialCode,
CreateTime = t.CreateTime,
Sponsor = _userInfo.IsEn_Us ? t.Sponsor.SponsorName : t.Sponsor.SponsorNameCN,
- TrialStatusStr = t.TrialStatusStr,
-
- ExpetiedTaskCount = isPM ? t.VisitTaskList.Where(t => t.IsUrgent).Count() : 0,
-
- ReReadingApprovalCount = isPM ? t.VisitTaskReReadingList.Where(t => t.OriginalReReadingTask.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed).Count() : 0,
-
- PendingReconciliationCount = isPM ? t.SubjectVisitList.Where(t => t.CheckState == CheckStateEnum.ToCheck).Count() : 0,
-
- PendingResponseCount = isPM ? t.SubjectVisitList.Where(u => u.CheckState == CheckStateEnum.CVIng &&
- u.CheckChallengeDialogList.OrderByDescending(t => t.CreateTime).First().UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Count() : 0
-
-
-
+ TrialStatusStr = t.TrialStatusStr
});
-
-
- //.ProjectTo(_mapper.ConfigurationProvider, new { userTypeEnumInt = _userInfo.UserTypeEnumInt, userId = _userInfo.Id });
-
- var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? "CreateTime" : inQuery.SortField, inQuery.Asc);
+ var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TrialListDTO_UltrasonicDicom.CreateTime) : inQuery.SortField, inQuery.Asc);
return ResponseOutput.Ok(result);
}
+
+ ///
+ /// 任务列表 第一层级
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetVisitTaskList(VisitTaskQuery_UltrasonicDicom queryVisitTask)
+ {
+ var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId && t.IsAnalysisCreate == false && t.TaskState == TaskState.Effect && t.SourceSubjectVisitId != null)
+
+ .WhereIf(queryVisitTask.SiteId != null, t => t.Subject.SiteId == queryVisitTask.SiteId)
+ .WhereIf(queryVisitTask.SubjectId != null, t => t.SubjectId == queryVisitTask.SubjectId)
+ .WhereIf(queryVisitTask.IsUrgent != null, t => t.IsUrgent == queryVisitTask.IsUrgent)
+ .WhereIf(queryVisitTask.DoctorUserId != null, t => t.DoctorUserId == queryVisitTask.DoctorUserId)
+ .WhereIf(queryVisitTask.TrialReadingCriterionId != null, t => t.TrialReadingCriterionId == queryVisitTask.TrialReadingCriterionId)
+ .WhereIf(!string.IsNullOrEmpty(queryVisitTask.TrialSiteCode), t => (t.BlindTrialSiteCode.Contains(queryVisitTask.TrialSiteCode!) && t.IsAnalysisCreate) || (t.Subject.TrialSite.TrialSiteCode.Contains(queryVisitTask.TrialSiteCode!) && t.IsAnalysisCreate == false))
+ .WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskName), t => t.TaskName.Contains(queryVisitTask.TaskName) || t.TaskBlindName.Contains(queryVisitTask.TaskName))
+ .WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => (t.Subject.Code.Contains(queryVisitTask.SubjectCode) && t.IsAnalysisCreate == false) || (t.BlindSubjectCode.Contains(queryVisitTask.SubjectCode) && t.IsAnalysisCreate))
+
+ .ProjectTo(_mapper.ConfigurationProvider);
+
+ var defalutSortArray = new string[] { nameof(VisitTask.SubjectId), nameof(VisitTask.VisitTaskNum) };
+
+ var pageList = await visitTaskQueryable.ToPagedListAsync(queryVisitTask.PageIndex, queryVisitTask.PageSize, queryVisitTask.SortField, queryVisitTask.Asc, string.IsNullOrWhiteSpace(queryVisitTask.SortField), defalutSortArray);
+
+ return pageList;
+ }
+
+ ///
+ /// 检查列表 第二层级
+ ///
+ ///
+ [HttpGet]
+ public async Task> GetDicomAndNoneDicomStudyList(Guid visiTaskId, [FromServices] IRepository _visitTaskRepository)
+ {
+
+ var query = from dicomStudy in _visitTaskRepository.Where(t => t.Id == visiTaskId).Select(t => t.SourceSubjectVisit).SelectMany(t => t.StudyList)
+ select new StudyDTO_UltrasonicDicom()
+ {
+ TrialId = dicomStudy.TrialId,
+ SiteId = dicomStudy.SiteId,
+ SubjectId = dicomStudy.SubjectId,
+ SubjectVisitId = dicomStudy.SubjectVisitId,
+ VisitName = dicomStudy.SubjectVisit.VisitName,
+ VisitNum = dicomStudy.SubjectVisit.VisitNum,
+ IsDicom = true,
+ SubjectCode = dicomStudy.Subject.Code,
+
+ Id = dicomStudy.Id,
+
+ Bodypart = dicomStudy.BodyPartExamined,
+
+ Modalities = dicomStudy.Modalities,
+
+ Count = dicomStudy.SeriesCount,
+
+ StudyCode = dicomStudy.StudyCode,
+
+ StudyTime = dicomStudy.StudyTime,
+
+ TrialSiteAliasName = dicomStudy.TrialSite.TrialSiteAliasName,
+
+ TrialSiteCode = dicomStudy.TrialSite.TrialSiteCode,
+
+ Uploader = dicomStudy.Uploader.UserName,
+
+ UploadTime = dicomStudy.CreateTime
+ };
+
+
+
+
+
+ return await query.ToListAsync();
+ }
+
+ ///
+ /// 修改任务上的 影像上传状态
+ ///
+ ///
+ ///
+ [HttpPut]
+ public async Task UpdateTaskImageState(UpdateTaskImageStateCommand command)
+ {
+ await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.Id == command.VisitTaskId, u => new VisitTask() { ImageStudyState = command.ImageStudyState });
+
+ return ResponseOutput.Ok();
+ }
+
+ ///
+ /// 通过任务Id 获取检查模态下拉框
+ ///
+ ///
+ public async Task> GetStudyModalityList(Guid visiTaskId)
+ {
+
+ var list = await _visitTaskRepository.Where(t => t.Id == visiTaskId).Select(t => t.SourceSubjectVisit).SelectMany(t => t.StudyList).Select(t => new StudySeriesModality
+ {
+ SeriesCount = t.SeriesCount,
+ StudyCode = t.StudyCode,
+ SeriesModalityList = t.SeriesList.Select(t => new SeriesModality { SeriesId = t.Id, Modality = t.Modality }).ToList()
+
+ }).ToListAsync();
+
+ return list;
+ }
+
+ ///
+ /// 通过选择的序列Id 数组,获取下面的Instance 路径
+ ///
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetStudyModalityOSSPath(List seriesIdList, [FromServices] IRepository _dicomSeriesRepository)
+ {
+ return await _dicomSeriesRepository.Where(t => seriesIdList.Contains(t.Id)).SelectMany(t => t.DicomInstanceList).Select(t => t.Path).ToListAsync();
+ }
+
+
+ ///
+ /// 归档接口 -new 一份 序列层级增加了一个参数VisitTaskId 用于绑定从TomTec拉取来的序列(两个人公用的影像,不应该绑定)
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+
+ [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
+ public async Task AddOrUpdateArchiveStudy(NewArchiveStudyCommand incommand,
+ [FromServices] IRepository _studyMonitorRepository,
+ [FromServices] IDistributedLockProvider _distributedLockProvider,
+ [FromServices] IEasyCachingProvider _provider,
+ [FromServices] IRepository _dicomSeriesRepository,
+ [FromServices] IRepository _dicomInstanceRepository)
+ {
+ try
+ {
+ var trialId = incommand.TrialId;
+
+ var studyMonitor = await _studyMonitorRepository.FirstOrDefaultAsync(t => t.Id == incommand.StudyMonitorId);
+ studyMonitor.UploadFinishedTime = DateTime.Now;
+ studyMonitor.ArchiveFinishedTime = DateTime.Now;
+ studyMonitor.FailedFileCount = incommand.FailedFileCount;
+ studyMonitor.IsSuccess = true;
+
+ //上传
+ if (studyMonitor.IsDicomReUpload == false)
+ {
+ var study = _mapper.Map(incommand.Study);
+
+ var @lock = _distributedLockProvider.CreateLock($"StudyCode");
+
+ using (await @lock.AcquireAsync())
+ {
+ //查询数据库获取最大的Code 没有记录则为0
+ var dbStudyCodeIntMax = _studyRepository.Where(s => s.TrialId == trialId).Select(t => t.Code).DefaultIfEmpty().Max();
+
+ //获取缓存中的值 并发的时候,需要记录,已被占用的值 这样其他线程在此占用的最大的值上递增
+ var cacheMaxCodeInt = _provider.Get($"{trialId}_{StaticData.CacheKey.StudyMaxCode}").Value;
+
+ int currentNextCodeInt = cacheMaxCodeInt > dbStudyCodeIntMax ? cacheMaxCodeInt + 1 : dbStudyCodeIntMax + 1;
+
+ study.Code = currentNextCodeInt;
+ study.StudyCode = AppSettings.GetCodeStr(currentNextCodeInt, nameof(DicomStudy));
+
+ _provider.Set($"{trialId}_{StaticData.CacheKey.StudyMaxCode}", study.Code, TimeSpan.FromMinutes(30));
+
+ }
+
+
+ study.Id = IdentifierHelper.CreateGuid(incommand.Study.StudyInstanceUid, incommand.TrialId.ToString());
+ study.TrialId = incommand.TrialId;
+ study.SiteId = incommand.SiteId;
+ study.SubjectId = incommand.SubjectId;
+ study.SubjectVisitId = incommand.SubjectVisitId;
+
+
+ //特殊处理逻辑
+ study.Modalities = string.Join("、", incommand.Study.SeriesList.Select(t => t.Modality).Distinct());
+ SpecialArchiveStudyDeal(study);
+
+ await _studyRepository.AddAsync(study);
+
+
+ studyMonitor.StudyId = study.Id;
+ studyMonitor.StudyCode = study.StudyCode;
+
+
+ foreach (var seriesItem in incommand.Study.SeriesList)
+ {
+ var series = _mapper.Map(seriesItem);
+
+ series.Id = IdentifierHelper.CreateGuid(seriesItem.StudyInstanceUid, seriesItem.SeriesInstanceUid, incommand.TrialId.ToString());
+ series.StudyId = study.Id;
+
+ series.TrialId = incommand.TrialId;
+ series.SiteId = incommand.SiteId;
+ series.SubjectId = incommand.SubjectId;
+ series.SubjectVisitId = incommand.SubjectVisitId;
+
+ await _dicomSeriesRepository.AddAsync(series);
+
+ foreach (var instanceItem in seriesItem.InstanceList)
+ {
+ var isntance = _mapper.Map(instanceItem);
+
+ Guid instanceId = IdentifierHelper.CreateGuid(study.StudyInstanceUid, series.SeriesInstanceUid, isntance.SopInstanceUid, study.TrialId.ToString());
+
+ isntance.Id = instanceId;
+ isntance.StudyId = study.Id;
+ isntance.SeriesId = series.Id;
+
+ isntance.TrialId = incommand.TrialId;
+ isntance.SiteId = incommand.SiteId;
+ isntance.SubjectId = incommand.SubjectId;
+ isntance.SubjectVisitId = incommand.SubjectVisitId;
+
+ await _dicomInstanceRepository.AddAsync(isntance);
+ }
+ }
+
+
+
+
+ }
+ else
+ {
+
+ var studyId = IdentifierHelper.CreateGuid(incommand.Study.StudyInstanceUid, incommand.TrialId.ToString()); ;
+
+ var study = await _studyRepository.FirstOrDefaultAsync(t => t.Id == studyId);
+
+
+ //特殊处理逻辑
+ study.Modalities = string.Join("、", incommand.Study.SeriesList.Select(t => t.Modality).Union(study.Modalities.Split("、", StringSplitOptions.RemoveEmptyEntries)).Distinct());
+ SpecialArchiveStudyDeal(study);
+
+
+
+ // 少了整个序列
+
+ //某个序列下少了instance
+ foreach (var seriesItem in incommand.Study.SeriesList)
+ {
+ var seriesId = IdentifierHelper.CreateGuid(seriesItem.StudyInstanceUid, seriesItem.SeriesInstanceUid, trialId.ToString());
+
+ DicomSeries dicomSeries = await _dicomSeriesRepository.FirstOrDefaultAsync(t => t.Id == seriesId);
+
+ //判断重复
+ if (dicomSeries == null)
+ {
+ var series = _mapper.Map(seriesItem);
+
+ series.Id = seriesId;
+ series.StudyId = study.Id;
+
+ series.TrialId = incommand.TrialId;
+ series.SiteId = incommand.SiteId;
+ series.SubjectId = incommand.SubjectId;
+ series.SubjectVisitId = incommand.SubjectVisitId;
+
+
+ dicomSeries = await _dicomSeriesRepository.AddAsync(series);
+
+ //新的序列 那么 检查的序列数量+1
+ study.SeriesCount += 1;
+ }
+ else
+ {
+ //该序列掉了instance
+ dicomSeries.InstanceCount += seriesItem.InstanceList.Count;
+ }
+
+ foreach (var instanceItem in seriesItem.InstanceList)
+ {
+ var insntance = _mapper.Map(instanceItem);
+ insntance.Id = IdentifierHelper.CreateGuid(insntance.StudyInstanceUid, insntance.SeriesInstanceUid, insntance.SopInstanceUid, trialId.ToString());
+ insntance.StudyId = study.Id;
+ insntance.SeriesId = dicomSeries.Id;
+
+ insntance.TrialId = incommand.TrialId;
+ insntance.SiteId = incommand.SiteId;
+ insntance.SubjectId = incommand.SubjectId;
+ insntance.SubjectVisitId = incommand.SubjectVisitId;
+
+ await _dicomInstanceRepository.AddAsync(insntance);
+ }
+
+
+ // 不管是新的序列 还是 该序列 掉了Instance 重传的时候 检查的instance 数量都会增加
+ study.InstanceCount += seriesItem.InstanceList.Count;
+
+ }
+
+
+ }
+
+ var @lock2 = _distributedLockProvider.CreateLock($"StudyCommit");
+
+ using (await @lock2.AcquireAsync())
+ {
+ await _dicomInstanceRepository.SaveChangesAsync();
+ }
+ }
+ catch (Exception ex)
+ {
+
+ return ResponseOutput.NotOk(ex.Message);
+ }
+ finally
+ {
+ _provider.Remove($"StudyUid_{incommand.TrialId}_{incommand.Study.StudyInstanceUid}");
+ }
+
+
+
+
+
+
+
+ return ResponseOutput.Ok();
+ }
+
+ private void SpecialArchiveStudyDeal(DicomStudy study)
+ {
+ #region 特殊逻辑
+
+
+ if (study.PatientBirthDate.Length == 8)
+ {
+ study.PatientBirthDate = $"{study.PatientBirthDate[0]}{study.PatientBirthDate[1]}{study.PatientBirthDate[2]}{study.PatientBirthDate[3]}-{study.PatientBirthDate[4]}{study.PatientBirthDate[5]}-{study.PatientBirthDate[6]}{study.PatientBirthDate[7]}";
+ }
+
+ var dicModalityList = _dictionaryRepository.Where(t => t.Code == "Modality").SelectMany(t => t.ChildList.Select(c => c.Value)).ToList();
+
+
+ var modality = study.Modalities;
+
+ var modalityForEdit = dicModalityList.Contains(modality) ? modality : String.Empty;
+
+ if (modality == "MR")
+ {
+ modalityForEdit = "MRI";
+ }
+
+ if (modality == "PT")
+ {
+ modalityForEdit = "PET";
+ }
+ if (modality == "PT、CT")
+ {
+ modalityForEdit = "PET-CT";
+ }
+
+ study.ModalityForEdit = modalityForEdit;
+ #endregion
+ }
}
}
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs b/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs
index 0cbd714ec..582212586 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs
@@ -4,6 +4,7 @@ using DocumentFormat.OpenXml.Spreadsheet;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Contracts.DTO;
+using IRaCIS.Core.Application.Service.Third_partyProject.DTO;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Domain.Share;
@@ -15,7 +16,11 @@ namespace IRaCIS.Core.Application.Service
public UltrasonicDicomConfig()
{
-
+ CreateMap()
+ .ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
+ .ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
+ .ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
+ .ForMember(o => o.FullName, t => t.MapFrom(u => u.DoctorUser.FullName));
}
}
diff --git a/IRaCIS.Core.Domain/Allocation/VisitTask.cs b/IRaCIS.Core.Domain/Allocation/VisitTask.cs
index 73daba8ce..bbc4b3fa8 100644
--- a/IRaCIS.Core.Domain/Allocation/VisitTask.cs
+++ b/IRaCIS.Core.Domain/Allocation/VisitTask.cs
@@ -426,5 +426,8 @@ namespace IRaCIS.Core.Domain.Models
}
}
+
+ public int ImageStudyState { get; set; }
+
}
}
diff --git a/IRaCIS.Core.Domain/Image/DicomSeries.cs b/IRaCIS.Core.Domain/Image/DicomSeries.cs
index 46820e012..4b74fbd7e 100644
--- a/IRaCIS.Core.Domain/Image/DicomSeries.cs
+++ b/IRaCIS.Core.Domain/Image/DicomSeries.cs
@@ -63,5 +63,7 @@ namespace IRaCIS.Core.Domain.Models
public string IamgeResizePath { get; set; }=string.Empty;
+ public Guid? VisitTaskId { get; set; }
+
}
}
From 2e316c35fec760e9e8599df69b91fddcceb78d51 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 17 Oct 2023 16:11:38 +0800
Subject: [PATCH 11/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
index f8e93eb38..19520f6bc 100644
--- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
+++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
@@ -832,7 +832,7 @@ namespace IRaCIS.Core.Domain.Share
Normal = 1,
///
- /// 缓解
+ /// 部分缓解
///
Remission = 2,
@@ -854,10 +854,11 @@ namespace IRaCIS.Core.Domain.Share
///
/// 肿大
///
- Swelling = 5,
+ Swelling = 6,
}
+
///
/// 是(1)或否(0)
///
From b72e90f0b9bbb4318627d72ef5b49d7f8a6d46e4 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 17 Oct 2023 16:46:37 +0800
Subject: [PATCH 12/52] =?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
---
.../Service/ReadingCalculate/LuganoCalculateService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 3058eb539..3e496c83e 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -1786,7 +1786,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}
else
{
- result = SpleenAssessment.Remission;
+ result = SpleenAssessment.Stabilization;
}
return result.GetEnumInt();
}
From 79c21b24cd3f92b6d34046f0c13c083cd620b92d Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 17 Oct 2023 16:57:52 +0800
Subject: [PATCH 13/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 3e496c83e..d0dff3dfb 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -1748,7 +1748,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
decimal percentage = 0;
if (baseLineSpleenLength != 0)
{
- percentage = differenceValue * 100 / baseLineSpleenLength;
+ percentage = differenceValue * 100 / (baseLineSpleenLength-130);
}
// 1、基线 垂直径> 130 mm
From b8c7441c92b0fe1369d970c5c1e2c1f44673691f Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 17 Oct 2023 17:48:55 +0800
Subject: [PATCH 14/52] =?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 | 2 +-
.../LuganoCalculateService.cs | 32 ++++++++++++++++++-
2 files changed, 32 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 495dbc433..994153238 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -2549,7 +2549,7 @@ namespace IRaCIS.Application.Services
{
var cacheKey = _userInfo.Id.ToString()+ "RestTime";
-
+ throw new BusinessValidationFailedException(_localizer["ReadingImage_NeedRest", 2, 20]);
var value = _provider.Get(cacheKey).Value;
if (value == null)
{
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index d0dff3dfb..7472fc19f 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -1719,6 +1719,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
public async Task GetSplenicState(Guid visitTaskId,decimal spleenLength)
{
+ var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
ReadingCalculateDto inDto = await _generalCalculateService.GetReadingCalculateDto(visitTaskId);
if (inDto.IsBaseLine)
@@ -1734,6 +1735,33 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}
+ #region 最低
+ var visitTaskIds = await _visitTaskRepository.Where(x => x.ReadingCategory == ReadingCategory.Visit &&
+ x.TrialReadingCriterionId == taskinfo.TrialReadingCriterionId &&
+ x.IsAnalysisCreate == taskinfo.IsAnalysisCreate &&
+ x.DoctorUserId == taskinfo.DoctorUserId &&
+ x.IsSelfAnalysis == taskinfo.IsSelfAnalysis &&
+ x.SubjectId == taskinfo.SubjectId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ArmEnum == taskinfo.ArmEnum
+ && x.VisitTaskNum < taskinfo.VisitTaskNum && x.TaskState == TaskState.Effect
+ ).OrderByDescending(x => x.VisitTaskNum).Select(x => x.Id).ToListAsync();
+
+ var questionId = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == taskinfo.TrialReadingCriterionId && x.QuestionType == QuestionType.SplenicStatus).Select(x => x.Id).FirstNotNullAsync();
+ var answerList = await _readingTaskQuestionAnswerRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)
+ && x.ReadingQuestionTrialId == questionId )
+ .Select(x => new
+ {
+ x.Answer,
+ x.VisitTaskId,
+ }).ToListAsync();
+
+ var lowSpleenLength = answerList.Select(x => new
+ {
+ Answer = x.Answer.IsNullOrEmptyReturn0(),
+ x.VisitTaskId
+ }).OrderBy(x => x.Answer).Select(x=>x.Answer).FirstOrDefault();
+ #endregion
+
+
var result = SpleenAssessment.Stabilization;
@@ -1745,6 +1773,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
var differenceValue = presentSpd - baseLineSpleenLength;
+
+ var differenceLowValue = presentSpd - lowSpleenLength;
decimal percentage = 0;
if (baseLineSpleenLength != 0)
{
@@ -1769,7 +1799,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
//2、当前访视的前面访视中 存在垂直径≤130mm
//3、与最低点相比脾脏垂直径的增加值≥20 mm
//4、当前垂直径 > 130 mm
- else if (baseLineSpleenLength > 130 && presentSpd <= 130 && differenceValue >= 20 && presentSpd > 130)
+ else if (baseLineSpleenLength > 130 && presentSpd <= 130 && differenceLowValue >= 20 && presentSpd > 130)
{
result = SpleenAssessment.Increase;
}
From 6df90997075c231b2d7e18f808566fd1cf18ada6 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 17 Oct 2023 17:53:03 +0800
Subject: [PATCH 15/52] =?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/ReadingImageTask/ReadingImageTaskService.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 994153238..d89d8d989 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -2549,7 +2549,7 @@ namespace IRaCIS.Application.Services
{
var cacheKey = _userInfo.Id.ToString()+ "RestTime";
- throw new BusinessValidationFailedException(_localizer["ReadingImage_NeedRest", 2, 20]);
+
var value = _provider.Get(cacheKey).Value;
if (value == null)
{
@@ -2566,7 +2566,7 @@ namespace IRaCIS.Application.Services
{
throw new BusinessValidationFailedException(_localizer["ReadingImage_NeedRest", 2, 20]);
}
- else if (timespanMin > 140)
+ else if (timespanMin > 1)
{
cacheDate = cacheDate.AddMinutes((Math.Floor((double)(timespanMin / 140))) * 140);
_provider.Set(cacheKey, cacheDate.ToString(), TimeSpan.FromHours(5));
From 473bb64b42efe865ec80e92f687c100e156daffe Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 18 Oct 2023 09:10:20 +0800
Subject: [PATCH 16/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 7472fc19f..525065fef 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -1799,7 +1799,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
//2、当前访视的前面访视中 存在垂直径≤130mm
//3、与最低点相比脾脏垂直径的增加值≥20 mm
//4、当前垂直径 > 130 mm
- else if (baseLineSpleenLength > 130 && presentSpd <= 130 && differenceLowValue >= 20 && presentSpd > 130)
+ else if (baseLineSpleenLength > 130 && lowSpleenLength <= 130 && differenceLowValue >= 20 && presentSpd > 130)
{
result = SpleenAssessment.Increase;
}
From 296b510c41c509f3ba755c06476b9f4084bc1357 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Wed, 18 Oct 2023 10:08:20 +0800
Subject: [PATCH 17/52] =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=90=8D=E9=94=99?=
=?UTF-8?q?=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Service/ImageAndDoc/DTO/DicomSeriesModel.cs | 2 +-
.../Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs
index e9a16ca10..a9062fd24 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs
@@ -41,7 +41,7 @@
public string WindowCenter { get; set; } = string.Empty;
public string WindowWidth { get; set; } = string.Empty;
- public string IamgeResizePath { get; set; }
+ public string ImageResizePath { get; set; }
}
public class DicomSeriesWithLabelDTO : DicomSeriesDTO
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs
index 4b08c12d0..ab1beb6eb 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs
@@ -282,7 +282,7 @@ namespace IRaCIS.Core.Application.Contracts
public string AcquisitionNumber { get; set; } = string.Empty;
public string TriggerTime { get; set; } = string.Empty;
- public string IamgeResizePath { get; set; }=string.Empty;
+ public string ImageResizePath { get; set; }=string.Empty;
public List InstanceList { get; set; }
public Guid? VisitTaskId { get; set; }
From 064abbf8dd45e817b8761d8bdf23ded9bf845cc7 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 18 Oct 2023 10:17:32 +0800
Subject: [PATCH 18/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ReadingCalculate/LuganoCalculateService.cs | 2 +-
IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 18 ++++++++++++++----
2 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 525065fef..1208adc21 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -1810,7 +1810,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}
//1、基线期 状态为“肿大”
//与基线相比脾肿大增加的百分比 > 50%
- else if (baseLineState.EqEnum(SpleenState.Swelling) && percentage > 50)
+ else if (baseLineState.EqEnum(SpleenAssessment.Swelling) && percentage > 50)
{
result = SpleenAssessment.Remission;
}
diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
index 19520f6bc..e2ac99422 100644
--- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
+++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
@@ -912,20 +912,25 @@ namespace IRaCIS.Core.Domain.Share
///
public enum SpleenState
{
+ ///
+ /// NA
+ ///
+ NA = -1,
+
///
/// 正常
///
Normal = 1,
///
- /// 肿大
+ /// 部分缓解
///
- Swelling = 2,
+ Remission = 2,
///
- /// 部分缓解稳定
+ /// 稳定
///
- PartialRemission = 3,
+ Stabilization = 3,
///
/// 显著增大
@@ -937,6 +942,11 @@ namespace IRaCIS.Core.Domain.Share
///
NotEvaluable = 5,
+ ///
+ /// 肿大
+ ///
+ Swelling = 6,
+
}
///
From 6019fdbe363a3699440c42ae176e949eaaaae984 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Wed, 18 Oct 2023 10:22:25 +0800
Subject: [PATCH 19/52] =?UTF-8?q?=E9=81=97=E6=BC=8FSubjectId?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IRaCIS.Core.Application/IRaCIS.Core.Application.xml | 8 ++++++++
.../Third-partyProject/DTO/UltrasonicDicomViewModel.cs | 1 +
2 files changed, 9 insertions(+)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 1a0dd5f22..26f9eb556 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1918,6 +1918,14 @@
+
+
+ 获取脾脏状态
+
+
+
+
+
获取脾脏评估
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
index 0068f91db..ff508d461 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
@@ -49,6 +49,7 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject.DTO
public class VisitTaskDTO_UltrasonicDicom
{
public Guid Id { get;set; }
+ public Guid SubjectId { get; set; }
public String TrialSiteCode { get; set; } = String.Empty;
public string SubjectCode { get; set; } = String.Empty;
public string UserName { get; set; }
From 7cf23668affdffe9732d827f009031740960acc9 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 18 Oct 2023 10:27:01 +0800
Subject: [PATCH 20/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 1208adc21..d52a4df1b 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -1745,7 +1745,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
&& x.VisitTaskNum < taskinfo.VisitTaskNum && x.TaskState == TaskState.Effect
).OrderByDescending(x => x.VisitTaskNum).Select(x => x.Id).ToListAsync();
- var questionId = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == taskinfo.TrialReadingCriterionId && x.QuestionType == QuestionType.SplenicStatus).Select(x => x.Id).FirstNotNullAsync();
+ var questionId = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == taskinfo.TrialReadingCriterionId && x.QuestionType == QuestionType.SpleenLength).Select(x => x.Id).FirstNotNullAsync();
var answerList = await _readingTaskQuestionAnswerRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)
&& x.ReadingQuestionTrialId == questionId )
.Select(x => new
From 56295b3c98b3bc71c47b1add5bedb2b8a1f2828a Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Wed, 18 Oct 2023 10:40:35 +0800
Subject: [PATCH 21/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E5=BA=93=E4=BF=9D=E5=AD=98=E5=BC=82=E5=B8=B8=E6=8F=90=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IRaCIS.Core.Domain/Image/DicomSeries.cs | 2 +-
IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Domain/Image/DicomSeries.cs b/IRaCIS.Core.Domain/Image/DicomSeries.cs
index 4b74fbd7e..d59070e40 100644
--- a/IRaCIS.Core.Domain/Image/DicomSeries.cs
+++ b/IRaCIS.Core.Domain/Image/DicomSeries.cs
@@ -61,7 +61,7 @@ namespace IRaCIS.Core.Domain.Models
public bool IsDeleted {get;set;}
public bool IsReading { get; set; } = true;
- public string IamgeResizePath { get; set; }=string.Empty;
+ public string ImageResizePath { get; set; }=string.Empty;
public Guid? VisitTaskId { get; set; }
diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
index 068df0e6d..af07c7462 100644
--- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
+++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
@@ -589,6 +589,12 @@ namespace IRaCIS.Core.Infra.EFCore
throw new DBSaveFailedException("SQL 事务失败,请检查环境。");
}
+ catch (Exception ex)
+ {
+ _logger.LogError(ex.InnerException is null ? ex.Message : ex.InnerException?.Message);
+
+ throw new DBSaveFailedException("数据保存异常。");
+ }
}
From 665c88a681261f78d9b8d0decfd6111441ce9dd8 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 18 Oct 2023 10:50:51 +0800
Subject: [PATCH 22/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index d52a4df1b..252c616a9 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -1734,6 +1734,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}
}
+ if (spleenLength == 0)
+ {
+ return SpleenAssessment.NotEvaluable.GetEnumInt();
+ }
#region 最低
var visitTaskIds = await _visitTaskRepository.Where(x => x.ReadingCategory == ReadingCategory.Visit &&
From 03f7173855a35ca48615ed1a164bc4d839c0543a Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 18 Oct 2023 11:41:06 +0800
Subject: [PATCH 23/52] =?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/ReadingImageTask/ReadingImageTaskService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index d89d8d989..495dbc433 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -2566,7 +2566,7 @@ namespace IRaCIS.Application.Services
{
throw new BusinessValidationFailedException(_localizer["ReadingImage_NeedRest", 2, 20]);
}
- else if (timespanMin > 1)
+ else if (timespanMin > 140)
{
cacheDate = cacheDate.AddMinutes((Math.Floor((double)(timespanMin / 140))) * 140);
_provider.Set(cacheKey, cacheDate.ToString(), TimeSpan.FromHours(5));
From e789c32564eb28cc15f5a8479e00dba3acf50062 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Wed, 18 Oct 2023 11:41:23 +0800
Subject: [PATCH 24/52] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=98=85=E7=89=87?=
=?UTF-8?q?=E6=A0=87=E5=87=86=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Third-partyProject/DTO/UltrasonicDicomViewModel.cs | 3 +++
.../Service/Third-partyProject/_MapConfig.cs | 4 +++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
index ff508d461..b804536ad 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
@@ -63,6 +63,9 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject.DTO
public decimal VisitTaskNum { get; set; }
public int ImageStudyState { get; set; }
+
+ public Guid TrialReadingCriterionId { get; set; }
+ public string TrialReadingCriterionName { get; set; }
}
public class UpdateTaskImageStateCommand
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs b/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs
index 582212586..900ca913f 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/_MapConfig.cs
@@ -20,7 +20,9 @@ namespace IRaCIS.Core.Application.Service
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
- .ForMember(o => o.FullName, t => t.MapFrom(u => u.DoctorUser.FullName));
+ .ForMember(o => o.FullName, t => t.MapFrom(u => u.DoctorUser.FullName))
+ .ForMember(o => o.TrialReadingCriterionName, t => t.MapFrom(u => u.TrialReadingCriterion.CriterionName))
+ ;
}
}
From 108be0bc23ac468976fa84eb4faa28c7ee32c201 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Wed, 18 Oct 2023 12:18:54 +0800
Subject: [PATCH 25/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A3=80=E6=9F=A5?=
=?UTF-8?q?=E5=BA=8F=E5=88=97=E5=B1=82=E7=BA=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Third-partyProject/DTO/UltrasonicDicomViewModel.cs | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
index b804536ad..a59bc54b2 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
@@ -89,6 +89,9 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject.DTO
public string StudyCode { get; set; }
+
+ public List ModalitySeriesList => SeriesModalityList.GroupBy(t=>t.Modality).Select(g=>new ModalitySeriesIdList() { Modality= g.Key,SeriesIdList=g.Select(t=>t.SeriesId).ToList() }).ToList();
+
public List SeriesModalityList { get; set; }
}
@@ -100,6 +103,13 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject.DTO
public List SeriesIdList { get; set; }
}
+
+ public class ModalitySeriesIdList
+ {
+ public string Modality { get; set; }
+
+ public List SeriesIdList { get; set; }
+ }
public class SeriesModality
{
public Guid SeriesId { get; set; }
From a0f756a4cb9f9a5d310d24ca6b8062cafba9eeb4 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 18 Oct 2023 13:31:58 +0800
Subject: [PATCH 26/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 252c616a9..9de580fbe 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -400,7 +400,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
if (lowPddTaskid != null && lowPddTaskid != default(Guid))
{
- var lowPPDAnswerList = await _readingTableQuestionAnswerRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)
+ var lowPPDAnswerList = await _readingTableQuestionAnswerRepository.Where(x =>x.VisitTaskId== lowPddTaskid
&& x.QuestionId == inDto.QuestionId
&& x.RowIndex == inDto.RowIndex).Include(x => x.ReadingTableQuestionTrial)
.Select(x => new
From 7c1e91b94523a7e32d7f8c3da7a8a67f78e2dceb Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Wed, 18 Oct 2023 13:49:20 +0800
Subject: [PATCH 27/52] StudyId bug
---
.../Service/Third-partyProject/UltrasonicDicomService.cs | 1 +
1 file changed, 1 insertion(+)
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
index f2d496d29..51fb1ceea 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
@@ -175,6 +175,7 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject
var list = await _visitTaskRepository.Where(t => t.Id == visiTaskId).Select(t => t.SourceSubjectVisit).SelectMany(t => t.StudyList).Select(t => new StudySeriesModality
{
+ StudyId = t.Id,
SeriesCount = t.SeriesCount,
StudyCode = t.StudyCode,
SeriesModalityList = t.SeriesList.Select(t => new SeriesModality { SeriesId = t.Id, Modality = t.Modality }).ToList()
From c469b5e50655880db9de39c50eeb613ec4e9b938 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 18 Oct 2023 14:40:55 +0800
Subject: [PATCH 28/52] =?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
---
.../Service/ReadingCalculate/LuganoCalculateService.cs | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 9de580fbe..d3ed2678d 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -2414,10 +2414,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
result = TargetAssessment.PD;
}
- //在排除PD后,有任一靶病灶为NE状态
- else if (tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.UnableEvaluate)))
+ //当前访视没有任何一个状态为“疾病进展”的靶病灶;
+ //当前访视存在至少一个状态为“不可评估”的靶病灶。
+ else if (
+ !tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.DiseaseProgression))&&
+ tableQuestions.Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(TargetState.UnableEvaluate)))
{
- result = TargetAssessment.PD;
+ result = TargetAssessment.NE;
}
//1、基线非淋巴结靶病灶不存在,或者当前访视非淋巴结靶病灶全部消失;
//并且 2.当前访视淋巴结靶病灶的状态全部变为“消失”。
From 91bd2ac69f7d53d676bc6216cb6373090339ba13 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 18 Oct 2023 16:23:30 +0800
Subject: [PATCH 29/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../LuganoCalculateService.cs | 40 +++++++++++++++++--
IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 10 ++---
2 files changed, 41 insertions(+), 9 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index d3ed2678d..95b18b621 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -520,6 +520,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
//获取肝脏评估
new ReadingCalculateData (){QuestionType=QuestionType.LiverAssessment,GetStringFun=GetLiverAssessment},
+
+ // 骨髓中是否存在局灶性 FDG亲和病灶的证据
+ new ReadingCalculateData (){QuestionType=QuestionType.EvidenceFocalFDG,GetStringFun=GetEvidenceFocalFDG},
////靶病灶径线之和(SOD)
//new ReadingCalculateData (){QuestionType=QuestionType.SOD,GetDecimalNullFun=GetSODData},
@@ -1622,7 +1625,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
var presentSpd = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SPD).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
if (baseLineSpd != 0)
{
- return (presentSpd - baseLineSpd) / baseLineSpd;
+ return (presentSpd - baseLineSpd)*100 / baseLineSpd;
}
else
{
@@ -1913,10 +1916,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
///
public async Task GetPET5PS(ReadingCalculateDto inDto)
{
- if (inDto.IsBaseLine)
+ //if (inDto.IsBaseLine)
+ //{
+ // return SpleenAssessment.Stabilization.GetEnumInt();
+ //}
+
+ if (inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.ExistPET && x.Answer == ReadingYesOrNo.No.GetEnumInt()))
{
- return SpleenAssessment.Stabilization.GetEnumInt();
+ return PET5PSScore.NE.GetEnumInt();
}
+
+
+
PET5PSScore result = PET5PSScore.X;
// 最大Suvmax
@@ -1978,6 +1989,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
return SUVChangeVSBaseline.NotEvaluable.GetEnumInt();
}
+ if (inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.ExistPET && x.Answer == ReadingYesOrNo.No.GetEnumInt()))
+ {
+ return SUVChangeVSBaseline.NotEvaluable.GetEnumInt();
+ }
+
var result = SUVChangeVSBaseline.NotEvaluable;
var baseLineTaskId = await GetBaseLineTaskId(inDto);
@@ -2105,7 +2121,25 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}
#endregion
+ #region 骨髓中是否存在局灶性 FDG亲和病灶的证据
+ ///
+ /// 骨髓中是否存在局灶性 FDG亲和病灶的证据
+ ///
+ ///
+ ///
+ public async Task GetEvidenceFocalFDG(ReadingCalculateDto inDto)
+ {
+ if (inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.ExistPET && x.Answer == ReadingYesOrNo.No.GetEnumInt()))
+ {
+ return FDGAffinityFociInBM.NE.GetEnumInt();
+ }
+ else
+ {
+ return inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.EvidenceFocalFDG).Select(x => x.Answer).FirstOrDefault();
+ }
+ }
+ #endregion
#region 肝脏评估
///
diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
index e2ac99422..8ace74a1f 100644
--- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
+++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
@@ -2230,12 +2230,10 @@ public enum SUVChangeVSBaseline
-
-
- ///
- /// PET 5PS 评分
- ///
- public enum PET5PSScore
+///
+/// PET 5PS 评分
+///
+public enum PET5PSScore
{
///
/// 5分
From e5f10d052a1372b0f0ee55b6487675a2aa9ed8cb Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 18 Oct 2023 16:28:25 +0800
Subject: [PATCH 30/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 95b18b621..87320cdee 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -493,7 +493,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
new ReadingCalculateData (){QuestionType=QuestionType.NoTargetLesion,GetStringFun=GetNoTargetLesionEvaluate},
//新病灶评估
- new ReadingCalculateData (){QuestionType=QuestionType.NewLesions,GetStringFun=GetNewLesionEvaluate},
+ new ReadingCalculateData (){QuestionType=QuestionType.NewLesionEvaluation,GetStringFun=GetNewLesionEvaluate},
//CT/MRI
new ReadingCalculateData (){QuestionType=QuestionType.CTandMRI,GetStringFun=CTMRIEvaluation},
From 682a5d1c44587353bf6e1eb2513e4907d389ad47 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 18 Oct 2023 17:57:37 +0800
Subject: [PATCH 31/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../LuganoCalculateService.cs | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 87320cdee..b5476d799 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -2379,11 +2379,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
///
public async Task GetTargetLesionEvaluate(ReadingCalculateDto inDto)
{
+
+
+
var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList();
- //if (inDto.IsBaseLine)
- //{
- // return TargetAssessment.NA.GetEnumInt();
- //}
+ if (inDto.IsBaseLine)
+ {
+ return TargetAssessment.NA.GetEnumInt();
+ }
var tableQuestions = rowInfo.SelectMany(x => x.TableQuestionList).ToList();
TargetAssessment result = TargetAssessment.SD;
@@ -2486,10 +2489,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
NoTargetAssessment result = NoTargetAssessment.PD;
- //if (inDto.IsBaseLine)
- //{
- // return NoTargetAssessment.NA.GetEnumInt();
- //}
+ if (inDto.IsBaseLine)
+ {
+ return NoTargetAssessment.NA.GetEnumInt();
+ }
var tableRows = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.NonTargetLesions).SelectMany(x => x.TableRowInfoList).ToList();
From 3d92fac1d68af9a9d4b114092b823de8261000eb Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Thu, 19 Oct 2023 09:16:43 +0800
Subject: [PATCH 32/52] =?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
---
.../Service/ReadingCalculate/LuganoCalculateService.cs | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index b5476d799..72131fd0d 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -2590,6 +2590,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
///
public async Task CTMRIEvaluation(ReadingCalculateDto inDto)
{
+ if (inDto.IsBaseLine)
+ {
+ return CTMRIOverallAssessment.NA.GetEnumInt();
+ }
// 靶病灶评估
var targetEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.TargetLesion).Select(x => x.Answer).FirstOrDefault();
From 1f1500c66172cefc0aba40b860d3dae31a105685 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Thu, 19 Oct 2023 10:50:07 +0800
Subject: [PATCH 33/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 72131fd0d..c042f076a 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -2598,10 +2598,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
var targetEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.TargetLesion).Select(x => x.Answer).FirstOrDefault();
// 非靶病灶评估
- var noTargetEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.NETarget).Select(x => x.Answer).FirstOrDefault();
+ var noTargetEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.NoTargetLesion).Select(x => x.Answer).FirstOrDefault();
// 存在新病灶
- var existsNewTarget = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.NewTargetLesion).Select(x => x.Answer).FirstOrDefault();
+ var existsNewTarget = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.NewLesionEvaluation).Select(x => x.Answer).FirstOrDefault();
// 肝脏评估
var liverEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LiverAssessment).Select(x => x.Answer).FirstOrDefault();
@@ -2615,7 +2615,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
new CalculationDto(){
Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }),
Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.ND }),
- Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
+ Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No, NewLesionAssessment.Suspected }),
Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Normal }),
Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal }),
Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }),
From baaf5af664d62dd365259e185cdff451f3bfe61f Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Thu, 19 Oct 2023 13:17:26 +0800
Subject: [PATCH 34/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index c042f076a..fe7294f38 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -2646,7 +2646,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes }),
Column4=ReadingCommon.EnumToString(new List() { }),
Column5=ReadingCommon.EnumToString(new List() { }),
- Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }),
+ Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }),
},
//任一结果 任一结果 任一结果 显著增大 任一结果 PD
new CalculationDto(){
@@ -2655,7 +2655,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
Column3=ReadingCommon.EnumToString(new List() { }),
Column4=ReadingCommon.EnumToString(new List() { LiverAssessment.Increase }),
Column5=ReadingCommon.EnumToString(new List() { }),
- Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }),
+ Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }),
},
//任一结果 任一结果 任一结果 任一结果 显著增大 PD
new CalculationDto(){
@@ -2664,7 +2664,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
Column3=ReadingCommon.EnumToString(new List() {}),
Column4=ReadingCommon.EnumToString(new List() { }),
Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Increase }),
- Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }),
+ Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }),
},
//CR CR/ND 否 正常 正常 CR
new CalculationDto(){
From a1bd7b4815ae8aa663cb8cafe66fdce6451073be Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Thu, 19 Oct 2023 13:34:21 +0800
Subject: [PATCH 35/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
index 8ace74a1f..9e3878336 100644
--- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
+++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
@@ -894,17 +894,22 @@ namespace IRaCIS.Core.Domain.Share
///
/// 稳定
///
- Stabilization = 2,
+ Tumefaction = 2,
+
+ ///
+ /// 稳定
+ ///
+ Stabilization = 3,
///
/// 显著增大
///
- Increase = 3,
+ Increase = 4,
///
/// 无法评估
///
- NotEvaluable = 4,
+ NotEvaluable = 5,
}
///
From e43b28969e79fab0c0a125ed1ef021ca4f53b7ea Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Thu, 19 Oct 2023 13:49:38 +0800
Subject: [PATCH 36/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index fe7294f38..8fe86623b 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -2716,7 +2716,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
},
//ND ND 否/疑似 无法评估 正常/稳定/无法评估/部分缓解(非显著增大) NE
new CalculationDto(){
- NotEq=new List(){ 4},
+ NotEq=new List(){ 5},
Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.ND }),
Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.ND }),
Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
@@ -2783,6 +2783,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
},
};
+ var index= data.FindIndex(x =>
+ (x.NotEq.Contains(1) ? !x.Column1.Contains(targetEvaluation) : x.Column1.Contains(targetEvaluation) || x.Column1.Count() == 0) &&
+ (x.NotEq.Contains(2) ? !x.Column2.Contains(noTargetEvaluation) : x.Column2.Contains(noTargetEvaluation) || x.Column2.Count() == 0) &&
+ (x.NotEq.Contains(3) ? !x.Column3.Contains(existsNewTarget) : x.Column3.Contains(existsNewTarget) || x.Column3.Count() == 0) &&
+ (x.NotEq.Contains(4) ? !x.Column4.Contains(liverEvaluation) : x.Column4.Contains(liverEvaluation) || x.Column4.Count() == 0) &&
+ (x.NotEq.Contains(5) ? !x.Column5.Contains(spleenEvaluation) : x.Column5.Contains(spleenEvaluation) || x.Column5.Count() == 0))
+ ;
+ Console.WriteLine(index);
var result = data.Where(x =>
(x.NotEq.Contains(1) ? !x.Column1.Contains(targetEvaluation) : x.Column1.Contains(targetEvaluation) || x.Column1.Count() == 0) &&
(x.NotEq.Contains(2) ? !x.Column2.Contains(noTargetEvaluation) : x.Column2.Contains(noTargetEvaluation) || x.Column2.Count() == 0) &&
From 5934178a5fd9d927a85006477a9fcb7a50dcec17 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Thu, 19 Oct 2023 14:15:13 +0800
Subject: [PATCH 37/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ReadingCalculate/LuganoCalculateService.cs | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 8fe86623b..c20d4dfe4 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -495,6 +495,12 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
//新病灶评估
new ReadingCalculateData (){QuestionType=QuestionType.NewLesionEvaluation,GetStringFun=GetNewLesionEvaluate},
+ //获取肝脏评估
+ new ReadingCalculateData (){QuestionType=QuestionType.LiverAssessment,GetStringFun=GetLiverAssessment},
+
+ // 骨髓中是否存在局灶性 FDG亲和病灶的证据
+ new ReadingCalculateData (){QuestionType=QuestionType.EvidenceFocalFDG,GetStringFun=GetEvidenceFocalFDG},
+
//CT/MRI
new ReadingCalculateData (){QuestionType=QuestionType.CTandMRI,GetStringFun=CTMRIEvaluation},
@@ -518,11 +524,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
// SUVmax所在病灶
new ReadingCalculateData (){QuestionType=QuestionType.SUVmaxLesion,GetStringFun=GetSuvMaxFocus},
- //获取肝脏评估
- new ReadingCalculateData (){QuestionType=QuestionType.LiverAssessment,GetStringFun=GetLiverAssessment},
+
- // 骨髓中是否存在局灶性 FDG亲和病灶的证据
- new ReadingCalculateData (){QuestionType=QuestionType.EvidenceFocalFDG,GetStringFun=GetEvidenceFocalFDG},
+
////靶病灶径线之和(SOD)
//new ReadingCalculateData (){QuestionType=QuestionType.SOD,GetDecimalNullFun=GetSODData},
From 04a702fb0e5f171b304c92d25478eef406549380 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Thu, 19 Oct 2023 15:21:38 +0800
Subject: [PATCH 38/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index c20d4dfe4..cc5cff723 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -2643,9 +2643,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
Column5=ReadingCommon.EnumToString(new List() { }),
Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD }),
},
- //PD 任一结果 是 任一结果 任一结果 PD
+ //任一结果 任一结果 是 任一结果 任一结果 PD
new CalculationDto(){
- Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.PD }),
+ Column1=ReadingCommon.EnumToString(new List() { }),
Column2=ReadingCommon.EnumToString(new List() { }),
Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.Yes }),
Column4=ReadingCommon.EnumToString(new List() { }),
From 65ae0e06f5c70346aa38d93aa51cb83d283b92b7 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Thu, 19 Oct 2023 16:04:38 +0800
Subject: [PATCH 39/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index cc5cff723..7e16561e0 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -2688,9 +2688,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
Column5=ReadingCommon.EnumToString(new List() { SpleenAssessment.Normal }),
Column6=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR }),
},
- //NE 非PD 否/疑似/无法评估 显著增大 显著增大 NE
+ //NE 非PD 否/疑似/无法评估 非显著增大 非显著增大 NE
new CalculationDto(){
- NotEq=new List(){ 2},
+ NotEq=new List(){ 2,4,5},
Column1=ReadingCommon.EnumToString(new List() { TargetAssessment.NE }),
Column2=ReadingCommon.EnumToString(new List() { NoTargetAssessment.PD }),
Column3=ReadingCommon.EnumToString(new List() { NewLesionAssessment.No,NewLesionAssessment.Suspected, NewLesionAssessment.NE}),
From e6cd24065c6b789484edebf1f50d9674f0de302a Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Thu, 19 Oct 2023 17:10:31 +0800
Subject: [PATCH 40/52] =?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/ReadingCalculateViewModel.cs | 9 ++++++++-
.../ReadingImageTask/ReadingImageTaskService.cs | 2 ++
.../General/ReadingCalculateService.cs | 2 +-
.../ReadingCalculate/LuganoCalculateService.cs | 5 ++++-
IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 16 ++++++++++++++++
5 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs
index a8c54a077..dab5f2a05 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs
@@ -50,6 +50,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public bool IsChangeOtherTask { get; set; }
+
+ public ComputationTrigger ComputationTrigger { get; set; }
}
public class TargetLesionCalculateDto
@@ -218,7 +220,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid SubjectVisitId { get; set; }
- public Arm ArmEnum { get; set; }
+ public Arm ArmEnum { get; set; }
+
+ public ComputationTrigger ComputationTrigger { get; set; } = ComputationTrigger.Lesion;
///
/// 是否修改其他任务
@@ -348,6 +352,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{
public QuestionType QuestionType { get; set; }
+
+ public ComputationTrigger? ComputationTrigger { get; set; }
+
public Func> GetDecimalFun { get; set; }
public Func> GetIntFun { get; set; }
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 495dbc433..dcf3282cb 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -1741,6 +1741,7 @@ namespace IRaCIS.Application.Services
{
IsChangeOtherTask = false,
VisitTaskId = inDto.VisitTaskId,
+ ComputationTrigger=ComputationTrigger.Lesion,
});
return ResponseOutput.Ok(true);
}
@@ -2141,6 +2142,7 @@ namespace IRaCIS.Application.Services
{
IsChangeOtherTask = false,
VisitTaskId = inDto.VisitTaskId,
+ ComputationTrigger = ComputationTrigger.Lesion,
});
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs
index ff966babf..49509412d 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs
@@ -196,7 +196,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
await service.CalculateTask(new CalculateTaskInDto()
{
-
+ ComputationTrigger= ComputationTrigger.Report,
VisitTaskId = inDto.VisitTaskId
});
}
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 7e16561e0..ac4a418cb 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -429,6 +429,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
ReadingCalculateDto readingData = await _generalCalculateService.GetReadingCalculateDto(inDto.VisitTaskId);
readingData.IsChangeOtherTask = inDto.IsChangeOtherTask;
+ readingData.ComputationTrigger = inDto.ComputationTrigger;
await ReadingCalculate(readingData);
}
@@ -505,7 +506,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
new ReadingCalculateData (){QuestionType=QuestionType.CTandMRI,GetStringFun=CTMRIEvaluation},
// PET 5PS评分
- new ReadingCalculateData (){QuestionType=QuestionType.PET5PS,GetStringFun=GetPET5PS},
+ new ReadingCalculateData (){QuestionType=QuestionType.PET5PS,GetStringFun=GetPET5PS,ComputationTrigger=ComputationTrigger.Lesion},
//与基线相比摄取值变化
new ReadingCalculateData (){QuestionType=QuestionType.UptakeChange,GetStringFun=GetUptakeChange},
@@ -609,6 +610,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
calculateList = calculateList.Where(x => calculateType.Contains(x.QuestionType)).ToList();
}
+
+ calculateList = calculateList.Where(x => x.ComputationTrigger == null || x.ComputationTrigger == inDto.ComputationTrigger).ToList();
var typeNAList = new List
{
QuestionType.SODChange,
diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
index 9e3878336..2d562f219 100644
--- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
+++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
@@ -2277,6 +2277,22 @@ public enum PET5PSScore
}
+ ///
+ /// 计算触发
+ ///
+ public enum ComputationTrigger
+ {
+ ///
+ /// 病灶
+ ///
+ Lesion=0,
+
+ ///
+ /// 报告
+ ///
+ Report=1,
+ }
+
///
/// 新靶病灶评估
///
From e8e9105f5c231d01b5b68689091aa342e4ae8f75 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Thu, 19 Oct 2023 17:22:21 +0800
Subject: [PATCH 41/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index ac4a418cb..7b08dd0c4 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -500,7 +500,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
new ReadingCalculateData (){QuestionType=QuestionType.LiverAssessment,GetStringFun=GetLiverAssessment},
// 骨髓中是否存在局灶性 FDG亲和病灶的证据
- new ReadingCalculateData (){QuestionType=QuestionType.EvidenceFocalFDG,GetStringFun=GetEvidenceFocalFDG},
+ new ReadingCalculateData (){QuestionType=QuestionType.EvidenceFocalFDG,GetStringFun=GetEvidenceFocalFDG,ComputationTrigger=ComputationTrigger.Lesion},
//CT/MRI
new ReadingCalculateData (){QuestionType=QuestionType.CTandMRI,GetStringFun=CTMRIEvaluation},
@@ -509,7 +509,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
new ReadingCalculateData (){QuestionType=QuestionType.PET5PS,GetStringFun=GetPET5PS,ComputationTrigger=ComputationTrigger.Lesion},
//与基线相比摄取值变化
- new ReadingCalculateData (){QuestionType=QuestionType.UptakeChange,GetStringFun=GetUptakeChange},
+ new ReadingCalculateData (){QuestionType=QuestionType.UptakeChange,GetStringFun=GetUptakeChange,ComputationTrigger=ComputationTrigger.Lesion},
// FDG-PET 评估结果
new ReadingCalculateData (){QuestionType=QuestionType.FDGPET,GetStringFun=GetFDGPETOverallAssessment},
From 7fc93a667d86b02f70c3726d5b5eb372d529fcf2 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Fri, 20 Oct 2023 15:26:42 +0800
Subject: [PATCH 42/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
index 2d562f219..5cb3743d9 100644
--- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
+++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
@@ -2258,7 +2258,7 @@ public enum PET5PSScore
///
/// 2分
///
- Two = 5,
+ Two = 2,
///
/// 1分
From 46980e6b50b7ef18ff613b7a36cf71d76be8a647 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Fri, 20 Oct 2023 15:36:42 +0800
Subject: [PATCH 43/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 7b08dd0c4..2308d2d46 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -2104,7 +2104,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
new CalculationDto(){
Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four }),
Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.Decrease }),
- Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.YesSustain}),
+ Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.No, FDGAffinityFociInBM.YesSustain}),
Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR }),
},
@@ -2112,7 +2112,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
new CalculationDto(){
Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four }),
Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.DidNotChange }),
- Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.YesSustain}),
+ Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.No, FDGAffinityFociInBM.YesSustain}),
Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NMR }),
},
};
From 35cac0d7e972619f592020d07a7fed185d76795b Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Mon, 23 Oct 2023 13:55:19 +0800
Subject: [PATCH 44/52] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E8=BF=94=E5=9B=9E?=
=?UTF-8?q?=E6=A3=80=E6=9F=A5Code?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Third-partyProject/DTO/UltrasonicDicomViewModel.cs | 6 ++++++
.../Service/Third-partyProject/UltrasonicDicomService.cs | 4 ++--
IRaCIS.Core.Domain/Image/DicomInstance.cs | 4 ++++
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
index a59bc54b2..3d5b5abea 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
@@ -117,6 +117,12 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject.DTO
public string Modality { get; set; }
}
+ public class InstancePathDTO
+ {
+ public string StudyCode { get; set; }
+ public string InstancePath { get; set; }
+ }
+
}
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
index 51fb1ceea..b030987e2 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
@@ -192,9 +192,9 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject
///
///
[HttpPost]
- public async Task> GetStudyModalityOSSPath(List seriesIdList, [FromServices] IRepository _dicomSeriesRepository)
+ public async Task> GetStudyModalityOSSPath(List seriesIdList, [FromServices] IRepository _dicomSeriesRepository)
{
- return await _dicomSeriesRepository.Where(t => seriesIdList.Contains(t.Id)).SelectMany(t => t.DicomInstanceList).Select(t => t.Path).ToListAsync();
+ return await _dicomSeriesRepository.Where(t => seriesIdList.Contains(t.Id)).SelectMany(t => t.DicomInstanceList).Select(t => new InstancePathDTO() {InstancePath= t.Path,StudyCode=t.DicomStudy.StudyCode } ).ToListAsync();
}
diff --git a/IRaCIS.Core.Domain/Image/DicomInstance.cs b/IRaCIS.Core.Domain/Image/DicomInstance.cs
index a05f3bbf0..bce1777cf 100644
--- a/IRaCIS.Core.Domain/Image/DicomInstance.cs
+++ b/IRaCIS.Core.Domain/Image/DicomInstance.cs
@@ -11,6 +11,10 @@ namespace IRaCIS.Core.Domain.Models
[ForeignKey("SeriesId")]
public DicomSeries DicomSerie { get; set; }
+ [JsonIgnore]
+ [ForeignKey("StudyId")]
+ public DicomStudy DicomStudy { get; set; }
+
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid SeqId { get; set; }
From 66b9f2dd5c5424527885c29d86476b1212593761 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Mon, 23 Oct 2023 16:07:44 +0800
Subject: [PATCH 45/52] =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/UploadDownLoadController.cs | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs
index 7b48775da..5ef44eb2c 100644
--- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs
+++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs
@@ -856,7 +856,18 @@ namespace IRaCIS.Core.API.Controllers
_userInfo = userInfo;
}
+ /// 通用文件下载
+ [AllowAnonymous]
+ [HttpGet("CommonDocument/DownloadCommonDoc")]
+ public async Task DownloadCommonFile(string code, [FromServices] IRepository _commonDocumentRepository)
+ {
+ var (filePath, fileName) = await FileStoreHelper.GetCommonDocPhysicalFilePathAsync(_hostEnvironment, _commonDocumentRepository, code);
+ new FileExtensionContentTypeProvider().Mappings.TryGetValue(Path.GetExtension(filePath), out var contentType);
+
+ return File(System.IO.File.OpenRead(filePath), contentType ?? "application/octet-stream", fileName);
+
+ }
///
/// 上传通用文档 比如一致性核查的 比如导出的excel 模板
From f39ef0d799a2a7ac4ddad6e6d1ef10dd2246e27d Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Mon, 23 Oct 2023 16:52:47 +0800
Subject: [PATCH 46/52] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Reading/Dto/ReadingImageTaskViewModel.cs | 5 ++++
.../Reading/Dto/ReadingQuestionViewModel.cs | 30 +++++++++++++++++++
.../Interface/IReadingImageTaskService.cs | 2 +-
.../ReadingImageTaskService.cs | 8 +++--
IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 12 ++++++++
.../ReadingQuestionSystem.cs | 13 +++++---
.../ReadingQuestionTrial.cs | 7 +++++
7 files changed, 69 insertions(+), 8 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index bb26b4704..0803c8c00 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -507,6 +507,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid TrialId { get; set; }
+ ///
+ /// 分组分类
+ ///
+ public List? GroupClassifyList { get; set; }
+
///
/// 问题分类
///
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
index 37b96be24..4983fb326 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
@@ -341,6 +341,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public QuestionClassify? QuestionClassify { get; set; }
+ ///
+ /// 分组分类
+ ///
+ public GroupClassify? GroupClassify { get; set; }
+
///
/// 单位
///
@@ -450,6 +455,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public QuestionClassify? QuestionClassify { get; set; }
+ ///
+ /// 分组分类
+ ///
+ public GroupClassify? GroupClassify { get; set; }
+
///
/// 数据来源
///
@@ -999,6 +1009,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public QuestionClassify? QuestionClassify { get; set; }
+ ///
+ /// 分组分类
+ ///
+ public GroupClassify? GroupClassify { get; set; }
+
///
/// 单位
///
@@ -1068,6 +1083,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public QuestionClassify? QuestionClassify { get; set; }
+ ///
+ /// 分组分类
+ ///
+ public GroupClassify? GroupClassify { get; set; }
+
public List ParentTriggerValueList { get; set; } = new List();
public List RelevanceValueList { get; set; } = new List();
@@ -1593,6 +1613,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public QuestionClassify? QuestionClassify { get; set; }
+ ///
+ /// 分组分类
+ ///
+ public GroupClassify? GroupClassify { get; set; }
+
///
/// 限制编辑
///
@@ -1957,6 +1982,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public QuestionClassify? QuestionClassify { get; set; }
+ ///
+ /// 分组分类
+ ///
+ public GroupClassify? GroupClassify { get; set; }
+
///
/// 数据来源
///
diff --git a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs
index 99d4cc7de..6cba1b928 100644
--- a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs
@@ -23,7 +23,7 @@ namespace IRaCIS.Core.Application.Contracts
Task GetGlobalReadingInfo(GetGlobalReadingInfoInDto inDto);
- Task> GetReadingQuestion(Guid trialReadingCriterionId, Guid? visitTaskId,QuestionClassify? questionClassify);
+ Task> GetReadingQuestion(Guid trialReadingCriterionId, Guid? visitTaskId,QuestionClassify? questionClassify, List? groupClassifyList);
Task GetReadingTableQuestion(GetReadingTableQuestionOrAnswerInDto inDto);
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index dcf3282cb..e418bc662 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -704,7 +704,7 @@ namespace IRaCIS.Application.Services
{
//await AddDefaultValueToTask(inDto.VisitTaskId);
var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
- var result = await GetReadingQuestion(taskInfo.TrialReadingCriterionId, taskInfo.Id, inDto.QuestionClassify);
+ var result = await GetReadingQuestion(taskInfo.TrialReadingCriterionId, taskInfo.Id, inDto.QuestionClassify,inDto.GroupClassifyList);
@@ -722,7 +722,7 @@ namespace IRaCIS.Application.Services
///
///
[NonDynamicMethod]
- public async Task> GetReadingQuestion(Guid trialReadingCriterionId, Guid? visitTaskId, QuestionClassify? questionClassify)
+ public async Task> GetReadingQuestion(Guid trialReadingCriterionId, Guid? visitTaskId, QuestionClassify? questionClassify, List? groupClassifyList)
{
@@ -776,7 +776,9 @@ namespace IRaCIS.Application.Services
//排除表格问题 同时排除组问题
var groupids = questions.Where(x => x.Type != ReadingQestionType.Group).Select(x => x.GroupId).ToList();
- var result = questions.Where(x => x.Type == ReadingQestionType.Group && groupids.Contains(x.Id)).ToList();
+ var result = questions.Where(x => x.Type == ReadingQestionType.Group && groupids.Contains(x.Id))
+ .WhereIf(groupClassifyList!=null,x=>x.GroupClassify!=null&& groupClassifyList.Contains(x.GroupClassify.Value))
+ .ToList();
foreach (var item in result)
{
diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
index 5cb3743d9..2fccb06c7 100644
--- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
+++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
@@ -67,6 +67,18 @@ namespace IRaCIS.Core.Domain.Share
}
+ ///
+ /// 分组分类
+ ///
+ public enum GroupClassify
+ {
+ ///
+ /// 质量问题
+ ///
+ QualityProblem = 1,
+
+ }
+
///
/// 临床表格问题标识
///
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionSystem.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionSystem.cs
index 764d72254..1b7e453c3 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionSystem.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionSystem.cs
@@ -203,10 +203,15 @@ namespace IRaCIS.Core.Domain.Models
///
public string? FileType { get; set; }
- ///
- /// 问题分类
- ///
- public QuestionClassify? QuestionClassify { get; set; }
+ ///
+ /// 分组分类
+ ///
+ public GroupClassify? GroupClassify { get; set; }
+
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
[JsonIgnore]
[ForeignKey("GroupId")]
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs
index 959790ed5..0ffbd778d 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs
@@ -271,6 +271,13 @@ namespace IRaCIS.Core.Domain.Models
///
public Guid? GroupId { get; set; }
+
+ ///
+ /// 分组分类
+ ///
+ public GroupClassify? GroupClassify { get; set; }
+
+
///
/// 问题分类
///
From a73f6a4aeb23c36c9a1f27bbd963bc84c9b6e824 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 24 Oct 2023 10:42:06 +0800
Subject: [PATCH 47/52] =?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/ReadingImageTask/ReadingImageTaskService.cs | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index e418bc662..d0b172793 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -1564,7 +1564,9 @@ namespace IRaCIS.Application.Services
x.FirstAddTaskId,
}).ToListAsync();
- await _readingTaskQuestionMarkRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId);
+
+ var markquestionId = inDto.Answers.Select(y => y.Id).ToList();
+ await _readingTaskQuestionMarkRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId&& markquestionId.Contains(x.QuestionId));
var datetime = DateTime.Now;
var markList = _mapper.Map, List>(inDto.QuestionMarkInfoList);
From a9fd1978e17f8576621a4cef2224980848d07a30 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Tue, 24 Oct 2023 17:05:03 +0800
Subject: [PATCH 48/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8C=BB=E7=94=9F?=
=?UTF-8?q?=E7=AE=80=E5=8E=86=E4=B8=8A=E4=BC=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/UploadDownLoadController.cs | 188 +++++++++++++-----
IRaCIS.Core.API/IRaCIS.Core.API.xml | 45 +++--
IRaCIS.Core.Application/Helper/OSSService.cs | 24 ++-
.../IRaCIS.Core.Application.xml | 7 +
.../Service/Common/FileService.cs | 5 +-
.../Service/Document/_MapConfig.cs | 2 +
.../DTO/UltrasonicDicomViewModel.cs | 2 +
.../UltrasonicDicomService.cs | 2 +-
IRaCIS.Core.Domain/Dcotor/Attachment.cs | 6 +-
9 files changed, 201 insertions(+), 80 deletions(-)
diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs
index 5ef44eb2c..b0a275fb5 100644
--- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs
+++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs
@@ -268,7 +268,7 @@ namespace IRaCIS.Core.API.Controllers
[DisableFormValueModelBinding]
[DisableRequestSizeLimit]
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
- public async Task ArchiveStudyNew(/*[FromForm] ArchiveStudyCommand archiveStudyCommand,*/ Guid trialId, Guid subjectVisitId, string studyInstanceUid, Guid? abandonStudyId,Guid studyMonitorId,
+ public async Task ArchiveStudyNew(/*[FromForm] ArchiveStudyCommand archiveStudyCommand,*/ Guid trialId, Guid subjectVisitId, string studyInstanceUid, Guid? abandonStudyId, Guid studyMonitorId,
[FromServices] ILogger _logger,
[FromServices] IEasyCachingProvider _provider,
[FromServices] IStudyService _studyService,
@@ -302,9 +302,9 @@ namespace IRaCIS.Core.API.Controllers
{
_provider.Set($"StudyUid_{trialId}_{archiveStudyCommand.StudyInstanceUid}", _userInfo.Id, TimeSpan.FromMinutes(30));
}
-
-
-
+
+
+
//if (_provider.Exists($"StudyUid_{trialId}_{archiveStudyCommand.StudyInstanceUid}"))
//{
// //---当前已有人正在上传和归档该检查!
@@ -407,7 +407,7 @@ namespace IRaCIS.Core.API.Controllers
studyMonitor.IsSuccess = true;
}
-
+
}
catch (Exception e)
{
@@ -424,7 +424,7 @@ namespace IRaCIS.Core.API.Controllers
studyMonitor.StudyCode = archiveResult.ArchivedDicomStudies.FirstOrDefault()?.StudyCode;
studyMonitor.ArchiveFinishedTime = DateTime.Now;
- await _studyMonitorRepository.SaveChangesAsync();
+ await _studyMonitorRepository.SaveChangesAsync();
}
@@ -528,7 +528,7 @@ namespace IRaCIS.Core.API.Controllers
if (!fileName.EndsWith(".xlsx") && !fileName.EndsWith(".csv") && !fileName.EndsWith(".xls"))
{
- //---支持.xlsx、.xls、.csv格式的文件上传。
+ //---支持.xlsx、.xls、.csv格式的文件上传。
throw new BusinessValidationFailedException(StaticData.International("UploadDownLoad_SupportedFormats"));
}
@@ -686,11 +686,11 @@ namespace IRaCIS.Core.API.Controllers
var dt = DateTime.Now;
- etcCheckList = etcCheckList.Where(t => !(t.Modality == string.Empty || t.SiteCode == string.Empty || t.SubjectCode == string.Empty || t.VisitName == string.Empty || t.StudyDate == string.Empty ||! DateTime.TryParse(t.StudyDate, out dt))).ToList();
+ etcCheckList = etcCheckList.Where(t => !(t.Modality == string.Empty || t.SiteCode == string.Empty || t.SubjectCode == string.Empty || t.VisitName == string.Empty || t.StudyDate == string.Empty || !DateTime.TryParse(t.StudyDate, out dt))).ToList();
if (etcCheckList.Count == 0)
{
- //---请保证上传数据符合模板文件中的样式,且存在有效数据。
+ //---请保证上传数据符合模板文件中的样式,且存在有效数据。
return ResponseOutput.NotOk(StaticData.International("UploadDownLoad_InvalidData"));
}
@@ -709,6 +709,38 @@ namespace IRaCIS.Core.API.Controllers
#region 医生文件上传下载
+
+ #region DTO
+ public class DoctorDownloadInfo
+ {
+ public Guid Id { get; set; }
+ public string Name { get; set; }
+ public string ReviewerCode { get; set; }
+
+ public List FileList { get; set; }
+ }
+ public class DownloadFileInfo
+ {
+ public string FileName { get; set; }
+
+ public string Path { get; set; }
+ }
+
+ public class GetDoctorPathCommand
+ {
+ public int Language { get; set; }
+
+ public List DoctorIdList { get; set; }
+ }
+
+ public class GetDoctoreAttachPathCommand
+ {
+ public Guid DoctorId { get; set; }
+ public List AttachmentIdList { get; set; }
+ }
+ #endregion
+
+
/// 医生文件上传下载
[ApiExplorerSettings(GroupName = "Common")]
[ApiController]
@@ -723,55 +755,98 @@ namespace IRaCIS.Core.API.Controllers
private readonly IFileService _fileService;
-
public FileController(IMapper mapper, IUserInfo userInfo, IWebHostEnvironment hostEnvironment, IFileService fileService)
{
_fileService = fileService;
_hostEnvironment = hostEnvironment;
-
_mapper = mapper;
_userInfo = userInfo;
}
///
- /// 上传文件[FileUpload]
+ /// New 医生首页 多选 获取多个医生信息+文件路径列表 医生压缩包名称 doctorCode + "_" + doctorName _(时间戳或者随机的Guid)
///
- /// 附件类型
- /// 医生Id
- /// 返回文件信息
- [HttpPost, Route("file/UploadFile/{attachmentType}/{doctorId}")]
- [DisableFormValueModelBinding]
- [DisableRequestSizeLimit]
- public async Task UploadOrdinaryFile(string attachmentType, Guid doctorId)
+ ///
+ [HttpPost, Route("file/GetOfficialResume")]
+ public async Task>> GetOfficialResume(GetDoctorPathCommand command,
+ [FromServices] IRepository _attachmentrepository)
{
- return await SingleFileUploadAsync((fileName) => FileStoreHelper.GetDoctorOrdinaryFilePath(_hostEnvironment, fileName, doctorId, attachmentType));
+ var list = await _attachmentrepository.Where(t => command.DoctorIdList.Contains(t.DoctorId) && command.Language==t.Language).GroupBy(t => new { Name = t.Doctor.FirstName + "_" + t.Doctor.LastName, ReviewerCode = t.Doctor.ReviewerCode, t.DoctorId })
+ .Select(g => new DoctorDownloadInfo()
+ {
+ Id = g.Key.DoctorId,
+ Name = g.Key.Name,
+ ReviewerCode = g.Key.ReviewerCode,
+ FileList = g.Select(t => new DownloadFileInfo() { FileName = t.FileName, Path = t.Path }).ToList()
+ }).ToListAsync();
+
+ return ResponseOutput.Ok(list);
}
-
///
- /// 上传文件( 不是医生个人的文件)[FileUpload]
- /// 例如:阅片章程等
+ /// New 项目入组 获取医生简历
///
- /// 文件类型
+ ///
+ ///
+ ///
///
-
- [HttpPost, Route("file/UploadNonDoctorFile/{type}")]
- [DisableFormValueModelBinding]
- [DisableRequestSizeLimit]
- public async Task UploadNonDoctorFile(string type)
+ [HttpPost,Route("file/GetTrialDoctorOfficialResume")]
+ public async Task>> GetTrialDoctorOfficialResume(GetDoctorPathCommand command,
+ [FromServices] IDoctorService _doctorService,
+ [FromServices] IRepository _attachmentrepository)
{
- return await SingleFileUploadAsync((fileName) => FileStoreHelper.GetNonDoctorFilePath(_hostEnvironment, fileName, type));
+
+ var list = await _attachmentrepository.Where(t => command.DoctorIdList.Contains(t.DoctorId) && command.Language == t.Language && t.IsOfficial && t.Type.Equals("Resume")).GroupBy(t => new { Name = t.Doctor.FirstName + "_" + t.Doctor.LastName, ReviewerCode = t.Doctor.ReviewerCode, t.DoctorId })
+ .Select(g => new DoctorDownloadInfo()
+ {
+ Id = g.Key.DoctorId,
+ Name = g.Key.Name,
+ ReviewerCode = g.Key.ReviewerCode,
+ FileList = g.Select(t => new DownloadFileInfo() { FileName = t.FileName, Path = t.Path }).ToList()
+ }).ToListAsync();
+
+ return ResponseOutput.Ok(list);
+
}
+ ///
+ /// new 医生详情 下载指定简历
+ ///
+ ///
+ ///
+ ///
+ ///
+ [HttpPost, Route("file/GetDoctorAttachment")]
+ public async Task> GetDoctorAttachment(GetDoctoreAttachPathCommand command,
+ [FromServices] IDoctorService _doctorService,
+ [FromServices] IRepository _attachmentrepository)
+ {
+
+ var find = await _attachmentrepository.Where(t => command.DoctorId==t.DoctorId && command.AttachmentIdList.Contains(t.Id)).GroupBy(t => new { Name = t.Doctor.FirstName + "_" + t.Doctor.LastName, ReviewerCode = t.Doctor.ReviewerCode, t.DoctorId })
+ .Select(g => new DoctorDownloadInfo()
+ {
+ Id = g.Key.DoctorId,
+ Name = g.Key.Name,
+ ReviewerCode = g.Key.ReviewerCode,
+ FileList = g.Select(t => new DownloadFileInfo() { FileName = t.FileName, Path = t.Path }).ToList()
+ }).FirstOrDefaultAsync();
+
+ return ResponseOutput.Ok(find);
+
+ }
+
+
+
+ #region 废弃
///
/// 下载多个医生的所有附件
///
///
///
-
+ [Obsolete]
[HttpPost, Route("file/downloadDoctorAttachments")]
public async Task> DownloadAttachment(Guid[] doctorIds)
{
@@ -786,24 +861,6 @@ namespace IRaCIS.Core.API.Controllers
});
}
- ///
- /// 下载医生官方简历
- ///
- ///
- ///
- ///
- [HttpPost, Route("file/downloadOfficialCV/{language}")]
- public async Task> DownloadOfficialResume(int language, Guid[] doctorIds)
- {
-
- var path = await _fileService.CreateDoctorsAllAttachmentZip(doctorIds);
- return ResponseOutput.Ok(new UploadFileInfoDTO
- {
- FilePath = await _fileService.CreateOfficialResumeZip(language, doctorIds),
- FullFilePath = path + "?access_token=" + HttpContext.Request.Headers["Authorization"].ToString().Substring(7)
- });
- }
-
///
/// 下载指定医生的指定附件
///
@@ -811,6 +868,7 @@ namespace IRaCIS.Core.API.Controllers
/// 要下载的附件Id
///
[HttpPost, Route("file/downloadByAttachmentId/{doctorId}")]
+ [Obsolete]
public async Task> DownloadAttachmentById(Guid doctorId, Guid[] attachmentIds)
{
var path = await _fileService.CreateZipPackageByAttachment(doctorId, attachmentIds);
@@ -822,15 +880,47 @@ namespace IRaCIS.Core.API.Controllers
}
+ ///
+ /// 下载医生官方简历 首页 区分 中文和英文
+ ///
+ ///
+ ///
+ ///
+ [HttpPost, Route("file/downloadOfficialCV/{language}")]
+ [Obsolete]
+ public async Task> DownloadOfficialResume(int language, Guid[] doctorIds)
+ {
+
+ var path = await _fileService.CreateDoctorsAllAttachmentZip(doctorIds);
+ return ResponseOutput.Ok(new UploadFileInfoDTO
+ {
+ FilePath = await _fileService.CreateOfficialResumeZip(language, doctorIds),
+ FullFilePath = path + "?access_token=" + HttpContext.Request.Headers["Authorization"].ToString().Substring(7)
+ });
+ }
+
+
+
+
+ ///
+ /// 入组 项目下载简历
+ ///
+ ///
+ ///
+ ///
+ ///
[HttpPost, Route("enroll/downloadResume/{trialId:guid}/{language}")]
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
[AllowAnonymous]
+ [Obsolete]
public async Task> DownloadResume(int language, Guid trialId, Guid[] doctorIdArray)
{
var zipPath = await _fileService.CreateOfficialResumeZip(language, doctorIdArray);
return ResponseOutput.Ok(zipPath);
}
+ #endregion
+
}
#endregion
diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.xml b/IRaCIS.Core.API/IRaCIS.Core.API.xml
index 96f6f9d06..5e57621b6 100644
--- a/IRaCIS.Core.API/IRaCIS.Core.API.xml
+++ b/IRaCIS.Core.API/IRaCIS.Core.API.xml
@@ -285,20 +285,19 @@
医生文件上传下载
-
+
- 上传文件[FileUpload]
+ New 医生首页 多选 获取多个医生信息+文件路径列表 医生压缩包名称 doctorCode + "_" + doctorName _(时间戳或者随机的Guid)
- 附件类型
- 医生Id
- 返回文件信息
+
-
+
- 上传文件( 不是医生个人的文件)[FileUpload]
- 例如:阅片章程等
+ New 项目入组 获取医生简历
- 文件类型
+
+
+
@@ -308,14 +307,6 @@
-
-
- 下载医生官方简历
-
-
-
-
-
下载指定医生的指定附件
@@ -324,6 +315,26 @@
要下载的附件Id
+
+
+ 下载医生官方简历 首页 区分 中文和英文
+
+
+
+
+
+
+
+ 入组 项目下载简历
+
+
+
+
+
+
+
+ 通用文件下载
+
上传通用文档 比如一致性核查的 比如导出的excel 模板
diff --git a/IRaCIS.Core.Application/Helper/OSSService.cs b/IRaCIS.Core.Application/Helper/OSSService.cs
index 1fba59176..ff0a024fa 100644
--- a/IRaCIS.Core.Application/Helper/OSSService.cs
+++ b/IRaCIS.Core.Application/Helper/OSSService.cs
@@ -51,17 +51,19 @@ namespace IRaCIS.Core.Application.Helper
{
var ossOptions = options.CurrentValue;
- _OSSConfig = new AliyunOssOptions()
- {
- RegionId = ossOptions.RegionId,
- AccessKeyId = ossOptions.AccessKeyId,
- AccessKeySecret = ossOptions.AccessKeySecret,
- EndPoint = ossOptions.EndPoint,
- BucketName = ossOptions.BucketName,
- RoleArn = ossOptions.RoleArn,
- Region = ossOptions.Region,
- ViewEndpoint = ossOptions.ViewEndpoint
- };
+ _OSSConfig= ossOptions;
+
+ //_OSSConfig = new AliyunOssOptions()
+ //{
+ // RegionId = ossOptions.RegionId,
+ // AccessKeyId = ossOptions.AccessKeyId,
+ // AccessKeySecret = ossOptions.AccessKeySecret,
+ // EndPoint = ossOptions.EndPoint,
+ // BucketName = ossOptions.BucketName,
+ // RoleArn = ossOptions.RoleArn,
+ // Region = ossOptions.Region,
+ // ViewEndpoint = ossOptions.ViewEndpoint
+ //};
_ossClient = new OssClient(_OSSConfig.EndPoint, _OSSConfig.AccessKeyId, _OSSConfig.AccessKeySecret);
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 26f9eb556..c0fc753c7 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1954,6 +1954,13 @@
+
+
+ 骨髓中是否存在局灶性 FDG亲和病灶的证据
+
+
+
+
获取肝脏评估
diff --git a/IRaCIS.Core.Application/Service/Common/FileService.cs b/IRaCIS.Core.Application/Service/Common/FileService.cs
index ecbce02cd..01f6323b3 100644
--- a/IRaCIS.Core.Application/Service/Common/FileService.cs
+++ b/IRaCIS.Core.Application/Service/Common/FileService.cs
@@ -98,7 +98,8 @@ namespace IRaCIS.Application.Services
///
public async Task CreateDoctorsAllAttachmentZip(Guid[] doctorIds)
{
- //准备下载文件的临时路径
+ #region 老版本 存储在服务器
+ //准备下载文件的临时路径
var guidStr = Guid.NewGuid().ToString();
//string uploadFolderPath = HostingEnvironment.MapPath("/UploadFile/");
string uploadFolderPath = Path.Combine(FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment), "UploadFile");
@@ -134,6 +135,8 @@ namespace IRaCIS.Application.Services
string targetPath = Path.Combine(uploadFolderPath, target + ".zip");
ZipHelper.CreateZip(tempSavePath, targetPath);
return Path.Combine("/IRaCISData/UploadFile/", target + ".zip");
+ #endregion
+
}
diff --git a/IRaCIS.Core.Application/Service/Document/_MapConfig.cs b/IRaCIS.Core.Application/Service/Document/_MapConfig.cs
index 1116a7bf1..f01322122 100644
--- a/IRaCIS.Core.Application/Service/Document/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Document/_MapConfig.cs
@@ -52,7 +52,9 @@ namespace IRaCIS.Core.Application.Service
CreateMap();
+ CreateMap();
+
CreateMap()
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
index 3d5b5abea..25bf021ee 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/DTO/UltrasonicDicomViewModel.cs
@@ -119,6 +119,8 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject.DTO
public class InstancePathDTO
{
+ public string StudyInstanceUid { get; set; }
+ public string SopInstanceUid { get; set; }
public string StudyCode { get; set; }
public string InstancePath { get; set; }
}
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
index b030987e2..7e52257fb 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
@@ -194,7 +194,7 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject
[HttpPost]
public async Task> GetStudyModalityOSSPath(List seriesIdList, [FromServices] IRepository _dicomSeriesRepository)
{
- return await _dicomSeriesRepository.Where(t => seriesIdList.Contains(t.Id)).SelectMany(t => t.DicomInstanceList).Select(t => new InstancePathDTO() {InstancePath= t.Path,StudyCode=t.DicomStudy.StudyCode } ).ToListAsync();
+ return await _dicomSeriesRepository.Where(t => seriesIdList.Contains(t.Id)).SelectMany(t => t.DicomInstanceList).Select(t => new InstancePathDTO() {InstancePath= t.Path,StudyCode=t.DicomStudy.StudyCode , SopInstanceUid = t.SopInstanceUid, StudyInstanceUid = t.StudyInstanceUid} ).ToListAsync();
}
diff --git a/IRaCIS.Core.Domain/Dcotor/Attachment.cs b/IRaCIS.Core.Domain/Dcotor/Attachment.cs
index bf61dd5ee..1a97bfb64 100644
--- a/IRaCIS.Core.Domain/Dcotor/Attachment.cs
+++ b/IRaCIS.Core.Domain/Dcotor/Attachment.cs
@@ -16,7 +16,11 @@ namespace IRaCIS.Core.Domain.Models
[Table("Attachment")]
public partial class Attachment : Entity, IAuditAdd
{
- public Guid? DoctorId { get; set; }
+
+ [JsonIgnore]
+ public Doctor Doctor { get; set; }
+
+ public Guid DoctorId { get; set; }
public string Type { get; set; }
public bool IsOfficial { get; set; } = false;
public string Path { get; set; } = string.Empty;
From 4b9ca6ca2510f47c9eec857a03bbbdd0e43ce0d7 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 24 Oct 2023 17:27:26 +0800
Subject: [PATCH 49/52] =?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/Dto/ReadingImageTaskViewModel.cs | 2 ++
.../ReadingImageTask/ReadingImageTaskService.cs | 16 ++++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index 0803c8c00..ddaf82d92 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -1280,6 +1280,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string SubjectCode { get; set; }
+ public bool IsExistsClinicalData { get; set; }
+
public ReadingTaskState ReadingTaskState { get; set; }
public decimal VisitTaskNum { get; set; }
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index d0b172793..da06e0a23 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -549,6 +549,22 @@ namespace IRaCIS.Application.Services
result = result.Where(x => x.VisitTaskId == inDto.VisitTaskId).ToList();
}
+ foreach (var item in result)
+ {
+ var clinicalDataList = await _readingClinicalDataService.GetClinicalDataList(new GetReadingOrTaskClinicalDataListInDto()
+ {
+
+ SubjectId = taskInfo.SubjectId,
+ TrialId = taskInfo.TrialId,
+ VisitTaskId = item.VisitTaskId,
+ });
+
+ item.IsExistsClinicalData = clinicalDataList.Count() > 0;
+ }
+
+
+
+
return (result, new
{
ReadingTaskState = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.ReadingTaskState).FirstOrDefaultAsync()
From 719896284704a275ba4272c18c37fd675d342cec Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 25 Oct 2023 16:06:23 +0800
Subject: [PATCH 50/52] =?UTF-8?q?=E5=BD=B1=E5=83=8F=E5=AD=A6=E6=95=B4?=
=?UTF-8?q?=E4=BD=93=E8=82=BF=E7=98=A4=E8=AF=84=E4=BC=B0=E8=AE=A1=E7=AE=97?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../LuganoCalculateService.cs | 56 +++++++++++++++----
1 file changed, 45 insertions(+), 11 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 2308d2d46..81725c40f 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -2253,18 +2253,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
List data = new List() {
- //ND NE NE ND
+ //ND NE NE/NA ND
new CalculationDto(){
Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }),
Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }),
- Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE}),
+ Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA}),
Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.ND }),
},
- //ND/PD/CR/NE/PR/SD PMD PMD/CMR/PMR/NMR/NE PMD/PD
+ //ND/PD/CR/NE/PR/SD PMD PMD/CMR/PMR/NMR/NE/NA PMD/PD
new CalculationDto(){
Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD}),
Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, }),
- Column3=ReadingCommon.EnumToString(new List() {FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE }),
+ Column3=ReadingCommon.EnumToString(new List() {FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }),
Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }),
},
//ND/PD/CR/NE/PR/SD PMD/CMR/PMR/NMR/NE PMD PMD/PD
@@ -2274,25 +2274,59 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, }),
Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }),
},
- //PD NE CMR/PMR/NMR/NE PMD/PD
+ //PD NE CMR/PMR/NMR/NE/NA PMD/PD
new CalculationDto(){
Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD}),
Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, }),
- Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE }),
+ Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }),
Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }),
},
- //ND/PD/CR/NE/PR/SD PMR PMD/CMR/PMR/NMR/NE PMR/PR
+ //NE NE NE/NA NE
+ new CalculationDto(){
+ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }),
+ Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }),
+ Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }),
+ Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NE }),
+ },
+
+ //CR、PR、SD、NE、ND、PD CMR CMR/PMR/NMR/PMD/NE/NA CMR/CR
+ new CalculationDto(){
+ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND,CTMRIOverallAssessment.PD }),
+ Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR }),
+ Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR, FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA}),
+ Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }),
+ },
+ //CR NE NE/NA CMR/CR
+ new CalculationDto(){
+ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR }),
+ Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }),
+ Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}),
+ Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }),
+ },
+
+ //CR、PR、SD、NE、ND CMR NE/NA CMR/CR
+ new CalculationDto(){
+ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND }),
+ Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR }),
+ Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}),
+ Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }),
+ },
+
+
+
+
+ //ND/PD/CR/NE/PR/SD PMR PMD/CMR/PMR/NMR/NE PMR/PR
new CalculationDto(){
Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD }),
Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR }),
- Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE }),
+ Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE,FDGPETOverallAssessment.NA, }),
Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMRPR }),
},
//PR NE NE PMR/PR
new CalculationDto(){
Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }),
Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }),
- Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE}),
+ Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}),
Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMRPR }),
},
//CR/PR/SD/NE/ND NE PMR PMR/PR
@@ -2306,7 +2340,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
new CalculationDto(){
Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND,CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD }),
Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NMR }),
- Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR, FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE}),
+ Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR, FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}),
Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NMRSD }),
},
//CR/PR/SD/ND/NE NE NMR NMR/SD
@@ -2320,7 +2354,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
new CalculationDto(){
Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.SD }),
Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }),
- Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE}),
+ Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}),
Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NMRSD }),
},
};
From 1db7b86f89411accdc7fbd322896a3662aadf849 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Thu, 26 Oct 2023 10:01:36 +0800
Subject: [PATCH 51/52] =?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/ReadingCalculate/LuganoCalculateService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
index 81725c40f..dde4e18be 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs
@@ -2080,7 +2080,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
new CalculationDto(){
Column1=ReadingCommon.EnumToString(new List() { PET5PSScore.Five,PET5PSScore.Four, }),
Column2=ReadingCommon.EnumToString(new List() { SUVChangeVSBaseline.Increase }),
- Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.NE, FDGAffinityFociInBM.YesHaveNew, FDGAffinityFociInBM.YesHaveNew, FDGAffinityFociInBM.No}),
+ Column3=ReadingCommon.EnumToString(new List() { FDGAffinityFociInBM.NE, FDGAffinityFociInBM.YesHaveNew, FDGAffinityFociInBM.YesSustain, FDGAffinityFociInBM.No}),
Column4=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD }),
},
From 4e5b96b8eac7ab444b35681211c2f09dbb8af653 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Thu, 26 Oct 2023 10:03:10 +0800
Subject: [PATCH 52/52] xx
---
IRaCIS.Core.API/IRaCIS.Core.API.xml | 9 +++++
.../IRaCIS.Core.Application.xml | 37 ++++++++++++++++++-
.../Service/Visit/SubjectVisitService.cs | 3 +-
3 files changed, 46 insertions(+), 3 deletions(-)
diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.xml b/IRaCIS.Core.API/IRaCIS.Core.API.xml
index 5e57621b6..5198124a0 100644
--- a/IRaCIS.Core.API/IRaCIS.Core.API.xml
+++ b/IRaCIS.Core.API/IRaCIS.Core.API.xml
@@ -300,6 +300,15 @@
+
+
+ new 医生详情 下载指定简历
+
+
+
+
+
+
下载多个医生的所有附件
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index c0fc753c7..4650ad18a 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -4813,6 +4813,11 @@
Path
+
+
+ 分组分类
+
+
问题分类
@@ -6598,6 +6603,11 @@
问题分类
+
+
+ 分组分类
+
+
单位
@@ -6676,6 +6686,11 @@
问题分类
+
+
+ 分组分类
+
+
数据来源
@@ -7024,6 +7039,11 @@
问题分类
+
+
+ 分组分类
+
+
单位
@@ -7084,6 +7104,11 @@
问题分类
+
+
+ 分组分类
+
+
备注
@@ -7439,6 +7464,11 @@
问题分类
+
+
+ 分组分类
+
+
限制编辑
@@ -7769,6 +7799,11 @@
问题分类
+
+
+ 分组分类
+
+
数据来源
@@ -13183,7 +13218,7 @@
-
+
获取阅片外层问题
diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
index 2c7f9e564..695454728 100644
--- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
+++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
@@ -267,8 +267,7 @@ namespace IRaCIS.Core.Application.Services
foreach (var t in studyList)
{
t.SeriesList = await _repository.Where(s => s.StudyId == t.StudyId)
- .WhereIf(isReading == 1, s => s.IsReading).OrderBy(s => s.SeriesNumber).
- ThenBy(s => s.SeriesTime)
+ .WhereIf(isReading == 1, s => s.IsReading).OrderBy(s => s.SeriesNumber).ThenBy(s => s.SeriesTime)
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();