diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
index 2f382f67a..1a9e7f4e5 100644
--- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
+++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
@@ -1204,7 +1204,12 @@ namespace IRaCIS.Core.Application.Image.QA
// CRC 上传的基线数据签名
- await _readingClinicalDataRepository.UpdatePartialFromQueryAsync(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ReadingId == dbSubjectVisit.Id && x.IsSign==false, x => new ReadingClinicalData()
+ await _readingClinicalDataRepository.UpdatePartialFromQueryAsync(x =>
+
+ (x.ClinicalDataTrialSet.ClinicalDataLevel== ClinicalLevel.Subject|| x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)&&
+
+
+ x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ReadingId == dbSubjectVisit.Id && x.IsSign==false, x => new ReadingClinicalData()
{
IsSign = true,
ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs
index eb8338e15..7edef6259 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs
@@ -251,8 +251,12 @@ namespace IRaCIS.Core.Application.Service
ClinicalFormIds.ForEach(x =>
{
var dic = answers.Where(y => y.ClinicalFormId == x).ToDictionary(x => x.QuestionId.ToString(), x => x.Answer);
- dic.Add("clinicalFormId", x.ToString());
- result.AnswerList.Add(dic);
+ dic.Add("ClinicalFormId", x.ToString());
+ dic.Add("TrialId", inDto.TrialId.ToString());
+ dic.Add("SubjectId", inDto.SubjectId.ToString());
+ dic.Add("ClinicalDataTrialSetId", inDto.ClinicalDataTrialSetId.ToString());
+
+ result.AnswerList.Add(dic);
});
return result;
@@ -264,7 +268,7 @@ namespace IRaCIS.Core.Application.Service
///
///
[HttpPost]
- public async Task GetClinicalFormInfo(GetClinicalFormInfoInDto inDto)
+ public async Task> GetClinicalFormInfo(GetClinicalFormInfoInDto inDto)
{
var formInfo = await _clinicalFormRepository.Where(x => x.Id == inDto.ClinicalFormId).FirstNotNullAsync();
@@ -285,7 +289,7 @@ namespace IRaCIS.Core.Application.Service
var questions = await _trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == formInfo.ClinicalDataTrialSetId)
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
- var tableQuestions = await _trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == formInfo.ClinicalDataTrialSetId)
+ var tableQuestions = await _trialClinicalTableQuestionRepository.Where(x => x.TrialClinicalId == formInfo.ClinicalDataTrialSetId)
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
@@ -296,11 +300,7 @@ namespace IRaCIS.Core.Application.Service
_iClinicalQuestionService.FindChildQuestion(x, questions, tableQuestions, questionAnswer, tableAnswer);
});
- return new GetClinicalFormInfoOutDto()
- {
-
- Question = result
- };
+ return result;
}
@@ -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..b8d869bb2 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs
@@ -57,7 +57,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{
public Guid SubjectId { get; set; }
- public Guid ClinicalDataTrialSetId { get; set; }
+
+ public Guid TrialId { get; set; }
+
+ public Guid ClinicalDataTrialSetId { get; set; }
}
@@ -161,6 +164,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
}
}
+ public class DeleteClinicalFormInDto
+ {
+ public Guid ClinicalFormId { get; set; }
+ }
public class SubmitClinicalFormInDto
{
///