diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index eb8338e15..a57ad22b6 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -409,13 +409,34 @@ namespace IRaCIS.Core.Application.Service return ResponseOutput.Ok(true); } - /// - /// 获取CRC确认列表 + /// 删除表单数据 /// /// /// + /// [HttpPost] + public async Task DeleteClinicalForm(DeleteClinicalFormInDto inDto) + { + + 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) { List result = await _readModuleRepository.Where(x => x.TrialId == inDto.TrialId) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs index 4e125fd93..b7807b8fb 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs @@ -161,6 +161,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } } + public class DeleteClinicalFormInDto + { + public Guid ClinicalFormId { get; set; } + } public class SubmitClinicalFormInDto { ///