diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
index 5c7f82c08..c0b19639c 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
@@ -175,6 +175,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public string ClinicalDataSetName { get; set; }
+ ///
+ /// 下拉ID
+ ///
+ public Guid ClinicalDataTrialSetId { get; set; }
+
///
/// 临床级别
///
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
index 548e885a6..7093e6a30 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
@@ -46,6 +46,15 @@ namespace IRaCIS.Application.Services
public async Task AddOrUpdateReadingClinicalData(AddOrUpdateReadingClinicalDataDto indto)
{
+ var existsQuery = _readingClinicalDataRepository
+ .WhereIf(indto.Id != null,x=>x.Id!=indto.Id)
+ .Where(x => x.ClinicalDataTrialSetId == indto.ClinicalDataTrialSetId&&x.ReadingId==indto.ReadingId);
+
+ if (await existsQuery.AnyAsync())
+ {
+ ResponseOutput.NotOk("存在同类型的临床数据");
+ }
+
var clinicalDataTrialSet = (await _clinicalDataTrialSetRepository.Where(x => x.Id == indto.ClinicalDataTrialSetId).FirstOrDefaultAsync()).IfNullThrowException();
if (indto.Id == null)
{