From 83480730f032e68b25fc6e16b2b7f76340291192 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Fri, 24 Jun 2022 11:29:30 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E7=89=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IRaCIS.Core.Application.xml | 30 ++++++++
.../Service/Reading/ClinicalDataSetService.cs | 10 ---
.../Reading/Dto/ReadingClinicalDataDto.cs | 7 ++
.../Reading/Dto/ReadingImageTaskViewModel.cs | 4 +
.../Reading/ReadingClinicalDataService.cs | 67 +++++++----------
.../Reading/ReadingImageTaskService.cs | 13 +++-
.../Service/Reading/_MapConfig.cs | 2 +-
.../Reading/View/ReadingClinicalDataView.cs | 73 +++++++++----------
.../Context/IRaCISDBContext.cs | 2 +-
9 files changed, 117 insertions(+), 91 deletions(-)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 9bc48e34b..19f5610d5 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -580,6 +580,11 @@
上传方式
+
+
+ 上传角色
+
+
是否启用
@@ -610,6 +615,11 @@
临床级别
+
+
+ 上传角色
+
+
上传方式
@@ -645,6 +655,11 @@
创建人
+
+
+ 上传角色
+
+
项目ID
@@ -690,6 +705,11 @@
上传方式
+
+
+ 上传角色
+
+
创建时间
@@ -1085,6 +1105,11 @@
临床级别
+
+
+ 上传角色
+
+
上传方式
@@ -1155,6 +1180,11 @@
是否是基线
+
+
+ 上传角色
+
+
名称
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs
index b0eed3be0..505d5ec79 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs
@@ -96,16 +96,6 @@ namespace IRaCIS.Application.Services
.WhereIf(inDto.ClinicalUploadType != null, x => x.ClinicalUploadType == inDto.ClinicalUploadType)
.WhereIf(inDto.ClinicalDataSetName != String.Empty, x => x.ClinicalDataSetName.Contains(inDto.ClinicalDataSetName))
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
-
- var crcClinicalData = await _previousPDFRepository.AnyAsync(x => x.TrialId == inDto.TrialId);
-
- trialClinicalDataList.ForEach(x =>
- {
- if (x.ClinicalDataSetName == "既往局部治疗史")
- {
- x.IsUsed = crcClinicalData;
- }
- });
return trialClinicalDataList;
}
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
index 5335d94ea..1239d99dc 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
@@ -93,6 +93,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
[Required(ErrorMessage = "ReadingId为null")]
public Guid ReadingId { get; set; }
+
+ public UploadRole UploadRole { get; set; }
}
public class GetReadingClinicalDataPDFListIndto:PageInput
@@ -211,6 +213,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public ClinicalLevel ClinicalDataLevel { get; set; }
+ ///
+ /// 上传角色
+ ///
+ public UploadRole UploadRole { get; set; }
+
public Guid SubjectId { get; set; }
///
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index 1dd5e0fcf..2d220394e 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -148,7 +148,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class GetReadingPastResultListInDto
{
+ [NotDefault]
public Guid TrialId { get; set; }
+
+ [NotDefault]
+ public Guid SubjectId { get; set; }
}
public class SaveJudgeVisitTaskResult
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
index 3184580b1..359f1b2bc 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
@@ -25,14 +25,13 @@ namespace IRaCIS.Application.Services
{
private readonly IRepository _readingClinicalDataRepository;
private readonly IRepository _clinicalDataTrialSetRepository;
- private readonly IRepository _readingClinicalDataViewRepository;
+
private readonly IRepository _previousPDFRepository;
private readonly IRepository _subjectVisitRepository;
private readonly IRepository _readingClinicalDataPDFRepository;
public ReadingClinicalDataService(IRepository readingClinicalDataRepository,
IRepository clinicalDataTrialSetRepository,
- IRepository readingClinicalDataViewRepository,
IRepository previousPDFRepository,
IRepository subjectVisitRepository,
IRepository readingClinicalDataPDFRepository
@@ -40,7 +39,6 @@ namespace IRaCIS.Application.Services
{
this._readingClinicalDataRepository = readingClinicalDataRepository;
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
- this._readingClinicalDataViewRepository = readingClinicalDataViewRepository;
this._previousPDFRepository = previousPDFRepository;
this._subjectVisitRepository = subjectVisitRepository;
this._readingClinicalDataPDFRepository = readingClinicalDataPDFRepository;
@@ -194,48 +192,35 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task> GetReadingClinicalDataList(GetReadingClinicalDataListIndto inDto)
{
- var isBaseLine = await _subjectVisitRepository.AnyAsync(x => x.Id == inDto.ReadingId && x.VisitNum == 0);
- var result = await _readingClinicalDataViewRepository.Where(x=>x.SubjectId==inDto.SubjectId)
- .Where(x=>x.ReadingId==inDto.ReadingId||x.ReadingId==null)
- .WhereIf(!isBaseLine,x=>x.IsCRCUpload==false).ProjectTo(_mapper.ConfigurationProvider).ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(GetReadingClinicalDataListOutDto.ClinicalDataSetName) : inDto.SortField,
- inDto.Asc);
- foreach (var item in result.CurrentPageData)
- {
- item.ClinicalDataLevelName = item.ClinicalDataLevel.GetDisplayName();
- item.ClinicalUploadTypeName = item.ClinicalUploadType.GetDisplayName();
-
- if (item.IsCRCUpload)
- {
- item.FileList = await _previousPDFRepository.Where(x => x.SubjectId == inDto.SubjectId).Select(y => new GetFileDto()
+ var isBaseLine = await _subjectVisitRepository.AnyAsync(x => x.Id == inDto.ReadingId && x.IsBaseLine);
+ var resultQuery = _readingClinicalDataRepository.Where(x => x.SubjectId == inDto.SubjectId)
+ .Where(x => x.ReadingId == inDto.ReadingId)
+ .WhereIf(inDto.UploadRole == UploadRole.CRC, x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC)
+ .WhereIf(inDto.UploadRole == UploadRole.PM && !isBaseLine, x => x.ClinicalDataTrialSet.UploadRole == UploadRole.PM)
+ .Select(x => new GetReadingClinicalDataListOutDto() {
+ ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
+ SubjectId = x.SubjectId,
+ ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName,
+ ClinicalDataTrialSetId = x.ClinicalDataTrialSetId,
+ IsSign = x.IsSign,
+ ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
+ Id = x.Id,
+ UploadRole=x.ClinicalDataTrialSet.UploadRole,
+ IsCRCUpload = x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC,
+ FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
{
Id = y.Id,
FileName = y.FileName,
Path = y.Path
- }).ToListAsync();
- }
- else
- {
- if (item.ClinicalDataLevel != ClinicalLevel.Subject)
- {
- item.FileList = await _readingClinicalDataPDFRepository.Where(y => y.ReadingClinicalDataId == item.Id).Select(y => new GetFileDto()
- {
- Id = y.Id,
- FileName = y.FileName,
- Path = y.Path
- }).ToListAsync();
- }
- else
- {
- item.FileList = await _readingClinicalDataPDFRepository.Where(y => y.SubjectId == item.SubjectId).Select(y => new GetFileDto()
- {
- Id = y.Id,
- FileName = y.FileName,
- Path = y.Path
- }).ToListAsync();
- }
- }
-
- }
+ }).ToList()
+ });
+
+
+
+
+ var result=await resultQuery.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(GetReadingClinicalDataListOutDto.ClinicalDataSetName) : inDto.SortField,
+ inDto.Asc);
+
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
index 7e182a143..e5d387306 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
@@ -29,6 +29,7 @@ namespace IRaCIS.Application.Services
private readonly IRepository _noneDicomStudyRepository;
private readonly IRepository _visitTaskRepository;
+ private readonly IRepository _trialRepository;
private readonly IVisitTaskHelpeService _visitTaskHelpeService;
private readonly IRepository _subjectVisitRepository;
private readonly IRepository _subjectRepository;
@@ -42,6 +43,7 @@ namespace IRaCIS.Application.Services
IMapper mapper,
IRepository noneDicomStudyRepository,
IRepository visitTaskRepository,
+ IRepository TrialRepository,
IVisitTaskHelpeService visitTaskHelpeService,
IRepository subjectVisitRepository,
IRepository subjectRepository,
@@ -54,6 +56,7 @@ namespace IRaCIS.Application.Services
base._mapper = mapper;
this._noneDicomStudyRepository = noneDicomStudyRepository;
this._visitTaskRepository = visitTaskRepository;
+ this._trialRepository = TrialRepository;
this._visitTaskHelpeService = visitTaskHelpeService;
this._subjectVisitRepository = subjectVisitRepository;
this._subjectRepository = subjectRepository;
@@ -171,11 +174,19 @@ namespace IRaCIS.Application.Services
}
List result=await _noneDicomStudyRepository.Where(t => visitIds.Contains(t.SubjectVisitId))
.ProjectTo(_mapper.ConfigurationProvider, new { token = _userInfo.UserToken }).ToListAsync();
+
+ var trialInfo = await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => new
+ {
+ x.IsReadingShowPreviousResults,
+ x.IsReadingShowSubjectInfo,
+ }).FirstOrDefaultAsync();
return (result, new {
VisitTaskId= task.VisistTaskId,
SubjectId=task.SubjectId,
SubjectCode=task.SubjectCode,
ReadingCategory= task.ReadingCategory,
+ IsReadingShowPreviousResults= trialInfo.IsReadingShowPreviousResults,
+ IsReadingShowSubjectInfo=trialInfo.IsReadingShowSubjectInfo,
});
}
@@ -388,7 +399,7 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task> GetReadingPastResultList(GetReadingPastResultListInDto inDto)
{
- var readingPastResultList =await _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.DoctorUserId == _userInfo.Id)
+ var readingPastResultList =await _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId&&x.SubjectId==inDto.SubjectId && x.DoctorUserId == _userInfo.Id)
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
return readingPastResultList;
}
diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
index 9b2107ab4..32f6c6125 100644
--- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
@@ -20,7 +20,7 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.SiteCodes, u => u.MapFrom(s => s.ReadingPeriodSites.Select(x => x.TrialSite.TrialSiteCode)))
.ForMember(d => d.PlanCount, u => u.MapFrom(s => s.ReadingPeriodPlanList.Count));
- CreateMap();
+ //CreateMap();
// CreateMap()
//.ForMember(d => d.ClinicalDataLevel, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataLevel))
//.ForMember(d => d.ClinicalDataLevelName, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataSetName))
diff --git a/IRaCIS.Core.Domain/Reading/View/ReadingClinicalDataView.cs b/IRaCIS.Core.Domain/Reading/View/ReadingClinicalDataView.cs
index b50053ed7..ae0dcb095 100644
--- a/IRaCIS.Core.Domain/Reading/View/ReadingClinicalDataView.cs
+++ b/IRaCIS.Core.Domain/Reading/View/ReadingClinicalDataView.cs
@@ -1,5 +1,4 @@
using IRaCIS.Core.Domain.Share;
-using IRaCIS.Core.Domain.Share;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -8,54 +7,54 @@ using System.Threading.Tasks;
namespace IRaCIS.Core.Domain.Models
{
- public class ReadingClinicalDataView : Entity
- {
+ //public class ReadingClinicalDataView : Entity
+ //{
- ///
- /// 项目ID
- ///
- public Guid TrialId { get; set; }
+ // ///
+ // /// 项目ID
+ // ///
+ // public Guid TrialId { get; set; }
- ///
- /// 受试者ID
- ///
- public Guid SubjectId { get; set; }
+ // ///
+ // /// 受试者ID
+ // ///
+ // public Guid SubjectId { get; set; }
- ///
- /// 阅片
- ///
- public Guid? ReadingId { get; set; }
+ // ///
+ // /// 阅片
+ // ///
+ // public Guid? ReadingId { get; set; }
- ///
- /// 项目配置临床类型ID
- ///
- public Guid ClinicalDataTrialSetId { get; set; }
+ // ///
+ // /// 项目配置临床类型ID
+ // ///
+ // public Guid ClinicalDataTrialSetId { get; set; }
- ///
- /// 项目配置临床类型Name
- ///
- public string ClinicalDataSetName { get; set; }
+ // ///
+ // /// 项目配置临床类型Name
+ // ///
+ // public string ClinicalDataSetName { get; set; }
- public ClinicalUploadType ClinicalUploadType { get; set; }
+ // public ClinicalUploadType ClinicalUploadType { get; set; }
- ///
- /// 临床数据级别
- ///
- public ClinicalLevel ClinicalDataLevel { get; set; }
+ // ///
+ // /// 临床数据级别
+ // ///
+ // public ClinicalLevel ClinicalDataLevel { get; set; }
- ///
- /// 是否为CRC上传
- ///
- public bool IsCRCUpload { get; set; }
+ // ///
+ // /// 是否为CRC上传
+ // ///
+ // public bool IsCRCUpload { get; set; }
- ///
- /// 是否签名
- ///
- public bool IsSign { get; set; }
+ // ///
+ // /// 是否签名
+ // ///
+ // public bool IsSign { get; set; }
- }
+ //}
}
diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
index 8dee5b6e3..908a1bc50 100644
--- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
+++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
@@ -194,7 +194,7 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet ReadingQuestionTrial { get; set; }
- public virtual DbSet ReadingClinicalDataView { get; set; }
+ //public virtual DbSet ReadingClinicalDataView { get; set; }
public virtual DbSet ReadingClinicalDataPDF { get; set; }