From e3541d78ce431f2e6c80f0a0df95b661e0e54b9a Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Mon, 19 Jun 2023 15:45:29 +0800
Subject: [PATCH 01/14] =?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/ShortcutKey/ShortcutKeyService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ShortcutKey/ShortcutKeyService.cs b/IRaCIS.Core.Application/Service/Reading/ShortcutKey/ShortcutKeyService.cs
index dc1592d23..6b484c41e 100644
--- a/IRaCIS.Core.Application/Service/Reading/ShortcutKey/ShortcutKeyService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ShortcutKey/ShortcutKeyService.cs
@@ -64,7 +64,7 @@ namespace IRaCIS.Core.Application.Service
AltKey = isnull ? false : key.AltKey,
CtrlKey = isnull ? false : key.CtrlKey,
MetaKey = isnull ? false : key.MetaKey,
- ShiftKey = isnull ? false : key.ShiftKey,
+ ShiftKey = isnull && int.Parse(x.Code) == 11 ? true : isnull ? false : key.ShiftKey,
Text = isnull ? defaultkey.Text : key.Text,
Code = isnull ? defaultkey.Code : key.Code,
});
From 1b443af1231467f109a1ffb277a26ccf34ac668b Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Mon, 19 Jun 2023 16:19:15 +0800
Subject: [PATCH 02/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ClinicalData/ClinicalQuestionService.cs | 22 +++++++++----------
IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 1 +
2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
index 316b1c952..519757da8 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
@@ -15,11 +15,11 @@ namespace IRaCIS.Core.Application.Service
///
/// 临床数据问题
///
- [ ApiExplorerSettings(GroupName = "Reading")]
- public class ClinicalQuestionService: BaseService
+ [ApiExplorerSettings(GroupName = "Reading")]
+ public class ClinicalQuestionService : BaseService
{
- private readonly IRepository _trialClinicalQuestionRepository;
+ private readonly IRepository _trialClinicalQuestionRepository;
private readonly IRepository _systemClinicalQuestionRepository;
@@ -33,11 +33,11 @@ namespace IRaCIS.Core.Application.Service
IRepository trialClinicalTableQuestionRepository,
IRepository systemClinicalQuestionRepository
)
- {
+ {
_systemClinicalTableQuestionRepository = systemClinicalTableQuestionRepository;
_trialClinicalQuestionRepository = trialClinicalQuestionRepository;
_trialClinicalTableQuestionRepository = trialClinicalTableQuestionRepository;
- _systemClinicalQuestionRepository = systemClinicalQuestionRepository;
+ _systemClinicalQuestionRepository = systemClinicalQuestionRepository;
}
@@ -52,8 +52,8 @@ namespace IRaCIS.Core.Application.Service
public async Task> GetTrialClinicalQuestionList(TrialClinicalQuestionQuery inQuery)
{
- var trialClinicalQuestionQueryable =_trialClinicalQuestionRepository
- .WhereIf(!inQuery.QuestionName.IsNullOrEmpty(),x=>x.QuestionName.Contains(inQuery.QuestionName)||x.QuestionEnName.Contains(inQuery.QuestionName))
+ var trialClinicalQuestionQueryable = _trialClinicalQuestionRepository
+ .WhereIf(!inQuery.QuestionName.IsNullOrEmpty(), x => x.QuestionName.Contains(inQuery.QuestionName) || x.QuestionEnName.Contains(inQuery.QuestionName))
.ProjectTo(_mapper.ConfigurationProvider);
var pageList = await trialClinicalQuestionQueryable
.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TrialClinicalQuestion.ShowOrder) : inQuery.SortField,
@@ -95,7 +95,7 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task> GetTrialClinicalGroupQuestionList(GetTrialGroupDto inDto)
{
- return await this._trialClinicalQuestionRepository.Where(x=>x.TrialClinicalId== inDto.TrialClinicalId)
+ return await this._trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId)
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
}
@@ -175,7 +175,7 @@ namespace IRaCIS.Core.Application.Service
{
var systemClinicalTableQuestionQueryable = this._systemClinicalTableQuestionRepository
- .Where(x=>x.QuestionId==inQuery.QuestionId)
+ .Where(x => x.QuestionId == inQuery.QuestionId)
.ProjectTo(_mapper.ConfigurationProvider);
var pageList = await systemClinicalTableQuestionQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(SystemClinicalTableQuestion.ShowOrder) : inQuery.SortField,
@@ -193,7 +193,7 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task AddOrUpdateSystemClinicalTableQuestion(SystemClinicalTableQuestionDto inDto)
{
-
+
var entity = await _systemClinicalTableQuestionRepository.InsertOrUpdateAsync(inDto, true);
return ResponseOutput.Ok(entity.Id.ToString());
@@ -265,4 +265,4 @@ namespace IRaCIS.Core.Application.Service
#endregion
}
-}
+}
diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
index 975ff7279..64b2ce88a 100644
--- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
+++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
@@ -21,6 +21,7 @@ namespace IRaCIS.Core.Domain.Share
///
public enum ClinicalTableQuestionMark
{
+ Test=1,
}
///
From 6987f4be838543f57750b376b7fa6c87329228e6 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Mon, 19 Jun 2023 16:24:47 +0800
Subject: [PATCH 03/14] =?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/ClinicalData/ClinicalQuestionService.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
index 519757da8..b07e79eb1 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
@@ -205,7 +205,7 @@ namespace IRaCIS.Core.Application.Service
///
///
///
- [HttpDelete("{id:guid}")]
+ [HttpPost("{id:guid}")]
public async Task DeleteSystemClinicalTableQuestion(Guid id)
{
var success = await _systemClinicalTableQuestionRepository.DeleteFromQueryAsync(t => t.Id == id, true);
@@ -256,7 +256,7 @@ namespace IRaCIS.Core.Application.Service
///
///
///
- [HttpDelete("{id:guid}")]
+ [HttpPost("{id:guid}")]
public async Task DeleteTrialClinicalTableQuestion(Guid id)
{
var success = await _trialClinicalTableQuestionRepository.DeleteFromQueryAsync(t => t.Id == id, true);
From d34bf1ee7d3af29ca34e1ec4c7d1a8b72c63f1ae Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 20 Jun 2023 10:13:34 +0800
Subject: [PATCH 04/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ClinicalData/ClinicalQuestionService.cs | 32 +++++++++++++++++--
1 file changed, 30 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
index b07e79eb1..94eb0108a 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
@@ -9,6 +9,7 @@ using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Infra.EFCore.Common;
+using IRaCIS.Core.Domain.Share;
namespace IRaCIS.Core.Application.Service
{
@@ -95,10 +96,22 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task> GetTrialClinicalGroupQuestionList(GetTrialGroupDto inDto)
{
- return await this._trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId)
+ return await this._trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId&&x.ClinicalQuestionTypeEnum== ClinicalQuestionType.Group)
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
}
+ ///
+ /// 获取项目标准其他问题
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetTrialClinicalOtherQuestionList(GetTrialGroupDto inDto)
+ {
+ return await this._trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId && x.ClinicalQuestionTypeEnum == ClinicalQuestionType.Select)
+ .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+ }
+
#endregion
@@ -158,9 +171,24 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task> GetSystemClinicalGroupQuestionList(GetSystemGroupDto inDto)
{
- return await this._systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId)
+ return await this._systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && x.ClinicalQuestionTypeEnum == ClinicalQuestionType.Group)
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
}
+
+
+ ///
+ /// 获取系统其他问题
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetSystemClinicalOtherQuestionList(GetSystemGroupDto inDto)
+ {
+ return await this._systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && x.ClinicalQuestionTypeEnum == ClinicalQuestionType.Select)
+ .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+ }
+
+
#endregion
#region 系统表格问题
From eef042b46924ce85a54cca6143af312bfad30f14 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 20 Jun 2023 13:17:36 +0800
Subject: [PATCH 05/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ClinicalData/ClinicalQuestionService.cs | 42 +++++++++++++++++--
.../Reading/Dto/ClinicalQuestionDto.cs | 25 +++++++++--
.../Service/Reading/_MapConfig.cs | 7 ++++
.../SystemClinicalQuestion.cs | 2 +-
.../SystemClinicalTableQuestion.cs | 2 +-
.../ClinicalQuestion/TrialClinicalQuestion.cs | 2 +-
.../TrialClinicalTableQuestion.cs | 7 +++-
7 files changed, 75 insertions(+), 12 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
index 94eb0108a..3a408f938 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
@@ -96,7 +96,7 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task> GetTrialClinicalGroupQuestionList(GetTrialGroupDto inDto)
{
- return await this._trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId&&x.ClinicalQuestionTypeEnum== ClinicalQuestionType.Group)
+ return await this._trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId&&x.ClinicalQuestionType== "group")
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
}
@@ -108,7 +108,11 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task> GetTrialClinicalOtherQuestionList(GetTrialGroupDto inDto)
{
- return await this._trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId && x.ClinicalQuestionTypeEnum == ClinicalQuestionType.Select)
+ var types = new List()
+ {
+ "select","radio"
+ };
+ return await this._trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId && types.Contains( x.ClinicalQuestionType))
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
}
@@ -171,7 +175,7 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task> GetSystemClinicalGroupQuestionList(GetSystemGroupDto inDto)
{
- return await this._systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && x.ClinicalQuestionTypeEnum == ClinicalQuestionType.Group)
+ return await this._systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && x.ClinicalQuestionType =="group")
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
}
@@ -184,7 +188,11 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task> GetSystemClinicalOtherQuestionList(GetSystemGroupDto inDto)
{
- return await this._systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && x.ClinicalQuestionTypeEnum == ClinicalQuestionType.Select)
+ var types = new List()
+ {
+ "select","radio"
+ };
+ return await this._systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && types.Contains(x.ClinicalQuestionType))
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
}
@@ -292,5 +300,31 @@ namespace IRaCIS.Core.Application.Service
}
#endregion
+
+ #region 同步系统问题
+
+ public async Task SynchronizationQuestion(List inDto)
+ {
+ var trialClinicalId = inDto.Select(x => x.TrialClinicalId).ToList();
+
+ var systemClinicalId = inDto.Select(x => x.SystemClinicalId).ToList();
+ var questionRelation = _trialClinicalQuestionRepository.Where(x => trialClinicalId.Contains(x.TrialClinicalId)).ToDictionary(
+ x => x.SystemClinicalQuestionId ?? default(Guid),
+ x => x.Id
+ );
+
+ var tableQuestionRelation = _trialClinicalTableQuestionRepository.Where(x => trialClinicalId.Contains(x.TrialClinicalId)).ToDictionary(
+ x => x.SystemTableQuestionId ?? default(Guid),
+ x => x.Id
+ );
+
+
+ //var
+
+ }
+
+
+ #endregion
+
}
}
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
index bc469e571..9c5cc15f5 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
@@ -32,7 +32,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
/// 临床问题类型(分组,单选。)
///
- public ClinicalQuestionType ClinicalQuestionTypeEnum { get; set; }
+ public string ClinicalQuestionType { get; set; }
///
/// 问题标识
@@ -192,7 +192,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
/// 临床问题类型(分组,单选。)
///
- public ClinicalTableQuestionType ClinicalTableQuestionTypeEnum { get; set; }
+ public string ClinicalTableQuestionType { get; set; }
///
/// 问题标识
@@ -314,8 +314,25 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{
}
-
-
#endregion
+
+ #region 同步临床数据
+
+ public class SynchronizationQuestionDto
+ {
+ ///
+ /// 系统临床数据Id
+ ///
+ public Guid SystemClinicalId { get; set; }
+
+
+
+ ///
+ /// 项目临床数据Id
+ ///
+ public Guid TrialClinicalId { get; set; }
+ }
+
+ #endregion
}
diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
index d1c6e3868..2ea05fb7c 100644
--- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
@@ -29,6 +29,13 @@ namespace IRaCIS.Core.Application.Service
CreateMap();
CreateMap();
+
+ CreateMap()
+ .ForMember(d => d.SystemClinicalQuestionId, u => u.MapFrom(s => s.Id));
+
+ CreateMap()
+ .ForMember(d => d.SystemTableQuestionId, u => u.MapFrom(s => s.Id));
+
#endregion
CreateMap();
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs
index 50e7e5fce..c55251892 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs
@@ -35,7 +35,7 @@ namespace IRaCIS.Core.Domain.Models
///
/// 临床问题类型(分组,单选。)
///
- public ClinicalQuestionType ClinicalQuestionTypeEnum { get; set; }
+ public string ClinicalQuestionType { get; set; }
///
/// 问题标识
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs
index 8a7eccaed..2719cfcc3 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs
@@ -33,7 +33,7 @@ namespace IRaCIS.Core.Domain.Models
///
/// 临床问题类型(分组,单选。)
///
- public ClinicalTableQuestionType ClinicalTableQuestionTypeEnum { get; set; }
+ public string ClinicalTableQuestionType { get; set; }
///
/// 问题标识
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs
index 81f1e4da6..20e436b36 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs
@@ -35,7 +35,7 @@ namespace IRaCIS.Core.Domain.Models
///
/// 临床问题类型(分组,单选。)
///
- public ClinicalQuestionType ClinicalQuestionTypeEnum { get; set; }
+ public string ClinicalQuestionType { get; set; }
///
/// 问题标识
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs
index 129dc32a5..73a12f283 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs
@@ -33,7 +33,7 @@ namespace IRaCIS.Core.Domain.Models
///
/// 临床问题类型(分组,单选。)
///
- public ClinicalTableQuestionType ClinicalTableQuestionTypeEnum { get; set; }
+ public string ClinicalTableQuestionType { get; set; }
///
/// 问题标识
@@ -85,6 +85,11 @@ namespace IRaCIS.Core.Domain.Models
///
public Guid QuestionId { get; set; }
+ ///
+ /// 系统表格问题Id
+ ///
+ public Guid? SystemTableQuestionId { get; set; }
+
///
/// 自定义计算标记
///
From fbc639030a2baebf873da6ac838d36fdf8f9e3e2 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 20 Jun 2023 15:46:48 +0800
Subject: [PATCH 06/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ClinicalData/ClinicalDataSetService.cs | 16 ++-
.../ClinicalData/ClinicalQuestionService.cs | 117 ++++++++++++++++--
.../Reading/Dto/ClinicalQuestionDto.cs | 13 ++
.../Interface/IClinicalQuestionService.cs | 25 ++++
.../ReadingQuestionService.cs | 2 +-
.../ClinicalData/ClinicalDataSystemSet.cs | 13 +-
.../ClinicalData/ClinicalDataTrialSet.cs | 6 +
7 files changed, 173 insertions(+), 19 deletions(-)
create mode 100644 IRaCIS.Core.Application/Service/Reading/Interface/IClinicalQuestionService.cs
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs
index b1bc46252..60a5e7fb4 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs
@@ -2,6 +2,7 @@
using IRaCIS.Core.Application.Service.Reading.Dto;
using MassTransit;
using IRaCIS.Core.Domain.Models;
+using IRaCIS.Core.Application.Interfaces;
namespace IRaCIS.Application.Services
{
@@ -11,7 +12,7 @@ namespace IRaCIS.Application.Services
[ApiExplorerSettings(GroupName = "Reading")]
public class ClinicalDataSetService : BaseService
{
-
+ public IClinicalQuestionService _iClinicalQuestionService;
public IRepository _subjectVisitRepository;
private readonly IRepository _clinicalDataTrialSetRepository;
@@ -22,7 +23,7 @@ namespace IRaCIS.Application.Services
public ClinicalDataSetService(IRepository subjectVisitRepository,
-
+ IClinicalQuestionService iClinicalQuestionService,
IRepository ClinicalDataTrialSetRepository,
IRepository ClinicalDataSystemSetRepository,
IRepository previousPDFRepository,
@@ -32,7 +33,7 @@ namespace IRaCIS.Application.Services
)
{
-
+ _iClinicalQuestionService = iClinicalQuestionService;
_subjectVisitRepository = subjectVisitRepository;
_clinicalDataTrialSetRepository = ClinicalDataTrialSetRepository;
@@ -260,7 +261,7 @@ namespace IRaCIS.Application.Services
//不存在的时候,就将系统数据同步到项目临床数据配置
if (!await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == trialId && x.SystemClinicalDataSetId != null))
{
- var systemClinicalDataList = await _clinicalDataSystemSetRepository.AsQueryable().ToListAsync();
+ var systemClinicalDataList = await _clinicalDataSystemSetRepository.Where(x=>x.IsFinish).AsQueryable().ToListAsync();
var systemIds = systemClinicalDataList.Select(x => x.Id).ToList();
var trialSystemClinicalDataSetIds = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialId && x.SystemClinicalDataSetId != null).Select(x => x.SystemClinicalDataSetId.Value).ToListAsync();
@@ -299,6 +300,13 @@ namespace IRaCIS.Application.Services
var result = await _clinicalDataTrialSetRepository.SaveChangesAsync();
+
+ await _iClinicalQuestionService.SynchronizationQuestion(dataSets.Select(x => new SynchronizationQuestionDto()
+ {
+ SystemClinicalId = x.SystemClinicalDataSetId.Value,
+ TrialClinicalId = x.Id,
+
+ }).ToList());
}
#endregion
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
index 3a408f938..ec6d7c4f4 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
@@ -10,6 +10,7 @@ using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Infra.EFCore.Common;
using IRaCIS.Core.Domain.Share;
+using MassTransit;
namespace IRaCIS.Core.Application.Service
{
@@ -17,7 +18,7 @@ namespace IRaCIS.Core.Application.Service
/// 临床数据问题
///
[ApiExplorerSettings(GroupName = "Reading")]
- public class ClinicalQuestionService : BaseService
+ public class ClinicalQuestionService : BaseService, IClinicalQuestionService
{
private readonly IRepository _trialClinicalQuestionRepository;
@@ -303,24 +304,120 @@ namespace IRaCIS.Core.Application.Service
#region 同步系统问题
+ ///
+ /// 同步系统问题
+ ///
+ ///
+ ///
public async Task SynchronizationQuestion(List inDto)
{
var trialClinicalId = inDto.Select(x => x.TrialClinicalId).ToList();
var systemClinicalId = inDto.Select(x => x.SystemClinicalId).ToList();
- var questionRelation = _trialClinicalQuestionRepository.Where(x => trialClinicalId.Contains(x.TrialClinicalId)).ToDictionary(
- x => x.SystemClinicalQuestionId ?? default(Guid),
- x => x.Id
- );
+ var questionRelationList =await _trialClinicalQuestionRepository.Where(x => trialClinicalId.Contains(x.TrialClinicalId)).Select(x => new QuestionDic()
+ {
+ SystemQuestionId=x.SystemClinicalQuestionId?? default(Guid),
+ TrialQuestionId=x.Id,
+ TrialClinicalId=x.TrialClinicalId,
+ }).ToListAsync();
- var tableQuestionRelation = _trialClinicalTableQuestionRepository.Where(x => trialClinicalId.Contains(x.TrialClinicalId)).ToDictionary(
- x => x.SystemTableQuestionId ?? default(Guid),
- x => x.Id
- );
+ var tableQuestionRelationList = await _trialClinicalTableQuestionRepository.Where(x => trialClinicalId.Contains(x.TrialClinicalId)).Select(x => new QuestionDic()
+ {
+ SystemQuestionId = x.SystemTableQuestionId ?? default(Guid),
+ TrialQuestionId = x.Id,
+ TrialClinicalId = x.TrialClinicalId,
+ }).ToListAsync();
+
+ var newTrialQuestionAll = await _systemClinicalQuestionRepository.Where(x => systemClinicalId.Contains(x.SystemClinicalId))
+ .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+
+ var newTrialTableQuestionAll = await _systemClinicalTableQuestionRepository.Where(x => systemClinicalId.Contains(x.SystemClinicalId))
+ .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
- //var
+ List addTrialDataList = new List();
+ List addTrialTableList = new List();
+ foreach (var item in inDto)
+ {
+ var questionRelation = questionRelationList.Where(x=>x.TrialClinicalId==item.TrialClinicalId).ToDictionary(
+ x => x.SystemQuestionId,
+ x => x.TrialQuestionId
+ );
+ var newTrialQuestionList = newTrialQuestionAll.Where(x => x.SystemClinicalQuestionId == item.SystemClinicalId).ToList();
+ newTrialQuestionList.ForEach(x =>
+ {
+ if (questionRelation.ContainsKey(x.Id))
+ {
+ x.Id = questionRelation[x.Id];
+ }
+ else
+ {
+ var newid = NewId.NextGuid();
+ questionRelation.Add(x.Id, newid);
+ x.Id = newid;
+ }
+
+ x.TrialClinicalId = item.TrialClinicalId;
+ });
+
+ var copyNewQuestionList = newTrialQuestionList.Clone();
+ foreach (var x in newTrialQuestionList)
+ {
+ var question = x.Clone();
+ if (question.ParentId != null)
+ {
+ question.ParentId = questionRelation[question.ParentId ?? default(Guid)];
+ }
+ if (question.GroupId != null)
+ {
+ question.GroupId = questionRelation[question.GroupId ?? default(Guid)];
+ }
+ addTrialDataList.Add(question);
+ };
+
+
+
+ var tableQuestionRelation = tableQuestionRelationList.Where(x => x.TrialClinicalId == item.TrialClinicalId).ToDictionary(
+ x => x.SystemQuestionId,
+ x => x.TrialQuestionId
+ );
+
+ var newTrialTableQuestionList = newTrialTableQuestionAll.Where(x => x.TrialClinicalId == item.TrialClinicalId)
+ .ToList();
+
+
+ newTrialTableQuestionList.ForEach(x =>
+ {
+ if (tableQuestionRelation.ContainsKey(x.Id))
+ {
+ x.Id = tableQuestionRelation[x.Id];
+ }
+ else
+ {
+ var newid = NewId.NextGuid();
+ tableQuestionRelation.Add(x.Id, newid);
+ x.Id = newid;
+ }
+ });
+
+ foreach (var x in newTrialTableQuestionList)
+ {
+ var tableQuestion = x.Clone();
+ tableQuestion.TrialClinicalId = item.TrialClinicalId;
+
+ tableQuestion.QuestionId = copyNewQuestionList.Where(y => y.SystemClinicalQuestionId == x.QuestionId).Select(y => y.Id).FirstOrDefault();
+
+
+ addTrialTableList.Add(tableQuestion);
+ }
+ }
+
+
+ await _trialClinicalQuestionRepository.BatchDeleteNoTrackingAsync(x => trialClinicalId.Contains(x.TrialClinicalId));
+ await _trialClinicalQuestionRepository.AddRangeAsync(addTrialDataList);
+ await _trialClinicalTableQuestionRepository.BatchDeleteNoTrackingAsync(x => trialClinicalId.Contains(x.TrialClinicalId) );
+ await _trialClinicalTableQuestionRepository.AddRangeAsync(addTrialTableList);
}
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
index 9c5cc15f5..fef9c511a 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
@@ -334,5 +334,18 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid TrialClinicalId { get; set; }
}
+
+ public class QuestionDic
+ {
+ public Guid SystemQuestionId { get; set; }
+
+ public Guid TrialQuestionId { get; set; }
+
+ ///
+ /// 项目临床数据Id
+ ///
+ public Guid TrialClinicalId { get; set; }
+ }
+
#endregion
}
diff --git a/IRaCIS.Core.Application/Service/Reading/Interface/IClinicalQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/Interface/IClinicalQuestionService.cs
new file mode 100644
index 000000000..f61454573
--- /dev/null
+++ b/IRaCIS.Core.Application/Service/Reading/Interface/IClinicalQuestionService.cs
@@ -0,0 +1,25 @@
+//--------------------------------------------------------------------
+// 此代码由T4模板自动生成 byzhouhang 20210918
+// 生成时间 2022-08-12 14:07:43
+// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
+//--------------------------------------------------------------------
+
+using IRaCIS.Core.Application.Service.Reading.Dto;
+using IRaCIS.Core.Application.ViewModel;
+namespace IRaCIS.Core.Application.Interfaces
+{
+ ///
+ /// IClinicalQuestionService
+ ///
+ public interface IClinicalQuestionService
+ {
+
+
+ Task SynchronizationQuestion(List inDto);
+
+
+
+
+
+ }
+}
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs
index 0c940d0b3..4e227fb40 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs
@@ -980,7 +980,7 @@ namespace IRaCIS.Application.Services
x.TrialId = trialCriterion.TrialId;
});
var copyNewQuestionList = newTrialQuestionList.Clone();
- var trialQuestionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == trialCriterion.Id).ToListAsync();
+ // var trialQuestionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == trialCriterion.Id).ToListAsync();
var needAddDatas = new List();
foreach (var x in newTrialQuestionList)
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataSystemSet.cs b/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataSystemSet.cs
index 2bbf6687e..d6fe0fb4d 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataSystemSet.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataSystemSet.cs
@@ -26,10 +26,15 @@ namespace IRaCIS.Core.Domain.Models
///
public string ClinicalDataSetName { get; set; }
- ///
- /// 英文名称
- ///
- public string ClinicalDataSetEnName { get; set; } = string.Empty;
+ ///
+ /// 是否配置完成
+ ///
+ public bool IsFinish { get; set; } = false;
+
+ ///
+ /// 英文名称
+ ///
+ public string ClinicalDataSetEnName { get; set; } = string.Empty;
///
/// 临床级别
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataTrialSet.cs b/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataTrialSet.cs
index 882aec273..4260c2098 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataTrialSet.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataTrialSet.cs
@@ -63,6 +63,12 @@ namespace IRaCIS.Core.Domain.Models
///
public bool IsConfirm { get; set; }
+
+ ///
+ /// 是否配置完成
+ ///
+ public bool IsFinish { get; set; } = false;
+
///
/// 上传角色
///
From ea48fcac64a0e956bc05852c13d08270c62a389d Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 20 Jun 2023 17:09:59 +0800
Subject: [PATCH 07/14] =?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/ClinicalData/ClinicalDataSetService.cs | 3 ++-
.../Reading/ClinicalData/ClinicalDataSystemSet.cs | 4 ++--
.../Reading/ClinicalData/ClinicalDataTrialSet.cs | 4 ++--
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs
index 60a5e7fb4..fe7aaa3b9 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs
@@ -261,7 +261,7 @@ namespace IRaCIS.Application.Services
//不存在的时候,就将系统数据同步到项目临床数据配置
if (!await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == trialId && x.SystemClinicalDataSetId != null))
{
- var systemClinicalDataList = await _clinicalDataSystemSetRepository.Where(x=>x.IsFinish).AsQueryable().ToListAsync();
+ var systemClinicalDataList = await _clinicalDataSystemSetRepository.Where(x=>x.IsApply).AsQueryable().ToListAsync();
var systemIds = systemClinicalDataList.Select(x => x.Id).ToList();
var trialSystemClinicalDataSetIds = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialId && x.SystemClinicalDataSetId != null).Select(x => x.SystemClinicalDataSetId.Value).ToListAsync();
@@ -286,6 +286,7 @@ namespace IRaCIS.Application.Services
FileName = x.FileName,
Path = x.Path,
TrialId = trialId,
+ IsApply = x.IsApply,
//项目不采用 标准枚举字符串的方式
//CriterionEnumListStr=x.CriterionEnumListStr
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataSystemSet.cs b/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataSystemSet.cs
index d6fe0fb4d..12bf5729d 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataSystemSet.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataSystemSet.cs
@@ -27,9 +27,9 @@ namespace IRaCIS.Core.Domain.Models
public string ClinicalDataSetName { get; set; }
///
- /// 是否配置完成
+ /// 是否应用
///
- public bool IsFinish { get; set; } = false;
+ public bool IsApply { get; set; } = false;
///
/// 英文名称
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataTrialSet.cs b/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataTrialSet.cs
index 4260c2098..fef381af9 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataTrialSet.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataTrialSet.cs
@@ -65,9 +65,9 @@ namespace IRaCIS.Core.Domain.Models
///
- /// 是否配置完成
+ /// 是否应用
///
- public bool IsFinish { get; set; } = false;
+ public bool IsApply { get; set; } = false;
///
/// 上传角色
From 5360c577af30bd84e84ab367c3312db2b0420fea Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 21 Jun 2023 14:01:49 +0800
Subject: [PATCH 08/14] =?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.Application/Resources/en-US.json | 3 +
IRaCIS.Core.Application/Resources/zh-CN.json | 3 +
.../ClinicalData/ClinicalDataSetService.cs | 77 ++++++++++++++++++-
.../ClinicalData/ClinicalQuestionService.cs | 19 ++++-
.../Dto/ClinicalDataServiceViewModel.cs | 17 ++++
.../Reading/Dto/ClinicalQuestionDto.cs | 5 ++
.../SystemClinicalQuestion.cs | 5 ++
.../ClinicalQuestion/TrialClinicalQuestion.cs | 5 ++
8 files changed, 129 insertions(+), 5 deletions(-)
diff --git a/IRaCIS.Core.Application/Resources/en-US.json b/IRaCIS.Core.Application/Resources/en-US.json
index 829a4985c..ddbb461e4 100644
--- a/IRaCIS.Core.Application/Resources/en-US.json
+++ b/IRaCIS.Core.Application/Resources/en-US.json
@@ -39,7 +39,10 @@
//-------------------------------------------------------------------------------------Reading-----------------------------------------------------------------
//ClinicalDataSetService
+ "ClinicalDataSet_Apply": "",
"ClinicalDataSet_DupTypeFail": "The same type of clinical data exists. The operation failed.",
+ //ClinicalQuestionService
+ "ClinicalQuestion_Repeat": "",
//ReadingClinicalDataService
"ReadingClinicalData_DupTypeFail": "The same type of clinical data exists. The operation failed.",
"ReadingClinicalData_Unchecked": "The current clinical data status is not verified and signing is not allowed!",
diff --git a/IRaCIS.Core.Application/Resources/zh-CN.json b/IRaCIS.Core.Application/Resources/zh-CN.json
index 30eabe946..1e44d8da2 100644
--- a/IRaCIS.Core.Application/Resources/zh-CN.json
+++ b/IRaCIS.Core.Application/Resources/zh-CN.json
@@ -39,7 +39,10 @@
// ------------------------------------------------------------Reading--------------------------------------------------------------------
//ClinicalDataSetService
+ "ClinicalDataSet_Apply": "当前临床数据需要配置一个检查日期才能应用",
"ClinicalDataSet_DupTypeFail": "存在同类型的临床数据,操作失败",
+ //ClinicalQuestionService
+ "ClinicalQuestion_Repeat": "存在相同的问题名称!",
//ReadingClinicalDataService
"ReadingClinicalData_DupTypeFail": "存在同类型的临床数据,操作失败",
"ReadingClinicalData_Unchecked": "当前临床数据状态不是已核查状态,不允许签名!",
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs
index fe7aaa3b9..726d5388f 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs
@@ -3,6 +3,8 @@ using IRaCIS.Core.Application.Service.Reading.Dto;
using MassTransit;
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Application.Interfaces;
+using IRaCIS.Core.Domain.Share;
+using IRaCIS.Core.Infrastructure;
namespace IRaCIS.Application.Services
{
@@ -20,7 +22,9 @@ namespace IRaCIS.Application.Services
private readonly IRepository _previousPDFRepository;
private readonly IRepository _dictionaryRepository;
private readonly IRepository _trialRepository;
-
+ private readonly IRepository _trialClinicalQuestionRepository;
+
+ private readonly IRepository _systemClinicalQuestionRepository;
public ClinicalDataSetService(IRepository subjectVisitRepository,
IClinicalQuestionService iClinicalQuestionService,
@@ -28,14 +32,18 @@ namespace IRaCIS.Application.Services
IRepository ClinicalDataSystemSetRepository,
IRepository previousPDFRepository,
IRepository dictionaryRepository,
- IRepository trialRepository
+ IRepository trialClinicalQuestionRepository,
+ IRepository systemClinicalQuestionRepository,
+
+ IRepository trialRepository
)
{
_iClinicalQuestionService = iClinicalQuestionService;
_subjectVisitRepository = subjectVisitRepository;
-
+ _trialClinicalQuestionRepository = trialClinicalQuestionRepository;
+ _systemClinicalQuestionRepository = systemClinicalQuestionRepository;
_clinicalDataTrialSetRepository = ClinicalDataTrialSetRepository;
_clinicalDataSystemSetRepository = ClinicalDataSystemSetRepository;
this._previousPDFRepository = previousPDFRepository;
@@ -44,6 +52,58 @@ namespace IRaCIS.Application.Services
}
+ ///
+ /// 应用系统临床数据
+ ///
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task ApplySystemClinical(ApplySystemClinicalInDto inDto)
+ {
+ if (_systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && x.IsCheckDate).Count() != 1)
+ {
+ throw new BusinessValidationFailedException(_localizer["ClinicalDataSet_Apply"]);
+
+ }
+
+ await _clinicalDataSystemSetRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.SystemClinicalId, x => new ClinicalDataSystemSet()
+ {
+ IsApply = true
+ });
+
+
+ await _clinicalDataSystemSetRepository.SaveChangesAsync();
+
+ return ResponseOutput.Ok(true);
+ }
+
+ ///
+ /// 应用项目临床数据
+ ///
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task ApplyTrialClinical(ApplyTrialClinicalInDto inDto)
+ {
+ if (_trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId && x.IsCheckDate).Count() != 1)
+ {
+ throw new BusinessValidationFailedException(_localizer["ClinicalDataSet_Apply"]);
+
+ }
+
+ await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.TrialClinicalId, x => new ClinicalDataTrialSet()
+ {
+ IsApply = true
+ });
+
+
+ await _clinicalDataTrialSetRepository.SaveChangesAsync();
+
+ return ResponseOutput.Ok(true);
+ }
+
#region 系统
///
@@ -54,7 +114,10 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task AddOrUpdateClinicalDataSystemSet(ClinicalDataSystemSetAddOrEdit indto)
{
-
+ if (indto.ClinicalUploadType == ClinicalUploadType.Table || indto.ClinicalUploadType == ClinicalUploadType.PDF)
+ {
+ indto.IsApply = true;
+ }
var dictionary = await _dictionaryRepository.Where(x => x.Parent.Code == "ClinicalDataType" && x.Code == indto.ClinicalDataSetEnum.ToString()).FirstNotNullAsync();
indto.ClinicalDataSetName = dictionary.ValueCN;
indto.ClinicalDataSetEnName = dictionary.Value;
@@ -130,6 +193,12 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task AddOrUpdateClinicalDataTrialSet(ClinicalDataTrialSetAddOrEdit indto)
{
+
+ if (indto.ClinicalUploadType == ClinicalUploadType.Table || indto.ClinicalUploadType == ClinicalUploadType.PDF)
+ {
+ indto.IsApply = true;
+ }
+
var existsQuery = _clinicalDataTrialSetRepository
.WhereIf(indto.Id != null, x => x.Id != indto.Id)
.Where(x => (x.ClinicalDataSetName == indto.ClinicalDataSetName||x.ClinicalDataSetEnName==indto.ClinicalDataSetEnName) && x.TrialId == indto.TrialId);
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
index ec6d7c4f4..6d593a1ed 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalQuestionService.cs
@@ -72,6 +72,11 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task AddOrUpdateTrialClinicalQuestion(TrialClinicalQuestionDto inDto)
{
+ if (await _trialClinicalQuestionRepository.AnyAsync(x =>x.TrialClinicalId==inDto.TrialClinicalId && x.Id != inDto.Id && x.QuestionName == inDto.QuestionName))
+ {
+ return ResponseOutput.NotOk(_localizer["ClinicalQuestion_Repeat"]);
+ }
+
var entity = await _trialClinicalQuestionRepository.InsertOrUpdateAsync(inDto, true);
return ResponseOutput.Ok(entity.Id.ToString());
@@ -149,6 +154,11 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task AddOrUpdateSystemClinicalQuestion(SystemClinicalQuestionDto inDto)
{
+
+ if (await _systemClinicalQuestionRepository.AnyAsync(x => x.SystemClinicalId == inDto.SystemClinicalId && x.Id != inDto.Id && x.QuestionName == inDto.QuestionName))
+ {
+ return ResponseOutput.NotOk(_localizer["ClinicalQuestion_Repeat"]);
+ }
var entity = await _systemClinicalQuestionRepository.InsertOrUpdateAsync(inDto, true);
return ResponseOutput.Ok(entity.Id.ToString());
@@ -230,6 +240,10 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task AddOrUpdateSystemClinicalTableQuestion(SystemClinicalTableQuestionDto inDto)
{
+ if (await _systemClinicalTableQuestionRepository.AnyAsync(x => x.QuestionId == inDto.QuestionId && x.Id != inDto.Id && x.QuestionName == inDto.QuestionName))
+ {
+ return ResponseOutput.NotOk(_localizer["ClinicalQuestion_Repeat"]);
+ }
var entity = await _systemClinicalTableQuestionRepository.InsertOrUpdateAsync(inDto, true);
@@ -281,7 +295,10 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task AddOrUpdateTrialClinicalTableQuestion(TrialClinicalTableQuestionDto inDto)
{
-
+ if (await _trialClinicalTableQuestionRepository.AnyAsync(x => x.QuestionId == inDto.QuestionId && x.Id != inDto.Id && x.QuestionName == inDto.QuestionName))
+ {
+ return ResponseOutput.NotOk(_localizer["ClinicalQuestion_Repeat"]);
+ }
var entity = await _trialClinicalTableQuestionRepository.InsertOrUpdateAsync(inDto, true);
return ResponseOutput.Ok(entity.Id.ToString());
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs
index 672467388..8e0dd533f 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs
@@ -13,6 +13,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{
public Guid? Id { get; set; }
+ ///
+ /// 是否应用
+ ///
+ public bool IsApply { get; set; } = false;
///
/// 名称
@@ -73,10 +77,23 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
//public List CriterionEnumList { get; set; }
}
+ public class ApplySystemClinicalInDto
+ {
+ public Guid SystemClinicalId { get; set; }
+ }
+
+ public class ApplyTrialClinicalInDto
+ {
+ public Guid TrialClinicalId { get; set; }
+ }
public class ClinicalDataSystemSetAddOrEdit
{
public Guid? Id { get; set; }
+ ///
+ /// 是否应用
+ ///
+ public bool IsApply { get; set; } = false;
///
/// 枚举
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
index fef9c511a..fa9e287ab 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
@@ -88,6 +88,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
/// 显示类型
///
public ClinicalQuestionShow ClinicalQuestionShowEnum { get; set; } = ClinicalQuestionShow.Show;
+
+ ///
+ /// 是否是检查日期
+ ///
+ public bool IsCheckDate { get; set; }
}
///
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs
index c55251892..b732fefcd 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs
@@ -102,6 +102,11 @@ namespace IRaCIS.Core.Domain.Models
///
public ClinicalQuestionShow ClinicalQuestionShowEnum { get; set; } = ClinicalQuestionShow.Show;
+ ///
+ /// 是否是检查日期
+ ///
+ public bool IsCheckDate { get; set; }
+
}
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs
index 20e436b36..7d7ce713e 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs
@@ -107,6 +107,11 @@ namespace IRaCIS.Core.Domain.Models
///
public ClinicalQuestionShow ClinicalQuestionShowEnum { get; set; } = ClinicalQuestionShow.Show;
+ ///
+ /// 是否是检查日期
+ ///
+ public bool IsCheckDate { get; set; }
+
///
/// 自定义计算标记
///
From 8205f33ec61789109b3974d98816dfc4bbe53614 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 21 Jun 2023 14:51:15 +0800
Subject: [PATCH 09/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Service/Reading/Dto/ClinicalQuestionDto.cs | 10 ++++++++++
.../ClinicalQuestion/SystemClinicalQuestion.cs | 9 +++++++++
.../SystemClinicalTableQuestion.cs | 14 ++++++++++++--
.../ClinicalQuestion/TrialClinicalQuestion.cs | 10 ++++++++++
.../ClinicalQuestion/TrialClinicalTableQuestion.cs | 10 ++++++++++
5 files changed, 51 insertions(+), 2 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
index fa9e287ab..fec88acc1 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
@@ -93,6 +93,16 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
/// 是否是检查日期
///
public bool IsCheckDate { get; set; }
+
+ ///
+ /// 小数点位数
+ ///
+ public int? DigitPlaces { get; set; }
+
+ ///
+ /// 单位
+ ///
+ public string Unit { get; set; } = string.Empty;
}
///
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs
index b732fefcd..43ea5b35f 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalQuestion.cs
@@ -107,6 +107,15 @@ namespace IRaCIS.Core.Domain.Models
///
public bool IsCheckDate { get; set; }
+ ///
+ /// 小数点位数
+ ///
+ public int? DigitPlaces { get; set; }
+
+ ///
+ /// 单位
+ ///
+ public string Unit { get; set; } = string.Empty;
}
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs
index 2719cfcc3..97b019d28 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/SystemClinicalTableQuestion.cs
@@ -84,8 +84,18 @@ namespace IRaCIS.Core.Domain.Models
/// 外层问题Id
///
public Guid QuestionId { get; set; }
-
- }
+
+ ///
+ /// 小数点位数
+ ///
+ public int? DigitPlaces { get; set; }
+
+ ///
+ /// 单位
+ ///
+ public string Unit { get; set; } = string.Empty;
+
+ }
}
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs
index 7d7ce713e..994c4ac14 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs
@@ -121,6 +121,16 @@ namespace IRaCIS.Core.Domain.Models
/// 自定义计算问题
///
public string CalculateQuestions { get; set; } = "[]";
+
+ ///
+ /// 小数点位数
+ ///
+ public int? DigitPlaces { get; set; }
+
+ ///
+ /// 单位
+ ///
+ public string Unit { get; set; } = string.Empty;
}
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs
index 73a12f283..0cf0e675e 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalTableQuestion.cs
@@ -100,6 +100,16 @@ namespace IRaCIS.Core.Domain.Models
///
public string CalculateQuestions { get; set; } = "[]";
+ ///
+ /// 小数点位数
+ ///
+ public int? DigitPlaces { get; set; }
+
+ ///
+ /// 单位
+ ///
+ public string Unit { get; set; } = string.Empty;
+
}
From 6f09c10bd7771ba6e07f71757083583f764fc1b4 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 21 Jun 2023 15:06:03 +0800
Subject: [PATCH 10/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Service/Reading/Dto/ClinicalQuestionDto.cs | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
index fec88acc1..d6bce9130 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalQuestionDto.cs
@@ -258,6 +258,16 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
/// 外层问题Id
///
public Guid QuestionId { get; set; }
+
+ ///
+ /// 小数点位数
+ ///
+ public int? DigitPlaces { get; set; }
+
+ ///
+ /// 单位
+ ///
+ public string Unit { get; set; } = string.Empty;
}
From ca5f50586b4655df83ef32189c8c97c0dbc1a20d Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 21 Jun 2023 15:25:23 +0800
Subject: [PATCH 11/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Reading/ReadingImageTask/ReadingTaskQuestionService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs
index cb7a3935e..de0a472bf 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs
@@ -152,7 +152,7 @@ namespace IRaCIS.Application.Services
TrialId = data.TrialId,
Type = data.Type,
ParentTriggerValue = data.ParentTriggerValue,
- GroupName = data.GroupName,
+ GroupName = data.GroupName.LanguageName(data.GroupEnName, _userInfo.IsEn_Us),
QuestionName = data.QuestionName.LanguageName(data.QuestionEnName, _userInfo.IsEn_Us),
IsRequired = data.IsRequired,
ShowQuestion = data.ShowQuestion,
From 0cb5c8ca94193955e5424d3f3d1f3720d463c6bc Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 21 Jun 2023 15:41:55 +0800
Subject: [PATCH 12/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Reading/ReadingImageTask/ReadingTaskQuestionService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs
index de0a472bf..ba18f07a4 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs
@@ -196,7 +196,7 @@ namespace IRaCIS.Application.Services
[NonDynamicMethod]
public void FindChildQuestion(GetTrialReadingQuestionOutDto item, List questionlists, List tableQuestions)
{
- item.Childrens = questionlists.Where(x => x.ParentId == item.Id || (item.Type == ReadingQestionType.Group && x.Type != ReadingQestionType.Group && x.ParentId == null && x.GroupName == item.GroupName)).ToList();
+ item.Childrens = questionlists.Where(x => x.ParentId == item.Id || (item.Type == ReadingQestionType.Group && x.Type != ReadingQestionType.Group && x.ParentId == null && x.Id == item.GroupId)).ToList();
item.Childrens.AddRange(tableQuestions.Where(x => x.ReadingQuestionId == item.Id).Select(x => new GetTrialReadingQuestionOutDto
From 793704c11100d735ad6bf0aadaf3c6e4a3ee27d5 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 21 Jun 2023 15:44:10 +0800
Subject: [PATCH 13/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Reading/ReadingImageTask/ReadingTaskQuestionService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs
index ba18f07a4..eecc7d3ff 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs
@@ -196,7 +196,7 @@ namespace IRaCIS.Application.Services
[NonDynamicMethod]
public void FindChildQuestion(GetTrialReadingQuestionOutDto item, List questionlists, List tableQuestions)
{
- item.Childrens = questionlists.Where(x => x.ParentId == item.Id || (item.Type == ReadingQestionType.Group && x.Type != ReadingQestionType.Group && x.ParentId == null && x.Id == item.GroupId)).ToList();
+ item.Childrens = questionlists.Where(x => x.ParentId == item.Id || (item.Type == ReadingQestionType.Group && x.Type != ReadingQestionType.Group && x.ParentId == null && x.GroupId == item.Id)).ToList();
item.Childrens.AddRange(tableQuestions.Where(x => x.ReadingQuestionId == item.Id).Select(x => new GetTrialReadingQuestionOutDto
From 9171a62979149959bf190a4d3f58df092af5463e Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 21 Jun 2023 15:49:40 +0800
Subject: [PATCH 14/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Reading/ReadingImageTask/ReadingTaskQuestionService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs
index eecc7d3ff..874a2545f 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingTaskQuestionService.cs
@@ -107,7 +107,7 @@ namespace IRaCIS.Application.Services
{
qusetionList = qusetionList.Where(x => x.ReadingCriterionPageId == null).ToList();
- groupList = qusetionList.Where(x => x.Type == ReadingQestionType.Group || (x.ParentId == null && x.GroupName.IsNullOrEmpty())).ToList();
+ groupList = qusetionList.Where(x => x.Type == ReadingQestionType.Group || (x.ParentId == null && x.GroupId==null)).ToList();
groupList.ForEach(x =>
{
this.FindChildQuestion(x, qusetionList, tableQuestionList);