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
///