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) {