From 8364b00d3fb91859d1e5a8c57f511061d2b5e29d Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 5 Jul 2023 15:34:14 +0800 Subject: [PATCH] S-010 --- .../ClinicalData/ClinicalAnswerService.cs | 19 +++++++++++++++++-- .../Service/Reading/Dto/ClinicalAnswerDto.cs | 18 ++++++++++++------ .../ClinicalQuestionAnswer/ClinicalForm.cs | 5 ----- 3 files changed, 29 insertions(+), 13 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 9e362604b..8149f0f61 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -199,7 +199,10 @@ namespace IRaCIS.Core.Application.Service SubjectId=x.SubjectId, SubjectCode=x.Subject.Code, TrialId=inDto.TrialId, - ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id, + ClinicalDataLevel= x.ClinicalDataTrialSet.ClinicalDataLevel, + ClinicalUploadType= x.ClinicalDataTrialSet.ClinicalUploadType, + + ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id, ClinicalDataSetEnName= x.ClinicalDataTrialSet.ClinicalDataSetEnName, ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName, }); @@ -320,8 +323,20 @@ namespace IRaCIS.Core.Application.Service TrialId= inDto.TrialId, Id = inDto.ClinicalFormId ?? NewId.NextGuid(), ReadingId = inDto.ReadingId, - VisitId = inDto.VisitId, }; + + + var existsClinical = await _clinicalFormRepository.Where(x => + x.SubjectId == inDto.SubjectId + && x.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId + ).WhereIf(inDto.ReadingId != null, x => x.ReadingId == inDto.ReadingId) + .Where(x => x.ClinicalDataTrialSet.UploadRole != UploadRole.CRC && (x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.ImageRead + || x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.OncologyRead)).AnyAsync(); + + if (existsClinical) + { + throw new BusinessValidationFailedException("已经添加过临床数据,不允许多次添加!"); + } try { var checkDateQuestionId = await _trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.ClinicalDataTrialSetId && x.IsCheckDate).Select(x => x.Id).FirstNotNullAsync(); diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs index 032abb073..135fbd8f3 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs @@ -30,7 +30,18 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid TrialId { get; set; } - public string SubjectCode { get; set; } + /// + /// 临床级别 + /// + public ClinicalLevel ClinicalDataLevel { get; set; } + + + /// + /// 上传方式 + /// + public ClinicalUploadType ClinicalUploadType { get; set; } + + public string SubjectCode { get; set; } public Guid ClinicalDataTrialSetId { get; set; } public string ClinicalDataSetName { get; set; } @@ -259,11 +270,6 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } public class SubmitClinicalFormInDto { - /// - /// VisitId - /// - public Guid? VisitId { get; set; } - /// /// VisitId /// diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ClinicalForm.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ClinicalForm.cs index f41eb924f..1d052b9f9 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ClinicalForm.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ClinicalForm.cs @@ -44,11 +44,6 @@ namespace IRaCIS.Core.Domain.Models /// public Guid ClinicalDataTrialSetId { get; set; } - /// - /// VisitId - /// - public Guid? VisitId { get; set; } - /// /// VisitId ///