From 8358d67f3e0a227b30975dc81da0941279f9b4ae Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Tue, 4 Jul 2023 15:24:34 +0800
Subject: [PATCH] =?UTF-8?q?S-002=20=E4=B8=B4=E5=BA=8A=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ClinicalData/ClinicalAnswerService.cs | 70 ++++++++++++++-----
.../Service/Reading/Dto/ClinicalAnswerDto.cs | 2 +-
2 files changed, 52 insertions(+), 20 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs
index 6f7e7a5d8..902957aa5 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs
@@ -405,27 +405,52 @@ namespace IRaCIS.Core.Application.Service
return ResponseOutput.Ok(true);
}
-
///
- /// 获取CRC确认列表
+ /// 删除表单数据
///
///
///
+ ///
[HttpPost]
- public async Task> GetCRCConfirmList(GetCRCConfirmListInDto inDto)
+ public async Task DeleteClinicalForm(DeleteClinicalFormInDto inDto)
{
- List result = await _readModuleRepository.Where(x => x.TrialId == inDto.TrialId)
- .WhereIf(inDto.ReadModuleId!=null,x=>x.Id==inDto.ReadModuleId)
- .Select(x => new GetCRCConfirmListOutDto()
- {
- SubjectId= x.SubjectId,
- IsCRCConfirm = x.IsCRCConfirm,
- LatestScanDate = x.SubjectVisit.LatestScanDate,
- ReadingSetType = x.ReadingSetType,
- IsPMConfirm = x.IsPMConfirm,
- SubjectCode=x.Subject.Code,
- ReadModuleId = x.Id,
- }).OrderBy(x => x.LatestScanDate).ToListAsync();
+
+ if (await _readModuleCriterionFromRepository.AnyAsync(x => x.ClinicalFormId == inDto.ClinicalFormId))
+ {
+ throw new BusinessValidationFailedException("当前表单已确认,无法删除!");
+ }
+
+ await _clinicalFormRepository.BatchDeleteNoTrackingAsync(x => x.Id == inDto.ClinicalFormId);
+ await _clinicalQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => x.ClinicalFormId == inDto.ClinicalFormId);
+ await _clinicalAnswerRowInfoRepository.BatchDeleteNoTrackingAsync(x => x.ClinicalFormId == inDto.ClinicalFormId);
+ await _clinicalTableAnswerRepository.BatchDeleteNoTrackingAsync(x => x.ClinicalFormId == inDto.ClinicalFormId);
+ return ResponseOutput.Ok(true);
+ }
+
+ ///
+ /// 获取CRC确认列表
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetCRCConfirmList(GetCRCConfirmListInDto inDto)
+ {
+ var query = _readModuleRepository.Where(x => x.TrialId == inDto.TrialId)
+ .WhereIf(inDto.ReadModuleId != null, x => x.Id == inDto.ReadModuleId)
+ .Select(x => new GetCRCConfirmListOutDto()
+ {
+ SubjectId = x.SubjectId,
+ IsCRCConfirm = x.IsCRCConfirm,
+ LatestScanDate = x.SubjectVisit.LatestScanDate,
+ ReadingSetType = x.ReadingSetType,
+ IsPMConfirm = x.IsPMConfirm,
+ SubjectCode = x.Subject.Code,
+ ReadModuleId = x.Id,
+ });
+
+
+ var result = await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, string.IsNullOrWhiteSpace(inDto.SortField) ? nameof(GetCRCConfirmListOutDto.LatestScanDate) : inDto.SortField, inDto.Asc);
+
var formList = await _clinicalFormRepository.Where(x => x.TrialId == inDto.TrialId)
.Where(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC)
.Where(x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.ImageRead || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.OncologyRead)
@@ -435,11 +460,12 @@ namespace IRaCIS.Core.Application.Service
CheckDate = x.CheckDate,
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
ClinicalFormId = x.Id,
- ClinicalDataSetName=x.ClinicalDataTrialSet.ClinicalDataSetName,
+ ClinicalDataTrialSetId= x.ClinicalDataTrialSet.Id,
+ ClinicalDataSetName =x.ClinicalDataTrialSet.ClinicalDataSetName,
ClinicalDataSetEnName=x.ClinicalDataTrialSet.ClinicalDataSetEnName,
}).ToListAsync();
var confirmList = await _readModuleCriterionFromRepository.Where(x => x.TrialId == inDto.TrialId).Include(x=>x.ClinicalForm).Include(x=>x.ClinicalForm.ClinicalDataTrialSet).ToListAsync();
- result.ForEach(x =>
+ result.CurrentPageData.ForEach(x =>
{
if (x.IsCRCConfirm)
{
@@ -448,6 +474,7 @@ namespace IRaCIS.Core.Application.Service
ClinicalDataSetName= y.ClinicalForm.ClinicalDataTrialSet.ClinicalDataSetName,
ClinicalDataSetEnName= y.ClinicalForm.ClinicalDataTrialSet.ClinicalDataSetEnName,
ClinicalFormId=y.ClinicalFormId,
+ ClinicalDataTrialSetId=y.ClinicalForm.ClinicalDataTrialSet.Id,
}).ToList();
}
else
@@ -461,6 +488,7 @@ namespace IRaCIS.Core.Application.Service
ClinicalDataSetName = y.ClinicalDataSetName,
ClinicalDataSetEnName = y.ClinicalDataSetEnName,
ClinicalFormId = y.ClinicalFormId,
+ ClinicalDataTrialSetId = y.ClinicalDataTrialSetId,
}).ToList();
}
else
@@ -472,6 +500,7 @@ namespace IRaCIS.Core.Application.Service
ClinicalDataSetName = y.ClinicalDataSetName,
ClinicalDataSetEnName = y.ClinicalDataSetEnName,
ClinicalFormId = y.ClinicalFormId,
+ ClinicalDataTrialSetId = y.ClinicalDataTrialSetId,
}).ToList();
}
}
@@ -490,8 +519,11 @@ namespace IRaCIS.Core.Application.Service
var result = (await this.GetCRCConfirmList(new GetCRCConfirmListInDto()
{
ReadModuleId = inDto.ReadModuleId,
- TrialId = inDto.TrialId
- })).SelectMany(x => x.ClinicalFormIdList).ToList();
+ TrialId = inDto.TrialId,
+ PageIndex=1,
+ PageSize=9999,
+
+ })).CurrentPageData.SelectMany(x => x.ClinicalFormIdList).ToList();
result.ForEach(x => {
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs
index bbdd38867..9609043fd 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs
@@ -99,7 +99,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string Answer { get; set; } = string.Empty;
}
- public class GetCRCConfirmListInDto
+ public class GetCRCConfirmListInDto:PageInput
{
public Guid TrialId { get; set; }