diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
index ec1729328..fecc69269 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
@@ -174,8 +174,16 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string ValueCN { get; set; } = string.Empty;
}
-
+ public class GetSystemGlobalInfoOutDto
+ {
+ ///
+ /// 是否必须全局阅片
+ ///
+ public bool IsMustGlobalReading { get; set; } = false;
+
+ public List DictionaryList { get; set; }
+ }
public class GetSystemOncologyInfoOutDto
{
public bool IsOncologyReading { get; set; }
@@ -183,6 +191,16 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public List DictionaryList { get; set; }
}
+ public class SetSystemGlobalInfoInDto
+ {
+ [NotDefault]
+ public Guid SystemCriterionId { get; set; }
+
+ public bool IsMustGlobalReading { get; set; }
+
+ public List DictionaryIds { get; set; }
+ }
+
public class SetSystemOncologyInfoInDto
{
[NotDefault]
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs
index a21980cf5..1ab07abf4 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs
@@ -71,6 +71,55 @@ namespace IRaCIS.Core.Application.Service.RC
return ResponseOutput.Ok();
}
+ ///
+ /// 设置系统全局阅片阅片信息
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task SetSystemGlobalInfo(SetSystemGlobalInfoInDto inDto)
+ {
+
+ await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.SystemCriterionId && x.ParentCode == ReadingCommon.CriterionDictionary.GlobalAssess);
+
+ await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.DictionaryIds.Select(x => new ReadingCriterionDictionary
+ {
+ CriterionId = inDto.SystemCriterionId,
+ DictionaryId = x,
+ IsSystemCriterion = true,
+ ParentCode = ReadingCommon.CriterionDictionary.GlobalAssess
+ }));
+
+ await _readingQuestionCriterionSystemRepository.UpdatePartialFromQueryAsync(inDto.SystemCriterionId, x => new ReadingQuestionCriterionSystem()
+ {
+ IsMustGlobalReading = inDto.IsMustGlobalReading
+
+ });
+
+ var result = await _readingQuestionCriterionTrialRepository.SaveChangesAsync();
+
+ return ResponseOutput.Ok(result);
+ }
+
+ ///
+ /// 获取系统全局阅片信息
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task GetSystemGlobalInfo(GetSystemOncologyInfoInDto inDto)
+ {
+ GetSystemGlobalInfoOutDto result = new GetSystemGlobalInfoOutDto()
+ {
+ IsMustGlobalReading = await _readingQuestionCriterionSystemRepository.Where(x => x.Id == inDto.SystemCriterionId).Select(x => x.IsMustGlobalReading).FirstOrDefaultAsync(),
+ DictionaryList = await _readingCriterionDictionaryRepository.AsQueryable().Where(x => x.CriterionId == inDto.SystemCriterionId && x.ParentCode == ReadingCommon.CriterionDictionary.OncologyAssess)
+ .ProjectTo(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync()
+
+ };
+
+ return result;
+ }
+
///
/// 获取系统肿瘤信息
///
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
index 01598e76b..e7c5b6874 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
@@ -697,6 +697,12 @@ namespace IRaCIS.Core.Application.Contracts
}
}
+
+ ///
+ /// 是否必须全局阅片
+ ///
+ public bool IsMustGlobalReading { get; set; } = false;
+
///
/// 修约小数点
///
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
index e05c614dc..f1e518206 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
@@ -392,8 +392,7 @@ namespace IRaCIS.Core.Application
result.TrialCriterionId = trialCriterion.Id;
result.FormType = trialCriterion.FormType;
result.IsFromSystem = trialCriterion.ReadingQuestionCriterionSystemId != null;
-
-
+ result.IsMustGlobalReading = trialCriterion.IsMustGlobalReading;
result.IsSystemCriterion = trialCriterion.ReadingQuestionCriterionSystemId != null;
};
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionSystem.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionSystem.cs
index ba3bf9724..400593611 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionSystem.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionSystem.cs
@@ -65,6 +65,11 @@ namespace IRaCIS.Core.Domain.Models
///
public bool IsOncologyReading { get; set; } = false;
+ ///
+ /// 是否必须全局阅片
+ ///
+ public bool IsMustGlobalReading { get; set; } = false;
+
[JsonIgnore]
public List ReadingQuestionSystemList { get; set; } = new List();
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs
index 110f0a399..37d48fafe 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs
@@ -210,6 +210,11 @@ namespace IRaCIS.Core.Domain.Models
///
public DateTime? ReadingInfoSignTime { get; set; }
+ ///
+ /// 是否必须全局阅片
+ ///
+ public bool IsMustGlobalReading { get; set; } = false;
+
#endregion
///